OSDN Git Service

b3a2887273933ec12d60f757cf96543673d02dbd
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-02  Richard Guenther  <rguenther@suse.de>
2
3         * lto-streamer.h (LTO_major_version): Bump to 2.
4
5 2010-12-02  Richard Guenther  <rguenther@suse.de>
6
7         PR lto/44871
8         * gimple.c (canonical_type_hash_cache): New hashtable.
9         (gimple_type_hash): Make a wrapper around ...
10         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
11         (gimple_canonical_type_hash): Likewise.
12         (gtc_visit): Take a gtc_mode argument.
13         (gimple_types_compatible_p_1): Likewise. Do not compare struct
14         tag names or field names when computing canonical types.
15         (gimple_types_compatible_p): Adjust.
16         (visit): Take a gtc_mode argument.
17         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
18         names or field names when computing hashes of canonical types.
19         (gimple_register_canonical_type): Use gimple_canonical_type_hash
20         for the hash.
21         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
22         (free_gimple_type_tables): Free canonical_type_hash_cache.
23
24 2010-12-02  Richard Guenther  <rguenther@suse.de>
25             Ira Rosen  <irar@il.ibm.com>
26
27         PR tree-optimization/46663
28         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
29         FUNCTION_DECL exists and that it's a builtin.
30
31 2010-12-02  Jie Zhang  <jie@codesourcery.com>
32
33         PR middle-end/46674
34         * varasm.c (compute_visible_aliases): Handle user set
35         assembler name.
36
37 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
38
39         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
40         thinko regarding setting -mno-<xxx> debug switches.
41         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
42
43 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
44
45         * intl.c: Don't include tm.h.
46         * Makefile.in (intl.o): Don't depend on $(TM_H).
47
48 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
49
50         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
51         unused warning.
52         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
53
54 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
55
56         * graphite-sese-to-poly.c (analyze_drs): Removed.
57         (build_scop_drs): Do not call analyze_drs.
58         (analyze_drs_in_stmts): New.
59         (insert_stmts): New.
60         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
61         (insert_out_of_ssa_copy_on_edge): Same.
62         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
63         (rewrite_phi_out_of_ssa): Same.
64         (rewrite_cross_bb_scalar_dependence): Same.
65         (split_reduction_stmt): Move data references in the new basic blocks.
66         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
67
68 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
69
70         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
71
72 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
73
74         PR middle-end/45297
75         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
76         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
77         * graphite-poly.h (new_poly_bb): Update declaration.
78         (gbb_from_bb): Moved here...
79         (pbb_from_bb): New.
80         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
81         Removed.
82         (graphite_stmt_p): Removed.
83         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
84         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
85         new_poly_bb.
86         (build_scop_bbs_1): Do not pass in sbitmap reductions.
87         (build_scop_bbs): Same.
88         (gbb_from_bb): ... from here.
89         (add_conditions_to_constraints): Moved up.
90         (analyze_drs): New.
91         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
92         not contain data references.
93         (new_pbb_from_pbb): New.
94         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
95         block is split.
96         (rewrite_close_phi_out_of_ssa): Update call to
97         insert_out_of_ssa_copy_on_edge.
98         (rewrite_reductions_out_of_ssa): Now static.
99         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
100         (split_pbb): New.
101         (split_reduction_stmt): Call split_pbb.
102         (translate_scalar_reduction_to_array): Pass in the scop, do not
103         pass in the sbitmap reductions.
104         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
105         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
106         (rewrite_commutative_reductions_out_of_ssa): Same.
107         (build_poly_scop): Call build_scop_bbs,
108         rewrite_commutative_reductions_out_of_ssa,
109         rewrite_reductions_out_of_ssa, and
110         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
111         before scop_to_lst.
112         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
113         Removed declaration.
114         (rewrite_reductions_out_of_ssa): Same.
115         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
116         (build_scop_bbs): Same.
117         * graphite.c (graphite_transform_loops): Do not initialize reductions.
118         Do not call build_scop_bbs,
119         rewrite_commutative_reductions_out_of_ssa,
120         rewrite_reductions_out_of_ssa, and
121         rewrite_cross_bb_scalar_deps_out_of_ssa.
122         * sese.h (struct gimple_bb): Add field pbb.
123         (GBB_PBB): New.
124
125 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
126
127         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
128         New.
129         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
130         handle_scalar_deps_crossing_scop_limits.
131         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
132         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
133
134 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
135
136         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
137         when replacing a constant in an ADDR_EXPR.
138
139 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
140
141         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
142         for the stride.
143         (lst_do_strip_mine): Same.
144         (scop_do_strip_mine): Same.
145         * graphite-poly.c (apply_poly_transforms): Update call to
146         scop_do_strip_mine.
147         * graphite-poly.h (scop_do_strip_mine): Update declaration.
148
149 2010-12-01  Jan Hubicka  <jh@suse.cz>
150
151         * tree.c (build_common_builtin_nodes): Do not initialize
152         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
153         * builtins.c (expand_builtin_profile_func): Remove.
154         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
155         BUILT_IN_PROFILE_FUNC_EXIT.
156         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
157         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
158         * gimplify.c (gimplify_function_tree): Reorganize code calling
159         profiling functions.
160
161 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
162
163         * opts.c: Expand comment on tm.h include.
164
165 2010-12-01  Yao Qi  <yao@codesourcery.com>
166
167         * config/arm/predicates.md ("vfp_register_operand"): Return true for
168         VFP_D0_D7_REGS classes.
169
170 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
171
172         * common.opt (flag_stack_check): New Variable entry.
173         (fcompare-debug-second): Use Var.
174         * flags.h (flag_compare_debug, flag_stack_check): Remove.
175         * opts.c (flag_compare_debug): Remove.
176         (common_handle_option): Don't handle OPT_fcompare_debug_second.
177         Set opts->x_flag_stack_check for OPT_fstack_check_.
178         * toplev.c (flag_stack_check): Remove.
179
180 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
181
182         * common.opt (main_input_filename, main_input_basename,
183         main_input_baselength): New Variable entries.  From toplev.c.
184         * final.c (output_quoted_string): Move from toplev.c.
185         * output.h (output_quoted_string): Move from toplev.h.
186         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
187         access main_input_filename, main_input_baselength and
188         main_input_basename.
189         * targhooks.c: Include intl.h and opts.h.
190         (option_affects_pch_p, default_get_pch_validity): Move from
191         toplev.c.
192         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
193         Move from toplev.h.
194         * toplev.c (main_input_filename, main_input_basename,
195         main_input_baselength): Move to common.opt.
196         (output_quoted_string): Move to final.c.
197         (warn_deprecated_use): Move to tree.c.
198         (option_affects_pch_p, default_get_pch_validity,
199         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
200         * toplev.h (skip_leading_substring): Move to tree-dump.c.
201         (warn_deprecated_use): Move to tree.h.
202         (output_quoted_string): Move to output.h.
203         (main_input_filename, main_input_basename, main_input_baselength):
204         Move to common.opt.
205         (default_get_pch_validity, default_pch_valid_p): Move to
206         targhooks.c.
207         * tree-dump.c (skip_leading_substring): Move from toplev.h.
208         * tree.c (warn_deprecated_use): Move from toplev.c.
209         * tree.h (warn_deprecated_use): Move from toplev.h.
210         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
211         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
212         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
213         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
214         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
215         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
216         config/mcore/mcore.c, config/mep/mep.c,
217         config/microblaze/microblaze.c, config/mips/mips.c,
218         config/mmix/mmix.c, config/mn10300/mn10300.c,
219         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
220         config/picochip/picochip.c, config/s390/s390.c,
221         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
222         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
223         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
224         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
225         varasm.c, xcoffout.c: Don't include toplev.h.
226         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
227         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
228         varasm.o, xcoffout.o): Update dependencies.
229         * config/arm/t-arm (arm.o): Update dependencies.
230         * config/spu/t-spu-elf (spu.o): Update dependencies.
231
232 2010-12-01  Richard Guenther  <rguenther@suse.de>
233
234         PR tree-optimization/46730
235         * value-prof.c (gimple_ic): Always generate a separate merge BB.
236
237 2010-11-30  Ian Lance Taylor  <iant@google.com>
238
239         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
240         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
241         * config/i386/linux64.h (ASM_SPEC): Likewise.
242         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
243         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
244         * config/i386/vxworks.h (ASM_SPEC): Likewise.
245         * config/i386/x86-64.h (ASM_SPEC): Likewise.
246         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
247         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
248
249 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
250
251         * c-decl.c (finish_function): Call objc_finish_function in
252         Objective-C.
253         * c-typeck.c (convert_for_assignment): Do not call
254         objc_type_quals_match().
255
256 2010-11-30  Richard Guenther  <rguenther@suse.de>
257
258         PR tree-optimization/46722
259         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
260         operands as arguments.
261         (execute_optimize_widening_mul): Also handle power of two as
262         multiplication.
263
264 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
265
266         PR middle-end/46709
267         * cgraphunit.c (process_function_and_variable_attributes): Fix
268         cut'n'pasteo.
269
270 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
271
272         * hwint.c:  New.  Extracted from toplev.c.
273         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
274         Move from toplev.h.
275         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
276         Move to hwint.c.
277         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
278         Move to hwint.h.
279         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
280         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
281         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
282         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
283         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
284         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
285         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
286         tree-vrp.c: Don't include toplev.h.
287         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
288         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
289         toplev.h in generated output.
290         * Makefile.in (OBJS-common): Add hwint.o.
291         Dependencies for above files changed to remove toplev.h.
292         (hwint.o): New.
293         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
294         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
295         toplev.h.
296         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
297         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
298
299 2010-11-30  Richard Guenther  <rguenther@suse.de>
300
301         PR tree-optimization/46717
302         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
303         call.  Manually create EH edges for the direct call and update
304         target PHI nodes.
305
306 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
307
308         * diagnostic-core.h: Include bversion.h.
309         * toplev.h: Don't include input.h or bversion.h.
310         (parse_optimize_options): Don't declare here.
311         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
312         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
313         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
314         config/host-darwin.c, config/i386/host-cygwin.c,
315         config/i386/host-mingw32.c, config/i386/msformat-c.c,
316         config/i386/netware.c, config/i386/nwld.c,
317         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
318         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
319         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
320         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
321         config/score/score3.c, config/score/score7.c,
322         config/sh/symbian-base.c, config/sh/symbian-c.c,
323         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
324         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
325         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
326         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
327         graphite-blocking.c, graphite-clast-to-gimple.c,
328         graphite-dependences.c, graphite-flattening.c,
329         graphite-interchange.c, graphite-poly.c,
330         graphite-scop-detection.c, graphite.c, haifa-sched.c,
331         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
332         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
333         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
334         lto-opts.c, lto-section-in.c, lto-section-out.c,
335         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
336         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
337         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
338         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
339         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
340         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
341         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
342         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
343         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
344         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
345         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
346         include toplev.h.
347         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
348         toplev.h.  Dependencies for above files and c-family files changed
349         to remove $(TOPLEV_H) or toplev.h.
350         (C_TREE_H): Don't include $(TOPLEV_H).
351         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
352         bversion.h.
353         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
354         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
355         config/t-darwin, config/t-sol2,
356         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
357         Dependencies for above files changed to remove $(TOPLEV_H) or
358         toplev.h.
359
360 2010-11-30  Richard Guenther  <rguenther@suse.de>
361
362         PR lto/44986
363         * gcc.c (main): Use the first input with a compiler as infile
364         for link spec processing.
365
366 2010-11-30  Richard Guenther  <rguenther@suse.de>
367
368         PR lto/45949
369         * cgraphunit.c (ipa_passes): Stop after errors from
370         small IPA passes.
371
372 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
373
374         * gcc-plugin.h: Include coretypes.h.
375         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
376
377 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
378
379         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
380         * ggc-none.c (ggc_internal_alloc_zone_stat)
381         (ggc_internal_cleared_alloc_zone_stat): New.
382
383 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
384
385         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
386         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
387         (rs6000_emit_prologue): Don't set PIC register if
388         TARGET_SINGLE_PIC_BASE.
389         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
390         * doc/invoke.texi (msingle-pic-base): Document.
391
392 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
393
394         PR driver/46712
395         * exec-tool.in (id): New.
396         Check and export LT_RCU_$id instead of LT_RCU.
397
398 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
399
400         PR tree-optimization/46675
401         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
402         in offset calculation.
403
404 2010-11-29  Jan Hubicka  <jh@suse.cz>
405
406         * collect2.c (main): Do not imply verbose output with
407         LTO and linker plugin.
408
409 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
410
411         * dwarf2out.c (print_die): Print the address of the current DIE or
412         of any DIE referenced by the current one.
413
414 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
415
416         PR debug/46101
417         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
418         function.
419         (scope_die_for, gen_type_die_for_member): Replace uses of
420         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
421
422 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
423
424         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
425         (darwin_asm_declare_object_name): Correct spelling.
426         (darwin_output_aligned_bss): Likewise.
427
428 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
429             Mike Stump  <mrs@gcc.gnu.org>
430
431         PR target/26427
432         PR target/33120
433         PR testsuite/35710
434         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
435         (ASM_OUTPUT_LOCAL): Likewise.
436         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
437         (darwin_output_aligned_bss): Likewise.
438         (darwin_asm_output_aligned_decl_local): Likewise.
439         (darwin_asm_output_aligned_decl_common): Likewise.
440         (darwin_use_anchors_for_symbol_p): Likewise.
441         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
442         (TARGET_ASM_OUTPUT_ANCHOR): Define.
443         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
444         (DARWIN_SECTION_ANCHORS): Set to 1.
445         * config/darwin.c (emit_aligned_common): New var.
446         (darwin_init_sections): Check that the Darwin private zero-size section
447         marker is in range.
448         (darwin_text_section): Check for zero-sized objects.
449         (darwin_mergeable_string_section): Likewise.
450         (darwin_mergeable_constant_section): Likewise.
451         (machopic_select_section): Adjust to check for zero-sized objects.
452         Assert that OBJC meta data are non-zero sized.
453         (darwin_asm_declare_object_name): New.
454         (darwin_asm_declare_constant_name): Adjust for zero-sized
455         object sections.
456         (BYTES_ZFILL): Define.
457         (darwin_emit_weak_or_comdat): New.
458         (darwin_emit_local_bss): New.
459         (darwin_emit_common): New.
460         (darwin_output_aligned_bss): New.
461         (darwin_asm_output_aligned_decl_common): New.
462         (darwin_asm_output_aligned_decl_local): New.
463         (darwin_file_end): Disable subsections_via_symbols when section
464         anchoring is active.
465         (darwin_asm_output_anchor): Re-enable.
466         (darwin_use_anchors_for_symbol_p): New.
467         (darwin_override_options): Check for versions that can emit
468         aligned common.  Update usage of flags to current.
469         * config/darwin-sections.def: Update comments and flags for
470         non-anchor sections.  zobj_const_section, zobj_data_section,
471         zobj_bss_section, zobj_const_data_section: New.
472         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
473         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
474         (L2_MAX_OFILE_ALIGNMENT): Define.
475         (ASM_OUTPUT_ALIGNED_BSS): Define.
476         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
477         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
478         (SECTION_NO_ANCHOR): Define.
479         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
480         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
481
482 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
483
484         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
485         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
486         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
487         Conditionally define.
488         (GET_ENVIRONMENT): Poison.
489         * configure.ac: Don't test for mincore.
490         * configure: Regenerate.
491         * config.in: Regenerate.
492         * collect2-aix.c: Don't include <sys/mman.h>.
493         * collect2.c: Don't include <signal.h>.
494         (SIGCHLD): Don't define.
495         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
496         * config/alpha/alpha.c: Include "splay-tree.h" instead of
497         <splay-tree.h>.
498         * config/arm/arm.c (arm_target_help): Use getenv instead of
499         GET_ENVIRONMENT.
500         * config/avr/driver-avr.c: Don't include <stdlib.h>.
501         * config/frv/frv.c: Don't include <ctype.h>.
502         * config/host-darwin.c: Don't include <sys/mman.h>.
503         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
504         (MAP_FAILED): Don't define.
505         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
506         * config/host-solaris.c: Don't include <sys/mman.h>.
507         * config/i386/cygming.h: Don't include <stdio.h>.
508         * config/i386/driver-i386.c: Don't include <stdlib.h>.
509         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
510         * config/iq2000/iq2000.c: Don't include <signal.h>.
511         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
512         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
513         * config/mep/mep-pragma.c: Don't include <stdio.h>.
514         * config/microblaze/microblaze.c: Don't include <signal.h>.
515         * config/mips/mips.c: Don't include <signal.h>.
516         * config/rs6000/host-darwin.c: Don't include <signal.h>.
517         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
518         * defaults.h (GET_ENVIRONMENT): Don't define.
519         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
520         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
521         (SIGCHLD, MAP_FAILED, kill): Don't define.
522         (process_command): Use getenv instead of GET_ENVIRONMENT.
523         * genhooks.c: Don't include <string.h>.
524         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
525         <sys/types.h>.
526         (MAP_FAILED): Don't define.
527         * ggc-page.c Don't include <sys/mman.h>.
528         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
529         * ggc-zone.c: Don't include <sys/mman.h>.
530         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
531         * graph.c: Include "config.h" instead of <config.h>.
532         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
533         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
534         (SIGCHLD, kill): Don't define.
535         * mips-tfile.c: Don't include <signal.h>.
536         * opts.c: Don't include <signal.h> or <sys/resource.h>.
537         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
538         * passes.c: Don't include <signal.h>, <sys/resource.h> or
539         <sys/times.h>.
540         * sparseset.h: Don't include <assert.h>.
541         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
542         * tlink.c: Don't include "libiberty.h".
543         * toplev.c: Don't include <signal.h> or <sys/times.h>.
544         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
545         * tree-switch-conversion.c: Don't include <signal.h>.
546         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
547
548 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
549
550         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
551         c_parser_objc_try_catch_finally_statement for consistency with the
552         C++ parser.  Parse @catch(...) and pass NULL_TREE to
553         objc_begin_catch_clause() in that case.  Improved error recovery.
554         Reorganized code to be almost identical to
555         cp_parser_objc_try_catch_finally_statement.
556
557 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
558
559         PR tree-optimization/46621
560         * gimple.h: Don't include tm.h or hard-reg-set.h .
561         * Makefile.in (GIMPLE_H): Remove $(TM_H).
562
563         PR bootstrap/44756
564         * cppbuiltin.c: Include target.h .
565         (define_builtin_macros_for_type_sizes):
566         Use targetm.float_words_big_endian.
567
568 2010-11-27  Jan Hubicka  <jh@suse.cz>
569
570         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
571         and output cold_text_section_label.
572         (dwarf2out_init): Don't do that there.
573         (dwarf2out_finish): Handle cold section end label only if cold
574         section was used.
575
576 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
577
578         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
579         VLA variables.
580
581 2010-11-27  Richard Guenther  <rguenther@suse.de>
582
583         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
584         (gimple_assign_ssa_name_copy_p): Likewise.
585         (gimple_assign_unary_nop_p): Use is_gimple_assign.
586         (is_gimple_cast): Remove.
587         (gimple_assign_single_p): Move ...
588         * gimple.h (gimple_assign_single_p): ... here.
589         (is_gimple_cast): Remove.
590         (gimple_assign_rhs_code): Simplify.
591         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
592         instead of is_gimple_cast.
593         * ipa-type-escape.c (look_for_casts): Likewise.
594
595 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
596
597         * doc/options.texi (Enum, EnumValue): Document new record types.
598         (Enum): Document new option flag.
599         * opt-functions.awk
600         * optc-gen.awk: Handle enumerated option arguments.
601         * opth-gen.awk: Handle enumerated option arguments.
602         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
603         enum_value_to_arg): New.
604         (decode_cmdline_option): Handle enumerated arguments.
605         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
606         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
607         * opts.c (print_filtered_help, print_specific_help): Take
608         lang_mask arguments.
609         (print_filtered_help): Handle printing values of enumerated
610         options.  Print possible arguments for enumerated options.
611         (print_specific_help): Update call to print_filtered_help.
612         (common_handle_option): Update calls to print_specific_help.  Use
613         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
614         handle OPT_ffp_contract_, OPT_fexcess_precision_,
615         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
616         OPT_fira_region_ here.
617         * opts.h (enum cl_var_type): Add CLVC_ENUM.
618         (struct cl_option): Add var_enum.
619         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
620         struct cl_enum, cl_enums, cl_enums_count): New.
621         (CL_ERR_ENUM_ARG): Define.
622         (CL_ERR_NEGATIVE): Update value.
623         (enum_value_to_arg): Declare.
624         * common.opt (flag_ira_algorithm, flag_ira_region,
625         flag_fp_contract_mode, flag_excess_precision_cmdline,
626         default_visibility, flag_tls_default): Remove Variable entries.
627         (help_enum_printed): New Variable.
628         (fdiagnostics-show-location=): Use Enum.  Add associated
629         SourceInclude, Enum and EnumValue entries.
630         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
631         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
632         associated Enum and EnumValue entries.
633
634 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
635
636         PR target/46623
637         * config/microblaze/microblaze.c (microblaze_block_move_straight):
638         Use XALLOCAVEC.
639         (microblaze_option_override): Don't use C++ style comments.
640         (save_restore_insns): Remove unused variable base_offset.
641         (microblaze_expand_prologue): Remove unused variable insn.
642         (microblaze_secondary_reload): Adjust type to match target.h .
643         (microblaze_elf_in_small_data_p): Move declarations to start of block.
644         (microblaze_expand_move): Likewise.
645         * config/microblaze/microblaze.h (LARGE_INT):
646         Avoid signed / unsigned comparisons.
647         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
648         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
649         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
650
651 2010-11-26  Michael Matz  <matz@suse.de>
652
653         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
654
655         * passes.c (init_optimization_passes): Remove superfluous
656         copy-prop pass.
657
658 2010-11-26  Richard Guenther  <rguenther@suse.de>
659
660         PR lto/46648
661         * gimple.c (gtc_visit): Do not return true for members of an
662         SCC still being processed but the current lattice value of
663         the member.  Treat SCC members comparison state as lattice,
664         starting at equal, eventually dropping to unequal.
665         (gimple_types_compatible_p_1): Likewise.
666
667 2010-11-26  Richard Guenther  <rguenther@suse.de>
668
669         PR middle-end/46559
670         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
671         for location list processing.
672
673 2010-11-26  Richard Guenther  <rguenther@suse.de>
674
675         PR lto/46560
676         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
677         flags manually.
678
679 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
680
681         * config/s390/s390.c (print_operand_address): Replace assert with
682         error message.
683         (print_operand): Replace assertions, gcc_unreachable and
684         fatal_insn with error messages.
685
686 2010-11-26  Richard Guenther  <rguenther@suse.de>
687
688         PR tree-optimization/46665
689         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
690
691 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
692
693         * config/arm/arm.c (arm_option_override): enable loop array
694         prefetching at -O3 for suitable targets, and configure params.
695         * config/arm/arm-protos.h (struct tune_params): Add fields for
696         configuring loop array prefetching.
697
698 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
699
700         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
701
702 2010-11-26  Richard Guenther  <rguenther@suse.de>
703
704         PR tree-optimization/46664
705         * tree-affine.c (aff_combination_to_tree): Add rest last.
706
707 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
708
709         PR target/33637
710         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
711         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
712         * configure: Regenerated.
713         * exec-tool.in: Not quoting command, may have extra arguments.
714
715 2010-11-26  Richard Guenther  <rguenther@suse.de>
716
717         PR tree-optimization/46528
718         PR debug/46338
719         * profile.c (branch_prob): Do not split blocks based on locations
720         from debug statements.
721
722 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
723
724         PR middle-end/46647
725         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
726         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
727
728         PR bootstrap/45700
729         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
730         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
731         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
732         build6_loc): Define.
733         * fold-const.c (protected_set_expr_location_unshare): New inline.
734         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
735         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
736         pedantic_omit_one_operand_loc, omit_two_operands_loc,
737         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
738         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
739         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
740         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
741         instead of buildN followed by SET_EXPR_LOCATION or
742         protected_set_expr_location.
743         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
744         Use buildN_stat_loc instead of buildN_stat followed by
745         SET_EXPR_LOCATION.
746
747 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
748
749         * Makefile.in (s-tm-texi): Remove spurous tab.
750
751 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
752
753         PR debug/46258
754         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
755         debug stmts.
756
757 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
758
759         * toplev.c (finalize): Add no_backend parameter.  Don't finish
760         passes when preprocessing only.  Adjust...
761         (do_compile): ... caller.
762
763 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
764
765         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
766         flag_unsafe_math_optimizations.
767         (negsf2): Likewise.
768         Move fnegabs related patterns together.  Only use fmpynfadd instruction
769         to negate a multiply if !flag_signed_zeros is true.
770
771 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
772
773         * gengtype-state.c (read_state_structures): Initialize "previous".
774
775 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
776             Jeremie Salvucci  <jeremie.salvucci@free.fr>
777
778         * gengtype-state.c: Add new file.
779
780         * gengtype.c (type count): New variable.
781         (new_structure, find_param_structure, create_pointer)
782         (create_array): Use it to set state_number in types.
783         (dump_everything): Improve comment.
784         (main): Call read_state and write_state. Print type_count.
785
786         * gengtype.h (type_lineloc): New function.
787         (read_state, write_state): New declarations.
788
789         * Makefile.in (GENGTYPE_FLAGS): New variable.
790         (s-gtype): Run gengtype twice and generate gtype.state.
791         (build/gengtype-state.o): New rule.
792         (build/gengtype$(build_exeext)): Link gengtype-state.o.
793         (mostlyclean): Update comment.  Remove gtype.state.
794
795 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
796
797         PR middle-end/46637
798         * combine.c (try_combine): When substing i2dest for i2src, pass
799         1 as last argument even if
800         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
801
802 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
803
804         PR middle-end/46647
805         * builtins.c (target_char_cast): Check INTEGER_CST instead of
806         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
807
808 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
809
810         * target.def (supports_split_stack, except_unwind_info): Take
811         gcc_options parameters.
812         * targhooks.c (default_except_unwind_info,
813         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
814         gcc_options parameters.
815         * targhooks.h (default_except_unwind_info,
816         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
817         prototypes.
818         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
819         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
820         Document that hooks must not be modified.
821         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
822         * doc/tm.texi: Regenerate.
823         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
824         &global_options to targetm.except_unwind_info.
825         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
826         dwarf2out_begin_prologue, dwarf2out_frame_init,
827         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
828         &global_options to targetm.except_unwind_info.
829         * except.c (init_eh, finish_eh_generation,
830         gate_convert_to_eh_region_ranges,
831         output_one_function_exception_table): Pass &global_options to
832         targetm.except_unwind_info.
833         * expr.c (build_personality_function): Pass &global_options to
834         targetm.except_unwind_info.
835         * function.c (expand_function_end): Pass &global_options to
836         targetm.except_unwind_info.
837         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
838         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
839         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
840         and targetm.supports_split_stack.  Remove assertions about opts
841         and opts_set.
842         (common_handle_option): Remove assertions about opts, opts_set and dc.
843         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
844         &global_options to targetm.except_unwind_info.
845         * tree.c (build_common_builtin_nodes: Pass &global_options to
846         targetm.except_unwind_info.
847         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
848         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
849         thumb1_expand_prologue, thumb1_output_function_prologue,
850         arm_unwind_emit, arm_output_fn_unwind): Update calls to
851         arm_except_unwind_info.
852         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
853         parameter.
854         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
855         parameter.
856         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
857         ia64_reorg, ia64_asm_unwind_emit): Update calls to
858         ia64_except_unwind_info.
859         * config/pa/pa.c (pa_option_override): Pass &global_options to
860         targetm.except_unwind_info.
861         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
862         Remove prototype.
863
864 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
865
866         * cgraphunit.c (process_function_and_variable_attributes):
867         Mark dllexport-ed function/variables as needed.
868         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
869         as externally visible.
870
871 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
872
873         PR rtl-optimization/46585
874         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
875         (vinsn_init): Skip computation of dependencies for local NOPs.
876         (vinsn_delete): Don't try to free regsets for local NOPs.
877         (setup_nop_and_exit_insns): Change definition of nop_pattern.
878
879 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
880
881         PR rtl-optimization/46602
882         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
883         (tidy_control_flow): Here.
884
885 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
886             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
887
888         PR bootstrap/45888
889         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
890         Fix target.def pathname in timestamp comparison.
891
892 2010-11-24  Richard Henderson  <rth@redhat.com>
893
894         * config/ia64/predicates.md (pmpyshr_operand): New.
895         * config/ia64/ia64.c (ia64_expand_unpack): New.
896         (ia64_expand_widen_mul_v4hi): New.
897         (ia64_expand_widen_sum): Update for pattern renames.
898         (ia64_expand_dot_prod_v8qi): Likewise.
899         * config/ia64/ia64-protos.h: Update.
900         * config/ia64/vect.md (vecwider): New mode attribute.
901         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
902         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
903         (pmpyshr2, pmpyshr2_u): New.
904         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
905         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
906         (mulv2si3): New.
907         (vec_pack_ssat_v4hi): Rename from pack2_sss.
908         (vec_pack_usat_v4hi): Rename from *pack2_uss.
909         (vec_pack_ssat_v2si): Rename from pack4_sss.
910         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
911         vec_select operation.
912         (vec_interleave_highv8qi): Similarly.
913         (mux1_alt): Rename from *mux1_alt.
914         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
915         (vec_interleave_lowv4hi): Rename from unpack2_l.
916         (vec_interleave_highv4hi): Rename from unpack2_h.
917         (mix2_r): Rename from *mix2_r.
918         (mix2_l): Similarly.
919         (vec_extract_evenodd_helper): New.
920         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
921         (vec_interleave_lowv2si): Rename from *unpack4_l.
922         (vec_interleave_highv2si): Rename from *unpack4_h.
923         (vec_extract_evenv2si, vec_extract_oddv2si): New.
924         (vec_interleave_lowv2sf): Rename from fmix_r.
925         (vec_interleave_highv2sf): Rename from *fmix_l.
926         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
927         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
928         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
929         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
930
931 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
932
933         * targhooks.c (default_except_unwind_info): Remove
934         MUST_USE_SJLJ_EXCEPTIONS case.
935         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
936         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
937         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
938         * doc/tm.texi: Regenerate.
939         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
940
941 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
942
943         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
944         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
945         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
946         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
947         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
948
949 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
950
951         PR target/46519
952         * config/i386/i386.c (ix86_expand_call): Don't check
953         TREE_THIS_VOLATILE.
954
955 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
956
957         PR target/46519
958         * config/i386/i386.c (upper_128bits_state): New.
959         (block_info_def): Remove upper_128bits_set and done.  Add state,
960         referenced, count, processed and rescanned.
961         (check_avx256_stores): Updated.
962         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
963         Call note_stores only if needed.  Set referenced and count.
964         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
965         (rescan_move_or_delete_vzeroupper): New.
966         (move_or_delete_vzeroupper):  Process and rescan all all basic
967         blocks instead of predecessor blocks of all exit points.
968         (ix86_option_override_internal): Enable vzeroupper optimization
969         only for -fexpensive-optimizations and not optimizing for size.
970         (use_avx256_p): Removed.
971         (init_cumulative_args): Don't set use_avx256_p.
972         (ix86_function_arg): Likewise.
973         (ix86_expand_move): Likewise.
974         (ix86_expand_vector_move_misalign): Likewise.
975         (ix86_local_alignment): Likewise.
976         (ix86_minimum_alignment): Likewise.
977         (ix86_expand_epilogue): Don't check use_avx256_p when generating
978         vzeroupper.
979         (ix86_expand_call): Likewise.
980
981         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
982         and use_avx256_p.  Add rescan_vzeroupper_p.
983
984 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
985
986         * toplev.c: Include <signal.h>.
987
988 2010-11-24  Richard Guenther  <rguenther@suse.de>
989
990         PR lto/43218
991         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
992         conflicting function signatures as non-inlineable.
993
994 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
995
996         PR rtl-optimization/46614
997         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
998          (deps_analyze_insn): Mark JUMP_INSNs in
999         last_pending_memory_flush that weren't added through
1000         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1001         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1002         on INSN_LIST instead of JUMP_P check on its operand.
1003         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1004
1005 2010-11-24  Richard Guenther  <rguenther@suse.de>
1006
1007         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1008
1009 2010-11-24  Richard Guenther  <rguenther@suse.de>
1010
1011         PR lto/46606
1012         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1013         a FIELD_DECL that is type correct issue a warning and fixup
1014         with a VIEW_CONVERT_EXPR.
1015
1016 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1017
1018         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1019         Explain static numbering of dump files.
1020
1021 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1022
1023         * common.opt (user_vect_verbosity_level): New Variable entry.
1024         (ftree-vectorizer-verbose=): Mark as UInteger.
1025         * flag-types.h (enum vect_verbosity_levels): Move from enum
1026         verbosity_levels in tree-vectorizer.h.
1027         * opts.c: Don't include tree.h.
1028         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1029         gcc_options parameter; take integer option argument.
1030         (common_handle_option): Update call to vect_set_verbosity_level.
1031         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1032         (vect_set_verbosity_level): Move to opts.c.
1033         (vect_verbosity_level, vect_print_dump_info): Update for change of
1034         enum name.
1035         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1036         (vect_print_dump_info): Update for change of enum name.
1037         * tree.h (vect_set_verbosity_level): Remove.
1038         * Makefile.in (opts.o): Update dependencies.
1039
1040 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1041
1042         PR middle-end/46629
1043         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1044         instead of insn with any_condjump_p.
1045
1046 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1047
1048         * config/mips/loongson.md: Change the description comment of the file
1049         and update the copyright years.
1050         (define_insn "<u>div<mode>3): Add loongson3a support.
1051         (define_insn "<u>mod<mode>3"): Likewise.
1052         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1053         mul<mode>3_mul3_loongson.
1054         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1055         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1056
1057 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1058
1059         * common.opt (initial_max_fld_align, flag_debug_asm,
1060         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1061         flag_print_asm_name, graph_dump_format, help_printed,
1062         help_columns, flag_opts_finished): New Variable entries.
1063         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1064         frandom-seed=): Mark deferred.
1065         (fsched-verbose=): Use UInteger and Var.
1066         * flags.h (set_struct_debug_option, flag_print_asm_name,
1067         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1068         graph_dump_format): Don't declare here.
1069         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1070         * opts-global.c: Include dbgcnt.h and debug.h.
1071         (decode_options): Pass location to finish_options.
1072         (handle_common_deferred_options): Check flag_dump_all_passed.
1073         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1074         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1075         OPT_fstack_limit.
1076         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1077         (set_struct_debug_option): Add location_t parameter.  Update
1078         recursive call.  Use error_at.
1079         (default_options_optimization): Use error_at.
1080         (finish_options): Add location_t parameter.  Use
1081         opts->x_flag_opts_finished instead of first_time_p.  Use
1082         opts->x_optimize instead of optimize.  Use error_at.  Pass
1083         location to inform.
1084         (print_filtered_help): Use opts->x_help_printed to track what
1085         options have been printed.
1086         (print_specific_help): Use opts->x_help_columns to track number of
1087         columns.
1088         (common_handle_option): Pass locations and gcc_options pointers to
1089         more functions.  Use warning_at instead of fnotice and warning.
1090         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1091         OPT_fdebug_prefix_map_.  Use error_at.  Set
1092         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1093         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1094         OPT_fsched_verbose_.
1095         (handle_param): Add location_r parameter.  Use error_at.
1096         (set_debug_level): Add location_r parameter.  Use error_at and
1097         warning_at.
1098         (setup_core_dumping): Add diagnostic_context parameter.
1099         (decode_d_option): Add gcc_options, location_t and
1100         diagnostic_context parameters and use them instead of global
1101         state.  Use warning_at.
1102         (enable_warning_as_error): Use error_at.
1103         * opts.h (finish_options): Update prototype.
1104         (set_struct_debug_option): Declare here.
1105         * rtl.h (fix_sched_param): Remove.
1106         * stor-layout.c (initial_max_fld_align): Remove.
1107         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1108         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1109         (process_options): Set maximum_field_alignment.
1110         * tree.h (initial_max_fld_align) Don't declare here.
1111         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1112
1113 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1114
1115         * flag-types.h (struct visibility_flags): Don't declare here.
1116         * flags.h (strip_off_ending, fast_math_flags_set_p,
1117         fast_math_flags_struct_set_p): Declare here.
1118         (visibility_options): Don't declare here.
1119         * opts-common.c (option_enabled, get_option_state): Move from
1120         opts.c.
1121         * opts-global.c: Include diagnostic.h instead of
1122         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1123         and toplev.h.
1124         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1125         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1126         print_ignored_options, unknown_option_callback,
1127         post_handling_callback, lang_handle_option, add_input_filename,
1128         read_cmdline_options, initial_lang_mask, init_options_once,
1129         decode_cmdline_options_to_array_default_mask,
1130         set_default_handlers, decode_options): Move from opts.c.
1131         (print_ignored_options): Use warning_at instead of saving and
1132         restoring input_location.
1133         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1134         instead of expr.h.  Don't include langhooks.h, except.h or
1135         lto-streamer.h.  Add more comments on includes.
1136         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1137         toplev.c.
1138         (visibility_options): Move to c-family/c-common.c.
1139         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1140         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1141         print_ignored_options, unknown_option_callback,
1142         post_handling_callback, lang_handle_option, add_input_filename,
1143         read_cmdline_options, initial_lang_mask, init_options_once,
1144         decode_cmdline_options_to_array_default_mask,
1145         set_default_handlers, decode_options): Move to opts-global.c.
1146         (target_handle_option, default_options_optimization,
1147         finish_options, common_handle_option): Remove static.
1148         (option_enabled, get_option_state): Move to opts-common.c.
1149         * opts.h (common_handle_option, target_handle_option,
1150         finish_options, default_options_optimization): Declare.
1151         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1152         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1153         opts.c.
1154         * toplev.h (strip_off_ending, decode_d_option,
1155         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1156         declare here.
1157         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1158
1159 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1160
1161         PR driver/42690
1162         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1163         options, replace by call of pass-through-libs spec function to process
1164         link_gcc_c_sequence spec.
1165         (lto_libgcc_spec): Delete variable.
1166         (static_specs[]): Remove related entry.
1167         (static_spec_functions[]): Add new entry for pass-through-libs.
1168         (main): Don't generate deleted lto_libgcc_spec.
1169         (pass_through_libs_spec_func): New function to implement the new
1170         pass-through-libs spec function.
1171         * doc/invoke.texi (pass-through-libs): Document new spec function.
1172
1173 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1174
1175         * doc/options.texi (Warning, Optimization): Document.
1176
1177 2010-11-23  Jan Hubicka  <jh@suse.cz>
1178
1179         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1180         (tree_decl_with_vis): Add implicit_section_name_p.
1181         * targhooks.h (default_function_section): Declare.
1182         * target.def (function_section): New hook.
1183         * defaults.h (HOT_TEXT_SECTION_NAME,
1184         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1185         * predict.c (choose_function_section): Remove.
1186         (estimate_bb_frequencies): Do not use choose_function_section.
1187         * coretypes.h (enum node_frequency): Move here from cgraph.h
1188         * cgraph.h (enum node_frequency): Remove.
1189         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1190         unlikely_text_section_p): Remove.
1191         (named_subsection_entry): New structure.
1192         (get_text_section): New function.
1193         (default_function_section): New function.
1194         (function_section_1): Break out from ...; handle profile info.
1195         (function_section): ... here.
1196         (unlikely_text_section): Remove.
1197         (unlikely_text_section_p): Use function_section_1.
1198         (assemble_start_function): Do not initialize cold section.
1199         (default_section_type_flags): Do not special case cold subsection.
1200         (switch_to_section): Likewise.
1201         * output.h (get_text_section): Define.
1202         * config/i386/winnt.c: Do not special case cold section.
1203         * config/darwin-protos.h (darwin_function_section): Declare.
1204         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1205         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1206         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1207         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1208         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1209         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1210         * config/darwin.c (machopic_select_section): Use
1211         darwin_function_section.
1212         (darwin_function_section): New function.
1213         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1214         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1215         (TARGET_ASM_FUNCTION_SECTION): Define.
1216         * system.h (HOT_TEXT_SECTION_NAME,
1217         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1218
1219 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1220
1221         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1222         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1223
1224 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1225
1226         PR middle-end/46499
1227         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1228         following unconditional jumps.
1229
1230 2010-11-23  Richard Guenther  <rguenther@suse.de>
1231
1232         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1233
1234 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1235             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1236
1237         * gengtype.c (enum typekind, struct options)
1238         (struct nested_ptr_data, struct pair, NUM_PARAM)
1239         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1240         Move to gengtype.h.
1241         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1242         Remove static, add zero state_number.
1243         (typedefs, structures, param_structs, variables): Remove static.
1244         (create_option): Remove.
1245         (create_string_option, create_type_option, create_nested_option):
1246         New functions.
1247         (create_nested_ptr_option): Use create_nested_option.
1248         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1249         new create*option functions.
1250         (process_gc_options): Adjust for discriminated option.
1251         (output_mangled_typename): Handle TYPE_NONE.
1252         (walk_type): Test option kinds.
1253         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1254         (write_func_for_structure, write_type, write_local, write_root)
1255         (write_roots, note_def_vec, dump_options): Adjust for
1256         discriminated option.
1257
1258         * gengtype.h (typedefs, structures, param_structs, variables
1259         enum typekind): Move from gengtype.c
1260         (enum option_kind): New discriminating enumeration.
1261         (struct options): Becomes discriminated.
1262         (struct nested_ptr_data): Nove from gengtype.c
1263         (create_string_option, create_type_option, create_nested_option)
1264         (create_nested_ptr_option): New functions
1265         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1266         (UNION_OR_STRUCT_P): Move from gengtype.c
1267
1268         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1269         discriminated options.
1270
1271 2010-11-23  Richard Guenther  <rguenther@suse.de>
1272
1273         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1274         twice.  Avoid re-allocating the ops vector all the time.
1275
1276 2010-11-23  Richard Guenther  <rguenther@suse.de>
1277
1278         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1279         is_gimple_min_invariant, group tree code checks to allow
1280         combining them.
1281         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1282         of is_gimple_reg.
1283
1284 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1285
1286         * config.gcc (sparc*-*-*): Reorder.
1287
1288 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1289
1290         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1291         Remove ENABLE_CHECKING around DBGPRINTF.
1292
1293 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1294
1295         * common.opt (exit_after_options, write_symbols, debug_info_level,
1296         use_gnu_debug_info_extensions): New Variable entries.
1297         (fprofile-dir=): Use Var.
1298         * flag-types.h (enum debug_info_level): Rename to enum
1299         debug_info_levels.
1300         * flags.h (write_symbols, debug_info_level,
1301         use_gnu_debug_info_extensions): Remove declarations.
1302         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1303         (set_struct_debug_option): Make static variables const.
1304         (use_gnu_debug_info_extensions): Remove.
1305         (set_debug_level, print_filtered_help, print_specific_help,
1306         fast_math_flags_set_p): Take gcc_options parameters and use them
1307         in place of global variables.
1308         (print_filtered_help): Make new_help non-static.
1309         (print_specific_help): Update call to print_filtered_help.
1310         (common_handle_option): Update calls to print_specific_help.  Use
1311         gcc_options structure for more settings.  Make --help table
1312         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1313         set_debug_level.
1314         * toplev.c (profile_data_prefix): Remove.
1315         * toplev.h (profile_data_prefix, exit_after_options): Remove
1316         declarations.
1317         (fast_math_flags_set_p): Update prototype.
1318         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1319         Update call to fast_math_flags_set_p.
1320
1321 2010-11-22  Richard Henderson  <rth@redhat.com>
1322
1323         PR target/46434
1324         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1325         return the address register extracted.
1326         (crx_decompose_address): Update the extracted address register.
1327
1328 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1329
1330         PR driver/43335
1331         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1332
1333 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1334
1335         PR target/46608
1336         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1337         * config/picochip/picochip-protos.h: Don't include "target.h" .
1338         (picochip_secondary_reload): Don't declare.
1339
1340         PR target/46613
1341         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1342         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1343         static.
1344
1345 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1346
1347         PR bootstrap/46609
1348         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1349         (source_dot_c_frul): Likewise.
1350
1351 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1352
1353         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1354
1355 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1356
1357         PR bootstrap/44970
1358         * Makefile.in (fwprop.o) Add sparseset.h.
1359         * fwprop.c: Include sparseset.h
1360         (struct find_occurrence_data, find_occurrence_callback,
1361         find_occurrence): Remove.
1362         (active_defs, active_defs_check, register_active_defs,
1363         update_df_init, update_uses): New.
1364         (update_df): Rewrite.
1365         (try_fwprop_subst, forward_propagate_asm): Add calls to
1366         update_df_init and update_df.
1367         (fwprop_init): Allocate active_defs and active_defs_check.
1368         (fwprop_done): Free them.
1369         (fwprop, fwprop_addr): Adjust comments.
1370         * df.h (df_uses_create): Declare.
1371         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1372         (df_ref_create): Return result of df_ref_create_structure directly.
1373         (df_ref_create_structure): Call df_install_ref_incremental when
1374         no collection_rec is passed.
1375         (df_ref_record): Do not create multiword hard reg info when no
1376         collection_rec is passed.
1377         (df_uses_create): New.
1378
1379 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1380
1381         PR middle-end/43057
1382         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1383         setting location.
1384
1385 2010-11-22  Richard Guenther  <rguenther@suse.de>
1386
1387         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1388         MEM_REFs, preserve volatileness.
1389         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1390         addresses.
1391
1392 2010-11-22  Richard Guenther  <rguenther@suse.de>
1393
1394         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1395
1396 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1397
1398         PR rtl-optimization/45652
1399         * alias.c (get_reg_base_value): New.
1400         * rtl.h (get_reg_base_value): Add prototype.
1401         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1402         non-null REG_BASE_VALUE for renaming.
1403
1404 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1405             Basile Starynkevitch  <basile@starynkevitch.net>
1406
1407         * gengtype.c: Include xregex.h and obstack.h
1408         Added comments about role of get_output_file_with_visibility and
1409         our regexpr machinery.
1410         (frul_actionrout_t, struct file_rule_st): New.
1411         (hader_dot_h_frul, source_dot_c_frul): New functions.
1412         (NULL_REGEX,  NULL_FRULACT): New.
1413         (files_rules): New.
1414         (matching_file_name_substitute): New function.
1415         (get_output_file_with_visibility): Updated comments and rewritten
1416         to use the new files_rules machinery.
1417
1418         * Makefile.in (XREGEX_H): Added variable.
1419         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1420
1421 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1422
1423         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1424
1425 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1426
1427         * target.def (conditional_register_usage): Define.
1428         * reginfo.c (init_reg_sets_1): Call
1429         targetm.conditional_register_usage.
1430         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1431         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1432         for making it a hook.
1433         * doc/tm.texi: Regenerate.
1434         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1435         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1436         New function.
1437         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1438         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1439         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1440         New function.
1441         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1442         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1443         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1444         New function.
1445         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1446         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1447         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1448         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1449         (bfin_conditional_register_usage): ...here.  New function.
1450         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1451         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1452         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1453         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1454         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1455         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1456         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1457         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1458         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1459         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1460         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1461         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1462         New function.
1463         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1464         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1465         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1466         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1467         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1468         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1469         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1470         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1471         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1472         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1473         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1474         New function.
1475         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1476         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1477         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1478         Delete.
1479         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1480         static.
1481         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1482         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1483         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1484         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1485         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1486         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1487         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1488         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1489         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1490         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1491         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1492         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1493         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1494         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1495         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1496         ...here.  New function.
1497         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1498         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1499         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1500         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1501         New function.
1502         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1503         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1504         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1505         New function.
1506         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1507         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1508         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1509         Delete.
1510         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1511         static.
1512         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1513         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1514         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1515         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1516         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1517         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1518         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1519         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1520         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1521         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1522         * config/score/score.c (score_conditional_register_usage): ...here.
1523         New function.
1524         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1525         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1526         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1527         New function.
1528         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1529         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1530         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1531         New function.
1532         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1533         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1534         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1535         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1536         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1537         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1538         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1539         New function.
1540         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1541
1542 2010-11-21  Jan Hubicka  <jh@suse.cz>
1543             Dominique d'Humieres <dominiq@lps.ens.ft>
1544
1545         PR target/46510
1546         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1547         finalize external decls.
1548
1549 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1550
1551         * system.h (strerror): Poison.
1552
1553 2010-11-21  Richard Henderson  <rth@redhat.com>
1554
1555         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1556         for infq/huge_valq.
1557
1558 2010-11-21  Richard Henderson  <rth@redhat.com>
1559
1560         PR rtl-optimization/46571
1561         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1562         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1563
1564 2010-11-21  Paul Koning  <ni1d@arrl.net>
1565
1566         * config/mips/pdp11.md (negsi2): Fix wrong code.
1567
1568 2010-11-21  Paul Koning  <ni1d@arrl.net>
1569
1570         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1571         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1572
1573 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1574
1575         * config/mips/mips.c (machine_function): Rename load_label_length to
1576         load_label_num_insns.
1577         (mips_load_label_length): Rename to...
1578         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1579         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1580
1581 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1582
1583         PR target/46533
1584         * config/alpha/predicates.md (direct_call_operand): Return false
1585         for !TARGET_SMALL_TEXT targets.
1586
1587 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1588
1589         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1590         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1591         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1592         * doc/tm.texi: Regenerate.
1593         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1594         HANDLE_PRAGMA_WEAK): Poison.
1595         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1596         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1597         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1598         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1599         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1600         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1601         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1602         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1603         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1604         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1605         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1606         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1607         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1608         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1609         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1610         (HANDLE_PRAGMA_WEAK): Don't undefine.
1611         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1612         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1613         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1614         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1615         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1616         (HANDLE_PRAGMA_WEAK): Don't undefine.
1617         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1618         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1619         (HANDLE_PRAGMA_PACK): Don't undefine.
1620         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1621         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1622         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1623         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1624         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1625         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1626         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1627         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1628         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1629         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1630         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1631         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1632         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1633         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1634         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1635         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1636         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1637
1638 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1639
1640         PR target/31100
1641         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1642         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1643         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1644
1645 2010-11-20  Jan Hubicka  <jh@suse.cz>
1646
1647         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1648         (dump_cgraph_node): Dump resolution.
1649         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1650         (cgraph_comdat_can_be_unshared_p): Dclare.
1651         * lto-streamer-out.c (produce_symtab): Use
1652         cgraph_comdat_can_be_unshared_p.
1653         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1654         (cgraph_comdat_can_be_unshared_p): New function based on logic
1655         in cgraph_externally_visible_p.
1656         (cgraph_externally_visible_p): Use it.
1657         (varpool_externally_visible_p): Virtual tables can be unshared.
1658         * varpool.c (dump_varpool_node): Dump resolution.
1659
1660 2010-11-20  Jan Hubicka  <jh@suse.cz>
1661
1662         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1663
1664 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1665
1666         PR other/46202
1667         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1668         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1669         shell quoting.
1670         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1671         (install-strip): New target.
1672         (STRIPPROG): New variable, exported if STRIP is set.
1673         * doc/install.texi (Final install): Minor markup and code style
1674         fixes.  Document install-strip target.
1675
1676 2010-11-20  Paul Koning  <ni1d@arrl.net>
1677
1678         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1679         pdp11_regno_reg_class): New functions.
1680         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1681         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1682         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1683         functions.
1684         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1685         frame pointer and argument pointer pseudo-registers.
1686         (ARG_POINTER_REGNUM): Define.
1687         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1688         argument pointer.
1689         (FIRST_PARM_OFFSET): Update for argument pointer.
1690         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1691         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1692         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1693         frame pointer and argument pointer.
1694
1695 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1696
1697         PR debug/46561
1698         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1699         when looking for immediate uses.
1700
1701         PR tree-optimization/45830
1702         * stmt.c (expand_switch_using_bit_tests_p): New function.
1703         (expand_case): Use it.
1704         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1705         * tree-switch-conversion.c (struct switch_conv_info): Add
1706         bit_test_uniq, bit_test_count and bit_test_bb fields.
1707         (check_range): Fix a comment.
1708         (check_process_case): Compute bit_test_uniq and bit_test_count.
1709         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1710         allocation.
1711         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1712         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1713         (array_value_type): New function.
1714         (build_one_array): Use it, if it returned different type,
1715         fold_convert all constructor fields and convert back to the
1716         wider type in the generated code.
1717         (process_switch): Initialize bit_test_uniq, bit_test_count and
1718         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1719         returned true.
1720
1721 2010-11-19  Michael Matz  <matz@suse.de>
1722
1723         PR tree-optimization/46077
1724         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1725
1726 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1727
1728         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1729         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1730         function.
1731         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1732
1733 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1734
1735         * mode-switching.c (optimize_mode_switching): Use
1736         FOR_BB_INSNS instead of open-coded loop.
1737         * cfgrtl.c (redirect_branch_edge): Ditto.
1738
1739 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1740
1741         PR target/46436
1742         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1743         to accomodate 32 bit HOST_WIDE_INT.
1744         (m68hc11_emit_logical): Remove unused variable insn.
1745         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1746         this_insn_uses_iy before use.
1747
1748         PR target/46434
1749         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1750
1751 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1752
1753         PR c/46547
1754         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1755         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1756
1757 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1758
1759         * doc/extend.texi (Function attributes): Document PowerPC target
1760         attributes that are supported.
1761         (Pragmas): Document that PowerPC now supports target pragmas.
1762
1763         * doc/options.texi (TargetVariable): Document TargetVariable,
1764         HeaderInclude, and SourceInclude.
1765
1766         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1767         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1768         -ffp-contract=off.
1769
1770         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1771         SourceInclude directives.  Fix a cut+paste error with target save
1772         enum variables.  Sort enums in the structures after ints and
1773         before shorts.
1774         * opth-gen.awk: Ditto.
1775
1776         * configure.ac: Add support for HeaderInclude and SourceInclude option
1777         directives to add the appropriate files to the dependency lists.
1778         * configure: Regenerate.
1779         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1780         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1781         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1782         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1783         (gcc-options.o): Ditto.
1784         * opt-include.awk: New awk script to handle HeaderInclude and
1785         TargetInclude.
1786
1787         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1788         gets saved in the target options.
1789         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1790         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1791         (-mprototype): Ditto.
1792         (-mbit-word): ditto.
1793         (-mregnames): Ditto.
1794         (-msecure-plt): Ditto.
1795         (-mbss-plt): Ditto.
1796         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1797         (-mpowerpc-gfxopt): Ditto.
1798         (-mmfcrf): Ditto.
1799         (-mpopcntb): Ditto.
1800         (-mfprnd): Ditto.
1801         (-mcmpb): Ditto.
1802         (-mmmfpgpr): Ditto.
1803         (-maltivec): Ditto.
1804         (-mhard-dfp): Ditto.
1805         (-mmulhw): Ditto.
1806         (-mdlmzb): Ditto.
1807         (-mmultiple): Ditto.
1808         (-mstring): Ditto.
1809         (-mpopcntd): Ditto.
1810         (-mfriz): Ditto.
1811         (-mvsx): Ditto.
1812         (-mno-update): Ditto.
1813         (-mavoid-indexed-addresses): Ditto.
1814         (-mtls-markers): Ditto.
1815         (-msched-epilog): Ditto.
1816         (-msched-prolog): Ditto.
1817         (-maix-struct-return): Ditto.
1818         (-msvr4-struct-return): Ditto.
1819         (-mxl-compat): Ditto.
1820         (-mrecip-precision): Ditto.
1821         (-mfp-in-toc): Ditto.
1822         (-msum-in-toc): Ditto.
1823         (-mvrsave): Ditto.
1824         (-mblock-move-inline-limit=): Ditto.
1825         (-misel): Ditto.
1826         (-mpaired): Ditto.
1827         (-mlongcall): Ditto.
1828         (-mgen-cell-microcode): Ditto.
1829         (-mwarn-cell-microcode): Ditto.
1830         (-mwarn-altivec-long): Ditto.
1831         (-mprioritize-restricted-insns=): Ditto.
1832         (-msingle-float): Ditto.
1833         (-mdouble-float): Ditto.
1834         (-msimple-fpu): Ditto.
1835         (-mxilinx-fpu): Ditto.
1836         * config/rs6000/aix64.opt (-mpe): Ditto.
1837
1838         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1839         (rs6000_cpu): Move variable to be a target variable.  Rename
1840         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1841         -mdebug=<xxx> variables into a single int.
1842         (rs6000_always_hint): Ditto.
1843         (rs6000_sched_groups): Ditto.
1844         (rs6000_align_branch_targets): Ditto.
1845         (rs6000_sched_costly_dep): Ditto.
1846         (rs6000_sched_insert_nops): Ditto.
1847         (rs6000_long_double_type_size): Ditto.
1848         (rs6000_ieeequad): Ditto.
1849         (rs6000_altivec_abi): Ditto.
1850         (rs6000_spe): Ditto.
1851         (rs6000_spe_abi): Ditto.
1852         (rs6000_float_gprs): Ditto.
1853         (rs6000_darwin64_abi): Ditto.
1854         (can_override_loop_align): Ditto.
1855         (rs6000_sdata): Ditto.
1856         (rs6000_tls_size): Ditto.
1857         (rs6000_current_abi): Ditto.
1858         (rs6000_traceback): Ditto.
1859         (rs6000_alignment_flags): Ditto.
1860         (rs6000_current_cmodel): Ditto.
1861         (rs6000_recip_control): Ditto.
1862         (rs6000_cpu_index): Ditto.
1863         (rs6000_tune_index): Ditto.
1864         (rs6000_debug): Ditto.
1865         (rs6000_target_flags_explict): Ditto.
1866
1867         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
1868         declaration.
1869
1870         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
1871         cmodel.  Change all uses.
1872
1873         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
1874         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
1875         Rename cmodel to rs6000_current_cmodel.
1876         (rs6000_sched_groups): Ditto.
1877         (rs6000_align_branch_targets): Ditto.
1878         (rs6000_sched_costly_dep): Ditto.
1879         (rs6000_sched_insert_nops): Ditto.
1880         (rs6000_long_double_type_size): Ditto.
1881         (rs6000_ieeequad): Ditto.
1882         (rs6000_altivec_abi): Ditto.
1883         (rs6000_spe): Ditto.
1884         (rs6000_spe_abi): Ditto.
1885         (rs6000_float_gprs): Ditto.
1886         (rs6000_darwin64_abi): Ditto.
1887         (can_override_loop_align): Ditto.
1888         (rs6000_sdata): Ditto.
1889         (rs6000_tls_size): Ditto.
1890         (rs6000_current_abi): Ditto.
1891         (rs6000_traceback): Ditto.
1892         (rs6000_alignment_flags): Ditto.
1893         (rs6000_current_cmodel): Ditto.
1894         (rs6000_recip_control): Ditto.
1895         (rs6000_cpu_index): Ditto.
1896         (rs6000_tune_index): Ditto.
1897         (rs6000_debug): Ditto.
1898         (rs6000_target_flags_explict): Ditto.
1899         (rs6000_sched_insert_nops_str): Make static.
1900         (rs6000_sched_costly_dep_str): Ditto.
1901         (rs6000_recip_name): Ditto.
1902         (rs6000_abi_name): Ditto.
1903         (rs6000_sdata_name): Ditto.
1904         (enum rs6000_traceback_name): Move to rs6000-opts.h.
1905         (rs6000_parse_tls_size_option): Delete.
1906         (rs6000_valid_attribute_p): New function for target attributes and
1907         pragmas.
1908         (rs6000_function_specific_save): Ditto.
1909         (rs6000_function_specific_restore): Ditto.
1910         (rs6000_function_specific_print): Ditto.
1911         (rs6000_can_inline_p): Ditto.
1912         (rs6000_set_current_function): Ditto.
1913         (rs6000_inner_target_options): Ditto.
1914         (rs6000_debug_target_options): Ditto.
1915         (rs6000_pragma_target_parse): Ditto.
1916         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
1917         attributes and pragmas.
1918         (TARGET_OPTION_SAVE): Ditto.
1919         (TARGET_OPTION_RESTORE): Ditto.
1920         (TARGET_OPTION_PRINT): Ditto.
1921         (TARGET_CAN_INLINE_P): Ditto.
1922         (TARGET_SET_CURRENT_FUNCTION): Ditto.
1923         (POWER_MASKS): Move to file level scope from the
1924         rs6000_option_override_internal function.
1925         (POWERPC_MASKS): Ditto.
1926         (ISA_*_MASKS): Ditto.
1927         (struct rs6000_ptt): Ditto.
1928         (processor_target_table): Ditto.
1929         (rs6000_cpu_name_lookup): Map cpu name to an index in
1930         processor_target_table.
1931         (rs6000_debug_reg_global): Print more information on processor
1932         options for -mdebug=reg.
1933         (rs6000_init_hard_regno_mode_ok): Add support for target
1934         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
1935         Allow -mdebug=val1,val2.  Rename cmodel variable.
1936         (rs6000_option_override_internal): Ditto.
1937         (rs6000_option_override): Ditto.
1938         (rs6000_handle_option): Ditto.
1939         (rs6000_conditional_register_usage): Add debug trace message.
1940         (struct rs6000_opt_mask): New for target attribute/pragma support.
1941         (rs6000_opt_masks): Ditto.
1942         (struct rs6000_opt_var): Ditto.
1943         (rs6000_opt_vars): Ditto.
1944         (rs6000_previous_function): Ditto.
1945
1946         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
1947         wasn't already included.
1948         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
1949         (enum processor_type): Ditto.
1950         (rs6000_cpu): Ditto.
1951         (enum fpu_type_t): Ditto.
1952         (fpu_type): Ditto.
1953         (enum rs6000_dependence_cost): Ditto.
1954         (enum rs6000_nop_insertion): Ditto.
1955         (enum group_termination): Ditto.
1956         (rs6000_long_double_type_size): Ditto.
1957         (rs6000_ieeequad): Ditto.
1958         (rs6000_altivec_abi): Ditto.
1959         (rs6000_spe_abi): Ditto.
1960         (rs6000_spe): Ditto.
1961         (rs6000_float_gprs): Ditto.
1962         (rs6000_alignment_flags): Ditto.
1963         (rs6000_sched_insert_nops): Ditto.
1964         (enum rs6000_vector): Ditto.
1965         (enum rs6000_abi): Ditto.
1966         (rs6000_current_opt): Ditto.
1967         (rs6000_debug_*): Delete.
1968         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
1969         (TARGET_DEBUG*): Ditto.
1970
1971         * config/rs6000/rs6000-opts.h: New header file to define the enums
1972         that are used in target variables that are now defined in rs6000.opt.
1973
1974         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
1975         rs6000-opts.h.
1976         (rs6000_sdata): Ditto.
1977         (rs6000_abi_name): Delete.
1978         (rs6000_sdata_name): Ditto.
1979         (rs6000_tls_size_string): Ditto.
1980
1981 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1982
1983         * common.opt (debug_struct_ordinary, debug_struct_generic): New
1984         Variable entries.
1985         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
1986         should_emit_struct_debug): Move from opts.c.
1987         * flag-types.h (enum debug_struct_file): Move from opts.c.
1988         * flags.h (should_emit_struct_debug): Remove.
1989         (base_of_path): Declare.
1990         (set_struct_debug_option): Add gcc_options parameter.
1991         * optc-gen.awk, opth-gen.awk: Handle array variables.
1992         * opts.c (enum debug_struct_file, debug_struct_ordinary,
1993         debug_struct_generic): Remove.
1994         (set_struct_debug_option): Add gcc_options parameter.
1995         (base_of_path): Remove static.
1996         (main_input_basename, main_input_baselength, matches_main_base,
1997         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
1998         Remove.
1999         * toplev.c (main_input_basename, main_input_baselength): Define
2000         here.
2001         * toplev.h (main_input_basename, main_input_baselength): Declare
2002         here.
2003
2004 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2005
2006         * common.opt (flag_instrument_functions_exclude_functions,
2007         flag_instrument_functions_exclude_files): New Variable definitions.
2008         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2009         * gimplify.c (char_p): Declare type and vectors.
2010         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2011         * opts.c (flag_instrument_functions_exclude_functions,
2012         flag_instrument_functions_exclude_files): Remove.
2013         (add_comma_separated_to_vector): Take void **.
2014         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2015         (common_handle_option): Use options structure for
2016         -finstrument-functions-exclude- options.
2017
2018 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2019
2020         * doc/options.texi (Var): Document effects of Defer.
2021         (Defer): Document.
2022         * opt-functions.awk (var_type, var_set): Handle deferred options.
2023         * opts-common.c (set_option): Handle CLVC_DEFER.
2024         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2025         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2026         fstack-limit-symbol=): Mark as deferred.
2027         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2028         plugin.h.
2029         (print_filtered_help): Don't report state of CLVC_DEFER options.
2030         (common_handle_option): Move code for OPT_fcall_used_,
2031         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2032         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2033         OPT_fstack_limit_symbol_ to opts-global.c.
2034         (option_enabled, get_option_state): Handle CLVC_DEFER.
2035         * opts.h: Include vec.h.
2036         (enum cl_var_type): Add CLVC_DEFER.
2037         (cl_deferred_option): Define type and vectors.
2038         (handle_common_deferred_options): Declare.
2039         * opts-global.c: New.
2040         * toplev.c (toplev_main): Call handle_common_deferred_options
2041         * Makefile.in (OPTS_H): Include $(VEC_H).
2042         (OBJS-common): Include opts-global.o.
2043         (opts.o): Update dependencies.
2044         (opts-global.o): Add dependencies.
2045
2046 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2047
2048         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2049         to objc_declare_protocols.
2050
2051 2010-11-19  Richard Guenther  <rguenther@suse.de>
2052
2053         PR lto/45789
2054         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2055         IDENTIFIERs do not stream TREE_TYPE.
2056         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2057
2058 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2059
2060         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2061
2062 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2063
2064         PR target/45870
2065         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2066         non-delegitimized TLS UNSPECs.
2067
2068 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2069             Ian Lance Taylor  <iant@google.com>
2070
2071         * config/darwin-c.c (darwin_additional_format_types): Export.
2072
2073 2010-11-18  Paul Koning  <ni1d@arrl.net>
2074
2075         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2076         pointer.
2077
2078 2010-11-18  Paul Koning  <ni1d@arrl.net>
2079
2080         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2081         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2082         * config/pdp11/pdp11.opt (-mabshi): Delete.
2083
2084 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2085
2086         * resource.h (struct resources): Fix typo in the comment.
2087
2088 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2089
2090         PR target/46546
2091         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2092
2093 2010-11-18  Richard Henderson  <rth@redhat.com>
2094
2095         PR middle-end/46515
2096         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2097         maybe_copy_epilogue_insn; handle prologue insns as well.
2098         * rtl.h, cfglayout.c: Update for rename.
2099         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2100         RTX_FRAME_RELATED_P insns.
2101
2102 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2103
2104         PR middle-end/46534
2105         * builtins.c (fold_builtin_printf): Don't copy and modify string
2106         before build_string_literal, instead modify what
2107         build_string_literal returned.
2108
2109 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2110
2111         PR c/33193
2112         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2113         REALPART_EXPR and IMAGPART_EXPR.
2114
2115 2010-11-18  Richard Guenther  <rguenther@suse.de>
2116
2117         PR tree-optimization/46172
2118         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2119         function.
2120         (slpeel_tree_peel_loop_to_edge): Call it.
2121
2122 2010-11-18  Jeff Law  <law@redhat.com>
2123
2124         PR middle-end-optimization/46297
2125         * postreload.c (reload_combine_note_store): Deal with embedded
2126         side effects in MEM expressions.
2127
2128 2010-11-18  Richard Guenther  <rguenther@suse.de>
2129
2130         PR lto/45089
2131         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2132         when checking is not enabled.
2133
2134 2010-11-18  Richard Guenther  <rguenther@suse.de>
2135
2136         PR lto/46525
2137         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2138         type leaders.
2139         (gimple_register_canonical_type): Also cache the canoncial type
2140         for non type leaders.
2141
2142 2010-11-18  Richard Guenther  <rguenther@suse.de>
2143
2144         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2145
2146 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2147
2148         PR middle-end/46518
2149         * sel-sched-ir.c (init_expr): Use the correct type for
2150         target_available.
2151         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2152
2153 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2154
2155         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2156         as well as -mrelocatable at the same time.
2157
2158 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2159
2160         PR target/46422
2161         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2162         Call the clz builtin.
2163
2164 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2165             Steve Ellcey  <sje@cup.hp.com>
2166
2167         PR middle-end/31490
2168         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2169         if section attribute used.
2170
2171 2010-11-17  Jan Hubicka  <jh@suse.cz>
2172
2173         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2174         expand errno setting variant when optimizing for size.
2175
2176 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2177
2178         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2179         Reverse backward loop.  Fix formatting issues.
2180
2181 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2182
2183         * c-parser.c (c_token_is_qualifier,
2184         c_parser_next_token_is_qualifier): New.
2185         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2186         Improve error message on specs->tagdef_seen_p.
2187         (c_parser_struct_or_union_specifier): Improve error recovery.
2188         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2189         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2190         using c_parser_next_token_is_qualifier; extend it to cover
2191         a ctsk_tagdef typespec and !typespec_ok in general.
2192
2193 2010-11-17  Richard Guenther  <rguenther@suse.de>
2194
2195         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2196         (gimple_mod_pow2_value_transform): Likewise.
2197         (gimple_mod_subtract_transform): Likewise.
2198
2199 2010-11-17  Richard Guenther  <rguenther@suse.de>
2200
2201         PR lto/46504
2202         * gimple.c (gimple_register_canonical_type): Make sure to only
2203         make type leaders canonical types.
2204
2205 2010-11-17  Michael Matz  <matz@suse.de>
2206
2207         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2208         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2209         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2210         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2211         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2212         (pass_build_ssa): ... but here.
2213         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2214         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2215         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2216         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2217         * predict.c (rebuild_frequencies): Ditto.
2218         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2219         * emit-rtl.c (verify_rtl_sharing): Ditto.
2220         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2221         * tree-ssa-live.c (remove_unused_locals): Ditto.
2222         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2223         * tree-ssa.c (pass_early_warn_uninitialized,
2224         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2225         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2226         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2227         * passes.c (pass_postreload, execute_todo): Ditto.
2228         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2229
2230 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2231
2232         * doc/invoke.texi (-dy): Remove.
2233         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2234         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2235         * langhooks.c (lhd_do_nothing_i): Remove.
2236         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2237         * toplev.c (set_yydebug): Remove.
2238         (compile_file): Update call to lang_hooks.parse_file.
2239         (decode_d_option): Don't handle -dy.
2240
2241 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2242
2243         PR rtl-optimization/46440
2244         * combine.c (update_cfg_for_uncondjump): When changing
2245         an indirect jump into unconditional jump, remove BARRIERs
2246         from bb's footer.
2247
2248 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2249
2250         * opts.c (target_handle_option): Do not assert that loc ==
2251         UNKNOWN_LOCATION.
2252
2253 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2254             Richard Guenther  <rguenther@suse.de>
2255
2256         PR middle-end/45838
2257         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2258         call_may_clobber_ref_p_1): Return true for __sync_* and some
2259         OpenMP builtins that act as threading barriers.
2260
2261 2010-11-17  Richard Guenther  <rguenther@suse.de>
2262
2263         PR tree-optimization/46498
2264         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2265
2266 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2267
2268         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2269         (xtensa_function_arg_boundary): ...this.
2270         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2271         thinko in declaration.
2272         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2273         number of parameters to picochip_function_arg_boundary.
2274         (picochip_arg_advance): Likewise.
2275
2276 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2277
2278         PR target/46512
2279         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2280         under check for type.
2281
2282 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2283
2284         * ifcvt.c (dead_or_predicable): Fix typo.
2285
2286 2010-11-16  Richard Henderson  <rth@redhat.com>
2287
2288         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2289         * config/s390/s390.opt (mfused-madd): Remove.
2290         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2291         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2292         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2293         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2294
2295 2010-11-16  Richard Henderson  <rth@redhat.com>
2296
2297         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2298         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2299         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2300         (*altivec_vmaddfp_1): Remove.
2301         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2302         (altivec_mulv4sf3): Expand to FMA directly.
2303         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2304         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2305         * config/rs6000/paired.md (paired_madds0): Use FMA.
2306         (paired_madds1): Likewise.
2307         (*paired_madd): Rename from paired_madd; use FMA.
2308         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2309         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2310         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2311         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2312         (rs6000_emit_madd): Use fma_optab.
2313         (rs6000_emit_msub): Use fms_optab.
2314         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2315         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2316         (*fmasf4_fpr): Rename from fmasf4_fpr.
2317         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2318         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2319         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2320         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2321         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2322         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2323         (*fmadf4_fpr): Rename from fmadf4_fpr.
2324         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2325         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2326         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2327         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2328         (fmasf4, fmadf4): Macroize into...
2329         (fma<FMA_F>4): ... here.
2330         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2331         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2332         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2333         TARGET_FUSED_MADD.
2334         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2335         (*vsx_fmadd<mode>4_1): Remove.
2336         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2337         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2338         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2339         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2340         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2341         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2342         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2343
2344 2010-11-16  Richard Henderson  <rth@redhat.com>
2345
2346         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2347         (fmasf4, fnmadf4, fnmasf4): Likewise.
2348         (unnamed plus+mult insns and splitters): Delete.
2349
2350 2010-11-16  Richard Henderson  <rth@redhat.com>
2351
2352         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2353         (fnma<VSF>4): Rename from fnms_<VSF>.
2354         (fms<VSF>4): Rename from fms_<VSF>.
2355         (fma<VDF>4): Rename from fma_<VDF>.
2356         (fms<VDF>4): Rename from fms_<VDF>.
2357         (nfma<VDF>4): Rename from fnma_<VDF>.
2358         (nfms<VDF>4): Rename from fnms_<VDF>.
2359         (fnma<VDF>4, fnms<VDF>4): New expanders.
2360         (floatunsdisf2): Update for the renames.
2361         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2362         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2363
2364 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2365
2366         PR rtl-optimization/46490
2367         * combine.c (expand_compound_operation): Fix thinko.
2368
2369 2010-11-16  Richard Henderson  <rth@redhat.com>
2370
2371         PR target/46470
2372         * recog.c (peep2_attempt): Convert frame-related info when possible.
2373         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2374         (peephole2_optimize): Allow peep2_attempt to fail.
2375
2376 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2377
2378         PR rtl-optimization/46315
2379         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2380         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2381         extracted from...
2382         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2383         (remove_reg_equal_equiv_notes_for_defs): ...this.
2384         (delete_unmarked_insns): Adjust to above renaming.
2385         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2386         referring to registers set in the insns being moved, if any.
2387
2388         * df-core.c (df_ref_dump): New function extracted from...
2389         (df_refs_chain_dump): ...here.  Call it.
2390         (df_regs_chain_dump): Likewise.
2391         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2392         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2393
2394 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2395
2396         PR rtl-optimization/46395
2397         * postreload.c (reload_combine): Invalidate register use
2398         information on all control flow insns.
2399
2400         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2401         LABEL_REF in UNSPEC operand.
2402
2403 2010-11-16  Jan Hubicka  <jh@suse.cz>
2404
2405         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2406         when !flag_toplevel_reorder do not remove unless variable is
2407         COMDAT or ARTIFICIAL.
2408         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2409         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2410         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2411         * varpool.c (decide_is_variable_needed): Do not handle visibility
2412         issues.
2413         (varpool_finalize_decl): Likewise.
2414         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2415         update outdated comment on DECL_RTL_SET_P check.
2416
2417 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2418
2419         * config/sol2.h (NM_FLAGS): Define.
2420         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2421         * doc/tm.texi: Update.
2422
2423 2010-11-16  Nick Clifton  <nickc@redhat.com>
2424
2425         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2426         (msubsf4): Rename to fmssf4, and use fma.
2427         (nmaddsf4): Rename to fnmasf4 and use fma.
2428         (nmsubsf4): Rename to fnmssf4 and use fma.
2429
2430 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2431
2432         PR target/44762
2433         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2434         (score3_in_small_data_p, score3_function_value): Likewise.
2435         (score3_trampoline_init): Use LCT_NORMAL.
2436         (score3_print_operand): Initialize code as UNKNOWN.
2437         * config/score/predicates.md (score_load_multiple_operation):
2438         Remove unused variable.
2439         (score_store_multiple_operation): Likewise.
2440         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2441         (score7_in_small_data_p, score7_function_value): Likewise.
2442         (score7_trampoline_init): Use LCT_NORMAL.
2443         (score7_print_operand): Initialize code as UNKNOWN.
2444         * config/score/score3.h (score3_return_in_memory): Update prototype.
2445         (score3_in_small_data_p, score3_function_value): Likewise.
2446         * config/score/score-protos.h (score_function_value): Likewise.
2447         * config/score/score7.h (score7_return_in_memory): Update prototype.
2448         (score7_in_small_data_p, score7_function_value): Likewise.
2449         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2450         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2451         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2452         (score_function_epilogue, score_in_small_data_p): Likewise.
2453         (score_option_override, score_asm_trampoline_template): Likewise.
2454         (score_trampoline_init, score_print_operand): Likewise.
2455         (score_print_operand_address, score_prologue): Likewise.
2456         (score_epilogue, score_call, score_call_value): Likewise.
2457         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2458         (score_function_arg_advance): Likewise. Make static.
2459         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2460         (score_function_arg, score_legitimate_address_p): Make static.
2461         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2462         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2463         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2464         Allow (W) == HOST_BITS_PER_WIDE_INT.
2465
2466         PR java/46386
2467         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2468         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2469
2470 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2471
2472         * config/arc/arc.c: Delete pasto.
2473         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2474
2475 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2476
2477         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2478         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2479         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2480         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2481         (mn10300_preferred_reload_class,
2482         mn10300_preferred_output_reload_class): New functions.
2483
2484 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2485
2486         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2487         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2488         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2489         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2490
2491 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2492
2493         * builtins.c (std_gimplify_va_arg_expr): Use
2494         targetm.calls.function_arg_boundary.
2495         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2496         * calls.c (struct arg_data): Update comment.
2497         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2498         * target.def (function_arg_boundary): Define.
2499         * targhooks.h (default_function_arg_boundary): Declare.
2500         * targhooks.c (default_function_arg_boundary): Define.
2501         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2502         TARGET_FUNCTION_ARG_BOUNDARY.
2503         (FUNCTION_ARG_BOUNDARY): Delete.
2504         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2505         * doc/tm.texi: Regenerate.
2506         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2507         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2508         * config/arc/arc.c (arc_function_arg_boundary): Define.
2509         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2510         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2511         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2512         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2513         (arm_function_arg_boundary): Define.
2514         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2515         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2516         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2517         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2518         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2519         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2520         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2521         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2522         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2523         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2524         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2525         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2526         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2527         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2528         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2529         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2530         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2531         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2532         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2533         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2534         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2535         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2536         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2537         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2538         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2539         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2540         * config/pa/pa.c (pa_function_arg_boundary): Define.
2541         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2542         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2543         * config/picochip/picochip-protos.h
2544         (picochip_get_function_arg_boundary): Delete.
2545         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2546         Rename to...
2547         (picochip_function_arg_boundary): ...this.  Make static.
2548         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2549         (picochip_arg_advance): Adjust.
2550         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2551         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2552         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2553         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2554         (rs6000_function_arg_boundary): ...this.  Make static.
2555         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2556         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2557         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2558         * config/rx/rx.c (rx_function_arg_boundary): Define.
2559         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2560         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2561         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2562         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2563         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2564         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2565         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2566         (xtensa_function_arg_boundary): ...this.  Make static.
2567         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2568
2569 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2570
2571         * expr.c (alignment_for_piecewise_move): New function.
2572         (widest_int_mode_for_size): New function.
2573         (move_by_pieces, move_by_pieces_ninsns): Call them.
2574         (can_store_by_pieces, store_by_pieces_1): Likewise.
2575
2576 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2577
2578         * gcc.c (char_p): Define.  Define a VEC of it.
2579         (n_linker_options, n_assembler_options, n_preprocessor_options):
2580         Delete.
2581         (linker_options, assembler_options, preprocessor_options): Convert
2582         to a VEC.
2583         (add_preprocessor_option): Adjust.
2584         (add_assembler_option): Adjust.
2585         (add_linker_option): Adjust.
2586         (do_specs_vec): New function.
2587         (do_spec_1): Call it.  Adjust for new types.
2588
2589 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2590
2591         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2592         (sreal.o, statistics.o, stringpool.o): Likewise.
2593
2594 2010-11-16  Richard Guenther  <rguenther@suse.de>
2595
2596         PR tree-optimization/44545
2597         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2598         statements are not reassociatable.
2599         (reassociate_bb): Likewise.
2600
2601 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2602
2603         * bitmap.c: Delete unnecessary includes.
2604         * ebitmap.c: Likewise.
2605         * et-forest.c: Likewise.
2606         * sreal.c: Likewise.
2607         * statistics.c: Likewise.
2608         * stringpool.c: Likewise.
2609         * double-int.c: Add comment for inclusion of tm.h.
2610
2611 2010-11-16  Richard Guenther  <rguenther@suse.de>
2612
2613         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2614         (visit_nary_op): ... this.
2615         (visit_binary_op): Remove.
2616         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2617
2618 2010-11-16  Richard Guenther  <rguenther@suse.de>
2619
2620         PR middle-end/45172
2621         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2622
2623 2010-11-16  Nick Clifton  <nickc@redhat.com>
2624
2625         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2626         record is packed.
2627
2628 2010-11-15  Richard Henderson  <rth@redhat.com>
2629
2630         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2631         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2632         DOT_PROD_EXPR.
2633
2634 2010-11-15  Richard Henderson  <rth@redhat.com>
2635
2636         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2637         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2638         fma rtx_code.
2639
2640 2010-11-15  Richard Henderson  <rth@redhat.com>
2641
2642         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2643         and *mulsubsf4 respectively.  Use fma rtx_code.
2644
2645 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2646
2647         * gcc.c: Include "vec.h".
2648         (argbuf): Make into a VEC.
2649         (argbuf_length, argbuf_index): Remove.
2650         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2651         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2652         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2653         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2654         (gcc.o): Depend on $(VEC_H).
2655
2656 2010-11-15  Richard Henderson  <rth@redhat.com>
2657
2658         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2659         via FMA if unsafe math.
2660         (insert_var_expansion_initialization): Handle FMA.
2661         (combine_var_copies_in_loop_exit): Likewise.
2662
2663 2010-11-15  Richard Henderson  <rth@redhat.com>
2664
2665         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2666         * config/ia64/ia64.opt: Remove mfused-madd.
2667         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2668         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2669         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2670         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2671         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2672         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2673         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2674         (fmav2sf4): Rename from fpma; use FMA code.
2675         (fmsv2sf4): Rename from fpms; use FMA code.
2676         (fnmav2sf4): Rename from *fpnma; use FMA code.
2677         * config/ia64/ia64.md (MODE_SDF): New iterator.
2678         (suffix): New mode attribute.
2679         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2680         (fmssf4): Rename from *fmssf4.
2681         (fnmasf4): Rename from *nfmasf4.
2682         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2683         (*nmadddf4, *nmadddf4_truncsf): Remove.
2684         (fmsdf4): Rename from *fmsdf4.
2685         (fnmadf4): Rename from *nfmadf4.
2686         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2687         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2688         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2689         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2690         (fmsxf4): Rename from *fmsxf4.
2691         (fnmaxf4): Rename from *nfmaxf4.
2692         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2693         (*fnmaxf_trunc_<MODE_SDF>): New.
2694
2695 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2696
2697         PR tree-optimization/46461
2698         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2699         a gimple val.
2700
2701 2010-11-15  Ian Lance Taylor  <iant@google.com>
2702
2703         * godump.c: New file.
2704         * common.opt (fdump-go-spec=): New option.
2705         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2706         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2707         (TYPE_SYMTAB_IS_DIE): Define.
2708         (struct tree_type): Change GTY for symtab field to use
2709         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2710         to pick the union field.
2711         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2712         (dump_go_spec_init): Declare.
2713         * toplev.c (process_options): Handle flag_dump_go_spec.
2714         * debug.c: Include "tree.h".
2715         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2716         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2717         * dbxout.c (dbx_debug_hooks): Likewise.
2718         (xcoff_debug_hooks): Likewise.
2719         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2720         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2721         SDB_DEBUGGING_INFO is not defined.
2722         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2723         (Overall Options): Document -fdump-go-spec.
2724         * Makefile.in (OBJS-common): Add godump.o.
2725         (debug.o): Add dependency on $(TREE_H).
2726         (godump.o): New target.
2727         (GTFILES): Add $(srcdir)/godump.c.
2728
2729 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2730
2731         PR debug/46095
2732         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2733         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2734         style < 0, add REG_FRAME_RELATED_EXPR.
2735
2736         PR debug/46387
2737         * rtl.h (vt_equate_reg_base_value): New prototype.
2738         * alias.c (vt_equate_reg_base_value): New function.
2739         * var-tracking.c (vt_init_cfa_base): Use it.
2740
2741 2010-11-15  Jan Hubicka  <jh@suse.cz>
2742             Diego Novillo  <dnovillo@google.com>
2743
2744         PR lto/41528
2745         * doc/lto.texi: Add.
2746         * doc/gccint.texi: Add reference to lto.texi.
2747         * doc/invoke.texi: Update user documentation for LTO.
2748         Move internal flags to lto.texi
2749
2750 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2751
2752         * c-typeck.c (build_unary_op): Use
2753         objc_build_incr_expr_for_property_ref to build the pre/post
2754         increment/decrement of an Objective-C property ref, and skip the
2755         lvalue_or_else check in that case.
2756
2757 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2758
2759         PR tree-optimization/46349
2760         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2761         (contains_vce_or_bfcref_p): Likewise.
2762         (sra_modify_assign): Use them.
2763
2764 2010-11-15  Richard Guenther  <rguenther@suse.de>
2765
2766         PR tree-optimization/46467
2767         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2768         variables without subvars.
2769
2770 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2771
2772         * config/picochip/picochip.c (file header): Picochip name change.
2773         * config/picochip/picochip.md (file header): Likewise.
2774         * config/picochip/predicates.md (file header): Likewise.
2775         * config/picochip/dfa_space.md (file header): Likewise.
2776         * config/picochip/dfa_speed.md (file header): Likewise.
2777         * config/picochip/picochip.h(file header): Likewise.
2778         * config/picochip/constraints.md (file header): Likewise.
2779         * config/picochip/picochip-protos.h (file header): Likewise.
2780         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2781         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2782         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2783         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2784         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2785         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2786         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2787         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2788         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2789         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2790         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2791         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2792         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2793         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2794
2795 2010-11-15  Richard Guenther  <rguenther@suse.de>
2796
2797         PR bootstrap/46474
2798         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2799
2800 2010-11-15  Nick Clifton  <nickc@redhat.com>
2801
2802         * config/stormy16/stormy16.c (direct_return): Do not generate a
2803         direct return for interrupt handlers.
2804
2805 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2806
2807         * Makefile.in (tm.texi): Replace with rule for:
2808         ($(srcdir)/doc/tm.texi).
2809         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2810         $(srcdir)/doc/tm.texi .
2811         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2812         tm.texi .
2813
2814         PR target/46427
2815         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2816
2817         PR bootstrap/45444
2818         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2819         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2820
2821         PR target/46432
2822         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2823
2824 2010-11-15  Richard Guenther  <rguenther@suse.de>
2825
2826         PR lto/44150
2827         * lto-opts.c (lto_write_options): Write -fexceptions even if
2828         not set by the user.
2829
2830 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2831
2832         PR c/46462
2833         * c-decl.c (declspecs_add_type): Make variables with error types
2834         integers.
2835         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2836         do not start a declaration before an Objective-C foreach.
2837         (c_parser_declaration_or_fndef): Improve recovery after unknown
2838         type name.
2839         (c_parser_for_statement): Hoist entrance of "foreach context"
2840         before ifs, add corresponding reset where it was missing.  Do
2841         not set objc_could_be_foreach_context for C.
2842
2843 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2844
2845         PR tree-optimization/45722
2846         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2847         this is a reference to a component.
2848         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2849         (ipa_note_param_call): Adjust comment.
2850
2851 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2852
2853         * config/mips/mips.c (machine_function): Remove
2854         initialized_mips16_gp_pseudo_p.
2855         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
2856         detect whether a pseudo has already been created.  Unconditionally
2857         create a new one if not.
2858         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
2859         expanding to rtl.  Create a new pseudo otherwise, if allowed.
2860
2861 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
2862
2863         PR target/43440
2864         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
2865         * tm.texi: Regenerated.
2866         * output.h (decode_reg_name_and_count): Declare.
2867         * varasm.c (decode_reg_name_and_count): New function.
2868         (decode_reg_name): Reimplement using decode_reg_name_and_count.
2869         * reginfo.c (fix_register): Use decode_reg_name_and_count and
2870         iterate over all regs used.
2871         * stmt.c (expand_asm_operands): Likewise.
2872         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
2873         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
2874         multiple machine registers.
2875
2876 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2877
2878         * stor-layout.c (place_union_field): Do not put location information
2879         on offset expressions.
2880         (place_field): Likewise.
2881         (finalize_record_size): Likewise on size expressions.
2882         (finalize_type_size): Likewise.
2883         (layout_type): Likewise.
2884
2885 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
2886
2887         PR debug/42889
2888         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
2889         * df-core.c (df_set_bb_dirty_nonrl): Remove.
2890         * df.h (df_set_bb_dirty_nonlr): Likewise.
2891
2892 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
2893
2894         * config/mips/mips.md (call_internal): Pass curr_insn to
2895         mips_split_call.
2896         (call_internal_direct): Ditto.
2897         (call_value_internal): Ditto.
2898         (call_value_internal_direct): Ditto.
2899         (call_value_multiple_internal): Ditto.
2900         * config/mips/mips.c (mips_split_call): Do not copy
2901         CALL_INSN_FUNCTION_USAGE here.
2902
2903 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
2904
2905         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
2906         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
2907         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
2908         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
2909         (TUNE_LOONGSON_3A): Define.
2910         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
2911         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
2912         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
2913         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
2914         (mips_rtx_cost_data): Add Loongson-3A.
2915
2916 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2917
2918         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
2919         switches.
2920
2921 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2922
2923         * dwarf2out.c (macinfo_entry): New struct.
2924         (output_comp_unit): Emit the section start label here and flag that we
2925         will emit an info section.
2926         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
2927         emitting directly.
2928         (dwarf2out_end_source_file): Likewise.
2929         (dwarf2out_define): Likewise.
2930         (dwarf2out_undef): Likewise.
2931         (output_macinfo): New.
2932         (dwarf2out_init): Do not emit debug section switches here, allocate a
2933         vec for macinfo, when required.
2934         (dwarf2out_finish): First switch to debug_abbrev_section here.
2935         debug_line_section,  debug_macinfo_section, Likewise.
2936         Check that the pubtypes table has at least one unpruned entry before
2937         trying to emit it.
2938
2939 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2940
2941         PR c/20385
2942         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
2943         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
2944         token lookahead.
2945         (c_parser_compound_statement_nostart, c_parser_label,
2946         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
2947         (c_parser_declaration_or_fndef): Detect the case now matched by
2948         c_parser_next_tokens_start_declaration, give error and correct it.
2949
2950 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2951
2952         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
2953         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
2954         with typespec_kind.
2955         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
2956         (shadow_tag_warned, check_compound_literal_type): Adjust
2957         uses of tag_defined_p.
2958         (declspecs_add_type): Set typespec_kind.
2959         * c-parser.c (c_parser_declaration_or_fndef,
2960         c_parser_declspecs, c_parser_struct_declaration,
2961         c_parser_parameter_declaration, c_parser_type_name,
2962         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
2963         of type_seen_p.
2964         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
2965         tag_defined_p, pass ctsk_firstref through.
2966
2967 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2968
2969         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
2970         (struct format_wanted_type): Replace field "name" with "kind", add
2971         "format_start" and "format_length".
2972         (check_format_info_main): Fill in new fields.  Fill in
2973         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
2974         after the final NUL outside the while loop.  Do not include
2975         width and precision modifiers in the format_start/format_length
2976         of the main format.
2977         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
2978         arguments.  Compute WANTED_TYPE first so that format_type_warning
2979         can be called for missing arguments.  Adjust calls to
2980         format_type_warning.
2981         (format_type_warning): Fetch as much information as possible
2982         from format_wanted_type.  Adjust printing now that every
2983         warning has a "descr", as well as for missing argument warnings
2984         and to include % sign for format specifiers.
2985
2986 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
2987
2988         PR rtl-optimization/46204
2989         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
2990         Update all callers.  Do not recompute topological order.  Adjust
2991         fallthrough edges following a degenerate conditional jump.
2992
2993 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
2994
2995         * opts-common.c (control_warning_option): New.
2996         * opts.c (set_default_handlers): New.
2997         (decode_options): Use set_default_handlers and
2998         control_warning_option.
2999         (common_handle_option): Update call to enable_warning_as_error.
3000         (enable_warning_as_error): Take gcc_options parameters.  Use
3001         control_warning_option.
3002         * opts.h (set_default_handlers, control_warning_option): Declare.
3003
3004 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3005
3006         * Makefile.in (OPTS_H): Define.
3007         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3008         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3009         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3010         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3011         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3012         * gcc.c (driver_handle_option): Take location_t parameter.
3013         (process_command, do_self_spec): Update calls to
3014         read_cmdline_option.
3015         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3016         * langhooks.c (lhd_handle_option): Take location_t parameter.
3017         * langhooks.h (handle_option): Take location_t parameter.
3018         * lto-opts.c (lto_reissue_options): Update call to set_option.
3019         * opts-common.c (handle_option): Make static.  Take location_t
3020         parameter and pass it to other functions.
3021         (handle_generated_option): Take location_t parameter and pass it
3022         to other functions.
3023         (read_cmdline_option): Take location_t parameter and pass it to
3024         other functions.  Use warning_at and error_at.
3025         (set_option): Take location_t parameter and pass it to other
3026         functions.
3027         * opts.c (common_handle_option): Take location_t parameter and
3028         pass it to other functions.
3029         (enable_warning_as_error): Make static.  Take location_t parameter
3030         and pass it to other functions.
3031         (lang_handle_option): Take location_t parameter and pass it to
3032         other functions.
3033         (target_handle_option): Take location_t parameter.
3034         (read_cmdline_options, maybe_default_option,
3035         maybe_default_options, default_options_optimization,
3036         decode_options): Take location_t parameter and pass it to other
3037         functions.
3038         * opts.h: Include input.h.
3039         (struct cl_option_handler_func, decode_options, set_option,
3040         handle_generated_option, read_cmdline_option): Take location_t
3041         parameters.
3042         (handle_option, enable_warning_as_error): Remove.
3043         * toplev.c (toplev_main): Update call to decode_options.
3044
3045 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3046
3047         * graphite-cloog-util.c (oppose_constraint,
3048         cloog_matrix_to_ppl_constraint,
3049         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3050         CLooG isl uses unsigned integers.  This triggered a warning.
3051
3052 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3053
3054         PR target/46438
3055         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3056         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3057         (xtensa_function_arg_1): De-constify cum.
3058         (xtensa_expand_prologue): Use add_reg_note.
3059
3060         PR target/46435
3061         * config/cris/cris.c (saved_regs_mentioned): Delete.
3062         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3063         Remove unused variable op0p.
3064         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3065         (cris_emit_movem_store): Use add_reg_note.
3066
3067         PR bootstrap/46456
3068         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3069
3070 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3071
3072         * function.c (expand_function_end): Set the locator of the prologue on
3073         the stack checking insns.
3074
3075 2010-11-12  Richard Henderson  <rth@redhat.com>
3076
3077         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3078         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3079         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3080         MASK_FUSED_MADD.
3081         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3082         (fnmasf4): Rename from mulsubsf3; use fma.
3083
3084 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3085             Richard Henderson  <rth@redhat.com>
3086
3087         PR target/46428
3088         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3089         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3090         comparison.
3091
3092 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3093
3094         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3095
3096 2010-11-12  Jan Hubicka  <jh@suse.cz>
3097
3098         * doc/invoke.texi (early-inlining-insns): Update default.
3099         * params.def (early-inlining-insns): Default to 10.
3100
3101 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3102
3103         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3104
3105 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3106
3107         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3108         (SUPPORTS_INIT_PRIORITY): Define.
3109
3110 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3111
3112         PR target/46430
3113         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3114         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3115         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3116         (avr_device_to_devicelib): Likewise.
3117         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3118         into block.
3119         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3120         (zero_extendhidi2, zero_extendsidi2): Likewise.
3121         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3122         (avr_return_addr_rtx): De-constify tem.
3123         (avr_rotate_bytes): Move declarations to start of block.
3124         Don't use variable length array.  Put nested if/else into block.
3125
3126         PR rtl-optimization/46433
3127         * var-tracking.c: Include tm_p.h .
3128
3129         PR bootstrap/44756
3130         PR build/44767
3131         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3132         should be unsigned.
3133         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3134         * doc/tm.texi: Regenerate.
3135
3136         PR target/46412
3137         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3138         * config/bfin/bfin.c: Include sel-sched.h .
3139         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3140         (expand_interrupt_handler_prologue): Remove unused variable insn.
3141         (bfin_load_pic_reg): Likewise.
3142         (bfin_rtx_costs): Make code / outer_code variables of type
3143         enum rtx_code, copied from re-named parameters.
3144         (bfin_local_alignment): Change align argument and return type
3145         to unsigned.
3146         (bfin_adjust_cost): Remove unused variable insn_type.
3147         Declare variables at start of block.
3148         (struct loop_info): Rename to...
3149         (struct loop_info_d).
3150         (workaround_rts_anomaly): Change type of icode to int.
3151         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3152         with int-typed variable.
3153         (note_np_check_stores): Likewise.
3154         (trapping_loads_p): Remove unused variable pat.
3155         (bfin_expand_binop_builtin): Use expand_normal.
3156         (bfin_expand_unop_builtin): Likewise.
3157         (bfin_expand_builtin): Likewise.  Set tmode before use.
3158
3159         PR middle-end/44769
3160         * final.c (split_double): Don't use BITS_PER_WORD directly in
3161         shift count.
3162
3163         PR target/46431
3164         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3165         assignment.
3166
3167         PR target/46450
3168         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3169         Use add_reg_note.
3170         (xstormy16_function_arg): Dereference cum.
3171         (xstormy16_expand_builtin): Use expand_normal.
3172         Change type of omode to enum machine_mode.
3173         (combine_bnp): Rename and to and_insn.
3174
3175         PR target/46437
3176         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3177         localreg.
3178
3179 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3180
3181         PR debug/46375
3182         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3183
3184 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3185
3186         PR lto/46376
3187         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3188
3189 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3190
3191         PR c/44782
3192         * common.opt (fmax-errors=): New option.
3193         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3194         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3195         * diagnostic.c (diagnostic_initialize): Initialize it.
3196         (diagnostic_action_after_output): Exit if more than max_errors
3197         have been output.
3198         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3199         (-fmax-errors): Document.
3200
3201 2010-11-11  Richard Henderson  <rth@redhat.com>
3202
3203         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3204
3205 2010-11-11  Richard Henderson  <rth@redhat.com>
3206
3207         * config/fused-madd.opt: New file.
3208         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3209         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3210         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3211         * config/i386/i386.opt (mfused-madd): Remove.
3212         * config/i386/sse.md (split_fma): Remove.
3213         (split_fms, split_fnma, split_fnms): Remove.
3214
3215 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3216
3217         PR target/46088
3218         * config/i386/i386.md (*ashl<mode>3_cconly,
3219         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3220         change nonimmediate_operand predicate to register_operand.
3221
3222 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3223
3224         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3225
3226 2010-11-11  Jan Hubicka  <jh@suse.cz>
3227
3228         * opts.c (finish_options): Do not error on -flto-partition alone.
3229
3230         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3231         (-flto-partition): Document none.
3232         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3233         * lto-wrapper.c: Update comment.
3234         (run_gcc): Update LTO option parsing.
3235         * opts.c (finish_options): add support -flto-partition=none
3236         (common_handle_option): Remove fwhopr.
3237         * common.opt: Turn fwhopr into flto.
3238         * collect2.c (main): Update option handling.
3239         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3240         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3241         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3242         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3243         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3244
3245 2010-11-11  Jan Hubicka  <jh@suse.cz>
3246
3247         PR tree-optimize/40436
3248         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3249         (eliminated_by_inlining_prob): ... this one; return 50% probability
3250         for SRA.
3251         (estimate_function_body_sizes): Update use of
3252         eliminated_by_inlining_prob; estimate static function size
3253         for 2 instructions.
3254
3255 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3256
3257         PR target/44749
3258         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3259         declare.  Change type of argument four to type int.
3260         (mep_secondary_input_reload_class): Returns enum reg_class.
3261         (mep_secondary_output_reload_class): Likewise.
3262         (mep_function_value): Change types of arguments to cont_tree.
3263         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3264         argument four to type int.
3265         (mep_secondary_input_reload_class): Returns enum reg_class.
3266         (mep_secondary_output_reload_class): Likewise.
3267         (mep_function_value): Change types of arguments to cont_tree.
3268         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
3269         mep_regno_reg_class to enum reg_class.
3270
3271 2010-11-11  Richard Henderson  <rth@redhat.com>
3272
3273         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3274         that the target has the exact fma operation that we matched.
3275
3276 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3277
3278         * reginfo.c (fix_register): Avoid inserting English word in
3279         diagnostic sentence.  Use %qs for quoting and %'.
3280
3281 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
3282
3283         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3284         Intel processor family 6, model 0x2c.
3285
3286 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3287
3288         * opts.c (warning_as_error_callback,
3289         register_warning_as_error_callback): Remove.
3290         (enable_warning_as_error): Don't use warning_as_error_callback.
3291         * opts.h (register_warning_as_error_callback): Remove.
3292
3293 2010-11-11  Richard Henderson  <rth@redhat.com>
3294
3295         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
3296         in between the MULT and the PLUS/MINUS.
3297
3298 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3299
3300         PR middle-end/46388
3301         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
3302         BLKmode mode for it.
3303         (expand_expr_real_1): Similarly for op0.
3304
3305 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3306
3307         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
3308         Document optional target selector.
3309
3310 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3311
3312         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
3313         assembling high and low parts of size if not using 32-bit HWINT; else
3314         use DECL_SIZE_UNITS, not DECL_SIZE.
3315
3316 2010-11-11  Martin Jambor  <mjambor@suse.cz>
3317
3318         PR tree-optimization/46383
3319         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
3320         offsets.
3321         (compute_complex_ancestor_jump_func): Likewise.
3322         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
3323
3324 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3325
3326         PR debug/46150
3327         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
3328         true if expr1->hash != expr2->hash.
3329
3330 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3331
3332         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
3333         diagnostics with lowercase letters.
3334         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
3335         lowercase letters.
3336         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
3337         diagnostic.
3338         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3339         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
3340         lowercase letters.
3341         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3342         Remove trailing ' ' from diagnostic.
3343         * config/avr/avr.c (print_operand_address): Start diagnostic with
3344         a lowercase letter and remove trailing '.'.
3345         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
3346         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
3347         with lowercase letters.  Use %' in diagnostics.  Remove trailing
3348         '.' from diagnostics.
3349         (bfin_handle_longcall_attribute): Use %' in diagnostic.
3350         * config/cris/cris.c (cris_split_movdx,
3351         cris_expand_pic_call_address): Start diagnostics with lowercase
3352         letters.
3353         (cris_asm_output_label_ref): Use %' in diagnostic.
3354         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
3355         letter.
3356         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
3357         lowercase letter.
3358         * config/darwin-c.c (version_as_macro): Start diagnostic with a
3359         lowercase letter.
3360         * config/darwin-driver.c (darwin_default_min_version): Use %' in
3361         diagnostic.
3362         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
3363         diagnostic.
3364         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3365         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
3366         diagnostics.
3367         * config/i386/i386.c (ix86_option_override_internal): Write
3368         diagnostic as a single sentence without trailing '.'.  Use %' in
3369         diagnostics.
3370         (ix86_function_sseregparm, classify_argument): Start diagnostics
3371         with lowercase letters.
3372         (ix86_expand_prologue): Use %' in diagnostic.
3373         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3374         diagnostic.
3375         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3376         lowercase letter.
3377         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3378         diagnostic.
3379         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3380         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3381         '`' in help text.
3382         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3383         lowercase letter.
3384         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3385         lowercase letters.
3386         * config/microblaze/microblaze.c (microblaze_handle_option):
3387         Remove trailing '.' from diagnostic.
3388         (print_operand): Start diagnostic with a lowercase letter.
3389         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3390         lowercase letters.  Avoid '`' in diagnostics.
3391         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3392         lowercase letters.  Avoid '`' in diagnostics.
3393         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3394         lowercase letters.  Avoid '`' in diagnostics.
3395         * config/picochip/picochip.c (picochip_option_override,
3396         picochip_emit_save_register, picochip_function_arg,
3397         picochip_output_label, picochip_output_internal_label,
3398         picochip_asm_output_opcode, picochip_output_cbranch,
3399         picochip_output_compare, picochip_output_branch,
3400         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3401         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3402         diagnostics.
3403         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3404         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3405         (rs6000_handle_option): Start diagnostics with lowercase letters.
3406         (def_builtin): Remove trailing '.' from diagnostic.
3407         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3408         letter.
3409         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3410         diagnostic.
3411         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3412         lowercase letter.
3413         * config/s390/s390.c (s390_option_override) Start diagnostics with
3414         lowercase letters.  Use %' in diagnostic.
3415         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3416         lowercase letters.
3417         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3418         diagnostic.
3419         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3420         diagnostic.
3421         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3422         diagnostic.
3423         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3424         * config/spu/spu.c (spu_option_override): Start diagnostics with
3425         lowercase letters.  Use %qs for quoting in diagnostics.
3426         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3427         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3428         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3429         from diagnostic.
3430         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3431         diagnostics.
3432         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3433         letter and use "cannot" spelling.
3434         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3435         lowercase letter and format as a single sentence without '.'.
3436         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3437         Use %' in diagnostics.
3438         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3439         Use %' in diagnostics.
3440         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3441         Use %' in diagnostics.
3442         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3443         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3444         with lowercase letters and remove tailing '.' and '\n'.
3445         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3446         lowercase letter and remove trailing '.'.
3447         (input_cgraph): Start diagnostics with lowercase letters and
3448         remove trailing '\n'.
3449         * opts.c (finish_options, common_handle_option): Start diagnostics
3450         with lowercase letters and remove trailing '.'.  Fix typo in
3451         diagnostic.
3452         * passes.c (position_pass): Start diagnostic with lowercase letter.
3453         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3454         register_callback, try_init_one_plugin): Start diagnostics with
3455         lowercase letters.
3456         * reload1.c (spill_failure): Use %' in diagnostic.
3457         (gen_reload): Start diagnostic with a lowercase letter.
3458         * stor-layout.c (place_field): Start diagnostic with a lowercase
3459         letter.
3460         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3461         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3462         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3463         Start diagnostics with lowercase letters, remove trailing '.' and
3464         use %' in diagnostics.
3465         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3466         (verify_ssa): Don't split diagnostic across two error calls.
3467         Spell out "number" and use %' in diagnostic.
3468         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3469         lowercase letters.
3470
3471 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3472
3473         PR middle-end/46419
3474         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3475         (_mm_cvtpu16_ps): Ditto.
3476
3477 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3478
3479         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3480         warn_larger_than, larger_than_size, warn_frame_larger_than,
3481         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3482         default_visibility, flag_tls_default): New Variable declarations.
3483         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3484         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3485         (v): Declare as Common and document here.
3486         * flags.h (default_visibility, flag_generate_lto,
3487         warn_larger_than, larger_than_size, warn_frame_larger_than,
3488         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3489         flag_shlib, flag_excess_precision_cmdline): Remove.
3490         (set_Wstrict_aliasing): Update prototype.
3491         * gcc.c (verbose_flag): Remove.
3492         (driver_handle_option): Add diagnostic_context parameter.  Don't
3493         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3494         incrementing it.
3495         * opts-common.c (handle_option): Pass dc to handler.
3496         * opts.c (warn_larger_than, larger_than_size,
3497         warn_frame_larger_than, frame_larger_than_size,
3498         default_visibility): Remove.
3499         (common_handle_option): Add diagnostic_context parameter.
3500         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3501         gcc_options parameters.
3502         (lang_handle_option, target_handle_option, read_cmdline_options,
3503         decode_options): Add diagnostic_context parameters.
3504         (finish_options): Access option state through opts pointer where
3505         possible.
3506         (common_handle_option): Access option state through opts pointer
3507         where possible.  Do not set local static variable verbose.  Do not
3508         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3509         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3510         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3511         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3512         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3513         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3514         (set_Wstrict_aliasing): Add gcc_options parameter.
3515         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3516         parameter to handler.
3517         (decode_options): Add diagnostic_context parameter.
3518         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3519         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3520         aux_info_file_name, flag_shlib, flag_tls_default,
3521         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3522         (toplev_main): Pass global_dc to decode_options.
3523         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3524         aux_info_file_name, asm_file_name): Remove.
3525         * tree.h (flag_tls_default): Remove.
3526
3527 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3528
3529         PR target/45986
3530         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3531         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3532
3533 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3534
3535         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3536         (x86_64-*-*): Likewise.
3537         * config/i386/cpuid.h: Define TBM bit.
3538         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3539         and set has_tbm.
3540         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3541         isa_flag for TBM.
3542         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3543         (OPTION_MASK_ISA_TBM_UNSET): New.
3544         (ix86_handle_option): Handle -mtbm.
3545         (isa_opts): Add -mtbm.
3546         (enum pta_flags): Add PTA_TBM.
3547         (ix86_option_override_internal): Add TBM support.
3548         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3549         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3550         (IX86_BUILTIN_BEXTRI64): Likewise.
3551         (bdesc_args): Add TBM intrinsics.
3552         (ix86_expand_builtin): Add TBM specific case.
3553         * config/i386/i386.h (TARGET_TBM): New for TBM.
3554         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3555         (tbm_bextri_<mode>): Likewise.
3556         (*tbm_blcfill_<mode>): Likewise.
3557         (*tbm_blci_<mode>): Likewise.
3558         (*tbm_blcic_<mode>): Likewise.
3559         (*tbm_blcmsk_<mode>): Likewise.
3560         (*tbm_blcs_<mode>): Likewise.
3561         (*tbm_blsfill_<mode>): Likewise.
3562         (*tbm_blsic_<mode>): Likewise.
3563         (*tbm_t1mskc_<mode>): Likewise.
3564         (*tbm_tzmsk_<mode>): Likewise.
3565         * config/i386/i386.opt: Add -mtbm.
3566         * config/i386/tbmintrin.h (__bextri_u32): New.
3567         (__blcfill_u32): Likewise.
3568         (__blci_u32): Likewise.
3569         (__blcic_u32): Likewise.
3570         (__blcmsk_u32): Likewise.
3571         (__blcs_u32): Likewise.
3572         (__blsfill_u32): Likewise.
3573         (__blsic_u32): Likewise.
3574         (__t1mskc_u32): Likewise.
3575         (__tzmsk_u32): Likewise.
3576         (__bextri_u64): Likewise.
3577         (__blcfill_u64): Likewise.
3578         (__blci_u64): Likewise.
3579         (__blcic_u64): Likewise.
3580         (__blcmsk_u64): Likewise.
3581         (__blcs_u64): Likewise.
3582         (__blsfill_u64): Likewise.
3583         (__blsic_u64): Likewise.
3584         (__t1mskc_u64): Likewise.
3585         (__tzmsk_u64): Likewise.
3586         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3587         * doc/invoke.texi: Document -mtbm.
3588         * doc/extend.texi: Document TBM built-in functions.
3589
3590 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3591
3592         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3593         (x86_64-*-*): Likewise.
3594         * config/i386/cpuid.h: Define BMI bit.
3595         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3596         and set has_bmi.
3597         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3598         isa_flag for BMI.
3599         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3600         (OPTION_MASK_ISA_BMI_UNSET): New.
3601         (ix86_handle_option): Handle -mbmi.
3602         (isa_opts): Add -mbmi.
3603         (enum pta_flags): Add PTA_BMI.
3604         (ix86_option_override_internal): Add BMI support.
3605         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3606         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3607         (IX86_BUILTIN_BEXTR64): Likewise.
3608         (IX86_BUILTIN_CTZS): Likewise.
3609         (bdesc_args): Add BMI intrinsics.
3610         (ix86_expand_args_builtin): Add BMI specific cases.
3611         * config/i386/i386.h (TARGET_BMI): New for BMI.
3612         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3613         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3614         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3615         (UNSPEC_TZCNT): Likewise.
3616         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3617         (bmi_andn_<mode>): New for BMI.
3618         (bmi_bextr_<mode>): Likewise.
3619         (bmi_blsi_<mode>): Likewise.
3620         (bmi_blsmsk_<mode>): Likewise.
3621         (bmi_blsr_<mode>): Likewise.
3622         * config/i386/i386.opt: Add -mbmi.
3623         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3624         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3625         (__tzcnt_u16): Likewise.
3626         (__andn_u32): Likewise.
3627         (__bextr_u32): Likewise.
3628         (__blsi_u32): Likewise.
3629         (__blsmsk_u32): Likewise.
3630         (__blsr_u32): Likewise.
3631         (__lzcnt_u32): Likewise.
3632         (__tzcnt_u32): Likewise.
3633         (__andn_u64): Likewise.
3634         (__bextr_u64): Likewise.
3635         (__blsi_u64): Likewise.
3636         (__blsmsk_u64): Likewise.
3637         (__blsr_u64): Likewise.
3638         (__lzcnt_u64): Likewise.
3639         (__tzcnt_u64): Likewise.
3640         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3641         * doc/extend.texi: Document BMI built-in functions.
3642
3643 2010-11-10  Jan Hubicka  <jh@suse.cz>
3644
3645         PR tree-optimize/46228
3646         * doc/invoke.texi (comdat-sharing-probability): Document.
3647         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3648         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3649
3650 2010-11-10  Jan Hubicka  <jh@suse.cz>
3651
3652         PR tree-optimize/46228
3653         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3654
3655 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3656
3657         PR tree-optimization/46414
3658         * tree-inline.c (estimate_move_cost): Check preferred vector
3659         mode for vector type.
3660
3661 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3662
3663         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3664
3665 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3666
3667         PR tree-optimization/45971
3668         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3669         for phi nodes analyzable by scev.
3670
3671 2010-11-10  Richard Guenther  <rguenther@suse.de>
3672
3673         PR tree-optimization/44964
3674         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3675
3676 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3677
3678         PR tree-optimization/46351
3679         PR tree-optimization/46377
3680         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3681         aggregate bit-fields.
3682
3683 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3684
3685         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3686         * doc/tm.texi: Regenerate.
3687         * opts-common.c (tm.h): Don't include.
3688         (target_option_translations): Remove.
3689         (decode_cmdline_options_to_array): Don't handle translating options.
3690         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3691         * config/darwin-driver.c: Don't condition includes on
3692         CROSS_DIRECTORY_STRUCTURE.
3693         (darwin_default_min_version): Make static.
3694         (darwin_driver_init): New.  Call darwin_default_min_version if not
3695         CROSS_DIRECTORY_STRUCTURE.
3696         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3697         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3698         (ASM_SPEC): Add %{static}.
3699         (darwin_default_min_version): Don't declare.
3700         (darwin_driver_init): Declare.
3701         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3702         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3703         * config/darwin.opt (all_load, allowable_client,
3704         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3705         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3706         exported_symbols_list, filelist, findirect-virtual-calls,
3707         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3708         framework, fterminated-vtables, gfull, gused, image_base, init,
3709         install_name, multi_module, multiply_defined,
3710         multiply_defined_unused, no_dead_strip_inits_and_terms,
3711         seg_addr_table, seg_addr_table_filename, segaddr,
3712         segs_read_only_addr, segs_read_write_addr, single_module,
3713         umbrella, unexported_symbols_list, weak_reference_mismatches,
3714         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3715         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3716         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3717         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3718         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3719         (ASM_SPEC): Add %{static}.
3720         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3721         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3722         (DRIVER_SELF_SPECS): Handle options formerly in
3723         TARGET_OPTION_TRANSLATE_TABLE.
3724         * config/mep/mep.opt (mfar): New.
3725         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3726         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3727         TARGET_OPTION_TRANSLATE_TABLE.
3728         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3729         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3730         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3731         ffix-and-continue, findirect-data): New.
3732         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3733         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3734         (mnofpu): Define mask and use Report here.
3735
3736 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3737
3738         * config/s390/s390.c (s390_emit_prologue): Report the stack
3739         size if -fstack-usage is used.
3740
3741 2010-11-10  Richard Guenther  <rguenther@suse.de>
3742
3743         PR tree-optimization/46398
3744         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3745
3746 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3747
3748         PR target/44760
3749         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3750         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3751         GP_REG_OR_PSEUDO_STRICT_P.
3752         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3753         unexpected alternative.
3754         (*movsf_internal): Likewise.
3755         (indirect_jump): Replace call to non-existant function with call to
3756         internal_error.
3757         (tablejump): Likewise.
3758         * config/iq2000/iq2000.c: Include df.h .
3759         (iq2000_function_arg_advance): Use CONST_CAST2.
3760         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3761         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3762         a non-zero function address.
3763         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3764         unexpected value of FROM.
3765         (symbolic_expression_p): Delete.
3766         (iq2000_function_value): Constify func.
3767         (expand_one_builtin): Use expand_normal.
3768         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3769
3770         PR rtl-optimization/44764
3771         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3772
3773         PR target/46407
3774         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3775         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3776         with ATTRIBUTE_UNUSED.
3777         (valid_psw_flag): Constify parameter which.
3778         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3779
3780         PR target/46415
3781         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3782         (mmix_dbx_register_number): Likewise.
3783         * config/mmix/mmix.c: Include df.h .
3784         (mmix_local_alignment): Change argument basic_align and return type
3785         to unsigned.
3786         (mmix_dbx_register_number): Change argument and return type to
3787         unsigned.
3788         (mmix_expand_prologue): Use add_reg_note.
3789
3790         PR target/46417
3791         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3792         (spu_split_store): Use aform.
3793         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3794
3795 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3796
3797         PR/46268
3798         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3799         allocators taking size in bytes, compare with length option.  Add
3800         size calculation example.
3801         (Invoking the garbage collector): Ensure that sentences are
3802         followed by two spaces.  Describe that pointer fields must be
3803         initialized at ggc_collect call.
3804         (Troubleshooting): New section.
3805
3806 2010-11-09  Jan Hubicka  <jh@suse.cz>
3807
3808         PR tree-optimization/40436
3809         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3810         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3811         normal instructions; be sure bultin is not implemented in this file;
3812         compute non-zero return cost.
3813         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3814         * tree-inline.h (eni_weights_d): Add return cost.
3815
3816 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3817
3818         * c-parser.c (c_parser_struct_declaration): Handle declaration
3819         specifiers followed by CPP_CLOSE_BRACE.
3820
3821 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3822
3823         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3824         split occurs before reload, and we allocate memory at the time of
3825         the split, not during expansion.  Add attributes.
3826         (floatsi<mode>2_lfiwax_mem): Ditto.
3827         (floatunssi<mode>2_lfiwzx): Ditto.
3828         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3829         (floatsidf2): Ditto.
3830         (floatunssisf2): Ditto.
3831         (floatunssidf2): Ditto.
3832         (fix_trunc<mode>si2): Ditto.
3833         (fix_trunc<mode>si2_stfiwx): Ditto.
3834         (fix_trunc<mode>si2_internal): Ditto.
3835         (fix_trunc<mode>si2): Ditto.
3836         (fix_trunc<mode>di2): Ditto.
3837         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3838         (floatsisf2): Ditto.
3839         (floatdidf2_mem): Ditto.
3840         (floatunsdidf2_mem): Ditto.
3841         (floatunsdidf2): Ditto.
3842         (floatdisf2_internal1): Ditto.
3843         (floatdisf2_mem): Ditto.
3844         (floatunsdisf2_mem): Ditto.
3845         (floatsi<mode>2_lfiwax_mem2): Delete.
3846         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3847         (fix_trunc<mode>si2_mem): Ditto.
3848         (fixuns_trunc<mode>si2_mem): Ditto.
3849         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
3850         type operations to reduce copying the values to multiple memory slots.
3851         (roundu32<mode>2_fprs): Ditto.
3852
3853         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
3854         PRE_INC, PRE_DEC, PRE_MODIFY.
3855         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
3856
3857         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
3858         Delete prototype.
3859
3860 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3861
3862         PR target/43808
3863         * cfgexpand.c (partition_stack_vars): Call
3864         update_alias_info_with_stack_vars unconditionally.
3865         (update_alias_info_with_stack_vars): Allow unused
3866         unreferenced vars when not optimizing.
3867
3868 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
3869
3870         PR tree-optimization/46036
3871         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
3872         add_to_dst_predicate_list.
3873
3874 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3875
3876         PR debug/46171
3877         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
3878         earlier.
3879         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
3880         argument, call dead_debug_reset when adding REG_UNUSED note.
3881         (dead_debug_reset): New function.
3882         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
3883         df_create_unused_note callers.
3884
3885 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
3886
3887         * config/fr30/fr30.c: Include "df.h".
3888
3889 2010-11-09  Richard Guenther  <rguenther@suse.de>
3890
3891         PR tree-optimization/46355
3892         * tree-loop-distribution.c (tree_loop_distribution): Do not
3893         distribute loops without a single exit.
3894
3895 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3896
3897         PR rtl-optimization/46237
3898         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
3899         saved hard regs if they might get partially clobbered.
3900
3901 2010-11-09  Paul Koning  <ni1d@arrl.net>
3902
3903         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
3904
3905 2010-11-09  Richard Guenther  <rguenther@suse.de>
3906
3907         PR tree-optimization/46177
3908         * tree-loop-distribution.c (prop_phis): Remove.
3909         (generate_builtin): Re-use the old loop exit edge to avoid
3910         needing to update PHI nodes.
3911
3912 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
3913
3914         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
3915         type of args_size to unsigned HOST_WIDE_INT.
3916
3917         PR target/44755
3918         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
3919         * config/t-pnt16-warn: New file.
3920         * config/picochip/picochip.c (picochip_emit_stack_allocate):
3921         Use add_reg_note.
3922         (picochip_emit_save_register): Likewise.
3923         (picochip_emit_restore_register): Remove variable insn.
3924         (picochip_legitimize_address): Don't use C++ style comments.
3925         (picochip_legitimize_reload_address): Likewise.
3926         (reorder_var_tracking_notes): Remove variable vliw_start.
3927         (picochip_reorg): Cast first arguemnt to emit_note_after to
3928         enum insn_note.
3929         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
3930         (picochip_expand_builtin_3op): Likewise.
3931         (picochip_expand_builtin_2opvoid): Likewise.
3932         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
3933         (picochip_expand_array_testport): Likewise.
3934         (picochip_init_builtins): Remove unused variables.
3935         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
3936         to unsigned long, and output it as such.
3937         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
3938         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
3939         (schedType): Cast result of picochip_schedule_type to
3940         enum attr_schedType.
3941
3942         PR target/44759
3943         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
3944         conditional to type of S.
3945         (mn10300_function_arg): Remove unused variable align.
3946         (mn10300_arg_partial_bytes): Likewise.
3947         * config/mn10300/mn10300.md (attribute cpu): Cast value to
3948         enum attr_cpu.
3949
3950 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
3951
3952         PR bootstrap/46392
3953         * gengtype-parse.c (type): Call get_input_file_name to get file name.
3954
3955 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3956
3957         * tree.h (contains_placeholder_p): Fix comment.
3958         (type_contains_placeholder_p): Adjust comment.
3959         * tree.c (contains_placeholder_p): Fix comment.
3960         (type_contains_placeholder_1): Do not recurse on pointed-to types and
3961         adjust comment.
3962         (type_contains_placeholder_p): Add comment.
3963
3964 2010-11-09  Paul Koning  <ni1d@arrl.net>
3965
3966         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
3967         output of byte values.
3968
3969 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3970
3971         PR middle-end/46360
3972         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
3973         not in SSA mode.
3974
3975 2010-11-09  Richard Guenther  <rguenther@suse.de>
3976
3977         PR middle-end/46221
3978         * varasm.c (compute_visible_aliases): New function.
3979         (remove_unreachable_alias_pairs): Aliases make a target available
3980         even though we reclaimed the cgraph node.
3981         (finish_aliases_1): Likewise.
3982         * Makefile.in (varasm.o): Add pointer-set.h dependency.
3983
3984 2010-11-09  Nick Clifton  <nickc@redhat.com>
3985
3986         * config/mn10300/mn10300-modes.def: New file.
3987
3988 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
3989             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3990
3991         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
3992         (plugin_files, get_file_basename, get_file_realbasename)
3993         (get_file_langdir, error_at_line, gt_files, this_file)
3994         (system_h_file, read_input_list, create_field_all)
3995         (get_file_srcdir_relative_path, get_file_basename)
3996         (get_file_langdir, get_file_gtfilename)
3997         (get_output_file_with_visibility, get_output_file_name)
3998         (struct flist, put_mangled_filename, walk_type)
3999         (put_mangled_filename, finish_root_table, write_roots): Use
4000         input_file-s.
4001         (lang_dir_names, num_lang_dirs): Remove static.
4002         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4003         (main): Use input_file-s.
4004
4005         * gengtype.h: (struct input_file_st, input_file): New type.
4006         (struct fileloc): Use it.
4007         (gt_files, num_gt_files, this_file, system_h_file)
4008         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4009         (get_input_file_name): New function.
4010         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4011         use input_file.
4012         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4013         (get_output_file_name): Ditto.
4014
4015         * gengtype-lex.l (yybegin): Use input_file.
4016
4017         * gengtype-parse.c (parse_error): Use input_file.
4018
4019 2010-11-08  Xinliang David Li  <davidxl@google.com>
4020
4021         PR tree-optimization/46316
4022         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4023         * double-int.h (double_int_mul_with_sign): New function.
4024         * double-int.c (double_int_mul_with_sign): New function.
4025
4026 2010-11-08  Paul Koning  <ni1d@arrl.net>
4027
4028         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4029
4030 2010-11-08  Paul Koning  <ni1d@arrl.net>
4031
4032         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4033
4034 2010-11-08  Paul Koning  <ni1d@arrl.net>
4035
4036         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4037         to 8 bits.
4038
4039 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4040
4041         PR target/46378
4042         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4043         turn on ISA 2.04 rounding instructions for power5.
4044
4045         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4046         not ISA 2.02.
4047
4048         PR target/45585
4049         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4050         in FPR registers.
4051         (movdi_low_st): Ditto.
4052
4053 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4054             Richard Henderson  <rth@redhat.com>
4055
4056         PR target/44758
4057         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4058         (attribute acc_group): Cast value to enum attr_acc_group.
4059         (*movdi_nodouble+6): Use gen_int_mode.
4060         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4061         if RTX_CODE is defined or not.
4062         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4063         struct frv_io.
4064         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4065         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4066         (frv_expand_block_clear): Likewise.
4067         (frv_trampoline_init): Use LCT_NORMAL.
4068         (struct frv_packet_group): New struct, broken out of type of
4069         frv_packet.
4070         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4071         use cast in loop counter increment.
4072         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4073         assigning to io->type.
4074         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4075         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4076         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4077         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4078         (frv_read_argument): Use expand_normal.
4079
4080         PR target/44757
4081         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4082         lm32_legitimate_constant_p.
4083         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4084         * config/lm32/lm32.c (gen_int_relational): Make new block for
4085         LE / LT / LEU / LTU case.  Declare variables at start of block.
4086         (lm32_block_move_inline): Use XALLOCAVEC.
4087
4088 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4089
4090         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4091
4092 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4093
4094         * gengtype (get_output_file_for_structure): Ensure type is union
4095         or struct.
4096         (write_splay_tree_allocator_def): Use
4097         get_output_file_with_visibility.
4098
4099 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4100
4101         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4102         to defined values in case of an error.
4103         (s390_option_override): Skip further processing if the -march
4104         parameter wasn't recognized.
4105
4106 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4107
4108         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4109         assert that REG is a hard register number before using it as an index.
4110
4111         PR bootstrap/46358
4112         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4113         Avoid warnings when HOST_WIDE_INT is 32 bit.
4114
4115 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4116
4117         PR target/46208
4118         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4119         (sparc_promote_prototypes): Likewise.
4120         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4121         (sparc_return_in_memory): Remove superfluous parentheses.
4122         (sparc_struct_value_rtx): Fix long lines.
4123         (sparc_function_value_1): Promote in 32-bit mode as well.
4124
4125 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4126
4127         PR rtl-optimization/45352
4128         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4129         the variable_issue hook is not implemented.
4130         (fill_insns): Remove dead variable stall_iterations.
4131         (init_seqno_1): Force EBB start for resetting sched cycles on any
4132         successor blocks of the rescheduled region.
4133         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4134         (reset_sched_cycles_in_current_ebb): Add debug printing.
4135         New variable issued_insns.  Advance state when we have issued
4136         issue_rate insns.
4137
4138 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4139
4140         * gengtype (main): Get here's position using POS_HERE macro for
4141         do*typedef calls.
4142
4143 2010-11-07  Ian Lance Taylor  <iant@google.com>
4144
4145         PR target/46089
4146         * config/i386/i386.c (split_stack_fn_large): New static variable.
4147         (ix86_expand_split_stack_prologue): Handle large model.
4148
4149 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4150
4151         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4152         all possible addressing modes.
4153
4154 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4155
4156         PR tree-optimization/46346
4157         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4158
4159 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4160
4161         * config/mips/mips.c: Revert previous patch.
4162         * config/mips/mips.md: Likewise.
4163
4164 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4165
4166         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4167         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4168         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4169         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4170         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4171         to use FMA.
4172         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4173         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4174         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4175         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4176
4177 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4178
4179         PR c/43384
4180         * c-decl.c (lookup_label): Labels can only be referenced in a
4181         function's scope.
4182         (store_parm_decls_oldstyle): Skip erroneous parameters.
4183
4184 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4185
4186         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4187         LIBCALL_VALUE): Remove macros.
4188         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4189         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4190         (fr30_function_value_regno_p, fr30_function_value,
4191         fr30_libcall_value): New functions.
4192
4193 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4194
4195         PR middle-end/46314
4196         * target.def (generate_internal_label): New asm_out hook.
4197         * output.h (default_generate_internal_label): Declare.
4198         * varasm.c (default_generate_internal_label): Define.
4199
4200 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4201
4202         PR target/44981
4203         * doc/extend.tex (format): Document NSString extension.
4204         (format_arg): Likewise.
4205         (Darwin Format Checks): New section.
4206         * doc/tm.texi: Document string object hooks (generated).
4207         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
4208         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4209         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4210         * target.def (objc_construct_string_object): Rename, amend
4211         documentation.
4212         (string_object_ref_type_p): New hook.
4213         (check_string_object_format_arg): New hook.
4214         * c-parser.c (c_parser_attributes): Allow objective-c class names as
4215         attribute identifiers.
4216         * config/darwin-c.c (darwin_cfstring_ref_p): New.
4217         (darwin_check_cfstring_format_arg): New.
4218         (darwin_additional_format_types): New.
4219         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
4220         (darwin_check_cfstring_format_arg): New.
4221         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
4222         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4223         (TARGET_N_FORMAT_TYPES): New.
4224         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4225
4226 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4227             Pascal Obry  <obry@adacore.com>
4228
4229         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
4230         in 64-bit mode and 17 otherwise.
4231
4232 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4233
4234         PR debug/45939
4235         * var-tracking.c (emit_note_insn_var_location): Make sure that
4236         call related var location notes come before the normal ones.
4237
4238 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4239
4240         PR target/46326
4241         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
4242         in the last change.
4243
4244 2010-11-05  Ian Lance Taylor  <iant@google.com>
4245
4246         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
4247
4248 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4249
4250         PR c/44772
4251         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
4252         pointer_set_contains if DECL_NAME is NULL.
4253
4254 2010-11-05  Ian Lance Taylor  <iant@google.com>
4255
4256         PR target/46084
4257         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
4258         request enough additional space for alignment, and force alignment.
4259
4260 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
4261
4262         * config/i386/i386.c (legitimate_pic_address_disp_p):
4263         Handle UNSPEC_PCREL.
4264         (ix86_legitimate_address_p): Likewise.
4265         (legitimize_pic_address): Likewise.
4266         (output_pic_addr_const): Likewise.
4267         (ix86_delegitimize_address): Likewise.
4268         (ix86_find_base_term): Likewise.
4269         (memory_address_length): Likewise.
4270         (x86_output_mi_thunk): Handle special case x64
4271         for non local binding.
4272         * config/i386/i386.md (UNSPEC_PCREL): New.
4273         * config/i386/winnt.c (i386_pe_binds_local_p):
4274         Allow weak symbol for x64 windows with non-local binding.
4275
4276 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4277
4278         PR target/45670
4279         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
4280         instead of EXPAND_NORMAL for base expansion.
4281
4282 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
4283
4284         * config.gcc: Support --with-fpmath=avx for x86.
4285         * config/i386/avxmath.h: New.
4286         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
4287
4288 2010-11-05  Ian Lance Taylor  <iant@google.com>
4289
4290         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
4291         * gengtype.c (walk_type): Don't recognize descbits option.
4292
4293 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
4294
4295         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
4296         WORD_SWITCH_TAKES_ARG): Remove.
4297         * doc/options.texi (Args): Document.
4298         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
4299         * doc/tm.texi: Regenerate.
4300         * opt-functions.awk (switch_flags): Handle Args.
4301         * opts-common.c: Update comment on tm.h include.
4302         (decode_cmdline_option): Handle options with multiple arguments.
4303         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
4304         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
4305         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4306         CL_COMMON): Update values.
4307         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
4308         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
4309         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
4310         sectobjectsymbols, sectorder, segcreate, segprot): New.
4311
4312 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4313             Uros Bizjak  <ubizjak@gmail.com>
4314
4315         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
4316         256bit AVX register is used.
4317         (ix86_expand_vector_move_misalign): Likewise.
4318         (ix86_expand_vector_move): Replace use_avx256_p with
4319         VALID_AVX256_REG_MODE.
4320
4321 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
4322
4323          PR target/44750
4324         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
4325         change.  Set $@-warn.o to -Wno-error.
4326
4327         PR bootstrap/44756
4328         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
4329         comparing it to a signed value.
4330
4331         PR middle-end/44766
4332         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
4333         PR bootstrap/44770
4334         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
4335         to i.
4336
4337         PR target/44754
4338         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
4339         (m32c_function_arg).  Add comma between arguments two and three.
4340         (m32c_promote_prototypes): Remove declaration.
4341         (current_function_special_page_vector): Likewise.
4342         (m32c_regno_reg_class): Change return type to enum reg_class.
4343         (m32c_pushm_popm): Use add_reg_note.
4344         (m32c_push_rounding): Change return type to unsigned int.
4345         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
4346         enum reload_type.
4347         (m32c_insert_attributes): Constify variable name.
4348         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
4349         (m32c_prepare_shift): Remove variable lref.
4350         (m32c_expand_movcc): Remove variable cmp.
4351         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
4352         (m32c_compare_redundant): Remove variable op2.
4353         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
4354         (m32c_pragma_memregs): Assign the number to target_memregs.
4355         (m32c_pragma_address): Remove variable var_str.
4356         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
4357         enum reg_class.
4358         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
4359         * config/m32c/bitops.md (andsi3): Add default case to switch.
4360         (iorsi3, xorsi3): Likewise.
4361         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
4362         * config/m32c/jump.md (call, call_value): Likewise.
4363         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
4364         (m32c_regno_reg_class): Likewise.
4365         (current_function_special_page_vector): Declare.
4366
4367 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4368
4369         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
4370
4371         PR tree-optimization/46099
4372         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4373         if it is NULL and uid wasn't found in the hash table.  Just fold the
4374         result if it is NULL otherwise.  Insert other potentially needed
4375         stmts right before current stmt instead of on the entry edge.
4376         (struct elv_data): Add gsi and reset fields.
4377         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4378         failed for debug stmt, set dta->reset and return.
4379         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4380         pass GSI through to the callback, handle resetting of debug stmts.
4381         (eliminate_local_variables): Adjust caller.  Process debug stmts
4382         in second phase.
4383
4384         PR middle-end/43690
4385         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4386         {pre,post}{in,de}crement, fail.
4387
4388         PR debug/46307
4389         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4390         * tree-pretty-print.c (dump_generic_node): Likewise.
4391         (op_code_prio): Likewise.
4392         * cfgexpand.c (expand_debug_expr): Likewise.
4393
4394 2010-11-04  Paul Koning  <ni1d@arrl.net>
4395
4396         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4397         constraints.
4398
4399 2010-11-04  Chao-ying Fu  <fu@mips.com>
4400
4401         * configure.ac: Test assembler support for DSP Rev1 mult.
4402         * configure: Regenerate.
4403         * config.in: Regenerate.
4404         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4405         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4406         (CODE_FOR_mips_multu): New define.
4407         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4408         dspr2_32 to dsp_32.
4409         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4410         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4411         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4412         New define_expand patterns.
4413         * config/mips/constraints.md (ka): Update the constraint to test
4414         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4415         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4416         mips_multu): Delete.
4417         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4418         Change target constraint to "ka".
4419         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4420         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4421         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4422         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4423         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4424         (<u>maddsidi4): Likewise.
4425         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4426         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4427
4428 2010-11-04  Paul Koning  <ni1d@arrl.net>
4429
4430         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4431
4432 2010-11-04  Paul Koning  <ni1d@arrl.net>
4433
4434         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4435
4436 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4437
4438         Fixed using the Objective-C 2.0 dot-syntax with class names.
4439         * c-parser.c (c_parser_next_token_starts_declspecs): In
4440         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4441         (c_parser_next_token_starts_declaration): Same.
4442         (c_parser_postfix_expression): Parse the Objective-C 2.0
4443         dot-syntax with a class name.
4444
4445 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4446
4447         * final.c (compute_alignments): Compute/free loop info all the time.
4448         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4449         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4450         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4451         * config/rs6000/rs6000.c (cfgloop.h): Include.
4452         (can_override_loop_align): New.
4453         (rs6000_option_override_internal): Set it.
4454         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4455         (rs6000_loop_align): New function.
4456         (rs6000_loop_align_max_skip): Likewise.
4457
4458 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4459
4460         PR driver/45703
4461         * collect2.c (main): Print --help output to stdout.  Do not
4462         exit right away, so ld --help is appended.  Add empty lines
4463         to separate output suitably.
4464
4465 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4466
4467         PR tree-optimization/46233
4468         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4469         after calling analyze_function, not before.
4470
4471         PR target/46234
4472         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4473         instead of build_va_arg_indirect_ref.
4474         * config/spu/spu.c (spu_va_start): Likewise.
4475         * config/s390/s390.c (s390_va_start): Likewise.
4476
4477 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4478
4479         PR middle-end/46292
4480         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4481         if the innermode is not vector mode, determine the mode of a subreg
4482         by using mode_for_size of inner_size.
4483
4484 2010-11-04  Richard Guenther  <rguenther@suse.de>
4485
4486         PR rtl-optimization/46183
4487         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4488         (execute_rtl_pre): Likewise.
4489         (execute_rtl_hoist): Likewise.
4490
4491 2010-11-04  Richard Guenther  <rguenther@suse.de>
4492
4493         PR tree-optimization/46068
4494         * ipa-split.c (consider_split): Remove gcc_unreachable.
4495
4496 2010-11-04  Richard Guenther  <rguenther@suse.de>
4497
4498         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4499
4500 2010-11-04  Richard Guenther  <rguenther@suse.de>
4501
4502         PR tree-optimization/45991
4503         * gimplify.c (force_gimple_operand_1): Use the provded test
4504         function in the initial test.
4505
4506 2010-11-04  Jeff Law  <law@redhat.com>
4507
4508         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4509         of readonly memory equivalances for const/pure calls.
4510
4511 2010-11-04  Richard Guenther  <rguenther@suse.de>
4512
4513         PR tree-optimization/45733
4514         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4515         permute builtins function return type.
4516
4517 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4518
4519         PR middle-end/44765
4520         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4521         as an index, check it is not INVALID_REGNUM.
4522
4523         PR bootstrap/44756
4524         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4525         unsignedp.
4526         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4527
4528         PR bootstrap/44756
4529         * function.c (thread_prologue_and_epilogue_insns): Add
4530         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4531
4532         PR bootstrap/44756
4533         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4534
4535         PR target/44750
4536         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4537         (pdp11_preferred_reload_class): Rename class to rclass.
4538         (pdp11_preferred_output_reload_class): Likewise.
4539         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4540         ALL_COMPILERFLAGS .
4541         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4542
4543         PR bootstrap/44756
4544         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4545         iteration variables to enum machine_mode.
4546
4547         PR target/44751
4548         * config/h8300/h8300.c: Include df.h.
4549         (push, pop): Use add_reg_note.
4550         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4551         (compute_a_shift_cc): Likewise.
4552         (expand_a_shift): Argument code has type enum rtx_code.
4553         (struct shift_insn): Member cc_valid has type enum attr_cc.
4554         (struct shift_info) <cc_inline, cc_special>: Likewise.
4555         enum attr_cc.
4556         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4557         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4558
4559 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4560
4561         PR tree-optimization/46213
4562         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4563         MINUS_EXPR only if the first operand is reduction operand.
4564
4565 2010-11-04  Richard Guenther  <rguenther@suse.de>
4566             Richard Henderson  <rth@redhat.com>
4567
4568         * tree.def (FMA_EXPR): New tree code.
4569         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4570         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4571         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4572         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4573         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4574         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4575         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4576         dead stmt removal.  Move TODO flags ...
4577         (pass_optimize_widening_mul): ... here.
4578         * flag-types.h (enum fp_contract_mode): New enum.
4579         * common.opt (flag_fp_contract_mode): New variable.
4580         (-ffp-contract): New option.
4581         * opts.c (common_handle_option): Handle it.
4582         * doc/invoke.texi (-ffp-contract): Document.
4583         * tree.h (fold_fma): Declare.
4584         * builtins.c (fold_fma): New function.
4585         (fold_builtin_fma): Likewise.
4586         (fold_builtin_3): Call it for fma.
4587         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4588         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4589         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4590         New expanders.
4591         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4592         named patterns.
4593         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4594         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4595         (fms_optab, fnma_optab, fnms_optab): New defines.
4596         * gimplify.c (gimplify_expr): Handle binary truth expressions
4597         explicitly.  Handle FMA_EXPR.
4598         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4599         operations.
4600
4601 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4602             Richard Guenther  <rguenther@suse.de>
4603
4604         * passes.c (init_optimization_passes): Move veclower after SSA.
4605         * tree-vect-generic.c (uniform_vector_p): New function.
4606         (expand_vector_operations_1): Handle conversion.
4607         (pass_lower_vector): Update SSA form.
4608
4609 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4610
4611         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4612         plugin capabilities.
4613         * configure: Regenerate.
4614
4615 2010-11-03  Xinliang David Li  <davidxl@google.com>
4616
4617         PR target/46200
4618         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4619         Adjust cbase if the use stmt is after iv update.
4620
4621 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4622
4623         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4624
4625 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4626
4627         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4628         comment.  Pass true to the last argument of output_stack_adjust.
4629
4630 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4631
4632         PR target/46295
4633         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4634         if 256bit AVX register is used.
4635
4636 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4637
4638         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4639         xsmindp/xsmaxdp on VSX for single precision min/max.
4640         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4641         (vsx_sminsf3): Ditto.
4642
4643 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4644
4645         * combine.c (try_combine): Fix formatting issues, improve comments and
4646         fix a pasto.
4647
4648 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4649
4650         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4651         of the result before building binary expressions.
4652
4653 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4654
4655         PR rtl-optimization/45865
4656         * Makefile.in (df-problems.o): Revert revision 164552.
4657         * basic-block.h (enum bb_flags): Likewise.
4658         * cfgcleanup.c (block_was_dirty): Likewise.
4659         (try_forward_edges): Likewise.
4660         (try_crossjump_bb): Likewise.
4661         (try_head_merge_bb): Likewise.
4662         (try_optimize_cfg): Likewise.
4663         (cleanup_cfg): Likewise.
4664         * df-core.c (df_set_bb_dirty): Likewise.
4665         * df-problems.c: Likewise.
4666         (df_simulate_find_uses): Likewise.
4667         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4668         (find_memory, find_memory_store): Likewise.
4669         (can_move_insns_across): Likewise.
4670         * df.h (can_move_insns_across): Likewise.
4671         * ifcvt.c (find_memory): Likewise.
4672         (dead_or_predicable): Likewise.
4673
4674 2010-11-03  Richard Guenther  <rguenther@suse.de>
4675
4676         PR middle-end/46288
4677         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4678         the result is unused.
4679
4680 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4681
4682         PR tree-optimization/46009
4683         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4684         cond_if_else_store_replacement if bb1 and bb2 have the same
4685         single successor.
4686         (cond_store_replacement): Use gimple_assign_single_p, don't
4687         check if rhs is SSA_NAME or invariant.  Call release_defs for
4688         assign.
4689         (cond_if_else_store_replacement): New function.
4690
4691 2010-11-03  Richard Guenther  <rguenther@suse.de>
4692
4693         * opts.c (finish_options): Properly check for all WHOPR
4694         flags before complaining about -flto-partition.
4695
4696 2010-11-04  Alan Modra  <amodra@gmail.com>
4697
4698         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4699         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4700         TARGET_SECURE_PLT.
4701         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4702         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4703         on input, "r" on output.
4704
4705 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4706
4707         Implemented -fobjc-std=objc1 flag.
4708         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4709         option.
4710         * doc/standards.texi (Standards): Updated the section on
4711         Objective-C; mention support for Objective-C 2.0 features and the
4712         new -fstd-objc=objc1 flag to disable them.
4713
4714 2010-11-03  Richard Guenther  <rguenther@suse.de>
4715
4716         PR middle-end/46241
4717         * dwarf2out.c (scope_die_for): Properly detect global scope.
4718
4719 2010-11-03  Richard Guenther  <rguenther@suse.de>
4720
4721         PR tree-optimization/46190
4722         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4723         Properly compute peel iterations.
4724
4725 2010-11-03  Richard Guenther  <rguenther@suse.de>
4726
4727         PR tree-optimization/46286
4728         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4729         re-allocated vector data.
4730
4731 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4732
4733         PR target/46285
4734         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4735         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4736         is completed.
4737
4738 2010-11-03  Richard Guenther  <rguenther@suse.de>
4739
4740         PR tree-optimization/46217
4741         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4742         flag matches.
4743         (execute_update_addresses_taken): Likewise.
4744
4745 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4746
4747         PR bootstrap/44335
4748         * targhooks.c (targhook_words_big_endian): New function.
4749         (targhook_float_words_big_endian): Likewise.
4750         * targhooks.h (targhook_words_big_endian): Declare.
4751         (targhook_float_words_big_endian): Likewise.
4752         * target.def (words_big_endian, float_words_big_endian): New hooks.
4753
4754 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4755
4756         PR tree-optimization/46165
4757         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4758         a normal call into noreturn call.
4759
4760 2010-11-03  Richard Guenther  <rguenther@suse.de>
4761
4762         PR middle-end/46251
4763         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4764         not INDIRECT_REFs.
4765
4766 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4767
4768         PR tree-optimization/46107
4769         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4770         if cfg_hook_duplicate_loop_to_header_edge failed.
4771
4772 2010-11-03  Ian Lance Taylor  <iant@google.com>
4773
4774         PR lto/46273
4775         * config.gcc: Don't set lto_binary_reader.
4776         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4777         (Configuration): Mention --disable-lto.  Remove --with-libelf
4778         paragraph.
4779
4780 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4781
4782         PR debug/46252
4783         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4784         prev_real_insn.
4785         * gcse.c (insert_insn_end_basic_block): Likewise.
4786
4787         PR rtl-optimization/46034
4788         PR rtl-optimization/46212
4789         PR rtl-optimization/46248
4790         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4791         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4792         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4793         argument to subst on i2pat.
4794
4795 2010-11-02  Ian Lance Taylor  <iant@google.com>
4796
4797         * configure.ac: Use AC_SYS_LARGEFILE.
4798         * configure: Rebuild.
4799         * config.in: Rebuild.
4800
4801 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4802
4803         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4804         fold_convert.
4805         * c-typeck.c (build_function_call_vec): Likewise.
4806         * cfgexpand.c (expand_debug_expr): Likewise.
4807         * cgraphunit.c (assemble_thunk): Likewise.
4808         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4809         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4810         (fold_binary_loc, fold_ternary_loc): Likewise.
4811         * gimple-fold.c (get_symbol_constant_value): Likewise.
4812         * gimple-low.c (lower_builtin_setjmp): Likewise.
4813         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4814         * gimplify.c (gimplify_init_constructor): Likewise.
4815         * lambda.h (build_linear_expr): Likewise.
4816         * omp-low.c (omp_reduction_init): Likewise.
4817         * tree-inline.c (remap_ssa_name): Likewise.
4818         * tree-object-size.c (compute_object_sizes): Likewise.
4819         * tree-sra.c (init_subtree_with_zero): Likewise.
4820         (sra_ipa_modify_assign): Likewise.
4821         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4822         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4823         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4824         (undistribute_ops_list): Likewise.
4825         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4826         * tree-vect-stmts.c (vectorizable_call): Likewise.
4827         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4828         (build_zero_cst): Handle more cases directly.  Update comment.
4829
4830 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4831
4832         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4833         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4834
4835         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4836         and call ix86_split_call_vzeroupper instead of
4837         ix86_split_call_pop_vzeroupper.
4838         (*call_pop_1_vzeroupper): Likewise.
4839         (*sibcall_pop_1_vzeroupper): Likewise.
4840         (*call_value_pop_0_vzeroupper): Likewise.
4841         (*call_value_pop_1_vzeroupper): Likewise.
4842         (*sibcall_value_pop_1_vzeroupper): Likewise.
4843
4844 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4845
4846         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4847
4848 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4849
4850         * basic-block.h (insert_insn_end_bb_new): Delete.
4851         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
4852
4853 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
4854             H.J. Lu  <hongjiu.lu@intel.com>
4855
4856         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
4857         (ix86_split_call_pop_vzeroupper): Likewise.
4858
4859         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
4860         (ix86_expand_call): Conditionally decorate calls with
4861         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
4862         (ix86_split_call_vzeroupper): New.
4863         (ix86_split_call_pop_vzeroupper): Likewise.
4864
4865         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
4866         (*call_pop_0_vzeroupper): New insn_and_split pattern.
4867         (*call_pop_1_vzeroupper): Likewise.
4868         (*sibcall_pop_1_vzeroupper): Likewise.
4869         (*call_0_vzeroupper): Likewise.
4870         (*call_1_vzeroupper): Likewise.
4871         (*sibcall_1_vzeroupper): Likewise.
4872         (*call_1_rex64_vzeroupper): Likewise.
4873         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
4874         (*call_1_rex64_large_vzeroupper): Likewise.
4875         (*sibcall_1_rex64_vzeroupper): Likewise.
4876         (*call_value_pop_0_vzeroupper): Likewise.
4877         (*call_value_pop_1_vzeroupper): Likewise.
4878         (*sibcall_value_pop_1_vzeroupper): Likewise.
4879         (*call_value_0_vzeroupper): Likewise.
4880         (*call_value_0_rex64_vzeroupper): Likewise.
4881         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
4882         (*call_value_1_vzeroupper): Likewise.
4883         (*sibcall_value_1_vzeroupper): Likewise.
4884         (*call_value_1_rex64_vzeroupper): Likewise.
4885         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
4886         (*call_value_1_rex64_large_vzeroupper): Likewise.
4887         (*sibcall_value_1_rex64_vzeroupper): Likewise.
4888
4889 2010-11-02  Ian Lance Taylor  <iant@google.com>
4890
4891         PR lto/46273
4892         * config.gcc: Revert last patch: set lto_binary_reader.
4893
4894 2010-11-02  Richard Guenther  <rguenther@suse.de>
4895
4896         PR tree-optimization/46149
4897         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
4898         non-indirect MEM_REF variants.
4899
4900 2010-11-02  Richard Guenther  <rguenther@suse.de>
4901
4902         PR tree-optimization/46216
4903         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4904         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
4905
4906 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4907
4908         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
4909         (*-*-osf*): Likewise.
4910         * configure: Regenerate.
4911
4912 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4913
4914         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
4915         for Intel Core 2 and Core i7.
4916
4917 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
4918
4919         Model decoder of Core 2/i7 for multipass scheduling.
4920
4921         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
4922         New type to hold target-specific data for multipass scheduling.
4923         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4924         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
4925         Core 2/i7.
4926         (core2i7_secondary_decoder_max_insn_size,)
4927         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
4928         New static variables.
4929         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
4930         ([_]ix86_first_cycle_multipass_data): New static variable.
4931         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
4932         Implement targetm.sched hooks.
4933         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
4934         of ...
4935         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
4936         Implement new targetm.sched hooks.
4937         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
4938         targetm.sched hook to install multipass scheduling hooks on demand.
4939
4940         * doc/tm.texi.in: Document new targetm.sched hooks.
4941         * doc/tm.texi: Regenerate.
4942
4943         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4944         (first_cycle_multipass_data_t): New typedef.
4945         (struct choice_entry: target_data): New field.
4946         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
4947         to allow target model restrictions not represented in DFA.
4948         (choose_ready, schedule_block): Update.
4949         (sched_extend_ready_list, sched_finish_ready_list): Call new target
4950         hooks to initialize target-specific data for multipass scheduling.
4951         * sched-int.h (max_issue): Update declaration.
4952         * sel-sched.c (choose_best_insn): Update.
4953         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
4954         (first_cycle_multipass_{init, fini}): Define and document new
4955         targetm.sched hooks.
4956
4957 2010-11-02  Richard Guenther  <rguenther@suse.de>
4958
4959         PR tree-optimization/46184
4960         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
4961         input vector type from the reduction operand as well.
4962
4963 2010-11-02  Richard Guenther  <rguenther@suse.de>
4964
4965         PR tree-optimization/46177
4966         * tree-loop-distribution.c (prop_phis): Use
4967         mark_virtual_phi_result_for_renaming.
4968
4969 2010-11-02  Martin Jambor  <mjambor@suse.cz>
4970
4971         PR middle-end/46120
4972         * tree.c (get_binfo_at_offset): Bail out on artificial
4973         fields.  Identify primary bases according to their offsets.
4974
4975 2010-11-02  Martin Jambor  <mjambor@suse.cz>
4976
4977         PR tree-optimization/45875
4978         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
4979         (gimple_get_relevant_ref_binfo): Detect primary bases according to
4980         their field offset.
4981
4982 2010-11-02  Ian Lance Taylor  <iant@google.com>
4983
4984         * doc/install.texi (Configuration): Note in two places that Java
4985         is not enabled by default.
4986
4987 2010-11-02  Ian Lance Taylor  <iant@google.com>
4988
4989         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4990         (Configuration): Mention --disable-lto.  Remove --with-libelf
4991         paragraph.
4992
4993 2010-11-02  Ian Lance Taylor  <iant@google.com>
4994
4995         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
4996         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
4997         LIBELFINC.  Remove HAVE_libelf.
4998         * config.gcc: Don't set lto_binary_reader.
4999         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5000         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5001         (LIBS): Remove $(LIBELFLIBS).
5002         (INCLUDES): Remove $(LIBELFINC).
5003         * configure: Rebuild.
5004         * config.in: Rebuild.
5005
5006 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5007
5008         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5009         (function_arg_advance): Delete.
5010         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5011         (FUNCTION_ARG): Delete.
5012         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5013         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5014         const_tree and a bool.
5015         (function-arg): Rename to...
5016         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5017         and a bool.
5018         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5019         targetm.calls.function_arg_advance.
5020         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5021
5022 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5023
5024         Merge from FSF "apple/trunk" branch.
5025
5026         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5027         * config/darwin.opt: .. to here.
5028         (matt-stubs): New option.
5029         * config/i386/darwin.opt: Delete.
5030         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5031         (MACHO_DYNAMIC_NO_PIC_P): New.
5032         (MACHOPIC_INDIRECT): New.
5033         (MACHOPIC_PURE): New.
5034         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5035         (MACHOPIC_ATT_STUB): New.
5036         (CC1_SPEC): Do not remove mdynamic-no-pic.
5037         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5038         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5039         (FUNCTION_PROFILER): Correct over-length line.
5040         (SUBTARGET_OVERRIDE_OPTIONS): New.
5041         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5042         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5043         (legitimate_constant_p): Handle mdynamic-no-pic.
5044         (ix86_legitimate_address_p): Likewise.
5045         (ix86_legitimize_address): Likewise.
5046         (ix86_expand_move): Likewise.
5047         (machopic_output_stub): Update for ATT-style stubs and
5048         mdynamic-no-pic.
5049         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5050         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5051         TARGET_DYNAMIC_NO_PIC: Remove.
5052         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5053         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5054         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5055         Remove handling of mdynamic-no-pic.
5056         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5057         Define if required.
5058         (machopic_symbol_defined_p): Do not try to use current_function_decl
5059         when generating _get_pc thunks within stubs.
5060         (machopic_indirect_data_reference): Rework for direct conditionals
5061         rather than #ifdefs, add x86 mdynamic-no-pic
5062         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5063         defined value.
5064         (darwin_override_options): Handle mdynamic-no-pic here.
5065         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5066         (machopic_lazy_symbol_ptr3_section): New.
5067         (machopic_picsymbol_stub2_section): New.
5068         (machopic_picsymbol_stub3_section): New.
5069         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5070         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5071         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5072         Moved common definition from x86 and rs6000.
5073         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5074         (MACHOPIC_INDIRECT): Likewise.
5075         (MACHOPIC_PURE): Likewise.
5076         * config.gcc (x86-darwin-*): Remove darwin.opt.
5077
5078 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5079
5080         PR debug/46255
5081         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5082         instead of gsi_last_bb.
5083
5084 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5085             Maxim Kuvyrkov  <maxim@codesourcery.com>
5086
5087         * config/i386/i386.c (cpu_names): Add "corei7".
5088         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5089
5090 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5091             Maxim Kuvyrkov  <maxim@codesourcery.com>
5092
5093         Tune alignment for Intel Core i7
5094
5095         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5096         (enum processor_type): Update comment.  Add entries for Core i7.
5097         * config/i386-c.c (ix86_target_macros_internal): Update.
5098         * config/i386.c (m_COREI7{_32,_64}): New macros.
5099         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5100         (processor_target_table): Tune alignment for Core i7.
5101         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5102
5103         * doc/invoke.texi: Document "corei7" option value.
5104
5105 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5106             Maxim Kuvyrkov  <maxim@codesourcery.com>
5107             H.J. Lu  <hjl.tools@gmail.com>
5108
5109         Basic support for Intel Core i7
5110
5111         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5112         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5113
5114 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5115
5116         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5117         sections and call darwin_asm_dwarf_section() to handle them.
5118         (darwin_asm_dwarf_section): New.
5119         (darwin_file_start): Remove code emitting dwarf section symbols.
5120
5121 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5122
5123         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5124         explicitly disable stack protection when building libgcc.
5125         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5126
5127 2010-11-01  Jason Merrill  <jason@redhat.com>
5128
5129         * fold-const.c (fold_indirect_ref_1): Handle folding
5130         POINTER_PLUS_EXPR to ARRAY_REF.
5131
5132 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5133
5134         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5135         (sh_delegitimize_address): New function.
5136
5137 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5138
5139         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5140         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5141         (CC1_SPEC): Don't handle -target.
5142         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5143         options.
5144         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5145         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5146         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5147         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5148         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5149         Zweak_reference_mismatches, client_name, compatibility_version,
5150         current_version, dylinker_install_name, pagezero_size,
5151         read_only_relocs, seg1addr, segs_read_only_addr,
5152         segs_read_write_addr, sub_library, sub_umbrella): New.
5153         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5154         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5155         * config/freebsd.opt: New.
5156         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5157         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5158         * config/rpath.opt: New.
5159         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5160         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5161         Use rpath.opt.
5162
5163 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5164
5165         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5166         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5167         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5168         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5169         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5170         Document that options in .opt files do not need to be included.
5171         * doc/tm.texi: Regenerate.
5172         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5173         * opts-common.c: Update comment on tm.h include.
5174         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5175         * system.h (SWITCH_TAKES_ARG): Poison.
5176         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5177         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5178         in darwin.opt.
5179         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5180         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5181         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5182         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5183         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5184         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5185         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5186         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5187         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5188         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5189         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5190         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5191         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5192         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5193         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5194         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5195         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5196         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5197         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5198         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5199         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5200         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5201         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5202         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5203
5204 2010-11-01  Paul Koning  <ni1d@arrl.net>
5205
5206         * config/pdp11/pdp11.md: Use iterators.
5207         (addqi3, subqi3, iorsi3, xorsi3): Delete.
5208
5209 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
5210
5211         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
5212         GCC_INSN_FLAGS_H.
5213         * libgcov.c (__gcov_indirect_call_profiler): Set
5214         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
5215         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
5216
5217 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5218
5219         PR tree-optimization/46259
5220
5221         Revert:
5222         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5223         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
5224         build_vector_from_val.
5225
5226 2010-11-01  DJ Delorie  <dj@redhat.com>
5227
5228         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
5229         as well as an assertion.
5230
5231 2010-11-01  Paul Koning  <ni1d@arrl.net>
5232
5233         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
5234         complex modes in memory.
5235
5236 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5237
5238         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
5239
5240 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
5241
5242         PR target/45250
5243         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
5244         (cfa_base_offset): New variable.
5245         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
5246         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
5247         is NULL.
5248         (vt_init_cfa_base): Initialize cfa_base_offset.
5249
5250 2010-11-01  Alan Modra  <amodra@gmail.com>
5251
5252         PR target/46030
5253         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
5254         and savres_strategy.
5255         (stack_info): New file scope var.
5256         (rs6000_init_machine_status): Init stack_info.
5257         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
5258         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5259         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
5260         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
5261         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
5262         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
5263         (rs6000_savres_strategy): Rewrite.
5264         (rs6000_stack_info): Use "stack_info" in place of local "info".
5265         Return cached stack info when reload_completed unless ENABLE_CHECKING
5266         in which case confirm newly calculated stack info matches old info.
5267         Delay calculation of lr_save_p, set it for out of line gp save/restore
5268         as well as fp.  Call rs6000_savres_strategy from here..
5269         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
5270         (rs6000_output_function_prologue): Use info->savres_strategy to
5271         determine whether fp save/restore externs need to be emitted.
5272
5273 2010-10-31  Jason Merrill  <jason@redhat.com>
5274
5275         * tree.h (EXPR_LOC_OR_HERE): New macro.
5276         * builtins.c (c_strlen): Use it.
5277         * c-decl.c (build_enumerator): Likewise.
5278         * gimplify.c (internal_get_tmp_var): Likewise.
5279         (shortcut_cond_expr): Likewise.
5280         (gimplify_one_sizepos): Likewise.
5281
5282 2010-10-31  Richard Henderson  <rth@redhat.com>
5283
5284         * config/i386/cygming.h (TARGET_SEH): New.
5285         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
5286         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
5287         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
5288         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
5289         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
5290         (ASM_DECLARE_FUNCTION_SIZE): New.
5291         * config/i386/i386-protos.h: Update.
5292         * config/i386/i386.c (ix86_option_override_internal): Enable
5293         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
5294         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
5295         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
5296         (ix86_compute_frame_layout): For SEH, disable
5297         use_fast_prologue_epilogue, move frame pointer to the end of
5298         the frame.  Initialize hfp_save_offset.
5299         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
5300         at end of prologue for SEH.
5301         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
5302         emit blockage at beginning of epilogue.
5303         (ix86_expand_binary_operator): After reload, emit LEA if needed.
5304         (ix86_output_call_insn): New.
5305         * config/i386/i386.h (TARGET_SEH): New.
5306         (struct machine_function): Add member seh.
5307         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
5308         * config/i386/winnt.c (struct seh_frame_state): New.
5309         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
5310         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
5311         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
5312         i386_pe_start_function, i386_pe_end_function): New.
5313
5314         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
5315         as CFA_STORE in rules 12 and 13.
5316
5317 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
5318
5319         PR tree-optimization/46142
5320         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
5321         accommodate third function argument.
5322
5323 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5324
5325         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
5326
5327 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5328
5329         * fold-const.c (build_zero_vector): Use build_vector_from_val.
5330         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
5331         (get_initial_def_for_reduction): Likewise.
5332         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5333         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
5334         * tree.c (build_one_cst): Likewise.
5335         (build_vector_from_val): Use types_compatible_p for assert.
5336
5337 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5338
5339         * emit-rtl.c (mark_used_flags): New function.
5340         (set_used_flags, reset_used_flags): Call it.
5341
5342 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
5343
5344         PR middle-end/44569
5345         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
5346         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
5347
5348 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
5349
5350         PR target/46195
5351         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
5352         (ix86_compat_aligned_value_p): This.
5353         (ix86_old_function_arg_boundary): Renamed to ...
5354         (ix86_compat_function_arg_boundary): This.  Updated.
5355         (ix86_contains_aligned_value_p): New.
5356         (ix86_function_arg_boundary): Align long double parameters on
5357         stack to 4byte in 32bit.
5358
5359 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
5360
5361         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
5362         * c-parser.c (c_parser_objc_at_property_declaration): Removed
5363         parsing of RID_COPIES and RID_IVAR.  Updated call to
5364         objc_add_property_declaration.
5365         * c-typecheck.c (build_component_ref): Call
5366         objc_maybe_build_component_ref instead of objc_build_setter_call.
5367         Use objc_is_property_ref to improve Objective-C checks.
5368         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
5369         of objc_build_getter_call.
5370
5371 2010-10-29  Paul Koning  <ni1d@arrl.net>
5372
5373         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5374         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5375         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5376         (REG_OK_STRICT): Move description.
5377
5378 2010-10-29  Paul Koning  <ni1d@arrl.net>
5379
5380         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5381
5382 2010-10-29  Paul Koning  <ni1d@arrl.net>
5383
5384         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5385
5386 2010-10-29  Paul Koning  <ni1d@arrl.net>
5387
5388         PR/41822
5389         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5390
5391 2010-10-29  Richard Henderson  <rth@redhat.com>
5392
5393         PR rtl-opt/46226
5394         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5395         for asm goto.
5396
5397 2010-10-29  Paul Koning  <ni1d@arrl.net>
5398
5399         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5400         register to register move.
5401
5402 2010-10-29  Paul Koning  <ni1d@arrl.net>
5403
5404         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5405         of integer constant addresses, delete vax-only logic.
5406
5407 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5408
5409         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5410         a conditional expression.
5411
5412 2010-10-29  Paul Koning  <ni1d@arrl.net>
5413
5414         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5415         instruction encoding.
5416
5417 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5418             Andrew Pinski  <pinskia@gmail.com>
5419
5420         * tree.h (build_vector_from_val): Declare.
5421         * tree.c (build_vector_from_val): New function.
5422         * c-typeck.c (build_binary_op): Handle vector shifting.
5423         * doc/extend.texi: Description of the vector shifting operation.
5424
5425 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5426
5427         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5428         pdp11_secondary_memory_needed): Declare.
5429         * config/pdp11/predicates.md (float_operand): New predicate.
5430         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5431         (cbranchdf4, movdf): Change predicate.
5432         (movsf): Handle FPU register case.
5433         (truncdfsf2, extendsfdf2): Add FPU register case.
5434         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5435         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5436         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5437         (pdp11_register_move_cost): Update cost matrix.
5438         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5439         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5440         pdp11_secondary_memory_needed): New function.
5441         (pdp11_return_in_memory): Add other float types.
5442         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5443         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5444         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5445         REGISTER_MOVE_COST): Delete.
5446         (BASE_RETURN_VALUE_REG): Add other float types.
5447
5448 2010-10-29  Nick Clifton  <nickc@redhat.com>
5449
5450         * doc/invoke.texi: Document -mam34 and -mtune options.
5451         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5452         (mn10300_tune_cpu): New variable.
5453         (mn10300_handle_option): Handle -mam34 and -mtune options.
5454         (mn10300_option_override): Convert tune string into tune cpu variable.
5455         (mn10300_legitimate_constant_p): Delete unused local variable.
5456         (is_load_insn): New function.
5457         (is_store_insn): New function.
5458         (mn10300_adjust_schedule_cost): New function.
5459         (TARGET_SCHED_ADJUST_COST): Define.
5460         * config/mn10300/mn10300.opt (mam34): New option.
5461         (mtune): New option.
5462         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5463         (enum processor_type): Add AM34.
5464         (TARGET_AM34): Define.
5465         * config/mn10300/mn10300.md (attr cpu): Add am34.
5466         Add pipeline description.
5467         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5468         Remove unneeded alternatives.  Add timing attribute.
5469         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5470         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5471         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5472         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5473         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5474         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5475         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5476         float_conditional_branch, jump, indirect_jump, tablejump,
5477         call_internal, call_value_internal, zero_extendqisi2_am33,
5478         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5479         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5480         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5481         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5482         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5483         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5484         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5485         return_internal_regs, store_movm, return, call_next_insn):
5486         Add timing attribute.
5487         (am33_subsi3): Add missing clobber of CC_REG.
5488         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5489         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5490         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5491         extendqisi2): Fix predicates.
5492         (call_internal, call_internal_value): Separate alternatives.
5493         * config/mn10300/t-mn10300: Add AM34 multilib.
5494
5495 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5496
5497         * config/sh/sh.c (sh_promote_function_mode): Use
5498         default_promote_function_mode if !sh_promote_prototypes.
5499
5500 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5501
5502         * recog.c (split_all_insns): Remove dead code.
5503
5504 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5505
5506         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5507
5508 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5509
5510         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5511         (FUNCTION_ARG_ADVANCE): Delete.
5512         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5513         functions.
5514         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5515         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5516         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5517
5518 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5519
5520         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5521         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5522         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5523         Take a const_tree and a bool.
5524         (mcore_function_arg_advance): New function.
5525         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5526
5527 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5528
5529         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5530         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5531         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5532         Take a const_tree and a bool.
5533         (mcore_function_arg_advance): New function.
5534         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5535
5536 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5537
5538         * config/h8300/h8300-protos.h (function_arg): Delete.
5539         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5540         * config/h8300/h8300.c (function_arg): Rename to...
5541         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5542         a bool.
5543         (h8300_function_arg_advance): New function.
5544         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5545
5546 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5547
5548         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5549         to...
5550         * config/arc/arc.c (arc_function_arg): ...here and...
5551         (arc_function_arg_advance): ...here.  New functions.
5552         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5553
5554 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5555
5556         * config/crx/crx-protos.h (crx_function_arg): Delete.
5557         (crx_function_arg_advance): Delete.
5558         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5559         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5560         const_tree and a bool.
5561         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5562         (enough_regs_for_param): Take a const_tree.
5563         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5564
5565 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5566
5567         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5568         (m68hc11_function_arg_advance): Delete.
5569         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5570         (FUNCTION_ARG_ADVANCE): Delete.
5571         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5572         Take a const_tree and a bool.
5573         (m68hc11_function_arg_advance): Likewise.
5574         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5575
5576 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5577
5578         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5579         (xstormy16_function_arg_advance): Delete.
5580         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5581         (FUNCTION_ARG_ADVANCE): Delete.
5582         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5583         Take a const_tree and a bool.
5584         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5585         the CUM parameter instead.
5586         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5587
5588 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5589
5590         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5591         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5592         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5593         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5594         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5595         (moxie_function_arg_advance): New function.
5596         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5597
5598 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5599
5600         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5601         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5602         (FUNCTION_ARG_ADVANCE): Delete.
5603         * config/mn10300/mn10300.c (function_arg): Rename to...
5604         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5605         and a bool.
5606         (mn10300_function_arg_advance): New function.
5607         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5608
5609 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5610
5611         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5612         (function_arg_advance): Delete.
5613         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5614         * config/iq2000/iq2000.c (function_arg): Rename to...
5615         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5616         a bool.
5617         (function_arg_advance): Rename to...
5618         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5619         const_tree and a bool.
5620         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5621         iq2000_function_arg.
5622         (iq2000_pass_by_reference): Call iq2000_function_arg).
5623         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5624
5625 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5626
5627         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5628         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5629         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5630         const_tree.
5631         (fr30_function_arg): New function.
5632         (fr30_function_arg_advance): New function.
5633         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5634
5635 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5636
5637         * config/frv/frv-protos.h (frv_function_arg): Delete.
5638         (frv_function_arg_advance): Delete.
5639         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5640         * config/frv/frv.c (frv_function_arg): Rename to...
5641         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5642         (frv_function_arg, frv_function_incoming_arg): New functions.
5643         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5644         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5645         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5646
5647 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5648
5649         PR target/46153
5650         * config/i386/sse.md (sse_movhlps_exp): Use destination
5651         returned from ix86_fixup_binary_operands to expand insn.
5652         (sse_movlhps_exp): Ditto.
5653         (sse_loadhps_exp): Ditto.
5654         (sse_loadlps_exp): Ditto.
5655         (sse2_loadhpd_exp): Ditto.
5656         (sse2_loadlpd_exp): Ditto.
5657
5658 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5659
5660         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5661         constants in thumb2.
5662
5663 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5664
5665         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5666         arithmetics in masking operations.
5667         (contains_muldiv): Likewise.
5668         (try_combine): Likewise.
5669         (find_split_point): Likewise.
5670         (combine_simplify_rtx): Likewise.
5671         (simplify_if_then_else): Likewise.
5672         (simplify_set): Likewise.
5673         (expand_compound_operation): Likewise.
5674         (expand_field_assignment): Likewise.
5675         (make_extraction): Likewise.
5676         (extract_left_shift): Likewise.
5677         (make_compound_operation): Likewise.
5678         (force_to_mode): Likewise.
5679         (make_field_assignment): Likewise.
5680         (reg_nonzero_bits_for_combine): Likewise.
5681         (simplify_shift_const_1): Likewise.
5682         (simplify_comparison): Likewise.
5683
5684 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5685
5686         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5687         (ia64_function_arg_advance): Delete.
5688         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5689         (FUNCTION_ARG_ADVANCE): Delete.
5690         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5691         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5692         bool arguments.
5693         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5694         (ia64_function_arg_advance): Make static.  Take a const_tree and
5695         a bool.
5696         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5697         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5698
5699 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5700
5701         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5702         (TARGET_GET_RAW_ARG_MODE): New.
5703         * doc/tm.texi: Regenerate.
5704         * target.def (get_raw_result_mode): New.
5705         (get_raw_arg_mode): New.
5706         * targhooks.c (default_get_reg_raw_mode): New.
5707         * targhooks.h (default_get_reg_raw_mode): New.
5708         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5709         (apply_result_size): Ditto.
5710         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5711         (TARGET_GET_RAW_RESULT_MODE): Define.
5712         (TARGET_GET_RAW_ARG_MODE): Ditto.
5713
5714 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5715
5716         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5717         for newer Solaris 10 release.
5718         (sparc_fallback_frame_state): Likewise.
5719
5720 2010-10-27  Jason Merrill  <jason@redhat.com>
5721
5722         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5723         variables sooner.
5724
5725 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5726             Maxim Kuvyrkov  <maxim@codesourcery.com>
5727
5728         * haifa-sched.c (ISSUE_POINTS): Remove.
5729         (max_issue): Don't issue more than issue_rate instructions.
5730
5731 2010-10-27  Ian Lance Taylor  <iant@google.com>
5732
5733         PR target/46197
5734         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5735         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5736         UNSPECV_SPLIT_STACK_RETURN.
5737
5738 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5739
5740         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5741
5742         * config/i386/i386.c (block_info): New.
5743         (BLOCK_INFO): Likewise.
5744         (call_avx256_state): Likewise.
5745         (check_avx256_stores): Likewise.
5746         (move_or_delete_vzeroupper_2): Likewise.
5747         (move_or_delete_vzeroupper_1): Likewise.
5748         (move_or_delete_vzeroupper): Likewise.
5749         (use_avx256_p): Likewise.
5750         (function_pass_avx256_p): Likewise.
5751         (flag_opts): Add -mvzeroupper.
5752         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5753         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5754         is disabled.
5755         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5756         generate vzeroupper.
5757         (init_cumulative_args): Add an int to indicate caller.  Set
5758         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5759         based on return type.
5760         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5761         caller_pass_avx256_p based on argument type.
5762         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5763         is used, but not returned by caller.
5764         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5765         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5766         is used.
5767         (ix86_minimum_alignment): Likewise.
5768         (ix86_expand_special_args_builtin): Set target to
5769         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5770         (ix86_reorg): Run the vzeroupper optimization if needed.
5771
5772         * config/i386/i386.h (ix86_args): Add caller.
5773         (INIT_CUMULATIVE_ARGS): Updated.
5774         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5775         caller_pass_avx256_p, caller_return_avx256_p,
5776         callee_pass_avx256_p and callee_return_avx256_p.
5777
5778         * config/i386/i386.opt (-mvzeroupper): New.
5779
5780         * config/i386/predicates.md (vzeroupper_operation): Removed.
5781
5782         * config/i386/sse.md (avx_vzeroupper): Removed.
5783         (*avx_vzeroupper): Removed.
5784         (avx_vzeroupper): New.
5785
5786         * doc/invoke.texi: Document -mvzeroupper.
5787
5788 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5789
5790         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5791         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5792         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5793
5794 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5795             Olivier Hainque  <hainque@adacore.com>
5796
5797         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5798         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5799         fs->signal_frame instead.
5800
5801 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5802
5803         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5804         parsing of RID_COPIES and RID_IVAR.
5805
5806 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5807
5808         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5809         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5810         Do not use objc_set_property_attr, but use local variables
5811         instead.  Detect repeated usage of setter, getter and ivar
5812         attributes.  Improved error processing when a setter name does not
5813         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5814         that the token is a keyword.  Updated call to
5815         objc_add_property_declaration.
5816
5817 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5818
5819         * c-parser.c (c_parser_objc_at_property): Renamed to
5820         c_parser_objc_at_property_declaration.  Updated calls to
5821         objc_add_property_variable, now objc_add_property_declaration.
5822         Code rewritten to be much more robust in recovering from syntax
5823         errors.  Added comments.
5824         (c_parser_objc_property_attrlist): Removed.
5825         (c_parser_external_declaration): Updated calls to
5826         c_parser_objc_at_property, now
5827         c_parser_objc_at_property_declaration.
5828         (c_parser_objc_methodprotolist): Same change.
5829
5830 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5831
5832         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5833
5834 2010-10-26  Jan Hubicka  <jh@suse.cz>
5835
5836         * ipa.c (process_references): Enqueue all referenced nodes;
5837         mark as reachable only non-external nodes.
5838         (cgraph_remove_unreachable_nodes): All referenced nodes should
5839         be enqueued; remove bogues node->needed check.
5840
5841 2010-10-26  Jan Hubicka  <jh@suse.cz>
5842
5843         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5844         to represent OMP.
5845
5846 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5847
5848         * config/i386/i386.md (split_stack_return): Replace
5849         unspec_volatile with unspec.
5850
5851 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
5852
5853         * doc/install.texi: Fix typo in --with-sysroot description.
5854
5855 2010-10-26  Jan Hubicka  <jh@suse.cz>
5856
5857         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
5858         Use info provided by linker plugin.
5859
5860 2010-10-26  Jason Merrill  <jason@redhat.com>
5861
5862         * varasm.c (constructor_static_from_elts_p): Don't require a
5863         CONSTRUCTOR to have elements to be suitable for static
5864         initialization.  Allow ARRAY_TYPE as well.
5865
5866 2010-10-26  Jan Hubicka  <jh@suse.cz>
5867
5868         PR middle-end/45736
5869         * cgraph.c (cgraph_set_readonly_flag): Rename to...
5870         (cgraph_set_const_flags) ... this one; get also looping argument;
5871         clear constructor/destructor flags.
5872         (cgraph_set_pure_flag): Likewise.
5873         (cgraph_set_looping_const_or_pure_flag): Remove.
5874         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
5875         to optimize away static ctors/dtors; it does not work on inline clones;
5876         external functions can always be rmeoved.
5877         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
5878         inline clones; in LTO external functions always can go.
5879         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
5880         (cgraph_mark_address_taken_node): Assert that we are not taking
5881         address of inline clone.
5882         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
5883         external functions.
5884         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
5885         address taken.
5886         (ipcp_initialize_node_lattices): Only local functions can be
5887         handled without cloning.
5888         * cgraph.h (cgraph_set_readonly_flag,
5889         cgraph_set_looping_const_or_pure_flag): Remove.
5890         (cgraph_set_const_flag): Declare.
5891         (cgraph_set_pure_flag): Update.
5892         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
5893         flags setting code.
5894         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
5895         look at inline clones; fix handling of external definitions.
5896         (cgraph_postorder): Do not look at inline clones in the first pass.
5897         (function_and_variable_visibility): Drop constructors/destructor
5898         flags at pure and const functions.
5899         * tree-profile.c (tree_profiling): Update.
5900         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
5901         address taken; external functions do not account to whole program size.
5902         (cgraph_decide_inlining): Likewise; do not try to inline
5903         functions already inlined.
5904
5905 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5906
5907         * doc/invoke.texi: Improve documentation of
5908         -fstrict-volatile-bitfields.
5909
5910 2010-10-26  Ira Rosen  <irar@il.ibm.com>
5911
5912         PR tree-optimization/46167
5913         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
5914         is basic block for the statement.
5915
5916 2010-10-26  Paul Koning  <ni1d@arrl.net>
5917
5918         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
5919         current definition of struct_real_format.
5920
5921 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5922
5923         PR target/44948
5924         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
5925         (ix86_function_arg_boundary): Always align parameters on stack
5926         in 64bit and align parameters with alignment >= 16byte on stack
5927         in 32bit.  Warn alignment change.
5928
5929 2010-10-26  Ian Lance Taylor  <iant@google.com>
5930
5931         PR middle-end/45687
5932         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
5933         offset.
5934
5935 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5936
5937         Implement opaque-enum-specifiesr for C++0x
5938         * tree.h (ENUM_IS_OPAQUE): New.
5939         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
5940
5941 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5942
5943         * stor-layout.c (layout_decl): Use the field's type to
5944         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
5945         * config/arm/arm.c (arm_override_options): Default to
5946         -fstrict-volatile-bitfields.
5947
5948 2010-10-25  Paul Koning  <ni1d@arrl.net>
5949
5950         * config/pdp11/pdp11.md: Add define_constants for register
5951         numbers, branch offset limits.
5952         * config/pdp11/pdp11.c: Use named constants instead of numbers.
5953         * config/pdp11.pdp11.h: Ditto.
5954
5955 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
5956
5957         * configure.ac: Use $cpu_type instead of $target to define the nop.
5958         * configure: Regenerate.
5959
5960 2010-10-25  Jie Zhang  <jie@codesourcery.com>
5961
5962         * combine.c (try_combine): If insns need to be kept around, check that
5963         they can be copied in the merged instruction.
5964
5965 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5966
5967         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
5968         has been modified.
5969         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
5970         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
5971         it has been modified.
5972
5973 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5974
5975         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
5976
5977 2010-10-24  Paul Koning  <ni1d@arrl.net>
5978
5979         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
5980         * config/pdp11/pdp11.c (output_jump): Ditto.
5981
5982 2010-10-24  Ian Lance Taylor  <iant@google.com>
5983
5984         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
5985
5986 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5987
5988         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
5989         least one insn with a locus corresponding to an edge's goto_locus,
5990         disregard non-fallthru edges to the exit block and merge the blocks
5991         created for the same goto_locus.
5992
5993 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
5994
5995         * gcc.c (n_switches_alloc_debug_check): New.
5996         (set_option_handlers): New.
5997         (process_command): Use set_option_handlers.
5998         (do_self_spec): Pass spec-generated options through option handlers.
5999         (main): Also save and restore n_switches_alloc when swapping
6000         switch arrays.
6001
6002 2010-10-23  Richard Henderson  <rth@redhat.com>
6003
6004         PR target/46144
6005         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6006         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6007         Honor matching operands when splitting to XOR.
6008
6009 2010-10-23  Ian Lance Taylor  <iant@google.com>
6010
6011         * tree-vrp.c (extract_range_from_binary_expr): If
6012         flag_non_call_exceptions don't eliminate division by zero.
6013         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6014
6015 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6016
6017         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6018         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6019         __ORDER_PDP_ENDIAN__.
6020         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6021         (struct DWstruct): Define based on __BYTE_ORDER__.
6022         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6023         (struct INTstruct): Define based on __BYTE_ORDER__.
6024         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6025         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6026         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6027         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6028         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6029         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6030         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6031         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6032         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6033         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6034         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6035         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6036         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6037         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6038         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6039         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6040         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6041         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6042         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6043         * doc/tm.texi: Regenerate.
6044         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6045         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6046
6047 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6048
6049         PR rtl-optimization/37360
6050         * config/mips/mips.c (cached_can_issue_more): New local variable.
6051         (mips_sched_reorder_1): New.
6052         (mips_sched_reorder): Use mips_sched_reorder_1.
6053         (mips_sched_reorder2): New.
6054         (mips_variable_issue): Set cached_can_issue_more.
6055         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6056         instead of mips_sched_reorder.
6057
6058         Revert:
6059         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6060         PR rtl-optimization/37360
6061         * haifa-sched.c (max_issue): Do not assert that we never issue more
6062         insns than issue_rate.  Add comment.
6063
6064 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6065
6066         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6067         location info of the expression.
6068
6069 2010-10-22  DJ Delorie  <dj@redhat.com>
6070
6071         * doc/extend.texi (Named Address Spaces): Document the M32C named
6072         address space.
6073
6074         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6075         __far address space.
6076         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6077         "__far" address space for R8C and M16C processor variants.
6078         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6079         (far_addr_space_p): New.
6080         (encode_pattern_1): Add sign and zero extend support.
6081         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6082         (m32c_extra_constraint_p2): Add SF constraint.
6083         (m32c_legitimate_address_p): Support __far addresses.
6084         (m32c_addr_space_pointer_mode): New.
6085         (m32c_addr_space_address_mode): New.
6086         (m32c_addr_space_legitimate_address_p): New.
6087         (m32c_addr_space_legitimize_address): New.
6088         (m32c_addr_space_subset_p): New.
6089         (m32c_addr_space_convert): New.
6090         (conversions): Add __far operand patterns.
6091         (m32c_prepare_move): Force constants into registers for __far moves.
6092         (m32c_split_move): __far moves are always split.
6093         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6094         * config/m32c/mov.md (mov<mode>_far_op1): New.
6095         (mov<mode>_far_op2): New.
6096         (movqi_op): Add __far (SF) support.
6097         (movhi_op): Likewise.
6098         (movsi_splittable): Split A1A0 also.
6099
6100 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6101             Andrew Pinski  <pinskia@gmail.com>
6102
6103         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6104         * doc/extend.texi: New paragraph
6105
6106 2010-10-22  Paul Koning  <ni1d@arrl.net>
6107
6108         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6109
6110 2010-10-22  DJ Delorie  <dj@redhat.com>
6111
6112         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6113
6114 2010-10-22  Paul Koning  <ni1d@arrl.net>
6115
6116         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6117
6118 2010-10-22  Richard Henderson  <rth@redhat.com>
6119
6120         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6121         cases for __builtin_fma and __builtin_fmaf.
6122
6123 2010-10-22  Richard Henderson  <rth@redhat.com>
6124
6125         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6126         NEG+USE for vectors as well.
6127         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6128         and splitter.
6129
6130 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6131
6132         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6133         SWITCH_CURTAILS_COMPILATION): Remove.
6134         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6135         * doc/tm.texi: Regenerate.
6136         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6137
6138 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6139
6140         * config/i386/bdver1.md: New file.
6141         * config/i386/i386.md (include "bdver1.md"): Invoke the
6142         pipeline description for bdver1.
6143         (x86_sahf_1): Add "bdver1_decode" attribute.
6144         (*cmpfp_i_mixed): Likewise.
6145         (*cmpfp_i_sse): Likewise.
6146         (*cmpfp_i_i387): Likewise.
6147         (*cmpfp_iu_mixed): Likewise.
6148         (*cmpfp_iu_sse): Likewise.
6149         (*cmpfp_iu_387): Likewise.
6150         (*swap<mode>,*swap<mode>_1): Likewise.
6151         (fixuns_trunc<mode>hi2): Likewise.
6152         (fix_trunc<mode>si_sse): Likewise.
6153         (x86_fnstcw_1): Likewise.
6154         (x86_fldcw_1): Likewise.
6155         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6156         (*floatsi<mode>2_vector_mixed): Likewise.
6157         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6158         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6159         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6160         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6161         (*floatsi<mode>2_vector_sse): Likewise.
6162         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6163         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6164         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6165         (*mul<mode>3_1): Likewise.
6166         (*mulsi3_1_zext): Likewise.
6167         (*mulhi3_1): Likewise.
6168         (*mulqi3_1): Likewise.
6169         (*<u>mul<mode><dwi>3_1): Likewise.
6170         (*<u>mulqihi3_1): Likewise.
6171         (*<s>muldi3_highpart_1): Likewise.
6172         (*<s>mulsi3_highpart_1): Likewise.
6173         (*<s>mulsi3_highpart_zext): Likewise.
6174         (x86_64_shld): Likewise.
6175         (x86_shld): Likewise.
6176         (x86_64_shrd): Likewise.
6177         (x86_shrd): Likewise.
6178         (sqrtxf2): Likewise.
6179         (sqrt_extend<mode>xf2_i387): Likewise.
6180         (*sqrt<mode>2_sse): Likewise.
6181         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6182         (sse_cvtsi2ssq): Likewise.
6183         (sse_cvtss2si): Likewise.
6184         (sse_cvtss2si_2): Likewise.
6185         (sse_cvtss2siq): Likewise.
6186         (sse_cvtss2siq_2): Likewise.
6187         (sse_cvttss2si): Likewise.
6188         (sse_cvttss2siq): Likewise.
6189         (sse2_cvtpi2pd): Likewise.
6190         (sse2_cvttpd2pi): Likewise.
6191         (sse2_cvtsi2sd): Likewise.
6192         (sse2_cvtsi2sdq): Likewise.
6193         (sse2_cvtsd2si): Likewise.
6194         (sse2_cvtsd2si_2): Likewise.
6195         (sse2_cvtsd2siq): Likewise.
6196         (sse2_cvtsd2siq_2): Likewise.
6197         (sse2_cvttsd2si): Likewise.
6198         (sse2_cvttsd2siq): Likewise.
6199         (*sse2_cvtpd2dq): Likewise.
6200         (*sse2_cvttpd2dq): Likewise.
6201         (sse2_cvtsd2ss): Likewise.
6202         (sse2_cvtss2sd): Likewise.
6203         (*sse2_cvtpd2ps): Likewise.
6204         (sse2_cvtps2pd): Likewise.
6205
6206 2010-10-22  Richard Guenther  <rguenther@suse.de>
6207
6208         PR middle-end/46137
6209         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
6210         remove the virtual operands if they are not needed.
6211
6212 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6213
6214         * config/i386/i386.c (processor_costs bdver1_cost): Update
6215         insn costs and architectural parameters for bdver1.
6216
6217 2010-10-22  Richard Guenther  <rguenther@suse.de>
6218
6219         * gimple.h (gimple_register_canonical_type): Declare.
6220         * gimple.c (gimple_canonical_types): New global hashtable.
6221         (struct gimple_type_leader_entry_s): New type.
6222         (gimple_type_leader): New global cache.
6223         (gimple_lookup_type_leader): New function.
6224         (gtc_visit): Query the proper cache.
6225         (gimple_types_compatible_p): Likewise.
6226         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
6227         (gimple_canonical_type_eq): New function.
6228         (gimple_register_canonical_type): Likewise.
6229         (print_gimple_types_stats): Adjust for gimple_canonical_types.
6230         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
6231         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
6232         gimple_types_compatible_p for LTO.
6233
6234 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
6235
6236         PR target/46098
6237         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6238         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6239         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6240         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6241         (<sse>_movu<ssemodesuffix>): New expander.
6242         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6243         (avx_movdqu<avxmodesuffix>): New expander.
6244         (*sse2_movdqu): Rename from sse2_movdqu.
6245         (sse2_movdqu): New expander.
6246
6247 2010-10-22  Richard Guenther  <rguenther@suse.de>
6248
6249         PR tree-optimization/45720
6250         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6251         Handle negative step.
6252         (vect_enhance_data_refs_alignment): Likewise.
6253         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
6254         (vect_create_cond_for_align_checks): Likewise.
6255         (vect_create_cond_for_alias_checks): Likewise.
6256
6257 2010-10-22  Ira Rosen  <irar@il.ibm.com>
6258
6259         PR tree-optimization/46126
6260         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
6261         vectorizable_shift in case of basic block vectorization.
6262
6263 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6264
6265         * target.h (enum opt_levels, struct default_options): New.
6266         * target.def (handle_ofast): Remove hook.
6267         (target_option.optimization): Change to
6268         target_option.optimization_table.
6269         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
6270         TARGET_OPTION_OPTIMIZATION_TABLE.
6271         (CAN_DEBUG_WITHOUT_FP): Remove.
6272         * doc/tm.texi: Regenerate.
6273         * opts.c (maybe_default_option, maybe_default_options,
6274         default_options_table): New.
6275         (default_options_optimization): Take extra parameters.  Don't
6276         assert that global_options and global_options_set are in use.  Use
6277         maybe_default_options.
6278         (decode_options): Pass extra parameters to
6279         default_options_optimization.
6280         * common.opt (falign-loops): Use value 0 with Var.
6281         (frerun-cse-after-loop, ftree-ter): Remove Init.
6282         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
6283         TARGET_OPTION_OPTIMIZATION): Remove.
6284         * targhooks.c (empty_optimization_table): New.
6285         * targhooks.h (empty_optimization_table): Declare.
6286         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
6287         * config/alpha/alpha.c (alpha_option_optimization_table,
6288         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6289         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
6290         * config/arm/arm.c (arm_option_optimization: Change to
6291         arm_option_optimization_table.
6292         (TARGET_OPTION_OPTIMIZATION): Change to
6293         TARGET_OPTION_OPTIMIZATION_TABLE.
6294         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
6295         * config/avr/avr.c (avr_option_optimization_table,
6296         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6297         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
6298         * config/cris/cris.c (cris_option_optimization): Change to
6299         cris_option_optimization_table.
6300         (TARGET_OPTION_OPTIMIZATION): Change to
6301         TARGET_OPTION_OPTIMIZATION_TABLE.
6302         * config/crx/crx.c (crx_option_optimization): Change to
6303         crx_option_optimization_table.
6304         (TARGET_OPTION_OPTIMIZATION): Change to
6305         TARGET_OPTION_OPTIMIZATION_TABLE.
6306         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6307         * config/fr30/fr30.c (fr30_option_optimization_table,
6308         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6309         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
6310         * config/frv/frv.c (frv_option_optimization_table,
6311         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6312         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
6313         * config/h8300/h8300.c (h8300_option_optimization): Change to
6314         h8300_option_optimization_table.
6315         (TARGET_OPTION_OPTIMIZATION): Change to
6316         TARGET_OPTION_OPTIMIZATION_TABLE.
6317         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6318         * config/i386/i386.c (ix86_option_optimization): Change to
6319         ix86_option_optimization_table.
6320         (TARGET_OPTION_OPTIMIZATION): Change to
6321         TARGET_OPTION_OPTIMIZATION_TABLE.
6322         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6323         as initializer.
6324         * config/ia64/ia64.c (ia64_option_optimization): Change to
6325         ia64_option_optimization_table.
6326         (TARGET_OPTION_OPTIMIZATION): Change to
6327         TARGET_OPTION_OPTIMIZATION_TABLE.
6328         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
6329         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
6330         initializer.
6331         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6332         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6333         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6334         * config/lm32/lm32.c (lm32_option_optimization_table,
6335         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6336         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
6337         * config/m32r/m32r.c (m32r_option_optimization): Change to
6338         m32r_option_optimization_table.
6339         (TARGET_OPTION_OPTIMIZATION): Change to
6340         TARGET_OPTION_OPTIMIZATION_TABLE.
6341         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
6342         CAN_DEBUG_WITHOUT_FP): Remove.
6343         * config/mcore/mcore.c (mcore_option_optimization): Change to
6344         mcore_option_optimization_table.
6345         (TARGET_OPTION_OPTIMIZATION): Change to
6346         TARGET_OPTION_OPTIMIZATION_TABLE.
6347         * config/mep/mep.c (mep_option_optimization): Change to
6348         mep_option_optimization_table.
6349         (TARGET_OPTION_OPTIMIZATION): Change to
6350         TARGET_OPTION_OPTIMIZATION_TABLE.
6351         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
6352         * config/microblaze/microblaze.c
6353         (microblaze_option_optimization_table,
6354         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6355         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
6356         * config/mips/mips.c (mips_option_optimization_table,
6357         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6358         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
6359         * config/mmix/mmix.c (mmix_option_optimization): Change to
6360         mmix_option_optimization_table.
6361         (TARGET_OPTION_OPTIMIZATION): Change to
6362         TARGET_OPTION_OPTIMIZATION_TABLE.
6363         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
6364         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6365         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6366         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6367         * config/pa/pa.c (pa_option_optimization_table,
6368         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6369         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6370         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6371         pdp11_option_optimization_table.
6372         (TARGET_OPTION_OPTIMIZATION): Change to
6373         TARGET_OPTION_OPTIMIZATION_TABLE.
6374         * config/picochip/picochip.c (picochip_option_optimization_table,
6375         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6376         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6377         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6378         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6379         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6380         * config/rx/rx.c (rx_option_optimization_table,
6381         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6382         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6383         * config/s390/s390.c (s390_option_optimization): Change to
6384         s390_option_optimization_table.
6385         (s390_option_override): Update comment.
6386         (TARGET_OPTION_OPTIMIZATION): Change to
6387         TARGET_OPTION_OPTIMIZATION_TABLE.
6388         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6389         * config/score/score.c (score_option_optimization_table,
6390         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6391         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6392         * config/sh/sh.c (sh_option_optimization): Change to
6393         sh_option_optimization_table.
6394         (TARGET_OPTION_OPTIMIZATION): Change to
6395         TARGET_OPTION_OPTIMIZATION_TABLE.
6396         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6397         (sh_option_override, expand_block_move, multcosts, find_barrier,
6398         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6399         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6400         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6401         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6402         instead of TARGET_SMALLCODE.
6403         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6404         * config/sparc/sparc.c (sparc_option_optimization_table,
6405         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6406         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6407         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6408         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6409         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6410         * config/v850/v850.c (v850_option_optimization): Change to
6411         v850_option_optimization_table.
6412         (TARGET_OPTION_OPTIMIZATION): Change to
6413         TARGET_OPTION_OPTIMIZATION_TABLE.
6414         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6415         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6416         xtensa_option_optimization_table.
6417         (TARGET_OPTION_OPTIMIZATION): Change to
6418         TARGET_OPTION_OPTIMIZATION_TABLE.
6419         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6420
6421 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6422
6423         Based on the CFString implementation in FSF apple/trunk branch.
6424
6425         * target.def (objc_construct_string): New Hook.
6426         * doc/tm.texi (objc_construct_string): Document.
6427         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6428         * config/t-darwin: Amend build rules for darwin.o.
6429         * config/darwin.opt: Add cfstrings flags.
6430         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6431         (darwin_objc_construct_string): New.
6432         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6433         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6434         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6435         (darwin_fold_builtin): Likewise.
6436         (darwin_build_constant_cfstring): Likewise.
6437         (darwin_objc_construct_string): Likewise.
6438         (darwin_cfstring_p): Likewise.
6439         (darwin_enter_string_into_cfstring_table): Likewise.
6440         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6441         * config/darwin.c (darwin_running_cxx): New var.
6442         (machopic_select_section): Return cfstring_constant_object_section.
6443         (darwin_override_options): Set darwin_running_cxx.
6444         (add_builtin_field_decl): New.
6445         (darwin_init_cfstring_builtins): New.
6446         (darwin_build_constant_cfstring): New.
6447         (darwin_fold_builtin): New.
6448         (cfstring_hash): New.
6449         (cfstring_eq): New.
6450         (darwin_enter_string_into_cfstring_table): New.
6451         * config/darwin-sections.def (cfstring_constant_object_section): New.
6452         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6453         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6454
6455 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6456
6457         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6458         TYPE_STUB_DECL instead of TREE_CHAIN.
6459         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6460         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6461         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6462         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6463         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6464         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6465         Likewise.
6466         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6467
6468 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6469
6470         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6471         (copy_blkmode_from_reg): Likewise.
6472         (read_complex_part): Likewise.
6473         (expand_expr_real_1): Calculate packedp and pass it to
6474         extract_bit_field.
6475         * expr.h (extract_bit_field): Update declaration.
6476         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6477         to extract_bit_field.
6478         * expmed.c (extract_fixed_bit_field): Update calls to
6479         extract_fixed_bit_field.
6480         (store_split_bit_field): Likewise.
6481         (extract_bit_field_1): Add new argument packedp.
6482         (extract_bit_field): Add new argument packedp.
6483         (extract_fixed_bit_field): Add new argument packedp and let
6484         packed attribute override volatile.
6485         * stmt.c (expand_return): Update call to extract_bit_field.
6486
6487 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6488
6489         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6490
6491 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6492
6493         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6494         of gcc_checking_assert.
6495         * sel-sched.c (code_motion_process_successors): Likewise.
6496
6497 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6498
6499         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6500         when stopping because of a different locus on edge or insn.
6501         (try_optimize_cfg): Add comment.
6502         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6503         block is a forwarder block, propagate locus on the edge.
6504         (cfg_layout_merge_blocks): Likewise.
6505
6506 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6507
6508         PR target/45946
6509         * config/i386/i386.md (*pushti2): New insn pattern.
6510         (pushti2 splitter): New insn splitter.
6511         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6512         DWI mode iterator.
6513
6514 2010-10-21  Paul Koning  <ni1d@arrl.net>
6515
6516         * config/pdp11/pdp11-protos.md (arith_operand,
6517         const_immediate_operand, expand_shift_operand,
6518         immediate15_operand): Delete
6519         * config/pdp11/pdp11.c: Ditto.
6520         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6521         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6522         EXTRA_CONSTRAINT): Delete.
6523         * config/pdp11/pdp11.md (various): Use standard constraints
6524         instead of removed ones.
6525         * config/pdp11/constraints.md: New file.
6526         * config/pdp11/predicates.md: New file.
6527
6528 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6529
6530         PR c/45834
6531         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6532         (may_alias_p): Ditto.
6533
6534 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6535
6536         PR tree-optimization/45875
6537         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6538
6539 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6540
6541         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6542         variables.
6543         (create_new_def_for): Likewise.
6544
6545 2010-10-21  Nick Clifton  <nickc@redhat.com>
6546
6547         * config/mn10300/mn10300.c: Fold code to 80-character width.
6548         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6549         MEM, CONST_INT and CONST_DOUBLE.
6550         (targetm): Move initialization to end of file.
6551         (print_operand): Rename to mn10300_print_operand.
6552         (print_operand_address): Rename to mn10300_print_operand_address.
6553         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6554         (expand_prologue): Rename to mn10300_expand_prologue.
6555         (expand_epilogue): Rename to mn10300_expand_epilogue.
6556         (initial_offset): Rename to mn10300_initial_offset.
6557         (function_arg): Rename to mn10300_function_arg.
6558         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6559         (symbolic_operand): Rename to mn10300_symbolic_operand.
6560         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6561         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6562         * config/mn10300/mn10300-protos.h: Update prototypes.
6563         * config/mn10300/mn10300.h: Fold code to 80-character width.
6564         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6565         MEM, CONST_INT and CONST_DOUBLE.
6566         (CPP_SPEC): Move to...
6567         (TARGET_CPU_CPP_BUILTINS): ... here.
6568         * config/mn10300/mn10300.md: Fold code to 80-character width.
6569         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6570         MEM, CONST_INT and CONST_DOUBLE.
6571
6572 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6573
6574         PR tree-optimization/46049
6575         PR tree-optimization/46052
6576         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6577         (vect_get_slp_defs): Add arguments.
6578         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6579         operands to vect_get_slp_defs.
6580         (vectorizable_reduction): Fix comment, pass scalar operands to
6581         vect_get_slp_defs.
6582         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6583         type to determine number of units in the created vector.
6584         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6585         (vectorizable_conversion): Fix comment.
6586         (vectorizable_shift): New function.
6587         (vectorizable_operation): Move code that handles shifts to
6588         vectorizable_shift.
6589         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6590         vect_get_slp_defs.
6591         (vectorizable_type_promotion, vectorizable_store): Likewise.
6592         (vectorizable_condition): Fix comment.
6593         (vect_analyze_stmt): Call vectorizable_shift.
6594         (vect_transform_stmt): Likewise.
6595         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6596         Use it as the operand to create vectors for, except reduction
6597         initial definition and store.  Use operands type.
6598         (vect_get_slp_defs): Add new arguments.  Pass them to
6599          vect_get_constant_vectors.
6600
6601 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6602
6603         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6604         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6605         * cfghooks.c (fixup_reorder_chain): Likewise.
6606         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6607         * cgraph.c (cgraph_add_thunk): Likewise.
6608         (cgraph_create_edge_1): Likewise.
6609         (cgraph_create_virtual_clone): Likewise.
6610         * ddg.c (add_cross_iteration_register_deps): Likewise.
6611         * dwarf2out.c (modified_type_die): Likewise.
6612         * emit-rtl.c (set_mem_alias_set): Likewise.
6613         * ggc-zone.c (zone_allocate_marks): Likewise.
6614         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6615         * gimple.c (iterative_hash_gimple_type): Likewise.
6616         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6617         (create_single_exit_edge): Likewise.
6618         * haifa-sched.c (choose_ready): Likewise.
6619         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6620         * passes.c (execute_todo): Likewise.
6621         * sched-ebb.c (begin_schedule_ready): Likewise.
6622         * sel-sched.c (code_motion_process_successors): Likewise.
6623         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6624         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6625         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6626         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6627         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6628         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6629         (ssa_conflicts_add): Likewise.
6630         * tree-ssa-copy.c (replace_exp): Likewise.
6631         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6632         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6633         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6634         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6635         (compute_antic): Likewise.
6636         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6637         (add_dependence): Likewise.
6638         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6639         * tree-vrp.c (supports_overflow_infinity): Likewise.
6640         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6641         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6642         (process_assert_insertions_for): Likewise.
6643         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6644         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6645         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6646
6647 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6648
6649         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6650         * reload1.c (has_nonexceptional_receiver): Likewise.
6651         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6652         (create_new_def_for): Likewise.
6653         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6654         (merge_phi_nodes): Likewise.
6655         (has_abnormal_incoming_edge_p): Delete.
6656
6657 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6658
6659         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6660
6661 2010-10-21  Richard Guenther  <rguenther@suse.de>
6662             Michael Matz  <matz@suse.de>
6663
6664         PR tree-optimization/45764
6665         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6666         Adjust initial misalignment for negative DR_STEP.
6667         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6668         do not have the same alignment over the whole iteration domain.
6669
6670 2010-10-21  Richard Guenther  <rguenther@suse.de>
6671
6672         PR tree-optimization/46111
6673         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6674
6675 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6676
6677         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6678
6679 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6680
6681         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6682         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6683
6684 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6685
6686         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6687         signal_frame.
6688         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6689
6690 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6691
6692         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6693         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6694
6695 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6696
6697         * basic-block.h (find_fallthru_edge): Define.
6698         * cfgcleanup.c (merge_blocks_move): Use it.
6699         (try_crossjump_bb): Likewise.
6700         * cfglayout.c (fixup_reorder_chains): Likewise.
6701         (fixup_fallthru_exit_predecessor): Likewise.
6702         * cfgrtl.c (rtl_split_edge): Likewise.
6703         (rtl_verify_flow_info): Likewise.
6704         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6705         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6706         * ifcvt.c (block_fallthru): Likewise.
6707         * reload1.c (fixup_abnormal_edges): Likewise.
6708         * sched-ebb.c (being_schedule_ready): Likewise.
6709         (schedule_ebb): Likwise.
6710         * sched-rgn.c (find_single_block_region): Likewise.
6711         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6712         * tree-complex.c (expand_complex_move): Likewise.
6713         * sched-int.h (find_fallthru_edge): Rename to...
6714         (find_fallthru_edge_from): ...this.
6715         * haifa-sched.c (find_fallthru_edge): Rename to...
6716         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6717         (init_before_recovery): Call find_fallthru_edge_from.
6718         * sel-sched-ir.c (merge_fences): Likewise.
6719         * sel-sched.c (in_fallthru_bb_p): Likewise.
6720         (move_cond_jump): Likewise.
6721
6722 2010-10-20  Paul Koning  <ni1d@arrl.net>
6723
6724         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6725         insn to check for target 11/40 or higher.
6726
6727 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6728
6729         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6730         bool instead of a tree.
6731         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6732         objc_build_method_signature.
6733         (c_parser_objc_method_definition): Do not call
6734         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6735         c_parser_objc_method_decl and objc_start_method_definition.
6736         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6737         Updated calls to c_parser_objc_method_type,
6738         c_parser_objc_method_decl and objc_add_method_declaration.
6739
6740 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6741
6742         PR tree-optimization/45919
6743         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6744         array members.
6745
6746         PR tree-optimization/46066
6747         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6748         instead of gsi_last_bb.
6749
6750 2010-10-20  DJ Delorie  <dj@redhat.com>
6751
6752         * config/m32c/m32c.c (m32c_option_override): Always disable
6753         function-cse in 16-bit mode.  Indirect calls are always worse than
6754         direct calls as there is no 16-bit indirect call opcode.
6755         (m32c_override_options_after_change): New, likewise.
6756
6757 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6758
6759         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6760         emitting the conditional move in the inner mode of the SUBREG.
6761
6762 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6763
6764         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6765         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6766         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6767         (ia64_preferred_reload_class): Make static.  Change rclass argument
6768         and result types from enum reg_class to reg_class_t.
6769
6770 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6771
6772         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6773         call for single operand expression.
6774
6775 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6776
6777         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6778         if there is a call statement to pure or const function in the block.
6779
6780 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6781
6782         Fix several build errors for pdp11 target.
6783         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6784         (cbranchdf4): Conditional on TARGET_FPU.
6785         (movdf): Ditto; correct alternatives check.
6786         (movmemhi): Fix predicate and constraint.
6787         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6788
6789 2010-10-20  Richard Guenther  <rguenther@suse.de>
6790
6791         PR lto/45667
6792         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6793         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6794         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6795         when in LTO.
6796
6797 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6798
6799         PR fortran/42169
6800         * ira-emit.c (store_can_be_removed_p): Return false instead of
6801         gcc_unreachable.
6802
6803 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6804
6805         * fold-const.c (fold_binary_loc): New transformation.
6806
6807 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6808
6809         PR target/46085
6810         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6811         (reduc_splus_v4df): Likewise.
6812
6813 2010-10-20  Richard Guenther  <rguenther@suse.de>
6814
6815         PR tree-optimization/45860
6816         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6817         conditional store replacement for non-register type stores.
6818
6819 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6820
6821         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6822         (self_referential_size): Use it instead of skip_simple_arithmetic.
6823
6824 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6825
6826         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6827         If the current function calls eh_return, claim live all registers
6828         that we need to check for liveness otherwise.
6829
6830 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6831
6832         * c-decl.c (c_write_global_declarations): Call
6833         objc_write_global_declarations when compiling Objective-C.
6834         * c-lang.c (finish_file): Removed.
6835
6836 2010-10-19  DJ Delorie  <dj@redhat.com>
6837
6838         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6839         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6840         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6841         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6842         * doc/tm.texi: Regenerate.
6843         * targhooks.h (default_label_align_after_barrier_max_skip,
6844         default_loop_align_max_skip, default_label_align_max_skip,
6845         default_jump_align_max_skip): Declare.
6846         * target.def (label_align_after_barrier_max_skip): New.
6847         (loop_align_max_skip): New.
6848         (label_align_max_skip): New.
6849         (jump_align_max_skip): New.
6850         * system.h (poison): Add those macros to the list.
6851         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
6852         (LOOP_ALIGN_MAX_SKIP): Remove.
6853         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
6854         (JUMP_ALIGN_MAX_SKIP): Remove.
6855         (default_label_align_after_barrier_max_skip): New.
6856         (default_loop_align_max_skip): New.
6857         (default_label_align_max_skip): New.
6858         (default_jump_align_max_skip): New.
6859         (compute_alignments): Use the new hooks.
6860         (shorten_branches): Likewise.
6861
6862 2010-10-19  Richard Henderson  <rth@redhat.com>
6863
6864         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
6865         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
6866         (fma4i_fmadd_<mode>): New.
6867         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
6868         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
6869         standard fma patterns.
6870         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
6871         enable for FMA.
6872         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6873         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6874         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
6875
6876 2010-10-19  Paul Koning  <pkoning@equallogic.com>
6877
6878         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
6879         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
6880
6881 2010-10-19  Richard Henderson  <rth@redhat.com>
6882
6883         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
6884         (fmadf4, *fmsdf4, *nfmadf4): New.
6885         (fmaxf4, *fmsxf4, *nfmaxf4): New.
6886
6887 2010-10-19  Michael Eager  <eager@eagercon.com>
6888
6889         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
6890         Use sjlj unwind info for exceptions.
6891
6892 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
6893
6894         PR fortran/43414
6895         * dwarf2out.c (add_calling_convention_attribute): Flag main
6896         Fortran subroutine with DW_AT_main_subprogram.
6897
6898 2010-10-19  Nick Clifton  <nickc@redhat.com>
6899
6900         * config/rx/rx.c (rx_function_value): Small integer types are
6901         promoted to SImode.
6902         (rx_promote_function_mode): New function.
6903         (TARGET_PROMOTE_FUNCTION_MODE): Define.
6904
6905 2010-10-19  Nick Clifton  <nickc@redhat.com>
6906
6907         * config/mep/mep.c (mep_print_operand): Use
6908         targetm.strip_name_encoding.
6909         (mep_output_aligned_common): Likewise.
6910
6911 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
6912
6913         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
6914
6915 2010-10-18  Richard Henderson  <rth@redhat.com>
6916
6917         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
6918         (fma (neg a) (neg b) c) and (fma a (neg b) c).
6919
6920 2010-10-18  Richard Henderson  <rth@redhat.com>
6921
6922         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
6923         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
6924         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
6925         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
6926         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
6927         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
6928         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
6929         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
6930         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
6931         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
6932         (bdesc_multi_arg): Remove the corresponding builtins.
6933         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
6934         (UNSPEC_FMA4_FMSUBADD): Remove.
6935         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
6936         * config/i386/sse.md (FMA4MODEF4): Remove.
6937         (FMAMODE): Add.
6938         (fma<mode>4): New expander.
6939         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
6940         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
6941         (*fma4i_fmsub_<mode>): Similarly.
6942         (*fma4i_fnmadd_<mode>): Similarly.
6943         (*fma4i_fnmsub_<mode>): Similarly.
6944         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
6945         with the first operand.
6946         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
6947         of explicit arithmetic.  Macroize with AVXMODEF2P.
6948         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
6949         (xop_frcz<mode>2): Macroize with FMAMODE.
6950         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
6951         the first operand.
6952         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
6953         extra negations.
6954         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
6955         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
6956         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
6957         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
6958         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
6959         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
6960         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
6961         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
6962
6963 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
6964
6965         PR rtl-optimization/45966
6966         * combine.c (try_combine): If added_sets_2, deal with the case
6967         where i0 feeds i1 and i1 feeds i2.
6968
6969 2010-10-18  Jan Hubicka  <jh@suse.cz>
6970
6971         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
6972         preserve flags before trying to guess on visibility.
6973         (varpool_externally_visible_p): New function.
6974         (function_and_variable_visibility): Use it.
6975
6976 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6977
6978         Implemented parsing @synthesize and @dynamic for Objective-C.
6979         * c-parser.c (c_parser_external_declaration): Recognize
6980         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
6981         (c_parser_objc_at_synthesize_declaration): New.
6982         (c_parser_objc_at_dynamic_declaration): New.
6983
6984 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6985
6986         * c-parser.c (c_parser_objc_class_declaration): After finding an
6987         error, parse the whole declaration then reset parser->error.
6988
6989 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
6990
6991         PR target/46041
6992         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
6993         * builtins.c (mode_has_fma): Ditto.
6994
6995 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
6996
6997         PR target/36898
6998         PR middle-end/43760
6999         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7000
7001 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7002
7003         * config/i386/i386.c (ix86_option_override_internal): Define and
7004         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7005         default.
7006         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7007         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7008
7009 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7010
7011         Merge from 'apple/trunk' branch on FSF servers.
7012         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7013         following Objective-C change:
7014
7015         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7016
7017         Radar 4301047
7018         * c-parse.in (objc_quals): Build objc qualifier list same way
7019         as gcc-3.3
7020
7021 2010-10-18  Jan Hubicka  <jh@suse.cz>
7022
7023         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7024         function_and_variable_visibility): Revert accidental commit.
7025
7026 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7027
7028         Merge from 'apple/trunk' branch on FSF servers.
7029         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7030         the following Objective-C change:
7031
7032         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7033
7034         Radar 4204796
7035         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7036         'volatilized' type used in a typeof operator.
7037
7038 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7039
7040         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7041         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7042         rewrite modelled on gimple_purge_dead_eh_edges.
7043         (gimple_purge_all_dead_abnormal_call_edges): New function.
7044         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7045         directly instead of through gimple_purge_dead_abnormal_call_edges.
7046         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7047         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7048         removed AB side-effects from one of its statements.
7049         (init_pre): Initialize need_ab_cleanup.
7050         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7051         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7052
7053 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7054
7055         PR c/46015
7056         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7057         on computed goto argument.
7058
7059 2010-10-18  Richard Guenther  <rguenther@suse.de>
7060
7061         PR tree-optimization/45967
7062         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7063         (could_have_pointers): Likewise.
7064         (handle_rhs_call, handle_const_call, handle_pure_call,
7065         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7066         (struct fieldoff): Add must_have_pointers field.
7067         (type_must_have_pointers): New function.
7068         (field_must_have_pointers): Likewise.
7069         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7070         Adjust field merging.
7071         (create_function_info_for): May-have-pointers of varinfo is
7072         almost always true.
7073         (create_variable_info_for_1): Likewise.
7074
7075 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7076
7077         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7078         of operands to vec_concat.
7079
7080 2010-10-18  Richard Guenther  <rguenther@suse.de>
7081
7082         PR lto/44950
7083         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7084         also clear references to entries of it.
7085
7086 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7087
7088         PR other/43448
7089         * gccbug.in: Remove.
7090         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7091         (doc, distclean, install-common): Remove reference to gccbug.
7092         * configure: Regenerate.
7093         * configure.ac (all_outputs): Remove gccbug.
7094         * doc/configfiles.texi: Remove references to gccbug.
7095         * doc/sourcebuild.texi: Dito.
7096
7097 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7098
7099         PR middle-end/46019
7100         * fold-const.c (fold_binary_loc): If integer_pow2p has
7101         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7102
7103 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7104             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7105
7106         * gengtype.c (verbosity_level): Add variable.
7107         (set_gc_used): Count variables for verbosity.
7108         (close_output_files): Backing up files, counting written ones
7109         verbosily.
7110         (write_types): Count emitted functions for verbosity. Added
7111         debug messages.
7112         (write_enum_defn): Count structures for verbosity. Added debug
7113         messages.
7114         (gengtype_long_options): Add "verbose" & "backupdir".
7115         (print_usage): Ditto.
7116         (main): Verbose display of parsed files.
7117
7118         * gengtype.h (verbosity_level): Add declaration.
7119
7120 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7121
7122         * gengtype.c (parse_program_options): Add allocation of
7123         plugin_files, and correct test on nb_plugin_files.
7124
7125 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7126
7127         Merge from 'apple/trunk' branch on FSF servers.
7128
7129         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7130
7131         Radar 4133425
7132         * c-decl.c (undeclared_variable): Issue diagnostic on
7133         private 'ivar' access.
7134
7135 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7136
7137         PR target/46051
7138         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7139         generated sequence to match *avx_vperm2f128<mode>_nozero.
7140         (vec_interleave_lowv4df): Ditto.
7141         (vec_interleave_highv8sf): Ditto.
7142         (vec_interleave_lowv8sf): Ditto.
7143
7144 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7145
7146         * libgcov.c (create_file_directory): Enable it for win32 case.
7147         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7148         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7149         (GCOV_PREFIX_SKIP): Likewise.
7150
7151 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7152
7153         * doc/objc.texi (GNU Objective-C runtime API): New section.
7154         (Modern GNU Objective-C runtime API): New section.
7155         (Traditional GNU Objective-C runtime API): New section.
7156         (Executing code before main): Mention that this section is
7157         specific to the GNU Objective-C runtime.
7158         (Garbage Collection): Same.
7159
7160 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7161
7162         * c-parser.c (c_parser_for_statement): Move initialization of
7163         cond and incr before if.
7164
7165 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7166
7167         * target.def (preferred_output_reload_class): New hook.
7168         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7169         * doc/tm.texi: Regenerate.
7170         * targhooks.c (default_preferred_output_reload_class): New function.
7171         * targhooks.h (default_preferred_output_reload_class): Declare.
7172         * reload.c (find_dummy_reload): Change rclass argument type from
7173         enum reg_class to reg_class_t. Change this_alternative array type
7174         from enum reg_class to reg_class_t.
7175         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7176         (push_reload): Change preferred_class variable type to reg_class_t.
7177         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7178         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7179         argument type from enum reg_class to reg_class_t. Use
7180         HARD_REGISTER_NUM_P predicate.
7181         * recog.h (reg_fits_class_p): Update prototype.
7182
7183         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7184         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7185         Remove.
7186         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7187         static. Change regclass argument and result types from enum reg_class
7188         to reg_class_t.
7189         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7190
7191 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7192
7193         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7194         visibility enum, and handle @package.
7195
7196 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7197
7198         * doc/objc.texi (What you can and what you cannot do in +load):
7199         Document that sending messages to constant string objects in +load
7200         is not guaranteed to work.
7201
7202 2010-10-16  Jan Hubicka  <jh@suse.cz>
7203
7204         PR middle-end/44206
7205         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
7206         existence of refrences before removing the function.
7207
7208 2010-10-16  Jan Hubicka  <jh@suse.cz>
7209
7210         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
7211         only_called_at_startup and only_called_at_exit.
7212         (cgraph_propagate_frequency): Compute only_called_at_startup and
7213         only_called_at_exit.
7214         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
7215         only_called_at_exit.
7216         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
7217         flags.
7218         * predict.c (compute_function_frequency): Initialize the new flags.
7219
7220 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7221
7222         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
7223         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
7224         on the bounds of its domain.
7225         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
7226
7227 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
7228
7229         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
7230         * config/avr/avr-protos.h (preferred_reload_class): Remove.
7231         * config/avr/avr.c (preferred_reload_class): Remove.
7232         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
7233         * config/pa/pa.c (emit_move_sequence): Update comment
7234         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
7235         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
7236         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
7237         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
7238         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
7239         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
7240         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
7241         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
7242         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
7243         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
7244         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
7245         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
7246         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
7247
7248 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7249
7250         * opts.c (set_fast_math_flags,
7251         set_unsafe_math_optimizations_flags): Make static.
7252         * toplev.h (set_fast_math_flags,
7253         set_unsafe_math_optimizations_flags): Remove prototypes.
7254
7255 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7256
7257         * config/arm/arm.c (arm_option_optimization): Set
7258         flag_section_anchors to 1 not 2.
7259         * config/i386/i386.c (ix86_option_override_internal): Check
7260         global_options_set.x_flag_zee and
7261         global_options_set.x_flag_omit_frame_pointer.
7262         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
7263         flag_zee to 2.
7264         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7265         global_options_set.x_flag_omit_frame_pointer.
7266         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
7267         opts->x_flag_section_anchors to 1 not 2.
7268         * config/sh/sh.c (sh_option_optimization): Don't set
7269         flag_schedule_insns to 2.
7270         (sh_option_override): Check
7271         global_options_set.x_flag_schedule_insns.
7272         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
7273
7274 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
7275
7276         * configure.ac: Make sure inhibit_libc remains false for mingw targets
7277         as cross.
7278         * configure: Regenerated.
7279
7280 2010-10-15  Xinliang David Li  <davidxl@google.com>
7281
7282         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
7283         function.
7284         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
7285         into a recursive function.
7286
7287 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
7288
7289         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
7290         (*movdfcc_1): ditto.
7291
7292 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7293
7294         * target.def (target_option.init_struct): New hook.
7295         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
7296         * doc/tm.texi: Regenerate.
7297         * hooks.c (hook_void_gcc_optionsp): New.
7298         * hooks.h (hook_void_gcc_optionsp): Declare.
7299         * langhooks-def.h (lhd_init_options_struct): Remove.
7300         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7301         * langhooks.c (lhd_init_options_struct): Remove.
7302         * opts.c (init_options_struct): Also call
7303         targetm.target_option.init_struct.
7304         * config/i386/i386.c (ix86_option_init_struct,
7305         TARGET_OPTION_INIT_STRUCT): New.
7306         (ix86_option_optimization): Move some settings to
7307         ix86_option_init_struct.
7308         * config/pdp11/pdp11.c (pdp11_option_init_struct,
7309         TARGET_OPTION_INIT_STRUCT): New.
7310         (pdp11_option_optimization): Move some settings to
7311         pdp11_option_init_struct.
7312         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
7313         rs6000_option_init_struct.  Use options structure pointer.
7314         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7315         * config/s390/s390.c (s390_option_init_struct,
7316         TARGET_OPTION_INIT_STRUCT): New.
7317         (s390_option_optimization): Don't set
7318         flag_asynchronous_unwind_tables here.
7319         * config/sh/sh.c (sh_option_init_struct,
7320         TARGET_OPTION_INIT_STRUCT): New.
7321         (sh_option_optimization): Don't set flag_finite_math_only here.
7322         * config/spu/spu.c (spu_option_optimization): Replace by
7323         spu_option_optimization.  Use options structure pointer.
7324         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7325
7326 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7327
7328         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
7329
7330         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
7331         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
7332         (Standard names): Document fma.
7333
7334         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
7335         __FP_FAST_FMAF, __FP_FAST_FMAL.
7336
7337         * builitns.c (expand_builtin_mathfn_ternary): New function for
7338         expanding ternary math functions, like fma.
7339         (expand_builtin): Call it for the fma builtins.
7340
7341         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
7342         ops at present.
7343
7344         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
7345         vectorizable functions to support vectorizing fma.
7346
7347         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7348         Handle fma builtins.
7349
7350         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
7351         (UNSPEC_VSX_MSUB): Ditto.
7352         (UNSPEC_VSX_NMADD): Ditto.
7353         (UNSPEC_VSX_NMSUB): Ditto.
7354         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
7355         of UNSPEC. Renumber combiner patterns.
7356         (vsx_fmsub<mode>4*): Ditto.
7357         (vsx_fnmadd<mode>4*): Ditto.
7358         (vsx_fnmsub<mode>4*): Ditto.
7359
7360         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
7361         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
7362         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
7363         (altivec_vmaddfp_1): Ditto.
7364         (altivec_vmaddfp_2): Ditto.
7365         (atlivec_mulv4sf3): Ditto.
7366         (altivec_vnmsubfp): Ditto.
7367         (altivec_vnmsubfp_1): Ditto.
7368         (altivec_vnmsubfp_2): Ditto.
7369         (altivec_vnmsubfp_3): Delete.
7370
7371         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7372         (fmasf4_fpr): Ditto.
7373         (fmssf4_fpr): Ditto.
7374         (fnmasf4_fpr): Ditto.
7375         (fnmssf4_fpr): Ditto.
7376         (fmadf4): Ditto.
7377         (fmadf4_fpr): Ditto.
7378         (fmsdf4_fpr): Ditto.
7379         (fnmadf4_fpr): Ditto.
7380         (fnmsdf4_fpr): Ditto.
7381
7382         * optabs.h (OTI_fma): Add fma optab.
7383         (fma_optab): Ditto.
7384
7385         * genopinit.c (optabs): Set fma optab.
7386
7387         * rtl.def (FMA): Add FMA rtl.
7388
7389         * tree.h (mode_has_fma): New function to return if MODE supports a
7390         fast multiply and add instruction.
7391         * builtins.c (mode_has_fma): Ditto.
7392
7393 2010-10-15  Jan Hubicka  <jh@suse.cz>
7394
7395         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7396         objects instead of bitmap.
7397         (produce_symtab): Likewise; output defined symbols first.
7398
7399 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7400
7401         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7402         Option Summary and Index.
7403
7404 2010-10-15  Richard Guenther  <rguenther@suse.de>
7405
7406         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7407         for automatic variables again.
7408
7409 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7410
7411         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7412         conforming to C99.
7413
7414 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7415
7416         * config/rx/rx.c (rx_option_optimization): Change to
7417         rx_override_options_after_change.  Don't change
7418         flag_lto_compression_level.  Don't check for changes to whether
7419         FPU instructions can be used.  Check and set only
7420         flag_finite_math_only, not other fast-math flags.
7421         (rx_option_override): Call rx_override_options_after_change.
7422         (TARGET_OPTION_OPTIMIZATION): Remove.
7423         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7424
7425 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7426
7427         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7428         disable section anchors for lang_hooks.name[4] != 'O'.
7429
7430 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7431
7432         * config/frv/frv.c (frv_option_optimization,
7433         TARGET_OPTION_OPTIMIZATION): Remove.
7434         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7435
7436 2010-10-15  Michael Matz  <matz@suse.de>
7437
7438         * cgraphunit.c (clone_of_p): Define unconditionally.
7439
7440 2010-10-15  Richard Guenther  <rguenther@suse.de>
7441
7442         PR lto/45957
7443         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7444
7445 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7446
7447         * ifcvt.c (find_active_insn_before): New function.
7448         (find_active_insn_after): New function.
7449         (cond_exec_process_if_block): Use new functions to replace
7450         prev_active_insn() and next_active_insn().
7451
7452 2010-10-14  Yao Qi  <yao@codesourcery.com>
7453
7454         PR target/45447
7455         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7456         va_list_name to TYPE_STUB_DECL (va_list_type).
7457
7458 2010-10-14  Jan Hubicka  <jh@suse.cz>
7459
7460         PR middle-end/45621
7461         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7462         redirected to clone, be happy.
7463         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7464         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7465         former_clone_of unconditionally.
7466
7467 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7468
7469         Merge from FSF apple 'trunk' branch.
7470         2006 Fariborz Jahanian  <fjahanian@apple.com>
7471
7472         Radars 4436866, 4505126, 4506903, 4517826
7473         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7474         (c_lex_one_token): Handle property attributes.
7475         (c_parser_external_declaration): Handle @property.
7476         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7477         @alias, @class, @end and @property objc keywords.
7478         (c_parser_objc_methodprotolist): Handle @property.
7479         (c_parser_objc_property_attrlist): New.
7480         (c_parser_objc_at_property): New.
7481         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7482         (build_modify_expr): Likewise.
7483
7484 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7485
7486         PR tree-optimization/46008
7487         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7488
7489 2010-10-14  Richard Guenther  <rguenther@suse.de>
7490
7491         PR tree-optimization/44913
7492         * tree-data-ref.c (disjoint_objects_p): Remove.
7493         (dr_may_alias_p): Simplify.  Only hand the base object to
7494         the alias-oracle.
7495         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7496         some more trees, bail out instead of asserting.
7497         (ptr_derefs_may_alias_p): Likewise.  Export.
7498         (refs_may_alias_p_1): Handle STRING_CSTs.
7499         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7500
7501 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7502
7503         PR c/45969
7504         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7505         type with excess precision for boolean operations.
7506
7507 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7508             Basile Starynkevitch  <basile@starynkevitch.net>
7509
7510         * gengtype.c:  Include getopt.h and version.h.
7511
7512         (lang_bitmap, struct outf, outf_p)
7513         (get_output_file_with_visibility, oprintf): Definitions moved to
7514         gengtype.h
7515         (output_files, header_file, srcdir, srcdir_len, this_file)
7516         (do_dump): No more static variables.
7517         (do_debug): New.
7518         (dbgprint_count_type_at): Added new function.
7519         (gengtype_long_options): New.
7520         (print_usage, print_version, parse_program_options): New.
7521         (main): Call parse_program_options, and removed old option
7522         handling code.  Added some debug output.
7523
7524         * gengtype.h:  Updated copyright year.
7525         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7526         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7527         Moved from gengtype.c to here.
7528         (do_debug, read_state_filename, write_state_filename): New variables.
7529         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7530
7531         * Makefile.in:
7532         (REVISION): Always defined.
7533         (version.o): Removed ifdef REVISION_c.
7534         (s-gtype): Pass arguments to build/gengtype program.
7535         (build/version.o): Added building rule.
7536         (build/gengtype$(build_exeext)): Added build/version.o.
7537
7538 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7539
7540         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7541         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7542         __strong macros.
7543
7544 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7545
7546         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7547         may_trap_or_fault_p instead of may_trap_p predicate.
7548         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7549         (substitute_placeholder_in_expr): Likewise.
7550         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7551         flag on MEM_REF nodes.
7552         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7553         flags on INDIRECT_REF nodes.
7554
7555 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7556
7557         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7558         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7559         (arm*-*-eabi*) <tm_file>: Likewise.
7560         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7561         (frv-*-*linux*) <tm_file>: Likewise.
7562         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7563         and associated helper macros.
7564         * config/frv/frv-abi.h: Delete.
7565
7566 2010-10-14  Richard Guenther  <rguenther@suse.de>
7567
7568         PR lto/44561
7569         * tree.def (NULLPTR_TYPE): New tree code.
7570         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7571         * dwarf2out.c (is_base_type): Likewise.
7572         (gen_type_die_with_usage): Likewise.
7573         * sdbout.c (plain_type_1): Likewise.
7574         * tree.c (build_int_cst_wide): Likewise.
7575         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7576
7577 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7578
7579         * params.c (params_finished): New.
7580         (add_params): Assert !params_finished.
7581         (finish_params): New.
7582         (set_param_value_internal): Take params and params_set
7583         parameters.  Assert params_finished.
7584         (set_param_value, maybe_set_param_value): Take params and
7585         params_set parameters.  Update calls to set_param_value_internal.
7586         (set_default_param_value): Assert !params_finished.  Don't use
7587         set_param_value_internal.
7588         (default_param_value, init_param_values): New.
7589         * params.h (struct param_info): Change value to default_value.
7590         Remove set.
7591         (set_param_value, maybe_set_param_value): Add params and
7592         params_set parameters.
7593         (PARAM_VALUE): Get parameters from global_options.
7594         (PARAM_SET_P): Remove.
7595         (finish_params, default_param_value, init_param_values): New.
7596         * common.opt (param_values): New Variable.
7597         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7598         maybe_set_param_value.
7599         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7600         arguments to maybe_set_param_value.
7601         * config/picochip/picochip.c (picochip_option_override): Pass
7602         extra arguments to maybe_set_param_value.
7603         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7604         extra arguments to maybe_set_param_value.
7605         * config/s390/s390.c (s390_option_override): Use
7606         maybe_set_param_value instead of set_param_value.  Pass extra
7607         arguments to maybe_set_param_value.
7608         * config/sparc/sparc.c (sparc_option_override): Pass extra
7609         arguments to maybe_set_param_value.
7610         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7611         maybe_set_param_value.
7612         * opts.c (handle_param): Take opts and opts_set parameters.
7613         Update call to set_param_value.
7614         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7615         initial_loop_invariant_max_bbs_in_loop): Remove.
7616         (init_options_once): Don't set them.
7617         (init_options_struct): Initialize parameters structures.
7618         (default_options_optimization): Use default_param_value when
7619         restoring defaults.  Update calls to maybe_set_param_value.
7620         (finish_options): Update calls to maybe_set_param_value.
7621         (common_handle_option): Update calls to handle_param and
7622         set_param_value.
7623         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7624         (general_init): Call finish_params.
7625
7626 2010-10-14  Nick Clifton  <nickc@redhat.com>
7627
7628         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7629         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7630         (FIRST_PSEUDO_REGISTER): Increase by one.
7631         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7632         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7633         (MODES_TIEABLE): Call mn10300_modes_tieable.
7634         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7635         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7636         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7637         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7638         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7639         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7640         (mn10300_cc_status_mdep): Delete.
7641         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7642         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7643         the combine-stack-adjust pass.
7644         (print_operand): Use the mode of the comparison operation to
7645         select the comparison suffix.
7646         (notice_update_cc): Delete.
7647         (mn10300_secondary_reload_class): Remove test for stack pointer
7648         based arithmetic.
7649         (output_tst): Rename to mn10300_output_cmp.
7650         (impossible_plus_operand): Move into predicates.md.
7651         (mn10300_legitimize_address): Make static.
7652         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7653         constant pic operands.
7654         (mn10300_legitimate_constant_p): New function.
7655         (mn10300_case_values_threshold): Make static.
7656         (mn10300_hard_regno_mode_ok): New function.
7657         (mn10300_modes_tieable): New function.
7658         (mn10300_select_cc_mode): New function.
7659         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7660         * config/mn10300/mn10300-protos.h: Tidy.
7661         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7662         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7663         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7664         with clobbers or sets of CC_REG.
7665         (CC_REG): Define.
7666         (mov*): Remove use of CLR instruction.
7667         (cbranch_si4_<code>): New pattern/split.
7668         (integer_conditional_branch): New pattern.
7669         (cbranch_sf4_<code>): New pattern/split.
7670         (float_conditional_branch): New pattern.
7671         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7672         move a value at the same time.
7673         (cc0 peepholes): Remove.
7674
7675 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7676
7677         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7678         on RTX_FRAME_RELATED_P insns and the insn to which
7679         NOTE_INSN_EPILOGUE_BEG is attached.
7680         * sched-vis.c (print_value): Allow NULL value.
7681
7682 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7683
7684         PR rtl-optimization/45570
7685         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7686         assert that we are pipelining outer loops.  Allow returning
7687         zero predecessors.
7688
7689 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7690
7691         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7692         (tidy_control_flow): Tidy vertical space.
7693         (sel_remove_bb): New variable idx.  Use it to remember the basic
7694         block index before deleting the block.
7695         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7696         (sel_merge_blocks): ... here.
7697         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7698
7699 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7700
7701         * cse.c (is_dead_reg): Change into inline function that is not
7702         called through for_each_rtx.
7703         (set_live_p): Adjust caller.
7704         (insn_live_p): Don't reset DEBUG_INSNs here.
7705         (struct dead_debug_insn_data): New data.
7706         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7707         (delete_trivially_dead_insns): If there is just one setter for the
7708         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7709         and add DEBUG_INSN for it right before the removed setter and
7710         use the DEBUG_EXPR instead of the dead pseudo.
7711
7712 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7713
7714         * et-forest.c (et_nca): Return NULL immediately when
7715         the dominance forest has disjoint components.
7716
7717 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7718
7719         * ira.c (setup_class_hard_regs): Fix typo in indexing
7720         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7721
7722 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7723
7724         * graph.c (inbb): New variable.
7725         (start_bb): Set inbb to 1 if output is inside of a building block.
7726         (end_bb): Check if output is inside of a building block.
7727
7728 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7729
7730         PR rtl-optimization/45912
7731         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7732         regno of registers instead of their index to compute the alignment.
7733
7734 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7735
7736         * config/i386/i386.c (ix86_build_const_vector): Check vector
7737         mode instead of scalar mode.
7738         (ix86_build_signbit_mask): Likewise.
7739         (ix86_expand_fp_absneg_operator): Updated.
7740         (ix86_expand_copysign): Likewise.
7741         (ix86_expand_int_vcond): Likewise.
7742         (ix86_emit_swdivsf): Likewise.
7743         (ix86_sse_copysign_to_positive): Likewise.
7744         (ix86_expand_sse_fabs): Likewise.
7745         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7746         * config/i386/sse.md (copysign<mode>3): Likewise.
7747         (sse2_cvtudq2ps): Likewise.
7748         (vec_unpacku_float_hi_v4si): Likewise.
7749         (vec_unpacku_float_lo_v4si): Likewise.
7750
7751         * config/i386/i386.c (ix86_builtins): Add
7752         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7753         (bdesc_args): Likewise.
7754         (ix86_builtin_vectorized_function): Support
7755         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7756         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7757         and IX86_BUILTIN_CVTPS2DQ256.
7758         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7759
7760         * config/i386/sse.md (STORENT_MODE): New.
7761         (VEC_FLOAT_MODE): Likewise.
7762         (VEC_EXTRACT_MODE): Likewise.
7763         (*avx_cvtdq2pd256_2): Likewise.
7764         (vec_pack_trunc_v4df): Likewise.
7765         (vec_interleave_highv8sf): Likewise.
7766         (vec_interleave_lowv8sf): Likewise.
7767         (storent<mode>): Macroized.
7768         (<code><mode>2: absneg): Likewise.
7769         (copysign<mode>3): Likewise.
7770         (vec_extract<mode>): Likewise.
7771
7772         PR target/44180
7773         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7774         for V8SFmode.
7775
7776 2010-10-13  Richard Guenther  <rguenther@suse.de>
7777             H.J. Lu  <hongjiu.lu@intel.com>
7778
7779         * config/i386/sse.md (reduc_splus_v8sf): Add.
7780         (reduc_splus_v4df): Likewise.
7781         (vec_unpacks_hi_v8sf): Likewise.
7782         (vec_unpacks_lo_v8sf): Likewise.
7783         (*avx_cvtps2pd256_2): Likewise.
7784         (vec_unpacks_float_hi_v8si): Likewise.
7785         (vec_unpacks_float_lo_v8si): Likewise.
7786         (vec_interleave_highv4df): Likewise.
7787         (vec_interleave_lowv4df): Likewise.
7788
7789 2010-10-13  Richard Guenther  <rguenther@suse.de>
7790
7791         PR objc/45878
7792         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7793         alone if there are no virtual methods.
7794
7795 2010-10-13  Richard Henderson  <rth@redhat.com>
7796
7797         * expr.c (build_personality_function): Take parameter LANG instead
7798         of parameter NAME.  Build the name based on the lang prefix and the
7799         unwind method in use.
7800         * tree.c (lhd_gcc_personality): Update call to
7801         build_personality_function.
7802
7803 2010-10-13  Richard Guenther  <rguenther@suse.de>
7804
7805         PR objc/45878
7806         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7807
7808 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7809
7810         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7811         Canonicalize input operands of ASM_OPERANDS insns.
7812
7813 2010-10-13  Richard Guenther  <rguenther@suse.de>
7814
7815         PR tree-optimization/45788
7816         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7817         EH update until fixup-cfg.
7818
7819 2010-10-13  Julian Brown  <julian@codesourcery.com>
7820
7821         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7822         from CORE_REGS and GENERAL_REGS classes.
7823         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7824         final constraint for register preferencing.
7825
7826 2010-10-13  Richard Guenther  <rguenther@suse.de>
7827
7828         PR tree-optimization/45970
7829         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7830         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7831         (stmt_kills_ref_p): Likewise.
7832         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7833
7834 2010-10-13  Richard Guenther  <rguenther@suse.de>
7835
7836         PR tree-optimization/45982
7837         * tree-ssa-structalias.c (make_constraints_to): New function.
7838         (make_constraint_to): Implement in terms of make_constraints_to.
7839         (find_func_aliases): Properly make return values of pure/const
7840         functions escape if they assign to sth that is not a pointer.
7841
7842 2010-10-13  Richard Guenther  <rguenther@suse.de>
7843
7844         PR middle-end/45874
7845         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7846         Fixup the CFG when EH was fixed up.
7847
7848 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7849
7850         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
7851         Use operand's type for POINTER_PLUS_EXPR.
7852
7853 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
7854
7855         * c-parser.c (c_parser_for_statement): Initialize incr.
7856
7857 2010-10-12  Xinliang David Li  <davidxl@google.com>
7858
7859         PR tree-optimization/45972
7860         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
7861         with too many arguments.
7862
7863 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7864
7865         PR fortran/45636
7866         * tree-ssa-forwprop.c: Include expr.h.
7867         (constant_pointer_difference, simplify_builtin_call): New functions.
7868         (tree_ssa_forward_propagate_single_use_vars): Call
7869         simplify_builtin_call on builtin calls.
7870
7871 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
7872
7873         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
7874         (*adddi3_extend_sp32): Likewise.
7875         (*subdi3_insn_sp32): Likewise.
7876         (*subdi3_extend_sp32): Likewise.
7877         (*negdi2_sp32): Use negative test for consistency.
7878
7879 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7880
7881         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
7882         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7883         * config/fixed-bit.h: Likewise.
7884         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7885         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7886         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
7887         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
7888         (DF_SIZE): Likewise.
7889         * doc/tm.texi: Regenerate.
7890
7891 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7892
7893         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
7894         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
7895         (*isel_reversed_unsigned_<mode>): New.
7896         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
7897         as valid comparisons and adjust operands and output appropriately.
7898         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
7899
7900 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
7901
7902         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
7903         DATA_ALIGNMENT and add COND parameter. Update comments above.
7904         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
7905         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
7906
7907 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
7908
7909         PR bootstrap/45958
7910         * exec-tool.in: Support '-plugin' as the second option to the linker.
7911
7912 2010-10-12  Richard Henderson  <rth@redhat.com>
7913
7914         PR middle-end/45962
7915         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
7916         (expand_stack_vars): Assert large base allocated when used.
7917
7918 2010-10-12  Richard Guenther  <rguenther@suse.de>
7919
7920         * tree-ssa-structalias.c (get_constraint_for_1): Constants
7921         only point to nonlocal, not anything.
7922
7923 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7924
7925         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
7926         unwind info for exceptions.
7927
7928 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7929
7930         PR testsuite/45851
7931         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
7932         Document optional target selector.
7933
7934 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
7935
7936         * flag-types.h: New.
7937         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
7938         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
7939         options.h.
7940         (OPTIONS_H): Define.
7941         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
7942         of options.h.
7943         * configure.ac (tm_include_list): Include options.h not flags.h.
7944         * configure: Regenerate.
7945         * flags.h: Include flag-types.h.  Include options.h at top of file
7946         again.
7947         (enum debug_info_type, enum debug_info_level, enum
7948         debug_info_usage, enum symbol_visibility, struct visibility_flags,
7949         enum ira_algorithm, enum ira_region, enum excess_precision, enum
7950         graph_dump_types, enum stack_check_type,
7951         enum warn_strict_overflow_code): Move to flag-types.h
7952         * opth-gen.awk: Include flag-types.h in options.h.
7953
7954 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7955
7956         * expr.c (store_expr): Share code for STRING_CST and
7957         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
7958         check if target is a MEM.
7959
7960         * rtl.h: Include hashtab.h.
7961         (iterative_hash_rtx): New prototype.
7962         * rtl.c (iterative_hash_rtx): New function.
7963         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
7964         (output_loc_list): Return immediately if emitted is set, set it.
7965         (hash_loc_operands, hash_locs, hash_loc_list,
7966         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
7967         optimize_location_lists_1, optimize_location_lists): New function.
7968         (dwarf2out_finish): Call optimize_location_lists.
7969         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
7970
7971 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7972
7973         PR testsuite/45974
7974         Revert:
7975         * Makefile.in ($(lang_checks_parallel))
7976         ($(lang_checks_parallelized)): Use single quotes for
7977         $(RUNTESTFLAGS), to allow passing quoted content.
7978
7979 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7980
7981         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
7982         actual_oldval.  Use __builtin_expect.
7983         (SUBWORD_VAL_CAS): Likewise.
7984
7985 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
7986
7987         * recog.c (nonmemory_operand): Call immediate_operand for
7988         CONSTANT_P operands.
7989
7990 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
7991
7992         * config/i386/i386.md (movmem<mode>): Macroize expander from
7993         movmem{si,di} using SWI48 mode iterator.
7994         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
7995         *strmovsi_rex_1 using P mode iterator.
7996         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
7997         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
7998         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
7999         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8000         (setmem<mode>): Macroize expander from setmem{si,di} using
8001         SWI48 mode iterator.
8002         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8003         *strsetsi_rex_1 using P mode iterator.
8004         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8005         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8006         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8007         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8008         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8009         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8010         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8011         mode iterator.
8012         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8013         *strlenqi_rex_1 using P mode iterator.
8014
8015 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8016
8017         PR bootstrap/45445
8018         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8019         static functions.
8020         (mark_ref_live, mark_ref_dead): Use them.
8021         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8022         Save the original reg, and use the new functions.
8023         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8024         changed.
8025         (check_and_make_def_conflict): Save the original reg.
8026
8027 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8028
8029         PR middle-end/45699
8030         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8031         thunks.
8032
8033 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8034
8035         * Makefile.in ($(lang_checks_parallel))
8036         ($(lang_checks_parallelized)): Use single quotes for
8037         $(RUNTESTFLAGS), to allow passing quoted content.
8038
8039         PR bootstrap/35855
8040         * opt-functions.awk (BEGIN): New section.
8041         (lower, upper, digit, alnum): New variables.
8042         (static_var, opt_sanitized_name): Use alnum instead of character
8043         classes, for non-C locale.
8044         * optc-gen.awk: Likewise.
8045         * opth-gen.awk: Likewise.
8046
8047 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8048
8049         * target.def (preferred_reload_class): New hook.
8050         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8051         * doc/tm.texi: Regenerate.
8052         * targhooks.c (default_preferred_reload_class): New function.
8053         * targhooks.h (default_preferred_reload_class): Declare.
8054         * reload.c (find_dummy_reload): Change preferred_class variable type
8055         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8056         target hook.
8057         (find_reloads): Change goal_alternative array type from int to
8058         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8059         (push_reload, find_reloads_address_part): Use
8060         TARGET_PREFERRED_RELOAD_CLASS target hook.
8061         * reload1.c (emit_input_reload_insns): Ditto.
8062         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8063         hook. Change rclass argument and secondary_class variable types from
8064         'enum reg_class' to reg_class_t.
8065
8066         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8067         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8068         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8069         Change regclass argument and result types from enum reg_class to
8070         reg_class_t.
8071         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8072
8073 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8074
8075         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8076         in masking operations.
8077         (simplify_const_unary_operation): Likewise.
8078         (simplify_binary_operation_1): Likewise.
8079         (simplify_const_binary_operation): Likewise.
8080         (simplify_const_relational_operation): Likewise.
8081         (simplify_ternary_operation): Likewise.
8082         (simplify_immed_subreg): Likewise.
8083
8084 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8085
8086         PR middle-end/45862
8087         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8088         (TARGET_SUPPORTS_WEAK): New.
8089         * doc/tm.texi: Regenerate.
8090         * defaults.h (SUPPORTS_WEAK): Update comment.
8091         (TARGET_SUPPORTS_WEAK): New.
8092         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8093         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8094         SUPPORTS_WEAK.
8095         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8096         make_decl_one_only): Likewise.
8097         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8098         TARGET_SUPPORTS_WEAK.
8099         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8100         instead of SUPPORTS_WEAK.
8101
8102 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8103
8104         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8105
8106 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8107
8108         * vec.h (VEC_qsort): Define.
8109         * dbxout.c (output_used_types): Use it.
8110         * df-scan.c (df_sort_and_compress_refs): Likewise.
8111         (df_sort_and_compress_mws): Likewise.
8112         * genautomata.c (uniq_sort_alt_states): Likewise.
8113         (evaluate_equiv_classes): Likewise.
8114         (output_trans_table): Likewise.
8115         (output_state): Likewise.
8116         * gimplify.c (compare_case_labels): Likewise.
8117         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8118         * ipa.c (build_cdtor_fns): Likewise.
8119         * lto.c (lto_wpa_write_files): Likewise.
8120         * sel-sched.c (fill_vec_av_set): Likewise.
8121         * tree-predcom.c (determine_roots_comp): Likewise.
8122         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8123         (splice_param_accesses): Likewise.
8124         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8125         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8126         (reassociate_bb): Likewise.
8127         * tree-ssa-sccvn.c (sort_scc): Likewise.
8128         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8129
8130 2010-10-11  Ian Lance Taylor  <iant@google.com>
8131
8132         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8133         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8134         TREE_THIS_NOTRAP when appropriate.
8135         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8136         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8137         newly created MEM_REF.
8138
8139 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8140
8141         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8142         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8143         (picochip_incoming_function_arg): Delete.
8144         (picochip_arg_advance): Delete.
8145         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8146         (FUNCTION_INCOMING_ARG): Delete.
8147         (FUNCTION_ARG_ADVANCE): Delete.
8148         * config/picochip/picochip.c (picochip_function_arg): Take a
8149         const_tree and a bool.
8150         (picochip_incoming_function_arg): Likewise.
8151         (picochip_arg_advance): Likewise.
8152         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8153         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8154
8155 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8156
8157         PR middle-end/45955
8158         * ipa.c (build_cdtor): Delete endless loop.
8159
8160 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8161
8162         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8163         checksum-options.
8164         (checksum-options): Add.
8165         (cc1-dummy): Remove.
8166         (cc1-checksum): Change to run checksum over object files
8167         and options only.
8168         * dummy-checksum.c: Remove.
8169         * genchecksum.c: Update copyright.
8170         (usage): Allow multiple arguments.
8171         (BLOCKSIZE): Add.
8172         (dosum): Change for incremental checksum. Remove C output.
8173         (main): Iterate over all argument files. Add C output.
8174
8175 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8176
8177         * params.c (set_param_value_internal): New.
8178         (set_param_value): Use set_param_value_internal.
8179         (maybe_set_param_value, set_default_param_value): New.
8180         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8181         (maybe_set_param_value, set_default_param_value): Declare.
8182         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8183         * config/i386/i386.c (ix86_option_override_internal): Use
8184         maybe_set_param_value.
8185         * config/ia64/ia64.c (ia64_option_default_params,
8186         TARGET_OPTION_DEFAULT_PARAMS): New.
8187         (ia64_option_optimization): Move some code to
8188         ia64_option_default_params.
8189         * config/picochip/picochip.c (picochip_option_override): Use
8190         maybe_set_param_value.
8191         * config/rs6000/rs6000.c (rs6000_option_default_params,
8192         TARGET_OPTION_DEFAULT_PARAMS): New.
8193         (rs6000_option_override_internal): Use maybe_set_param_value.
8194         (rs6000_option_optimization): Move some code to
8195         rs6000_option_default_params.
8196         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8197         * config/sh/sh.c (sh_option_default_params,
8198         TARGET_OPTION_DEFAULT_PARAMS): New.
8199         (sh_option_optimization): Move some code to sh_option_default_params.
8200         * config/sparc/sparc.c (sparc_option_override): Use
8201         maybe_set_param_value.
8202         * config/spu/spu.c (spu_option_default_params,
8203         TARGET_OPTION_DEFAULT_PARAMS): New.
8204         (spu_option_optimization): Move some code to spu_option_default_params.
8205         (spu_option_override): Use maybe_set_param_value.
8206         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
8207         * doc/tm.texi: Regenerate.
8208         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
8209         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
8210         compiler_params.
8211         (default_options_optimization): Use maybe_set_param_value.
8212         (finish_options): Use maybe_set_param_value.
8213         * target.def (target_option.default_params): New hook.
8214         * toplev.c (general_init): Call targetm.target_option.default_params.
8215
8216 2010-10-11  Ira Rosen  <irar@il.ibm.com>
8217
8218         PR tree-optimization/45902
8219         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
8220         vector type for constants, unless it's a pointer.
8221
8222 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8223
8224         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
8225
8226 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
8227
8228         PR target/45870
8229         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
8230         (ix86_delegitimize_address): Use it.
8231
8232 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8233
8234         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
8235
8236 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
8237
8238         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
8239         to cum struct in the call to function_arg_advance.
8240         (alpha_function_arg_advance): Mark named as unused.
8241
8242 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
8243
8244         * config/mips/mips.c (mips_handle_option): Make "value" with
8245         ATTRIBUTE_UNUSED.
8246
8247 2010-10-09  Richard Henderson  <rth@redhat.com>
8248
8249         PR rtl-opt/33721
8250         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
8251         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
8252         required_align, tidy the code a bit.  Emit split_stack code in the
8253         right place.  Mark the return value with the alignment properly.
8254         * expr.h (allocate_dynamic_stack_space): Update decl.
8255         * builtins.c (expand_builtin_apply): Update call to
8256         allocate_dynamic_stack_space.
8257         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
8258         * calls.c (initialize_argument_information): Update call to
8259         allocate_dynamic_stack_space.
8260         (expand_call): Likewise.
8261
8262         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
8263         Don't update_stack_alignment here.
8264         (alloc_stack_frame_space): Make ALIGN unsigned.
8265         (stack_var_cmp): Sort by alignment too.
8266         (partition_stack_vars): Don't merge large and small alignment vars.
8267         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
8268         Take care when BASE is not virtual_stack_vars_rtx.
8269         (expand_stack_vars): Allocate dynamic stack space for large
8270         alignment variables.
8271         (expand_one_stack_var): Update all to expand_one_stack_var_at.
8272         (defer_stack_allocation): True for large alignment vars.
8273         (update_stack_alignment): Merge into ...
8274         (expand_one_var): ... here.
8275         (gimple_expand_cfg): Place code from expand_stack_vars.
8276
8277 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8278
8279         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8280         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
8281         (pdp11_function_arg_advance): New function.
8282         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8283
8284 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8285
8286         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
8287         * libgcc2.c: Likewise.
8288
8289 2010-10-09  Richard Guenther  <rguenther@suse.de>
8290
8291         PR lto/45956
8292         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
8293         Properly check if a decl is an automatic var.
8294
8295 2010-10-09  Richard Guenther  <rguenther@suse.de>
8296
8297         PR lto/45947
8298         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
8299
8300 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8301
8302         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
8303         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8304         * config/mmix/mmix.c (mmix_function_arg): Rename to...
8305         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
8306         bool arguments.
8307         (mmix_function_arg): New function.
8308         (mmix_function_incoming_arg): New function.
8309         (mmix_function_arg_advance): New function.
8310         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8311         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8312
8313 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8314
8315         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8316         * config/vax/vax.c (vax_function_arg): New function.
8317         (vax_function_arg_advance): New function.
8318         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8319
8320 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8321
8322         * config/pa/pa-protos.h (function_arg): Delete.
8323         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8324         * config/pa/pa.c (function_arg): Rename to...
8325         (pa_function_arg): ...this.  Make static.  Take a const_tree and
8326         a bool.
8327         (pa_function_arg_advance): New function.
8328         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8329
8330 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8331
8332         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8333         * config/m68k/m68k.c (m68k_function_arg): New function.
8334         (m68k_function_arg_advance): New function.
8335         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8336
8337 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8338
8339         * config/avr/avr-protos.h (function_arg): Delete.
8340         (function_arg_advance): Delete.
8341         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8342         * config/avr/avr.c (function_arg): Rename to...
8343         (avr_function_arg): ...this.  Make static.  Take a const_tree and
8344         a bool.
8345         (function_arg_advance): Rename to...
8346         (avr_function_arg_advance): ...this.  Make static.  Take a
8347         const_tree and a bool.
8348         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8349
8350 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8351
8352         * config/alpha/alpha-protos.h (function_arg): Delete.
8353         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8354         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
8355         * config/alpha/alpha.c (function_arg): Rename to...
8356         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
8357         a bool.  Delete TARGET_ABI_UNICOSMK code.
8358         (alpha_function_arg_advance): New function.
8359         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8360
8361 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8362
8363         * config/mep/mep-protos.h (mep_function_arg): Delete.
8364         (mep_function_arg_advance): Delete.
8365         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8366         * config/mep/mep.c (mep_function_arg): Make static.  Take a
8367         const_tree and a bool.
8368         (mep_function_arg_advance): Likewise.
8369         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8370
8371 2010-10-09  Richard Guenther  <rguenther@suse.de>
8372
8373         PR tree-optimization/45945
8374         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8375
8376 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8377
8378         PR tree-optimization/45612
8379         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8380         Test LABEL_DECLs as well.  Fix formatting issues.
8381         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8382         whose label is present in NON_SSA_VARS.
8383         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8384         as well.  Fix formatting issues.
8385         (visit_bb): Fix typos and formatting issue.
8386
8387 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8388
8389         PR tree-optimization/45950
8390         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8391         before initializing vno->op.
8392
8393 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8394
8395         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8396         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8397
8398 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8399
8400         PR target/45913
8401         * config/i386/i386.c (ix86_binary_operator_ok): Support
8402         "andhi/andsi/anddi" as a zero-extending move.
8403
8404 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8405
8406         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8407         into a temporary array.
8408
8409 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8410
8411         PR tree-optimization/45903
8412         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8413         of {A,L}SHIFTRT of MEM.
8414
8415 2010-10-08  Richard Guenther  <rguenther@suse.de>
8416
8417         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8418         Re-construct BLOCK_VARS.
8419         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8420         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8421         * tree.c (free_lang_data_in_block): Remove.
8422         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8423         Do not touch the BLOCK tree.
8424         * expr.c (expand_expr_real_1): Allow externals.
8425
8426 2010-10-08  Richard Guenther  <rguenther@suse.de>
8427
8428         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8429         Do not output BLOCK_SUBBLOCKS.
8430         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8431         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8432         Re-construct BLOCK_SUBBLOCKS of parent block.
8433         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8434         for BINFO_BASE_ACCESSES.
8435
8436 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8437
8438         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8439         (TREE_H): Include $(FLAGS_H) instead of options.h.
8440         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8441         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8442         * common.opt (flag_complex_method, flag_evaluation_order,
8443         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8444         Variable declarations.
8445         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8446         * configure: Regenerate.
8447         * flags.h: Condition out contents for target libraries.  Include
8448         options.h at end of file.
8449         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8450         flag_evaluation_order, flag_warn_unused_result): Remove.
8451         * gcc.c (main): Intialize global_options with global_options_init.
8452         * langhooks-def.h (lhd_init_options_struct): Declare.
8453         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8454         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8455         * langhooks.c (lhd_init_options_struct): New.
8456         * langhooks.h (struct lang_hooks): Add init_options_struct.
8457         Update comment on init_options.
8458         * optc-gen.awk: Generate initializer for global_options_init, not
8459         global_options.
8460         * opth-gen.awk: Condition out structure declarations for target
8461         libraries.  Declare global_options_init.
8462         * opts-common.c: Include flags.h instead of options.h.
8463         * opts.c (flag_warn_unused_result): Remove.
8464         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8465         read_cmdline_option.
8466         (initial_lang_mask, initial_min_crossjump_insns,
8467         initial_max_fields_for_field_sensitive,
8468         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8469         (init_options_once): New.  Split out of decode_options.
8470         (init_options_struct): New.  Split out of decode_options.
8471         (decode_cmdline_options_to_array_default_mask): New.
8472         (default_options_optimization): New.  Split out of decode_options.
8473         (decode_options): Move most code to other functions.  Update call
8474         to read_cmdline_options.
8475         (finish_options): New.  Split out of decode_options.
8476         * opts.h (decode_options): Add gcc_options parameters.
8477         (init_options_once, init_options_struct,
8478         decode_cmdline_options_to_array_default_mask): New.
8479         * toplev.c (flag_complex_method, flag_ira_algorithm,
8480         flag_ira_region, flag_evaluation_order): Remove.
8481         (general_init): Use global_options_init for initial flag values
8482         for global_dc.
8483         (toplev_main): Call init_options_once, init_options_struct,
8484         lang_hooks.init_options_struct,
8485         decode_cmdline_options_to_array_default_mask and
8486         lang_hooks.init_option before decode_options.  Update arguments to
8487         decode_options.
8488         * tree.h: Include flags.h instead of options.h.
8489
8490 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8491
8492         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8493
8494 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8495
8496         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8497         Delete.
8498         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8499         (FUNCTION_INCOMING_ARG): Delete.
8500         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8501         (function_arg_slotno): Likewise.  Take bool arguments.
8502         (sparc_arg_partial_bytes): Update call to it.
8503         (function_arg): Rename to...
8504         (sparc_function_arg_1): ...this.  Take bool arguments.
8505         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8506         (function_arg_advance): Rename to...
8507         (sparc_function_arg_advance): ...this.  Take bool argument.
8508         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8509         (TARGET_FUNCTION_INCOMING_ARG): Define.
8510
8511 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8512
8513         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8514         Delete.
8515         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8516         * config/bfin/bfin.c (function_arg_advance): Rename to...
8517         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8518         and bool arguments.
8519         (function_arg): Rename to...
8520         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8521         arguments.
8522         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8523
8524 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8525
8526         * config/score/score-protos.h (score_function_arg): Delete.
8527         (score_function_arg_advance): Delete.
8528         * config/score/score3.h (score3_function_arg_advance): Take a
8529         const_tree and a bool.
8530         (score3_function_arg): Likewise.
8531         * config/score/score7.h (score7_function_arg_advance): Likewise.
8532         (score7_function_arg): Likewise.
8533         * config/score/score3.c (score3_classify_arg): Likewise.
8534         (score3_function_arg_advance, score3_function_arg): Likewise.
8535         * config/score/score7.c (score7_classify_arg): Likewise.
8536         (score7_function_arg_advance, score7_function_arg): Likewise.
8537         * config/score/score.c (score_function_arg_advance): Likewise.
8538         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8539         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8540
8541 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8542
8543         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8544         (s390_function_arg): Delete.
8545         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8546         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8547         (s390_function_arg_integer): Likewise.
8548         (s390_function_arg_advance): Make static.  Take a const_tree and
8549         a bool.
8550         (s390_function_arg): Likewise.
8551         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8552
8553 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8554
8555         * config/spu/spu-protos.h (spu_function_arg): Delete.
8556         * config/spu/spu.h (FUNCTION_ARG): Delete.
8557         (FUNCTION_ARG_ADVANCE): Move code to ...
8558         * config/spu/spu.c (spu_function_arg_advance): New function.
8559         (spu_function_arg): Make static.  Take a const_tree and a bool.
8560         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8561         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8562
8563 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8564
8565         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8566
8567 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8568
8569         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8570         (init_vn_nary_op_from_op): New function.
8571         (init_vn_nary_op_from_stmt): New function.
8572         (vn_nary_op_lookup_1): New function.
8573         (sizeof_vn_nary_op): New function.
8574         (alloc_vn_nary_op_noinit): New function.
8575         (alloc_vn_nary_op): New function.
8576         (vn_nary_op_insert_into): New function.
8577         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8578         (vn_nary_op_lookup): Likewise.
8579         (vn_nary_op_lookup_stmt): Likewise.
8580         (vn_nary_op_insert_pieces): Likewise.
8581         (vn_nary_op_insert): Likewise.
8582         (vn_nary_op_insert_stmt): Likewise.
8583         (copy_nary): Likewise.
8584         (set_value_id_for_result): New function.
8585         (set_hashtable_value_ids): Call it.
8586
8587 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8588
8589         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8590         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8591
8592 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8593
8594         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8595         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8596
8597 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8598
8599         PR debug/45656
8600         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8601         debug isnsn.  Skip them when searching for cc0 setter.
8602         (set_live_p): Skip debug insns when searching for cc0 user.
8603
8604 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8605
8606         PR debug/45673
8607         PR debug/45604
8608         PR debug/45419
8609         PR debug/45408
8610         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8611         type of MEM_REFs to INTEGER_CSTs.
8612
8613 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8614
8615         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8616         m68hc11_print_operand_address.
8617
8618 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8619
8620         * builtins.c (rewrite_call_expr): Move code to...
8621         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8622         (rewrite_call_expr_array): New function.
8623         (fold_builtin_sprintf_chk_1): New function.
8624         (fold_builtin_sprintf_chk): Call it.
8625         (gimple_fold_builtin_sprintf_chk): Likewise.
8626         (fold_builtin_snprintf_chk_1): New function.
8627         (fold_builtin_snprintf_chk): Call it.
8628         (gimple_fold_builtin_snprintf_chk): Likewise.
8629         (gimple_rewrite_call_expr): Delete.
8630
8631 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8632
8633         * config.host: Update copyright year.
8634
8635 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8636
8637         * config.host (host_lto_plugin_soname): New shell variable.
8638         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8639         * config.in: Regenerate.
8640         * configure: Regenerate.
8641         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8642         LTO plugin shared library.
8643
8644 2010-10-07  Richard Henderson  <rth@redhat.com>
8645
8646         * target.h (enum unwind_info_type): Move ...
8647         * coretypes.h: ... here.
8648
8649 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8650
8651         * doc/objc.texi (Fast enumeration protocol): Mention that
8652         'unsigned int' can also be used instead of 'unsigned long' in
8653         countByEnumeratingWithState:objects:count:.
8654
8655 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8656
8657         * tree-sra.c (struct access): New field grp_assignment_write.
8658         (dump_access): Dump grp_assignment_write.
8659         (build_accesses_from_assign): Set grp_assignment_write.
8660         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8661         (mark_read_status): Renamed to mark_rw_status, individual values
8662         renamed too.
8663         (analyze_access_subtree): Changed type of mark_write to
8664         mark_read_status.  Fixed propagating of mark_read and
8665         mark_write.  Changed benefit estimate.  Updated comment.
8666
8667 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8668
8669         PR Tree-Vect/45847
8670         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8671         check for vectype_out returned by get_vectype_for_scalar_type().
8672
8673 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8674
8675         PR target/45805
8676         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8677         constraint, add register specifier in instruction template.
8678         (neon_vec_pack_trunc_<mode>): Likewise.
8679         (neon_vec_<US>mult_<mode>): Add register specifier to
8680         instruction template.
8681
8682 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8683
8684         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8685         cygwin2.o.
8686         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8687         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8688         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8689         (cygwin2.o): Likewise.
8690         * config/i386/cygwin1.c: Delete file.
8691         * config/i386/cygwin2.c: Likewise.
8692         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8693         make all {%!mno-cygwin} ones unconditional.
8694         (STARTFILE_SPEC): Likewise.
8695         (REAL_LIBGCC_SPEC): Likewise.
8696         (LIB_SPEC): Likewise.
8697         (CXX_WRAP_SPEC): Likewise.
8698         (LINK_SPEC): Likewise.
8699         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8700         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8701         (cygwin_gplusplus_include_dir): Delete now-unused array.
8702         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8703         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8704         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8705         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8706         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8707         (cygwin_local_include_dir): Delete now-unused array.
8708         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8709         (cygwin_cross_include_dir): Delete now-unused array.
8710         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8711         (cygwin_tool_include_dir): Delete now-unused array.
8712         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8713         (cygwin_standard_include_dir): Delete now-unused array.
8714         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8715         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8716         (cvt_to_mingw): Delete now-unused array.
8717         (mingw_scan): Remove prototype of deleted function.
8718         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8719         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8720         * doc/invoke.texi (-mcygwin): Don't document removed option.
8721         (-mno-cygwin): Likewise.
8722
8723 2010-10-07  Richard Guenther  <rguenther@suse.de>
8724
8725         * machmode.h (mode_for_vector): Declare.
8726         * stor-layout.c (mode_for_vector): New function, split out from ...
8727         (layout_type): ... here.
8728         * tree-vectorizer.h (current_vector_size): Declare.
8729         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8730         mask vector type is available.
8731         (get_vectype_for_scalar_type): Rename to ...
8732         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8733         size argument.
8734         (get_vectype_for_scalar_type): New wrapper around
8735         get_vectype_for_scalar_type_and_size using current_vector_size.
8736         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8737         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8738         of vect_analyze_loop here.
8739         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8740         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8741         to autodetect.
8742         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8743         V8SF to V8SI conversion builtin.
8744
8745 2010-10-07  Richard Guenther  <rguenther@suse.de>
8746
8747         * target.def (autovectorize_vector_sizes): New target hook.
8748         * targhooks.c (default_autovectorize_vector_sizes): New function.
8749         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8750         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8751         Document.
8752         * doc/tm.texi: Update.
8753         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8754         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8755
8756 2010-10-07  Richard Guenther  <rguenther@suse.de>
8757
8758         * target.def (units_per_simd_word): Rename to ...
8759         (preferred_simd_mode): ... this.  Return mode instead of size.
8760         * targhooks.c (default_units_per_simd_word): Rename to ...
8761         (default_preferred_simd_mode): ... this.  Return word_mode.
8762         * targhooks.h (default_preferred_simd_mode): Declare.
8763         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8764         (arm_preferred_simd_mode): ... this.  Re-implement.
8765         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8766         (ix86_preferred_simd_mode): ... this.  Re-implement.
8767         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8768         (sparc_preferred_simd_mode): ... this.  Re-implement.
8769         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8770         (mips_preferred_simd_mode): ... this.  Re-implement.
8771         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8772         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8773         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8774         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8775         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8776         * doc/tm.texi: Update.
8777
8778 2010-10-07  Richard Guenther  <rguenther@suse.de>
8779
8780         PR middle-end/45869
8781         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8782         of pointers.
8783
8784 2010-10-07  Alan Modra  <amodra@gmail.com>
8785
8786         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8787         rather than sign extension by hand.
8788
8789 2010-10-07  Jan Hubicka  <jh@suse.cz>
8790
8791         PR middle-end/45926
8792         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8793
8794 2010-10-07  Richard Guenther  <rguenther@suse.de>
8795
8796         PR bootstrap/45914
8797         * configure.ac: Fix typo.
8798         * configure: Regenerated.
8799
8800 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8801
8802         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8803         define_builtin_std where it's unnecessary.
8804         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8805
8806 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8807
8808         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8809         * doc/tm.texi.in: Regenerate.
8810         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8811         * targhooks.c (default_class_likely_spilled_p): Don't use the
8812         CLASS_LIKELY_SPILLED_P macro.
8813
8814         * config/arm/arm.md: Update comment.
8815
8816 2010-10-06  Jan Hubicka  <jh@suse.cz>
8817
8818         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8819         always be removed.
8820         (cgraph_externally_visible_p): We can not bring local comdats that
8821         are known to linker; fix handling of internal visibility.
8822         (function_and_variable_visibility): Likewise.
8823
8824 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8825
8826         PR rtl-optimization/45394
8827         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8828         (struct rtx_subst_pair): Remove AFTER field.
8829         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8830         (propagate_for_debug): Remove MOVE parameter and adjust.
8831         (try_combine): In the special case where I2 is a PARALLEL, combine only
8832         destinations of SETs and set I2SRC to the I2 source.
8833         Adjust calls to propagate_for_debug throughout.
8834         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8835         insns.
8836
8837 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8838
8839         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8840         switch on insn codes as sequence of ifs.
8841
8842 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8843
8844         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8845         be UI_NONE for picochip.
8846         (picochip_option_override): Do not disable exception flags.
8847         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8848         Declare.
8849
8850 2010-10-06  Richard Guenther  <rguenther@suse.de>
8851
8852         * Makefile.in (regmove.o): Depend on $(TARGET_H).
8853
8854 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
8855
8856         Implemented fast enumeration for Objective-C.
8857         * c-parser.c (objc_could_be_foreach_context): New.
8858         (c_lex_one_token): Recognize RID_IN keyword in a potential
8859         Objective-C foreach context.
8860         (c_parser_declaration_or_fndef): Added parameter.  Accept
8861         Objective-C RID_IN keyword as terminating a declaration; in that
8862         case, return the declaration in the new parameter.
8863         (c_parser_extenral_declaration): Updated calls to
8864         c_parser_declaration_or_fndef.
8865         (c_parser_declaration_or_fndef): Same change.
8866         (c_parser_compound_statement_nostart): Same change.
8867         (c_parser_label): Same change.
8868         (c_parser_objc_methodprotolist): Same change.
8869         (c_parser_omp_for_loop): Same change.
8870         (c_parser_for_statement): Detect and parse Objective-C foreach
8871         statements.
8872         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
8873         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
8874         fast enumeration parsing code to turn off the c99 error but still
8875         perform checks on the loop declarations.
8876         * c-tree.h (check_for_loop_decls): Updated declaration.
8877         * doc/objc.texi: Document fast enumeration.
8878
8879 2010-10-06  Nick Clifton  <nickc@redhat.com>
8880
8881         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
8882         (MDR_REGNUM): Define.
8883         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
8884         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
8885         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
8886         (REGISTER_NAMES): Add MDR.
8887         (DWARF2_DEBUGGING_INFO): Define to 1.
8888         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8889         (F): New function.  Sets RTX_FRAME_RELATED_P.
8890         (mn10300_gen_multiple_store): Use F.
8891         (expand_prologue): Use F.  Use gen_movsf() to push floating
8892         point registers.
8893         (expand_epilogue): Use gen_movsf() to pop floating point registers.
8894         (mn10300_option_override): Disable combine stack adjust pass.
8895
8896 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
8897
8898         PR target/45901
8899         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
8900         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
8901
8902 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
8903
8904         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
8905         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
8906         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
8907         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
8908         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
8909         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
8910         BUILT_IN_TOUPPER): Mark as leaf.
8911
8912         PR middle-end/45838
8913         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
8914         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
8915         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
8916         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
8917         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
8918         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
8919         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
8920
8921 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
8922
8923         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
8924         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8925         (m68hc11_class_likely_spilled_p): New function.
8926
8927 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
8928
8929         * c-parser.c (c_parser_objc_method_definition): Updated comment.
8930
8931 2010-10-05  Jan Hubicka  <jh@suse.cz>
8932
8933         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
8934         Document.
8935         * opts.c (decode_options): Handle lto partitions.
8936         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
8937         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
8938
8939 2010-10-05  Jan Hubicka  <jh@suse.cz>
8940
8941         * cgraphunit.c (assemble_function): Output thunks and aliases before
8942         the function itself.
8943
8944 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
8945
8946         * config/picochip/picochip.c (picochip_option_override): Disable
8947         exception flags for picochip.
8948
8949 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
8950
8951         * opts-common.c (handle_option, handle_generated_option,
8952         read_cmdline_option, set_option): Add diagnostic_context
8953         parameter.  Update calls among these functions.
8954         (set_option): Don't use global_dc.
8955         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
8956         (decode_options): Pass global_dc to enable_warning_as_error.
8957         (common_handle_option): Pass global_dc to enable_warning_as_error.
8958         (enable_warning_as_error): Add diagnostic_context parameter.
8959         Document parameters.  Don't use global_dc.  Pass
8960         diagnostic_context parameter to handle_generated_option.
8961         * opts.h (set_option, handle_option, handle_generated_option,
8962         read_cmdline_option, enable_warning_as_error): Add
8963         diagnostic_context parameter.
8964         * Makefile.in (lto-opts.o): Update dependencies.
8965         * coretypes.h (struct diagnostic_context, diagnostic_context):
8966         Declare here.
8967         * diagnostic.h (diagnostic_context): Don't declare typedef here.
8968         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
8969         * langhooks-def.h (struct diagnostic_context): Don't declare here.
8970         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
8971         using diagnostic_context typedef.
8972         * langhooks.c (lhd_initialize_diagnostics): Declare using
8973         diagnostic_context typedef.
8974         * langhooks.h (struct diagnostic_context): Don't declare here.
8975         (initialize_diagnostics, print_error_function): Declare using
8976         diagnostic_context typedef.
8977         * lto-opts.c: Include diagnostic.h.
8978         (lto_reissue_options): Pass global_dc to set_option.  Pass
8979         DK_UNSPECIFIED not 0.
8980         * plugin.c (plugins_internal_error_function): Declare using
8981         diagnostic_context typedef.
8982         * plugin.h (struct diagnostic_context): Don't declare here.
8983         (plugins_internal_error_function): Declare using
8984         diagnostic_context typedef.
8985
8986 2010-10-05  Olivier Hainque  <hainque@adacore.com>
8987             Nicolas Roche  <roche@adacore.com>
8988
8989         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
8990         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
8991
8992 2010-10-05  Ira Rosen  <irar@il.ibm.com>
8993
8994         PR tree-optimization/45752
8995         * tree-vect-slp.c (vect_get_mask_element): Remove static
8996         variables, make them function arguments.
8997         (vect_transform_slp_perm_load): Pass new arguments to
8998         vect_get_mask_element.
8999
9000 2010-10-05  Richard Guenther  <rguenther@suse.de>
9001
9002         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9003         (gimple_mod_pow2): Likewise.
9004         (gimple_mod_subtract): Likewise.
9005         (gimple_ic): Likewise.
9006         (gimple_stringop_fixed_value): Likewise.
9007         * tree-profile.c (tree_init_edge_profiler): Mark profile
9008         functions nothrow and leaf.
9009         (add_abnormal_goto_call_edges): Remove.
9010         (tree_gen_edge_profiler): Work on SSA form.
9011         (tree_gen_ic_profiler): Likewise.  Simplify.
9012         (do_tree_profiling): Update SSA form.
9013         (pass_tree_profile): Remove.
9014         (do_tree_profiling): Likewise.
9015         (gate_tree_profile_ipa): New function.
9016         (pass_ipa_tree_profile): New.
9017         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9018         state of instrumented functions.
9019         * passes.c (init_optimization_passes): Remove early non-SSA
9020         inlining.  Move profiling after early optimizations.
9021         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9022         (pass_ipa_early_inline): Likewise.
9023         * tree-pass.h (pass_ipa_early_inline): Remove.
9024         (pass_tree_profile): Likewise.
9025         (pass_ipa_tree_profile): Declare.
9026
9027 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9028             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9029
9030         * config/s390/s390.c (z196_cost): New.
9031         (s390_handle_arch_option): Add -march=z196.
9032         (s390_option_override): Use the new cost function and use the z10
9033         defaults also for z196.
9034         (legitimate_reload_constant_p): Adjust comment.
9035         (legitimate_reload_fp_constant_p): New function.
9036         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9037         (preferred_la_operand_p): Avoid la with index on z196.
9038         (s390_adjust_priority): Trigger also for z196.
9039         (s390_issue_rate): Issue rate for z196 is 3.
9040         (s390_z10_fix_long_loop_prediction): Rename to ...
9041         (s390_fix_long_loop_prediction): ... this.
9042         (s390_reorg): Apply the z10 adjustments also for z196.
9043         (s390_loop_unroll_adjust): Do this also for z196.
9044         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9045         (enum processor_flags): Add PF_Z196.
9046         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9047         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9048         * config.gcc: Enable z196 for --with-arch.
9049         * config/s390/2817.md: New file.
9050         * config/s390/2084.md: New type for multiply and add.
9051         * config/s390/2097.md: Likewise.
9052         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9053         (UNSPECV_ATOMIC_OP): New constants.
9054         (fmadddf, fmaddsf): New values for type attribute.
9055         (z196prop): New insn attribute.
9056         (cpu, cpu_facility): Add z196.
9057         (ATOMIC_Z196): New code iterator.
9058         (noxa): New code attribute.
9059         (gk): New mode attribute.
9060         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9061         Support load zero for fp constants.
9062         (fixuns_truncdddi2, fixuns_trunctddi2)
9063         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9064         for z196.
9065         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9066         (popcounthi2, popcountqi2): New expander.
9067         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9068         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9069         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9070         insn definition.
9071         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9072         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9073         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9074         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9075         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9076         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9077         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9078         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9079         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9080         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9081         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9082         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9083         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9084         Support new z196 instructions.
9085
9086 2010-10-05  Richard Guenther  <rguenther@suse.de>
9087
9088         PR middle-end/45877
9089         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9090         case where gimplification optimizes away the stmt.
9091
9092 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9093
9094         PR debug/45849
9095         * var-tracking.c (strip_pointer_flags): New function.
9096         (emit_note_insn_var_location): If rtx_equal_p check failed,
9097         retry on locations simplified with simplify_replace_fn_rtx
9098         and strip_pointer_flags as its callback.
9099
9100 2010-10-04  Jan Hubicka  <jh@suse.cz>
9101
9102         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9103         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9104         value; handle comdats too.
9105         (canonicalize_constructor_val): Use it; handle function_decls
9106         correctly.
9107         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9108         * gimple.c (get_base_address): Accept all kinds of decls.
9109
9110 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9111
9112         * flags.h (g_switch_value, g_switch_set): Remove.
9113         * opts.c (g_switch_value, g_switch_set): Remove.
9114         * config/g.opt (G): Add Var(g_switch_value).
9115         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9116         (alpha_option_override): Check global_options_set.x_g_switch_value
9117         instead of g_switch_set.
9118         (alpha_in_small_data_p): Remove cast in comparison with
9119         g_switch_value.
9120         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9121         g_switch_value to unsigned HOST_WIDE_INT.
9122         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9123         with g_switch_value.
9124         (frv_handle_option): Don't handle -G here.
9125         (frv_option_override): Check global_options_set.x_g_switch_value
9126         instead of g_switch_set.  Don't modify g_switch_set.
9127         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9128         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9129         g_switch_value to unsigned HOST_WIDE_INT.
9130         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9131         (ia64_option_override): Check global_options_set.x_g_switch_value
9132         instead of g_switch_set.
9133         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9134         Remove.
9135         (lm32_in_small_data_p): Remove cast in comparison with
9136         g_switch_value.
9137         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9138         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9139         HOST_WIDE_INT.
9140         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9141         (m32r_init): Check global_options_set.x_g_switch_value instead of
9142         g_switch_set.
9143         (m32r_in_small_data_p): Remove cast in comparison with
9144         g_switch_value.
9145         (m32r_file_start): Format g_switch_value with %d.
9146         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9147         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9148         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9149         handle -G here.
9150         (microblaze_option_override): Check
9151         global_options_set.x_g_switch_value instead of g_switch_set.
9152         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9153         (mips_option_override): Check global_options_set.x_g_switch_value
9154         instead of g_switch_set.
9155         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9156         (rs6000_file_start): Format g_switch_value with %d.
9157         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9158         comparisons with g_switch_value.
9159         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9160         global_options_set.x_g_switch_value instead of g_switch_set.
9161         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9162         global_options_set.x_g_switch_value instead of g_switch_set.
9163         * config/score/score.c (score_handle_option): Don't handle -G here.
9164         * config/score/score3.c (score3_option_override): Check
9165         global_options_set.x_g_switch_value instead of g_switch_set.
9166         * config/score/score7.c (score7_option_override): Check
9167         global_options_set.x_g_switch_value instead of g_switch_set.
9168
9169 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9170
9171         * common.opt (fira-coalesce): Remove.
9172
9173         * doc/invoke.texi (flag_ira_coalesce): Remove.
9174
9175         * ira-color.c (allocno_coalesced_p): Move before
9176         copy_freq_compare_func.
9177         processed_coalesced_allocno_bitmap): Ditto.
9178         (update_conflict_hard_regno_costs): Don't use
9179         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9180         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9181         (assign_hard_reg): Assume no coalesced allocnos.
9182         (get_coalesced_allocnos_attributes): Remove.
9183         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9184         (push_allocno_to_stack): Ditto.
9185         (remove_allocno_from_bucket_and_push): Use
9186         ira_print_expanded_allocno instead of print_coalesced_allocno.
9187         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9188         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9189         all_conflicting_hard_regs.
9190         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9191         (setup_allocno_left_conflicts_size): Ditto.
9192         (put_allocno_into_bucket): Ditto.
9193         (copy_freq_compare_func): Remove.
9194         (copy_freq_compare_func, merge_allocnos): Move before
9195         coalesced_pseudo_reg_freq_compare.
9196         coalesced_allocno_conflict_p): Ditto.
9197         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9198         parameter.  Assume it true.
9199         (color_allocnos): Assume uncoalesced allocnos.  Use
9200         ira_print_expanded_allocno instead of print_coalesced_allocno.
9201         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9202         parameter.
9203
9204         * ira.c: Remove comment about coalescing.
9205
9206 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9207
9208         * config/mips/mips.h (target_flags_explicit): Declare for
9209         GENERATOR_FILE.
9210
9211 2010-10-04  Andi Kleen  <ak@linux.intel.com>
9212
9213         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9214         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
9215
9216 2010-10-04  Matthias Klose  <doko@ubuntu.com>
9217
9218         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
9219         multilib osdirname if it exists.
9220         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
9221
9222 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9223
9224         PR middle-end/45876
9225         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
9226         arg0's type or its unsigned counterpart as utype.  Convert
9227         arg1 to utype unconditionally.
9228
9229 2010-10-04  Julian Brown  <julian@codesourcery.com>
9230
9231         * expr.c (expand_assignment): Add assertion to prevent emitting
9232         null rtx for movmisalign pattern.
9233         (expand_expr_real_1): Likewise.
9234         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
9235         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
9236         (arm_vector_alignment_reachable): New.
9237         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
9238         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
9239         (arm_print_operand): Include alignment qualifier in %A.
9240         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
9241         (movmisalign<mode>): New expander.
9242         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
9243         insn patterns.
9244
9245 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9246
9247         * optc-gen.awk: Define global_options_set.  Don't define
9248         target_flags_explicit.
9249         * opth-gen.awk: Declare global_options_set.  Define
9250         target_flags_explicit as macro.
9251         * opts-common.c (handle_option): Take opts_set and generated_p
9252         parameters.
9253         (handle_generated_option, read_cmdline_option, set_option): Take
9254         opts_set parameter.
9255         (set_option): Use opts_set instead of hardcoding target_flags and
9256         target_flags_explicit.
9257         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
9258         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
9259         flag_value_profile_transformations_set, flag_peel_loops_set,
9260         flag_branch_probabilities_set, flag_inline_functions_set,
9261         flag_ipa_cp_set, flag_ipa_cp_clone_set,
9262         flag_predictive_commoning_set, flag_unswitch_loops_set,
9263         flag_gcse_after_reload_set): Remove.
9264         (common_handle_option, lang_handle_option, target_handle_option):
9265         Take opts_set parameter.  Assert that it is &global_options_set.
9266         (common_handle_option): Don't set _set variables.  Check opts_set
9267         instead of such variables.
9268         (enable_warning_as_error): Pass &global_options_set to
9269         handle_generated_option.
9270         * opts.h (cl_option_handler_func.handler, set_option,
9271         handle_option, handle_generated_option, read_cmdline_option): Add
9272         opts_set parameters.
9273         (handle_option): Add generated_p parameter.
9274         * config/i386/i386.c (ix86_function_specific_save,
9275         ix86_function_specific_restore): Updat for renaming of
9276         target_flags_explicit field.
9277         * config/i386/i386.opt (target_flags_explicit): Rename to
9278         ix86_target_flags_explicit.
9279         * config/ia64/ia64.c (ia64_override_options_after_change): Check
9280         global_options_set.x_flag_selective_scheduling and
9281         global_options_set.x_flag_selective_scheduling2, not
9282         sel_sched_switch_set.
9283         * flags.h (sel_sched_switch_set,
9284         flag_speculative_prefetching_set): Remove.
9285         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
9286         that it is &global_options_set.
9287         (process_command): Pass &global_options_set to read_cmdline_option.
9288         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
9289         set_option.
9290         * toplev.c (target_flags_explicit): Remove.
9291
9292 2010-10-04  Jan Hubicka  <jh@suse.cz>
9293
9294         PR middle-end/45871
9295         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
9296         use get_ref_base_and_offset to handle references.
9297         (fold_const_aggregate_ref): Update.
9298
9299 2010-10-04  Martin Jambor  <mjambor@suse.cz>
9300
9301         PR tree-optimization/45572
9302         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
9303         ipa_check_create_node_params.
9304         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
9305
9306 2010-10-04  Yao Qi  <yao@codesourcery.com>
9307
9308         * doc/passes.texi: Clean up.
9309
9310 2010-10-03  Ian Lance Taylor  <iant@google.com>
9311
9312         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
9313         referring to a field using a typedef name.
9314         (find_anonymous_field_with_type): New static function.
9315         (convert_to_anonymous_field): New static function.
9316         (convert_for_assignment): If -fplan9-extensions, permit converting
9317         pointer to struct to pointer to anonymous field.
9318         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
9319         (is_duplicate_field): New static function.
9320         (detect_field_duplicates_hash): If -fplan9-extensions, check for
9321         typedef names duplicating field names.
9322         (detect_field_duplicates): Likewise.
9323         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
9324         (C Dialect Options): Document -fplan9-extensions.
9325         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
9326
9327 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
9328
9329         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
9330         revision 164914.
9331         (vect_create_data_ref_ptr): Likewise.
9332         * tree-vect-stmts.c (vectorizable_store): Likewise.
9333         (perm_mask_for_reverse): Likewise.
9334         (reverse_vec_elements): Likewise.
9335         (vectorizable_load): Likewise.
9336
9337 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9338
9339         * cppbuiltin.c: New file.
9340         * cppbuiltin.h: New file.
9341         * Makefile.in: Take into account cppbuiltin.{h,c}.
9342
9343 2010-10-03  Andi Kleen  <ak@linux.intel.com>
9344
9345         * lto-cgraph.c (input_cgraph): Check for missing sections.
9346
9347 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
9348
9349         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
9350         to nonimmediate_operand.  Force operand 2 to register when allowed.
9351         (*<shiftrt_insn><mode>3_mask): Ditto.
9352         (*<rotate_insn><mode>3_mask): Ditto.
9353
9354 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
9355
9356         PR tree-optimization/45720
9357         PR tree-optimization/45764
9358         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9359         Don't accept backwards consecutive accesses.
9360         (vect_create_data_ref_ptr): Disallow negative steps.
9361
9362         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
9363         (perm_mask_for_reverse): Removed.
9364         (reverse_vec_elements): Likewise.
9365         (vectorizable_load): Don't handle negative steps.
9366
9367 2010-10-02  Jan Hubicka  <jh@suse.cz>
9368
9369         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
9370         call destination is known.
9371
9372 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9373
9374         PR target/45820
9375         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9376         earlier.
9377
9378 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9379
9380         * doc/install.texi (Configuration): Document build_configargs,
9381         host_configargs, target_configargs.
9382
9383 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9384
9385         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9386         (*<shiftrt_insn><mode>3_mask): Ditto.
9387         (*<rotate_insn><mode>3_mask): Ditto.
9388
9389 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9390
9391         PR tree-optimization/44716
9392         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9393         (HOT_TEXT_SECTION_NAME): Define.
9394
9395 2010-10-01  Nick Clifton  <nickc@redhat.com>
9396
9397         * common.opt: Add -fcombine-stack-adjustments.
9398         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9399         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9400         flag_combine_stack_adjustments.
9401         * doc/invoke.texi: Document the new option.
9402
9403 2010-10-01  Richard Guenther  <rguenther@suse.de>
9404
9405         PR tree-optimization/45854
9406         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9407
9408 2010-10-01  Anthony Green  <green@moxielogic.com>
9409
9410         * config.gcc: Fix moxie-*-rtems* configuration.
9411
9412 2010-10-01  Richard Guenther  <rguenther@suse.de>
9413
9414         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9415         (gen_decl_die): Likewise.
9416
9417 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9418
9419         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9420         to the function code for SPU MD builtins.
9421         (spu_expand_builtin): Update.
9422         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9423
9424 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9425
9426         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9427         sjlj_except_unwind_info.
9428
9429 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9430
9431         * configure.ac: Define the nop insn for avr*-*-*
9432         * configure: Regenerate.
9433
9434 2010-10-01  Alan Modra  <amodra@gmail.com>
9435
9436         PR target/45807
9437         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9438         extend toc_restore_insn.
9439
9440 2010-09-30  Richard Guenther  <rguenther@suse.de>
9441
9442         PR tree-optimization/43959
9443         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9444         create_tmp_var.
9445
9446 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9447
9448         * config/sh/sh.c (sh_expand_prologue): Set
9449         current_function_static_stack_size.
9450
9451 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9452
9453         * configure.ac: Check for Solaris 8 ld with .hidden support.
9454         * configure: Regenerate.
9455
9456 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9457
9458         PR middle-end/45758
9459         * graphite.c (graphite_initialize): Call scev_reset.
9460
9461 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9462
9463         * sese.h (scev_analyzable_p): Return false for real or floating
9464         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9465
9466 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9467
9468         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9469         and ps.
9470         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9471         domain.
9472         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9473         Do not allocate ub_expr, it is passed in initialized.
9474
9475 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9476
9477         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9478         (build_cloog_prog): Dump CLooG input file when
9479         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9480         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9481
9482 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9483
9484         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9485         verify_dominators for CDI_POST_DOMINATORS.
9486         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9487         (recompute_all_dominators): Remove call to free_dominance_info
9488         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9489         for CDI_POST_DOMINATORS.
9490
9491 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9492
9493         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9494         over pbb_dim_iter_domain.
9495
9496 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9497
9498         * graphite-flattening.c: Fix comments.
9499
9500 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9501
9502         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9503         (graphite-flattening.o): New rule.
9504         * common.opt (floop-flatten): New flag.
9505         * doc/invoke.texi (-floop-flatten): Documented.
9506         * graphite-flattening.c: New.
9507         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9508         * graphite-poly.h (flatten_all_loops): Declared.
9509         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9510         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9511         is set, also set flag_graphite.
9512
9513 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9514
9515         * graphite-poly.c (cloog_checksum): New.
9516         * graphite-poly.h (cloog_checksum): Declared.
9517
9518 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9519
9520         * graphite-poly.c (pbb_number_of_iterations): Removed.
9521         (pbb_number_of_iterations_at_time): Correctly compute the number
9522         of iterations in the transformed loop.
9523         * graphite-poly.h (pbb_number_of_iterations): Removed.
9524
9525 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9526
9527         * graphite-poly.h (lst_update_scattering_seq): Removed.
9528         (lst_update_scattering): Correctly handle outermost loop dewey
9529         renumbering.
9530
9531 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9532
9533         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9534         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9535         * graphite-poly.h (lst_niter_for_loop): New.
9536
9537 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9538
9539         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9540         transform read from disk is not legal.  Call fatal_error instead.
9541
9542 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9543
9544         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9545         (print_scop_header): Removed.  Inlined in the only call place...
9546         (print_scop): ... here.
9547
9548 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9549
9550         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9551
9552 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9553
9554         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9555
9556 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9557
9558         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9559         (dot_deps_stmt): Same.
9560         * graphite-poly.c (dot_lst): Same.
9561
9562 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9563
9564         * graphite-blocking.c (scop_do_strip_mine): Do not call
9565         graphite_legal_transform.
9566         (scop_do_block): Same.
9567
9568 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9569
9570         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9571         description.
9572
9573 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9574
9575         * tree-scalar-evolution.c (instantiate_array_ref): New.
9576         (instantiate_scev_r): Also handle ARRAY_REFs.
9577
9578 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9579
9580         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9581         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9582         RESULT_DECL, and FIELD_DECL.  Return false for an
9583         SSA_NAME_IS_DEFAULT_DEF.
9584         (compute_scalar_evolution_in_loop): Do not further analyze the
9585         scalar evolution when no_evolution_in_loop_p returns true.
9586
9587 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9588
9589         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9590         whether CHREC_LEFT is invariant.  A function is affine when
9591         CHREC_RIGHT is invariant.
9592
9593 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9594
9595         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9596         is_gimple_reg.
9597         (rewrite_degenerate_phi): Same.
9598         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9599
9600 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9601
9602         * graphite-scop-detection.c (graphite_can_represent_scev,
9603         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9604         graphite_can_represent_loop): Remove outermost_loop.
9605
9606 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9607
9608         PR middle-end/45229
9609         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9610         handle GIMPLE_CALLs with no LHS.
9611
9612 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9613
9614         * graphite-poly.c (init_graphite_out_file): New.
9615         (init_graphite_in_file): New.
9616         (apply_poly_transforms): Updated to enable reading and writing of
9617         multiple scop files.
9618
9619 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9620
9621         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9622         redundant checks.
9623
9624 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9625
9626         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9627         computation of precision by 1.
9628
9629 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9630
9631         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9632         (openscop_read_polyhedron_matrix): New.
9633         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9634         (openscop_read_N_int): Same.
9635         * graphite-poly.c (openscop_read_N_int): New.
9636         (openscop_read_one_int): New.
9637         (openscop_read_N_string): New.
9638         (openscop_read_one_string): New.
9639         (openscop_read_powerset_matrix): New.
9640         (graphite_read_transforms): Remove.
9641         (graphite_read_scatt): New.
9642         (graphite_read_scop_file): New.
9643         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9644
9645 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9646
9647         * graphite-poly.c: Change include order.
9648
9649 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9650
9651         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9652         (cloog_matrix_nrows): New.
9653
9654 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9655
9656         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9657         from matrix lines.
9658         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9659         (print_scattering_function_1): Same.
9660         (openscop_print_pbb_domain): Same.
9661         (openscop_print_scop_context): Same.
9662         (print_scop_context): Same.
9663
9664 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9665
9666         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9667         (openscop_print_pdr_polyhedron): Print pph.
9668
9669 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9670
9671         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9672         priority signed types.
9673
9674 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9675
9676         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9677         the call to lang_hooks.types.type_for_size.  Call
9678         build_nonstandard_integer_type.
9679
9680 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9681
9682         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9683         (openscop_print_polyhedron_matrix): New.
9684         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9685         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9686         (openscop_print_pdr_powerset): New.
9687         (openscop_print_powerset_matrix): New.
9688         (openscop_print_scattering_function_1): New.
9689         (print_scattering_function): Add support for scattering names and
9690         OpenScop format.
9691         (graphite_write_transforms): Remove.
9692         (print_pdr_access_layout): Updated to support OpenScop format.
9693         (print_pdr): Same.
9694         (openscop_print_pbb_domain): New.
9695         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9696         is not provided.
9697         (print_pbb): Updated to call the new print_pbb_body.
9698         (openscop_print_scop_context): New.
9699         (print_scop_header): New.
9700         (print_scop): Updated to call print_scop_header.
9701         * graphite-poly.h: Document OpenScop format.
9702
9703 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9704
9705         * config/cris/m32c.c (cris_memory_move_cost): New.
9706         (cris_register_move_cost): Make static. Change arguments type from
9707         enum reg_class to reg_class_t.
9708         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9709         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9710         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9711
9712 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9713
9714         PR target/45843
9715         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9716         INTVAL (XEXP (slot, 1)) as prev_size.
9717
9718 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9719
9720         PR target/45837
9721         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9722         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9723         defined.
9724         * config/rs6000/option-defaults.h (toplevel): Change #if
9725         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9726         global option changes.
9727
9728 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9729
9730         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9731
9732         PR tree-optimization/31261
9733         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9734         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9735
9736 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9737
9738         PR bootstrap/45796
9739         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9740         special-casing for generators and turn into ...
9741         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9742         rule, for better error messages in case of toplevel dependency errors.
9743         (genprog): Add hooks, rename to ...
9744         (genprogerr): ... this, and let genprog also contain check,
9745         checksum, condmd.
9746         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9747         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9748         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9749
9750 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9751             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9752
9753         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9754         for GMP, MPFR and MPC.
9755
9756 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9757
9758         * config/sparc/sparc.opt (mimpure-text): Move ...
9759         * config/sol2.opt: ... here.  Correct description.
9760         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9761         * doc/invoke.texi (Option Summary, SPARC Options): Move
9762         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9763         (Option Summary, Solaris 2 Options): ... here.
9764         (Submodel Options, Solaris 2 Options): New menu entry.
9765         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9766         (Solaris 2 Options): ... here.
9767
9768 2010-09-30  Michael Eager  <eager@eagercon.com>
9769
9770         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9771         (save_volatiles): Describe option for MicroBlaze.
9772         * invoke.texi: Add MicroBlaze Options.
9773         * contrib.texi: Add acknowledgment.
9774         * md.texi: Add MicroBlaze d and z constraints.
9775         * install.texi: Add microblaze-*-elf.
9776         * configure.ac: Add microblaze-*-* to target list.
9777         * configure: Regenerate.
9778         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9779         * config/microblaze/microblaze-protos.h: New.
9780         * config/microblaze/crti.s: New.
9781         * config/microblaze/predicates.md: New.
9782         * config/microblaze/linux.h: New.
9783         * config/microblaze/microblaze.md: New.
9784         * config/microblaze/constraints.md: New.
9785         * config/microblaze/crtn.s: New.
9786         * config/microblaze/microblaze.opt: New.
9787         * config/microblaze/microblaze-c.c: New.
9788         * config/microblaze/t-microblaze: New.
9789         * config/microblaze/microblaze.c: New.
9790         * config/microblaze/microblaze.h: New.
9791
9792 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9793
9794         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9795         parse @optional/@required and set the flags as appropriate.
9796
9797 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9798
9799         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9800
9801 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9802
9803         * opt-functions.awk (static_var): Update comment.
9804         (var_ref): Return offsetof expression or -1, not variable address.
9805         * optc-gen.awk: Generate structure field initializers instead of
9806         static variables.  Expect -1 for missing variables instead of null
9807         pointer.  Add gcc_options parameters to generated functions.
9808         * opth-gen.awk: Generate structure fields for static variables.
9809         Add gcc_options parameters to generated functions.
9810         * common.opt (optimize, optimize_size): Add variables.
9811         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9812         &global_options to cl_target_option_restore.
9813         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9814         &global_options to cl_optimization_restore, cl_target_option_save
9815         and cl_target_option_restore.
9816         (ix86_set_current_function): Pass &global_options to
9817         cl_target_option_restore.
9818         * config/pdp11/pdp11.h (optimize): Remove.
9819         * config/rs6000/rs6000.h (optimize): Remove.
9820         * config/sh/sh.h (optimize): Remove.
9821         * config/xtensa/xtensa.h (optimize): Remove.
9822         * coretypes.h (struct gcc_options): Declare.
9823         * diagnostic.c (diagnostic_initialize): Initialize
9824         context->option_state.
9825         (diagnostic_report_diagnostic): Pass option_state to
9826         option_enabled hook.
9827         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9828         parameter.
9829         (diagnostic_context.option_state): New field.
9830         * final.c (final_start_function, final, final_scan_insn): Rename
9831         optimize parameter to optimize_p.
9832         * flags.h (optimize, optimize_size): Remove.
9833         * function.c (invoke_set_current_function_hook): Pass
9834         &global_options to cl_optimization_restore.
9835         * gcc.c (driver_handle_option): Take gcc_options parameter.
9836         Assert that it is &global_options.
9837         (process_command): Pass &global_options to read_cmdline_option.
9838         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9839         option_enabled.
9840         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9841         &global_options to set_option.
9842         * opts-common.c (handle_option, handle_generated_option,
9843         read_cmdline_option, set_option): Take explicit gcc_options
9844         parameters.  Use option_flag_var.
9845         (option_flag_var): New.
9846         * opts.c (common_handle_option, lang_handle_option,
9847         target_handle_option): Take gcc_options parameter.  Assert that it
9848         is &global_options.
9849         (read_cmdline_options): Pass &global_options to read_cmdline_option.
9850         (print_filtered_help): Use option_flag_var.  Pass &global_options
9851         to option_enabled.
9852         (common_handle_option): Use option_flag_var.
9853         (option_enabled): Take opts parameter.  Use option_flag_var.
9854         (get_option_state): Take gcc_options parameter.  Use
9855         option_flag_var.  Pass gcc_options parameter to option_enabled.
9856         (enable_warning_as_error): Pass &global_options to
9857         handle_generated_option.
9858         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
9859         (cl_option_handler_func.handler): Take gcc_options parameter.
9860         (option_enabled, get_option_state, set_option, handle_option,
9861         handle_generated_option, read_cmdline_option): Take gcc_options
9862         parameters.
9863         * toplev.c (optimize, optimize_size): Remove.
9864         (print_switch_values): Pass &global_options to option_enabled.
9865         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
9866         to get_option_state.
9867         (general_init): Initialize global_dc->option_state.
9868         * tree.c (build_optimization_node): Pass &global_options to
9869         cl_optimization_save.
9870         (build_target_option_node): Pass &global_options to
9871         cl_target_option_save.
9872
9873 2010-09-30  Martin Jambor  <mjambor@suse.cz>
9874
9875         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
9876         zero sized bit-fields.
9877
9878 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
9879
9880         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
9881         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
9882         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
9883         (c_parser_objc_class_declaration): Same change.
9884         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
9885         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9886         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
9887         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
9888         and RID_AT_PUBLIC instead of RID_PUBLIC.
9889         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
9890         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9891
9892 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
9893
9894         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
9895         Add links to current providers of packages for Solaris and IRIX.
9896
9897 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9898
9899         Merge from 'apple/trunk' branch on FSF servers.
9900         * c-parser.c: Applied change originally in c-parse.in.
9901
9902         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
9903
9904         Radar 4281748
9905         * c-decl.c (start_decl): Check for redeclaration of class name.
9906         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
9907
9908 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
9909
9910         * config/ia64/ia64.c (ia64_builtin_decl): New.
9911         (TARGET_BUILTIN_DECL): Define.
9912         (ia64_builtins): New.
9913         (ia64_init_builtins): Save decls in ia64_builtins.
9914
9915 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
9916
9917         PR target/40457
9918         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
9919         (move2add_use_add3_insn): Likewise.
9920         (reload_cse_move2add): Likewise.
9921         * rtlanal.c (get_full_rtx_cost): New function.
9922         * rtl.h (struct full_rtx_costs): New.
9923         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
9924         costs_add_n_insns): New inline functions.
9925         (get_full_rtx_cost): Declare.
9926
9927         PR c/45054
9928         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
9929         invariants.  Check for reg_equiv_invariant.
9930         (reload): Assert that spilled_pseudos is empty when returning.
9931
9932 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
9933
9934         * config/i386/mingw32.h (TARGET_64BIT): replaced by
9935         TARGET_64BIT_DEFAULT in #if check.
9936
9937 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
9938
9939         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
9940
9941 2010-09-29  Mike Stump  <mikestump@comcast.net>
9942
9943         * config/darwin.h (flag_mkernel): Remove.
9944         (flag_apple_kext): Likewise.
9945
9946 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9947             Jack Howarth  <howarth@bromo.med.uc.edu>
9948
9949         * config/darwin.opt (undefined): Add.
9950
9951 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
9952
9953         PR testsuite/45664
9954         * configure.ac: Add --enable-indirect-function option.
9955         * config.gcc: Add default_gnu_indirect_function.
9956         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
9957         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
9958         * varasm.c (do_assemble_alias): Adjust for macro name change.
9959         * configure: Rebuilt.
9960         * doc/install.texi: Document --enable-indirect-function.
9961
9962 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9963
9964         * doc/options.texi (Variable, Var, Init): Update documentation
9965         without reference to VarExists.
9966         (VarExists): Remove.
9967         * common.opt, config/i386/i386.opt, config/linux.opt,
9968         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
9969         Don't use VarExists.
9970
9971 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9972
9973         * optc-gen.awk: Generate global_options initializer instead of
9974         individual variables.  Add x_ prefix to names of structure members.
9975         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
9976         names of structure members.
9977         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9978         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
9979         * doc/tm.texi: Regenerate.
9980         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9981         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
9982         * c-parser.c (disable_extension_diagnostics,
9983         restore_extension_diagnostics): Update names of cpp_options members.
9984         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9985         * common.opt (fcompare-debug-second): Don't use Var.
9986         * config/alpha/alpha.h (target_flags): Remove.
9987         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9988         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
9989         * config/bfin/bfin.h (target_flags): Remove.
9990         * config/cris/cris.h (target_flags): Remove.
9991         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
9992         cl_target_option members.
9993         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
9994         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
9995         ix86_can_inline_p): Update names of cl_target_option members.
9996         * config/i386/i386.h (ix86_isa_flags): Remove.
9997         * config/lm32/lm32.h (target_flags): Remove.
9998         * config/mcore/mcore.h (mcore_stack_increment): Remove.
9999         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10000         flag_omit_frame_pointer.
10001         * config/mep/mep.h (target_flags): Remove.
10002         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10003         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10004         * config/mmix/mmix.h (target_flags): Remove.
10005         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10006         flag_expensive_optimizations): Remove.
10007         * config/s390/s390.h (flag_pic): Remove.
10008         * config/score/score-conv.h (target_flags): Remove.
10009         * config/sh/sh.h (sh_fixed_range_str): Remove.
10010         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10011         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10012         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10013         * diagnostic.c (diagnostic_initialize): Update names of
10014         diagnostic_context members.
10015         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10016         warn_system_headers.
10017         (diagnostic_report_warnings_p): Update for new names.
10018         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10019         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10020         HARD_FRAME_POINTER_IS_ARG_POINTER.
10021         * flags.h (flag_compare_debug): Declare.
10022         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10023         * opts.c (flag_compare_debug): Define.
10024         (common_handle_option): Update names of diagnostic_context
10025         members.  Handle -fcompare-debug-second.
10026         (fast_math_flags_struct_set_p): Update names of cl_optimization
10027         members.
10028         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10029         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10030         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10031         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10032         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10033         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10034         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10035         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10036         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10037
10038 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10039
10040         * config/picochip/picochip.c (picochip_output_internal_label):
10041         This function can now be called for debug CFI labels, which can come
10042         in the middle of a vliw instruction.  Postpone until end of vliw.
10043
10044 2010-09-29  Richard Guenther  <rguenther@suse.de>
10045
10046         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10047         (DECL_FILE_SCOPE_P): Use it.
10048         (TYPE_FILE_SCOPE_P): New macro.
10049
10050 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10051
10052         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10053         a CPP_NAME which is a reserved word, clearly separate cases for
10054         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10055
10056 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10057
10058         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10059         token->value with the canonical spelling.  Do exactly like C and
10060         C++ and leave it as it is.
10061
10062 2010-09-28  Richard Henderson  <rth@redhat.com>
10063
10064         * config/alpha/alpha.c (alpha_builtins): New.
10065         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10066         (alpha_builtin_function): New.
10067         (alpha_add_builtins, alpha_init_builtins): Use it.
10068
10069 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10070
10071         * doc/standards.texi (Standards): Expanded the section on
10072         Objective-C and Objective-C++.
10073
10074 2010-09-28  DJ Delorie  <dj@redhat.com>
10075
10076         PR target/45800
10077         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10078         volatile MEMs.
10079
10080 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10081
10082         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10083         attributes on methods.
10084          (c_parser_objc_method_definition): Handle attributes.
10085         (c_parser_objc_methodproto): Likewise.
10086         (c_parser_objc_maybe_method_attributes): New.
10087         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10088         missing definition, similar to that in ObjC++.
10089
10090 2010-09-28  Richard Henderson  <rth@redhat.com>
10091
10092         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10093         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10094         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10095         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10096         (STACK_CHECK_PROTECT): Likewise.
10097         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10098         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10099         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10100         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10101         (dwarf2out_assembly_start): Likewise.
10102         * except.c (init_eh): Use targetm.except_unwind_info.
10103         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10104         (output_one_function_exception_table): Likewise.
10105         * final.c: Unconditionally include dwarf2out.h.
10106         (final_start_function): Unconditionally call dwarf2out routines.
10107         (final_end_function, final_scan_insn): Likewise.
10108         * function.c (expand_function_end): Use targetm.except_unwind_info.
10109         * opts.c (decode_options): Use targetm.except_unwind_info.
10110         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10111         * target.def (debug_unwind_info, except_unwind_info): New.
10112         * target.h (enum unwind_info_type): New.
10113         * targhooks.c (default_debug_unwind_info): New.
10114         (default_except_unwind_info): New.
10115         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10116         * targhooks.h: Declare them.
10117         * tree-tailcall.c: Include "target.h"
10118         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10119         * Makefile.in (tree-tailcall.o): Update.
10120         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10121         (lhd_gcc_personality): Likewise.
10122
10123         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10124         (TARGET_EXCEPT_UNWIND_INFO): New.
10125         (DWARF2_UNWIND_INFO): Update.
10126         (TARGET_DEBUG_UNWIND_INFO): New.
10127         * doc/tm.texi: Rebuild.
10128
10129         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10130         targetm.except_unwind_info.
10131
10132         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10133         (arm_except_unwind_info): New.
10134         (arm_compute_func_type): Use it.
10135         (arm_expand_prologue, thumb_pushpop): Likewise.
10136         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10137         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10138         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10139         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10140         (DWARF2_UNWIND_INFO): Remove.
10141         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10142         (ARM_EABI_UNWIND_TABLES): Remove.
10143
10144         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10145         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10146         (ia64_except_unwind_info): New.
10147         (ia64_output_function_prologue): Use it.
10148         (ia64_add_bundle_selector_before): Likewise.
10149         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10150         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10151         (TARGET_UNWIND_INFO): Remove.
10152
10153         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10154
10155 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10156
10157         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10158         (c_parser_objc_protocol_definition): Likewise.
10159         (c_parser_external_declaration): Provide dummy attribute arguments.
10160         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10161         (c_parser_objc_class_definition): Handle attributes.
10162         (c_parser_objc_protocol_definition): Likewise.
10163
10164 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10165
10166         PR fortran/40569
10167         PR fortran/40568
10168         * toplev.h (save_decoded_options, save_decoded_options_count):
10169         New global variables.
10170         * toplev.c (save_decoded_options, save_decoded_options_count):
10171         Export variables.
10172
10173 2010-09-28  Ian Lance Taylor  <iant@google.com>
10174
10175         * config/i386/i386.c (ix86_supports_split_stack): Test
10176         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10177
10178 2010-09-28  Ian Lance Taylor  <iant@google.com>
10179
10180         PR target/45815
10181         * opts.c (decode_options): Don't test whether the target supports
10182         split stack if flag_split_stack == 0.
10183
10184 2010-09-28  Jan Hubicka  <jh@suse.cz>
10185
10186         * builtin-attrs.def (ATTR_LEAF): New attribute.
10187         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10188         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10189         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10190         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10191         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10192         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10193         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10194         * sync-builtins.def: Annotate all builtins by leaf.
10195         * omp-builtins.def: Annotate all builtins by leaf.
10196         * builtins.def: Annotate relevant builtins with leaf attribute.
10197         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10198         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10199         leaf.
10200
10201 2010-09-28  Jan Hubicka  <jh@suse.cz>
10202
10203         * tree-ssa-ccp.c (fold_ctor_reference): New function.
10204         (fold_const_aggregate_ref): Use it.
10205         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
10206         into external static.
10207
10208 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10209
10210         PR target/44452
10211         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
10212         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
10213         (ix86_solaris_return_in_memory): Remove.
10214         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
10215         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10216         (TARGET_SUBTARGET_DEFAULT): Redefine.
10217         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
10218         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10219         (TARGET_SUBTARGET_DEFAULT): Redefine.
10220         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
10221         -mvect8-ret-in-mem.
10222         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
10223
10224 2010-09-29  Alan Modra  <amodra@gmail.com>
10225
10226         PR target/45807
10227         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
10228         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
10229         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
10230         Delete.
10231         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
10232         (rs6000_emit_prologue): Don't just create frame save info for r2,
10233         actually save r2.
10234
10235 2010-09-28  Richard Henderson  <rth@redhat.com>
10236
10237         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
10238         when 8 bytes are requested.
10239
10240 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10241
10242         * config/avr/avr.c (expand_prologue): Set
10243         current_function_static_stack_size.
10244
10245 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10246
10247         * config/alpha/alpha.md: Change the initial condition of the
10248         probing loop.
10249
10250 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
10251
10252         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
10253         Split from *avx_<maxmin:code><mode>3.
10254         (*avx_<smaxmin:code><mode>3): Ditto.
10255         * config/i386/i386.md (maxmin): Remove code iterator.
10256
10257 2010-09-27  Ian Lance Taylor  <iant@google.com>
10258
10259         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
10260         requires assembler support for CFI directives.
10261
10262 2010-09-27  Richard Henderson  <rth@redhat.com>
10263
10264         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
10265
10266 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10267
10268         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
10269         that AFTER is not in the range FROM..TO, inclusive.
10270
10271 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10272             Bernd Schmidt  <bernds@codesourcery.com>
10273
10274         PR rtl-optimization/45792
10275         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
10276         If not all insns are to be merged, for each edge, stash the
10277         next candidate after the to-be-merged insns before doing the
10278         merge, and use them for the retry at the new insertion point.
10279         Handle CC0 targets when retrying.
10280
10281 2010-09-27  Ian Lance Taylor  <iant@google.com>
10282
10283         * common.opt (fsplit-stack): New option.
10284         * opts.c (decode_options): Set flag_split_stack to final value.
10285         * target.def (supports_split_stack): New hook.
10286         * gcc.c (STACK_SPLIT_SPEC): Define.
10287         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
10288         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
10289         (Code Gen Options): Document -fsplit-stack.
10290         * doc/extend.texi (Function Attributes): Mention no_split_stack.
10291         (Function Attributes): Document no_split_stack.
10292         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
10293         TARGET_SUPPORTS_SPLIT_STACK.
10294         * doc/tm.texi: Rebuild.
10295         * function.c (thread_prologue_and_epilogue_insns): If
10296         flag_split_stack, add split stack prologue.
10297         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
10298         * varasm.c (saw_no_split_stack): New static variable.
10299         (assemble_start_function): Set saw_no_split_stack if the function
10300         has the no_split_stack attribute.
10301         (file_end_indicate_split_stack): New function.
10302         * output.h (file_end_indicate_split_stack): Declare.
10303         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
10304         and function.
10305         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
10306         routines.
10307         * config/i386/i386.c (ix86_option_override_internal): Don't set
10308         expand_builtin_va_start to NULL if -fsplit-stack.
10309         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
10310         -fsplit-stack.
10311         (ix86_va_start): If -fsplit-stack, get overflow pointer from
10312         scratch register set by prologue.
10313         (ix86_code_end): If -fsplit-stack, call
10314         file_end_indicate_split_stack.
10315         (ix86_supports_split_stack): New static function.
10316         (SPLIT_STACK_AVAILABLE): Define.
10317         (split_stack_prologue_scratch_regno): New static function.
10318         (split_stack_fn): New static variable.
10319         (ix86_expand_split_stack_prologue): New function.
10320         (ix86_live_on_entry): New static function.
10321         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
10322         (output_pic_addr_const): Likewise.
10323         (i386_asm_output_addr_const_extra): Likewise.
10324         (ix86_expand_call): Change return type to rtx.  Return the new
10325         call instruction.
10326         (TARGET_SUPPORTS_SPLIT_STACK): Define.
10327         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10328         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
10329         (split_stack_prologue, split_stack_return): New insns.
10330         (split_stack_space_check): New insn.
10331         * config/i386/i386.h (struct machine_function): Add
10332         split_stack_varargs_pointer field.
10333         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
10334         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10335         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
10336         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10337         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
10338         Declare.
10339         (ix86_expand_call): Update declaration.
10340
10341 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10342
10343         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
10344         code.  Added byref, which was missing in the list of codes.
10345         Explain that enumeration values are encoded as the integer type
10346         that the compiler uses to store them.  Explain and make examples
10347         of how 'const' interacts with pointers, and the complication of
10348         the encoding of 'const char *'.
10349         (Legacy type encoding): New subsection, explaining that GCC emits
10350         incorrect type encodings for the NeXT runtime for compatibility
10351         reasons.
10352         (@@encode): New subsection, explaining @encode and particularly
10353         that protocol qualifiers are not recognized inside an @encode()
10354         expression.
10355         (Method signatures): New subsection, explaining how method
10356         signatures are encoded.
10357
10358 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10359
10360         Merge from 'apple/trunk' branch on FSF servers.  Removed small
10361         change in build_conditional_expr that had been added when fixing
10362         PR objc/27377 and which did the same check in a less complete way.
10363
10364         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
10365
10366         Radar 4229905
10367         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
10368         looking for objective-c common pointer types.
10369
10370         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10371
10372         Radar 4154928
10373         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10374         use their ObjC common type.
10375
10376 2010-09-27  Richard Guenther  <rguenther@suse.de>
10377
10378         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10379
10380 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10381
10382         * print-tree.c (print_node): Print in-constant-pool.
10383
10384 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10385
10386         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10387         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10388         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10389         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10390
10391 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10392
10393         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10394         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10395         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10396         pro_epilogue_adjust_stack_<mode>_3.
10397         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10398         renamed pro_epilogue_adjust_stack_{si,di}_add.
10399         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10400         pro_epilogue_adjust_stack_{si,di}_sub.
10401
10402 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10403
10404         * config/i386/i386.md (movmsk_df): New insn.
10405         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10406         sequence for TARGET_SSE_MATH.
10407
10408 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10409
10410         * config/mips/mips.c (mips_builtin_decls): Declare.
10411         (mips_init_builtins): Store function declarations in
10412         mips_builtin_decls.
10413         (mips_builtin_decl): New function.
10414         (TARGET_BUILTIN_DECL): Define.
10415
10416 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10417             Richard Henderson  <rth@redhat.com>
10418
10419         * config/i386/cygwin.asm: Include auto-host.h.
10420         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10421         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10422         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10423         alignment code from the 64-bit path.  Use gas local labels.
10424         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10425         from _di_2.  Remove the useless constant integer argument.
10426         (pro_epilogue_adjust_stack_<mode>_3): New.
10427         (allocate_stack_worker_probe_<mode>): Macroize from
10428         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10429         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10430         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10431         (__chkstk_ms): New function.
10432         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10433         * config/i386/t-interix: Likewise.
10434         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10435         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10436         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10437         * configure, config.in: Rebuild.
10438
10439 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10440
10441         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10442         statements because of the return slot optimization.
10443
10444 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10445
10446         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10447         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10448         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10449         (class_likely_spilled_p): Rename to...
10450         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10451         type to reg_class_t.
10452
10453 2010-09-24  Jan Hubicka  <jh@suse.cz>
10454
10455         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10456         (lto_symtab_resolve_symbols): Set it.
10457         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10458         store resolution field in cgraph/varpool.
10459         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10460         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10461         (cgraph_dump_node): Drop used_from_object_file.
10462         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10463         (cgraph_function_body_availability): Use decl_replaceable_p.
10464         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10465         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10466         cgraph_used_from_object_file_p.
10467         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10468         cgraph_used_from_object_file_p.
10469         (resolution_used_from_other_file_p): New functoin.
10470         (cgraph_used_from_object_file_p): New predicate.
10471         * cgraph.h: Include plugin-api.h
10472         (struct cgraph_local_info): Remove used_from_object_file.
10473         (struct cgraph_node): Add resolution field.
10474         (struct varpool_node): Likewise; remove used_from_object_file;
10475         reove const_value_known.
10476         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10477         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10478         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10479         varpool_used_from_object_file_p): Declare.
10480         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10481         * tree.h (DECL_REPLACEABLE_P): Remove.
10482         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10483         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10484         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10485         input_overwrite_node, input_node, input_varpool_node): Stream
10486         resolution.
10487         * expr.c (expand_expr_real_1): Use const_value_known_p
10488         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10489         const_value_known.
10490         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10491         (function_and_variable_visibility): Set resolution for local vars
10492         and functions; use varpool_used_from_object_file_p.
10493         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10494         static functions.
10495         (default_binds_local_p_1): Use resolutoin info.
10496         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10497         * varpool.c (varpool_get_node): Constify.
10498         (const_value_known_p): Do not use vnode->const_value_known;
10499         use decl_replaceable_p.
10500         (varpool_finalize_decl): Do not set const_value_known.
10501         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10502         (varpool_extra_name_alias): Return new node.
10503         (varpool_used_from_object_file_p): New function.
10504
10505 2010-09-24  Richard Henderson  <rth@redhat.com>
10506
10507         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10508         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10509         (do_spill): Use REG_CFA_OFFSET.
10510         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10511         as appropriate.
10512         (ia64_expand_epilogue): Likewise.
10513         (process_set): Split into ...
10514         (process_cfa_adjust_cfa): this,
10515         (process_cfa_register): this,
10516         (process_cfa_offset): and this new function.
10517         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10518         instead of REG_FRAME_RELATED_EXPR.
10519
10520 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10521
10522         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10523
10524 2010-09-24  Jan Hubicka  <jh@suse.cz>
10525
10526         * doc/extend.texi: (attribute leaf): Document.
10527         * tree.c (local_define_builtin): Handle ECF_LEAF.
10528         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10529         * tree.h (ECF_LEAF): New.
10530         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10531         overwrittable and unavailable functions.
10532         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10533         (copy_global_bitmap): Do not copy all_module_statics.
10534         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10535         (propagate): Handle overwritable and unavailable leaf functions;
10536         initialize global info for overwritable and unavailable leaf functions;
10537         do not free all module statics.
10538         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10539         local statics.
10540         * calls.c (flags_from_decl_or_type): Handle leaf.
10541         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10542         abnormal gotos.
10543
10544 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10545
10546         * gengtype.c: Reindented.
10547         * gengtype.h: Reindented.
10548         * gengtype-parse.c: Reindented.
10549
10550 2010-09-24  Jan Hubicka  <jh@suse.cz>
10551
10552         PR tree-optimization/45738
10553         PR tree-optimization/45741
10554         * expr.c (string_constant): Allow CONST_DECL too;
10555         check that DECL_INITIAL is set.
10556         * varpool.c (const_value_known_p): Only look into VAR_DECL
10557         and CONST_DECL.
10558
10559 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10560
10561         * common.opt (undef): New.
10562
10563 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10564
10565         PR middle-end/45234
10566         * rtl.h (enum global_rtl_index): Add
10567         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10568         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10569         (virtual_preferred_stack_boundary_rtx,
10570         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10571         (LAST_VIRTUAL_REGISTER): Increase by one.
10572         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10573         instead of LAST_VIRTUAL_REGISTER.
10574         * function.c (instantiate_new_reg): Handle
10575         virtual_preferred_stack_boundary_rtx.
10576         * emit-rtl.c (init_virtual_regs): Handle
10577         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10578         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10579         * explow.c (round_push): If crtl->preferred_stack_boundary
10580         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10581         virtual_preferred_stack_boundary_rtx alignment instead of
10582         crtl->preferred_stack_boundary alignment.
10583         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10584         macros.  Never decrease crtl->preferred_stack_boundary,
10585         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10586         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10587         stack_pointer_delta in dynamic allocation, even when size
10588         is constant.
10589         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10590         macro.
10591         * print-rtl.c (print_rtx): Handle
10592         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10593         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10594         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10595         * config/frv/frv.c (frv_emit_movsi): Likewise.
10596         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10597         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10598         Likewise.
10599
10600         Revert:
10601         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10602
10603         PR middle-end/45234
10604         * calls.c (expand_call): Make sure that all variable sized
10605         adjustments are multiple of preferred stack boundary after
10606         stack alignment.
10607
10608 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10609             Dominique Dhumieres  <dominiq@lps.ens.fr>
10610
10611         PR bootstrap/45751
10612         * config/darwin-driver.c (darwin_default_min_version):
10613         Adjust size passed to memcpy in two places.
10614
10615 2010-09-24  Richard Guenther  <rguenther@suse.de>
10616
10617         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10618         Make sure to not call set_type_context with error_mark_node.
10619         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10620
10621 2010-09-24  Richard Guenther  <rguenther@suse.de>
10622
10623         * Makefile.in (OBJS-onestep): Remove.
10624         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10625         (libbackend.a): Remove onestep support.
10626         (libbackend.o): Remove.
10627         * configure.ac (--enable-intermodule): Remove.
10628         * configure: Regenerate.
10629
10630 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10631
10632         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10633         reaching the end of a block if it occurs at a DEBUG_INSN.
10634
10635 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10636
10637         PR target/44242
10638         * config/vms/vms-crt0-64.c: Removed.
10639         * config/vms/vms-crt0.c: Removed.
10640         * config/vms/vms-psxcrt0-64.c: Removed.
10641         * config/vms/vms-psxcrt0.c: Removed.
10642         * config/vms/vms-ucrt0.c: New file.
10643         * config/vms/t-vms64: Removed.
10644         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10645         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10646         * config.gcc (alpha-dec-vms): Use t-vms.
10647
10648 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10649
10650         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10651         underfull hbox in DVI output.
10652         (-fobjc-class-cxx-cdtors): Same change.
10653         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10654         option does, but moved the (lenghty) description of the exception
10655         syntax into objc.texi.
10656         (-fobjc-gc): Explain that the option is not useful with the GNU
10657         runtime.
10658         (-fzero-link): Explain that the GNU runtime always works in
10659         "zero-link" mode.
10660         * doc/objc.texi: All sections: simplified @node declarations
10661         removing specification of next, previous, up node.
10662         (Objective-C): Updated introduction.
10663         (Garbage Collection): Updated.  The bohem-gc library is now
10664         included in gcc itself.  Mention that this section only applies to
10665         the GNU Objective-C runtime.
10666         (compatibility_alias): Small tidy up.
10667         (Exceptions): New section mostly containing text previously in the
10668         description of the -fobjc-exception command-line option.
10669         (Synchronization): Same.
10670
10671 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10672
10673         * config/i386/i386.md (ix86_code_end): Move the initialization of
10674         xops array near the consumer.  Use AX_REG and SP_REG instead of
10675         numerical constants.
10676
10677 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10678
10679         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10680         method [methodname]' for an Objective-C method instead of the less
10681         satisfactory 'too many arguments to function' (with no method name).
10682
10683 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10684
10685         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10686         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10687         (execute_update_addresses_taken): Remove parameter.  Execute the
10688         optimization unconditionally.
10689         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10690         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10691         if TODO_update_address_taken is set.
10692
10693 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10694
10695         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10696         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10697         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10698         (arm_output_addr_const_extra): Make static.
10699
10700 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10701
10702         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10703         define as unspec_volatile.
10704         ("nops"): Define as unspec_volatile. Use fputs to write to
10705         asm_out_file directly.  Output NOPs on separate lines using while loop.
10706         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10707         asm_out_file directly.  Output NOPs on separate lines using while loop.
10708
10709 2010-09-23  Richard Guenther  <rguenther@suse.de>
10710
10711         PR tree-optimization/45565
10712         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10713         Make sure to adjust the fndecl before replacing the stmt.
10714
10715 2010-09-23  Richard Guenther  <rguenther@suse.de>
10716
10717         PR middle-end/45750
10718         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10719         gimplifying MEM_REF.
10720
10721 2010-09-23  Alan Modra  <amodra@gmail.com>
10722
10723         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10724         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10725
10726 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10727
10728         PR rtl-optimization/44374
10729         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10730         * df-core.c (df_set_bb_dirty): Set it.
10731         * ifcvt.c (find_memory): Remove function.
10732         (dead_or_predicable): Use can_move_insns_across.
10733         * df.h (can_move_insns_across): Declare function.
10734         * cfgcleanup.c (block_was_dirty): New static variable.
10735         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10736         than df_get_bb_dirty.
10737         (try_head_merge_bb): New static function.
10738         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10739         is set.
10740         * df-problems.c: Include "target.h"
10741         (df_simulate_find_uses): New static function.
10742         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10743         (find_memory, find_memory_store): New static functions.
10744         (can_move_insns_across): New function.
10745         * Makefile.in (df-problems.o): Update dependencies.
10746
10747 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10748
10749         PR java/44095
10750         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10751         is specified and the suffix of the file isn't ".c".
10752         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10753
10754 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10755
10756         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10757         * doc/cppopts.texi: Fix markup of index entry.
10758         * doc/extend.texi (Constructing Calls): Fix markup of
10759         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10760         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10761         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10762         keywords.
10763         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10764         avoid long lines.
10765         (C Dialect Options, C++ Dialect Options, Warning Options)
10766         (Debugging Options, Spec Files, Darwin Options)
10767         (i386 and x86-64 Options, MIPS Options)
10768         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10769         index entries, avoid abbreviations, allow URLs to wrap, avoid
10770         long lines, avoid overlong pages from long @itemx lists.
10771         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10772         * doc/standards.texi (Standards): Likewise.
10773         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10774
10775 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10776
10777         * opts-common.c (prune_options): Make static.  Work with decoded
10778         options.
10779         (decode_cmdline_options_to_array): Call prune_options.  Don't
10780         resize option array here.
10781         * opts.h (prune_options): Remove prototype.
10782         * gcc.c (process_command): Take decoded options; don't call
10783         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10784         (main): Call decode_cmdline_options_to_array here instead of
10785         prune_options.  Update call to process_command.
10786         * config/darwin-driver.c: Include opts.h.
10787         (darwin_default_min_version): Work with decoded options.  Don't
10788         handle -b or -V here.
10789         * config/darwin.h (darwin_default_min_version): Update prototype.
10790         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10791         darwin_default_min_version.
10792         * config/i386/cygwin.h (mingw_scan): Update prototype.
10793         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10794         * config/i386/cygwin1.c: Include opts.h.
10795         (mingw_scan): Work with decoded options.
10796         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10797         * config/t-darwin (darwin-driver.o): Update dependencies.
10798
10799 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10800
10801         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10802         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10803         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10804         -force-link, -force-link=, -language, -language=,
10805         -library-directory, -library-directory=, -no-canonical-prefixes,
10806         -no-standard-libraries, -no-warnings, -optimize, -output,
10807         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10808         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10809         -print-file-name=, -print-libgcc-file-name,
10810         -print-multi-directory, -print-multi-lib,
10811         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10812         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10813         -profile, -save-temps, -shared, -specs, -specs=, -static,
10814         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10815         symbolic): New.
10816         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10817         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10818         Remove comment.
10819         (cc1_options): Correct specs for passing down --help,
10820         --target-help and --help=*.  Add spec for passing down --version.
10821         (struct option_map, option_map, target_option_translations,
10822         translate_options): Remove.
10823         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10824         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10825         OPT_fhelp_ and OPT_ftarget_help.
10826         (process_command): Don't call translate_options.  Call
10827         decode_cmdline_options_to_array before checking for
10828         -no-canonical-prefixes using decoded options.
10829         * opts-common.c (tm.h): Update comment on #include.
10830         (find_opt): Allow abbreviations of long options.
10831         (struct option_map, option_map): New.
10832         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10833         and -mno handling.
10834         (target_option_translations): New.
10835         (decode_cmdline_options_to_array): Handle
10836         TARGET_OPTION_TRANSLATE_TABLE in driver.
10837         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10838         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10839
10840 2010-09-22  Richard Guenther  <rguenther@suse.de>
10841
10842         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10843         only if we inlined something.  Block compaction and conditional
10844         folding are done by cfg cleanup.  Schedule update-address-taken.
10845         (tree_function_versioning): Remove redundant call to number_blocks.
10846         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10847         folding is done by cfg cleanup.
10848         * passes.c (init_optimization_passes): Remove update-address-taken
10849         pass after IPA inlining.
10850
10851 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10852
10853         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
10854         to update conditions. Fix reg_mode[] check.
10855
10856 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
10857
10858         * config/picochip/picochip.md (movhicc): Use expand to check whether
10859         movhicc is available and split it after reload.
10860
10861 2010-09-22  Richard Guenther  <rguenther@suse.de>
10862
10863         * tree-ssanames.c (release_dead_ssa_names): Do not remove
10864         callee edges here.
10865         * passes.c (init_optimization_passes): Remove early CFG cleanup.
10866         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
10867         (pass_cleanup_cfg): Likewise.
10868         (execute_fixup_cfg): Cleanup.
10869         * tree-pass.h (pass_cleanup_cfg): Remove.
10870
10871 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10872
10873         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
10874         builtins if it is true.
10875         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
10876         parameter.
10877
10878 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10879
10880         * tree-sra.c (struct access): New field grp_no_warning.
10881         (create_access_replacement): Set TREE_NO_WARNING according to
10882          grp_no_warning.
10883         (create_artificial_child_access): Use build_ref_for_model and set
10884         grp_no_warning if build_user_friendly_ref_for_offset fails.
10885         (propagate_subaccesses_across_link): Likewise.
10886
10887 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10888
10889         PR target/35664
10890         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
10891         ('f'): Likewise.
10892
10893 2010-09-22  Tristan Gingold  <gingold@adacore.com>
10894
10895         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
10896
10897 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
10898
10899         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
10900         * config/i386/i386.c (decide_alg): Update for rename.
10901
10902 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
10903
10904         PR rtl-optimization/45739
10905         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
10906         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
10907
10908 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
10909
10910         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
10911         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
10912         Remove.
10913         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
10914         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10915
10916 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10917
10918         PR objc/23710
10919         * c-parser.c (c_parser_objc_method_definition): Check the return
10920         value of objc_start_method_definition and if false is returned,
10921         parse the method definition but emit no code.
10922
10923 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10924
10925         PR objc/25965
10926         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
10927         call objc_get_interface_ivars ().
10928
10929 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
10930
10931         PR target/45694
10932         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
10933         static chain-register is used for 64-bit.
10934
10935 2010-09-21  Richard Guenther  <rguenther@suse.de>
10936
10937         * dwarf2out.c (is_cu_die): New function.
10938         (add_pubtype): Use it.
10939         (gen_subprogram_die): Likewise.
10940         (gen_struct_or_union_type_die): Likewise.
10941         (dwarf2out_finish): Likewise.
10942         (comp_unit_die): Rename to ...
10943         (single_comp_unit_die): ... this.
10944         (comp_unit_die): New function lazily constructing and
10945         returning single_comp_unit_die.
10946         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
10947         base_type_die, subrange_type_die, modified_type_die,
10948         lower_bound_default, add_bound_info, add_prototyped_attribute,
10949         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
10950         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
10951         force_decl_die, gen_namespace_die, dwarf2out_decl,
10952         dwarf2out_start_source_file, dwarf2out_end_source_file,
10953         prune_unused_types, dwarf2out_finish): Use it.
10954         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
10955         the global list of translation-unit decls.
10956         (dwarf2out_init): Do not create single_comp_unit_die here.
10957         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
10958
10959 2010-09-21  Richard Guenther  <rguenther@suse.de>
10960
10961         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
10962         for bool for C++.
10963
10964 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
10965
10966         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
10967         (qhs_extenddi_cstr): Likewise.
10968         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
10969         them for the source operand.
10970
10971 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
10972
10973         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
10974         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
10975         (ix86_split_ashr): Ditto.
10976         (ix86_split_lshr): Ditto.
10977
10978 2010-09-21  Richard Guenther  <rguenther@suse.de>
10979
10980         PR tree-optimization/45580
10981         * tree-ssa-propagate.c (substitute_and_fold): Always replace
10982         regular uses.
10983         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
10984         virtuals fold the call into a regular indirect one.
10985
10986 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
10987
10988         PR rtl-optimization/42775
10989         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
10990         scheduling is enabled.
10991
10992 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10993
10994         PR rtl-optimization/45728
10995         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
10996         gen_lowpart_common first and if that fails, force_reg first
10997         before calling gen_lowpart.
10998
10999         PR middle-end/45678
11000         * cfgexpand.c (expand_one_stack_var_at): Use
11001         crtl->max_used_stack_slot_alignment as max_align, instead
11002         of maximum of that and PREFERRED_STACK_BOUNDARY.
11003         Don't call update_stack_alignment.
11004
11005 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11006
11007         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11008         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11009         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11010         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11011         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11012         (build_nonstandard_integer_type): Likewise.
11013         (build_range_type_1): New function, built from...
11014         (build_range_type): ...this.  Call build_range_type_1.
11015         (build_nonshared_range_type): New function.
11016         (build_array_type_1): New function, built from...
11017         (build_array_type: ...this.  Call build_array_type_1.
11018         (build_nonshared_array_type): New function.
11019         * tree.h (build_nonshared_range_type): Declare.
11020         (build_nonshared_array_type): Likewise.
11021
11022 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11023
11024         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11025         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11026         (arm_class_likely_spilled_p): New function.
11027
11028 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11029
11030         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11031         indirect functions.
11032         (ix86_split_ashl): Ditto.
11033         (ix86_split_ashr): Ditto.
11034         (ix86_split_lshr): Ditto.
11035         (ix86_adjust_counter): Ditto.
11036
11037 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11038
11039         * c-family/c-common.h (constant_string_class): Documented with
11040         comment identical to the one already in c-common.c.
11041
11042 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11043
11044         * dwarf2out.c (any_cfis_emitted): New static variable.
11045         (add_fde_cfi): Set it.
11046         (dwarf2out_frame_debug): Clear it before processing,
11047         if it is set afterwards, flush any queued reg saves.
11048
11049         PR debug/45124
11050         * dwarf2out.c (add_accessibility_attribute): Assume
11051         DW_ACCESS_private as the default for dwarf_version > 2
11052         and DW_TAG_class_type parent.
11053         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11054         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11055
11056 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11057
11058         PR target/45726
11059         * arm.md (arm_movt): Only enable on machines with MOVT.
11060
11061 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11062
11063         * config/arm/arm.c (arm_address_offset_is_imm): New.
11064         (arm_early_store_addr_dep): New.
11065         (arm_early_load_addr_dep): New.
11066         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11067         (arm_early_load_addr_dep): Declare.
11068         (arm_address_offset_is_imm): Declare.
11069         * config/arm/cortex-m4.md: New file.
11070         * config/arm/cortex-m4-fpu.md: New file.
11071         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11072         (attr generic_sched): Exclude cortexm4.
11073         (attr generic_vfp): Exclude cortexm4.
11074
11075 2010-09-20  Richard Guenther  <rguenther@suse.de>
11076
11077         PR middle-end/45704
11078         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11079
11080 2010-09-20  Jan Hubicka  <jh@suse.cz>
11081
11082         PR tree-optimize/45605
11083         * cgraph.h (const_value_known_p): Declare.
11084         (varpool_decide_const_value_known): Remove.
11085         * tree-ssa-ccp.c (get_base_constructor): Use it.
11086         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11087         * expr.c (string_constant): Likewise.
11088         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11089         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11090         function_and_variable_visibility): Likewise.
11091         * gimplify.c (gimplify_call_expr): Likewise.
11092         * gimple-fold.c (get_symbol_constant_value): Likewise.
11093         * varpool.c (varpool_decide_const_value_known): Replace by...
11094         (const_value_known_p): ... this one; handle other kinds of DECLs
11095         too and work for automatic vars.
11096         (varpool_finalize_decl): Use const_value_known_p.
11097
11098 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11099
11100         PR target/45726
11101         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11102
11103 2010-09-20  Richard Guenther  <rguenther@suse.de>
11104
11105         PR tree-optimization/45705
11106         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11107
11108 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11109
11110         PR rtl-optimization/45695
11111         * combine.c (try_combine): When splitting a two set pattern,
11112         make sure the pattern which will be put into i2 doesn't use REGs
11113         or MEMs set by insns in between i2 and i3.
11114
11115 2010-09-19  Jan Hubicka  <jh@suse.cz>
11116
11117         PR lto/44246
11118         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11119         processing same node twice.
11120
11121 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11122
11123         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11124         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11125         (bfin_class_likely_spilled_p): New function
11126
11127 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11128
11129         PR tree-optimization/45714
11130         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11131         created in vectorizable_call instead of the original statement in
11132         def stmt updates.
11133
11134 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11135
11136         * config/i386/i386-protos.h (split_double_mode): New prototype.
11137         (split_di, split_ti): Remove prototypes.
11138         * config/i386/i386.c (split_double_mode): New function.
11139         (split_di, split_ti): Remove.
11140         (ix86_expand_branch): Use split_double_mode.
11141         (ix86_split_to_parts): Ditto.
11142         (ix86_split_ashl): Ditto.
11143         (ix86_split_ashr): Ditto.
11144         (ix86_split_lshr): Ditto.
11145         (ix86_force_to_memory): Ditto.
11146         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11147
11148 2010-09-18  Jan Hubicka  <jh@suse.cz>
11149
11150         PR tree-optimization/45453
11151         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11152         virtual functions are reachable.
11153         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11154         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11155         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11156         when modifying function.
11157
11158 2010-09-18  Jan Hubicka  <jh@suse.cz>
11159
11160         PR tree-optimization/45605
11161         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11162         * gimple-fold.c (static_object_in_other_unit_p): New function.
11163         (canonicalize_constructor_val): Use it.
11164         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11165         returning NULL.
11166         (gimple_fold_obj_type_ref_known_binfo): Use
11167         static_object_in_other_unit_p.
11168
11169 2010-09-18  Richard Guenther  <rguenther@suse.de>
11170
11171         PR tree-optimization/45709
11172         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11173         insertions until after all PHI nodes of the block are processed.
11174
11175 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11176
11177         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11178
11179 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11180
11181         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11182
11183 2010-09-18  Richard Guenther  <rguenther@suse.de>
11184
11185         PR tree-optimization/45709
11186         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11187
11188 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11189
11190         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11191         (dot_deps_stmt): Same.
11192         * graphite-poly.c (dot_lst): Same.
11193         * graphite-scop-detection.c (dot_all_scops): Same.
11194         (dot_scop): Same.
11195
11196 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11197
11198         Revert:
11199         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11200
11201         * tree-data-ref.c (dot_rdg_1): Added back.
11202         (dot_rdg): Same.  Added "#if 0" around system call.
11203
11204 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11205             Richard Henderson  <rth@redhat.com>
11206
11207         * config/i386/i386.c (initial_ix86_tune_features): Add
11208         X86_TUNE_PAD_SHORT_FUNCTION.
11209         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
11210         (ix86_count_insn): New.
11211         (ix86_pad_short_function): Likewise.
11212         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
11213
11214         * config/i386/i386.h (ix86_tune_indices): Add
11215         X86_TUNE_PAD_SHORT_FUNCTION.
11216         (TARGET_PAD_SHORT_FUNCTION): New.
11217
11218         * config/i386/i386.md (UNSPEC_NOPS): New.
11219         (nops): Likewise.
11220
11221 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11222
11223         PR middle-end/45234
11224         * calls.c (expand_call): Make sure that all variable sized
11225         adjustments are multiple of preferred stack boundary after
11226         stack alignment.
11227
11228 2010-09-17  DJ Delorie  <dj@redhat.com>
11229
11230         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
11231         passed an invalid value, print an error instead of ICEing.
11232         (valid_psw_flag): New.
11233         (rx_expand_builtin): Call it for setpsw/clrpsw.
11234         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
11235
11236         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
11237         (bitclr_in_memory): Likewise.
11238         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
11239
11240 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11241
11242         PR middle-end/45678
11243         * cfgexpand.c (update_stack_alignment): New.
11244         (get_decl_align_unit): Use it.
11245         (expand_one_stack_var_at): Call update_stack_alignment.
11246
11247 2010-09-17  Richard Guenther  <rguenther@suse.de>
11248
11249         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
11250         Properly copy the read string.
11251
11252 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
11253
11254         * doc/options.texi (Variable): Document.
11255         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
11256         generate target_flags declarations explicitly.  Don't define
11257         VarExists variables for the driver.
11258         * common.opt (target_flags): New Variable record.
11259         (flag_dump_unnumbered, flag_dump_unnumbered_links,
11260         flag_var_tracking, flag_var_tracking_assignments,
11261         flag_var_tracking_assignments_toggle): Don't mark variables with
11262         VarExists.
11263         * config/i386/i386.c (ix86_isa_flags): Don't define here.
11264         * config/i386/i386.opt (ix86_isa_flags): Define here.
11265         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
11266         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
11267         VarExists.
11268         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
11269         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
11270         Only define for generator programs.
11271         * rtlanal.c (target_flags): Remove.
11272         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
11273         flag_var_tracking_assignments_toggle): Remove.
11274
11275 2010-09-17  Michael Matz  <matz@suse.de>
11276
11277         PR tree-optimization/43432
11278         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11279         Accept backwards consecutive accesses.
11280         (vect_create_data_ref_ptr): If step is negative generate
11281         decreasing IVs.
11282         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
11283         (perm_mask_for_reverse, reverse_vec_elements): New functions.
11284         (vectorizable_load): Handle loads with negative steps when easily
11285         possible.
11286
11287 2010-09-03  Jan Hubicka  <jh@suse.cz>
11288
11289         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
11290
11291 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
11292
11293         * config/v850/v850.c (v850_function_value_regno_p): Make static.
11294         Adjust comments. Declare.
11295         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11296         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
11297
11298 2010-09-17  Richard Guenther  <rguenther@suse.de>
11299
11300         * common.opt (combine): Remove.
11301         * gcc.c (default_compilers): Remove specs testing combine.
11302         The C compilers no longer can combine.
11303         (option_map): Remove -combine.
11304         (display_help): Remove -combine.
11305         (driver_handle_option): Remove OPT_combine handling.
11306         (compile_input_file_p): Remove.
11307         (do_spec): Remove code concerning combine.
11308         (main): Likewise.
11309         * doc/invoke.texi: Remove traces of -combine.
11310         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
11311
11312 2010-09-17  Richard Guenther  <rguenther@suse.de>
11313
11314         PR middle-end/45678
11315         * builtins.c (fold_builtin_memory_op): Always properly adjust
11316         alignment of memory accesses.
11317
11318 2010-09-16  Jan Hubicka  <jh@suse.cz>
11319
11320         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
11321         processing clone.
11322
11323 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
11324
11325         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
11326
11327         * config/i386/i386.c (predict_jump): Add prototype.
11328         (flag_opts): Add -m8bit-idiv.
11329         (ix86_split_idivmod): New.
11330
11331         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
11332         Add 2 splitters for SI/DI mode divide.
11333         (divmod<mode>4_1): New pattern.
11334         (udivmod<mode>4_1): Likewise.
11335         (testdi_ccno_1): Likewise.
11336
11337         * config/i386/i386.opt (m8bit-idiv): New.
11338
11339         * doc/invoke.texi: Document -m8bit-idiv.
11340
11341 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
11342
11343         PR bootstrap/45680
11344         * config/i386/i386.c (min_insn_size): Moved out of the
11345         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
11346
11347 2010-09-16  Jan Hubicka  <jh@suse.cz>
11348
11349         * lto-cgraph.c (lto_output_node): Fix handling of clones.
11350         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
11351         unreachable clones with reachable clones.
11352         * tree-inline.c (copy_bb): Fix sanity checking when producing
11353         unreachable clone.
11354
11355 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
11356
11357         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
11358         (TARGET_MEMORY_MOVE_COST): Define.
11359         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
11360
11361 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
11362
11363         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
11364         maybe_tidy_empty_bb.
11365
11366         Revert:
11367         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11368         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11369
11370 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11371
11372         * target.def (target_option.optimization): New hook.
11373         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11374         TARGET_OPTION_OPTIMIZATION hook.
11375         * doc/tm.texi: Regenerate.
11376         * hooks.c (hook_void_int_int): New.
11377         * hooks.h (hook_void_int_int): Declare.
11378         * opts.c: Don't include tm_p.h.
11379         (decode_options): Use targetm.target_option.optimization instead
11380         of OPTIMIZATION_OPTIONS.
11381         * system.h (OPTIMIZATION_OPTIONS): Poison.
11382         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11383         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11384         (arm_optimization_options): Rename to arm_option_optimization.
11385         Make static.
11386         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11387         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11388         (cris_option_optimization): New.
11389         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11390         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11391         (crx_option_optimization): New.
11392         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11393         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11394         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11395         (frv_optimization_options): Rename to frv_option_optimization.
11396         Make static.
11397         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11398         * config/h8300/h8300.c (h8300_option_optimization): New.
11399         (TARGET_OPTION_OPTIMIZATION): Define.
11400         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11401         * config/i386/i386-protos.h (optimization_options): Remove.
11402         * config/i386/i386.c (optimization_options): Rename to
11403         ix86_option_optimization.  Make static.
11404         (TARGET_OPTION_OPTIMIZATION): Define.
11405         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11406         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11407         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11408         (ia64_optimization_options): Rename to ia64_option_optimization.
11409         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11410         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11411         commented-out definition.
11412         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11413         instead of OPTIMIZATION_OPTIONS.
11414         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11415         (m32r_option_optimization): New.
11416         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11417         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11418         Remove.
11419         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11420         (mcore_option_optimization): New.
11421         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11422         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11423         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11424         (mep_optimization_options): Rename to mep_option_optimization.
11425         Make static.  Take unused level and size parameters.
11426         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11427         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11428         (mmix_option_optimization): New.
11429         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11430         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11431         (pdp11_option_optimization): New.
11432         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11433         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11434         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11435         (optimization_options): Rename to rs6000_option_optimization.
11436         Make static.
11437         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11438         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11439         * config/rx/rx.c (rx_set_optimization_options): Rename to
11440         rx_option_optimization.  Make static.  Take unused level and size
11441         parameters.
11442         (TARGET_OPTION_OPTIMIZATION): Define.
11443         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11444         * config/s390/s390-protos.h (optimization_options): Remove.
11445         * config/s390/s390.c (optimization_options): Rename to
11446         s390_option_optimization.  Make static.  Don't mark size parameter
11447         unused.
11448         (TARGET_OPTION_OPTIMIZATION): Define.
11449         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11450         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11451         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11452         (sh_optimization_options): Rename to sh_option_optimization.  Make
11453         static.  Don't mark parameters unused.
11454         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11455         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11456         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11457         (spu_optimization_options): Rename to spu_option_optimization.
11458         Make static.
11459         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11460         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11461         (v850_option_optimization): New.
11462         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11463         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11464         (xtensa_option_optimization): New.
11465         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11466
11467 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11468
11469         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11470         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11471         * doc/tm.texi: Regenerate.
11472         * system.h (OVERRIDE_OPTIONS): Poison.
11473         * target.def (override): Default to hook_void_void.
11474         * targhooks.c (default_target_option_override): Remove.
11475         * genmodes.c, machmode.def: Update comments mentioning
11476         OVERRIDE_OPTIONS.
11477         * config/alpha/alpha-modes.def: Update comment mentioning
11478         alpha_override_options.
11479         * config/alpha/alpha-protos.h (override_options): Remove.
11480         * config/alpha/alpha.c (override_options): Rename to
11481         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11482         (TARGET_OPTION_OVERRIDE): Define.
11483         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11484         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11485         of OVERRIDE_OPTIONS.
11486         * config/arc/arc-protos.h (arc_init): Remove.
11487         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11488         (arc_init): Rename to arc_option_override.  Make static.
11489         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11490         (OVERRIDE_OPTIONS): Remove.
11491         * config/arm/arm-protos.h (arm_override_options): Remove.
11492         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11493         (arm_override_options): Rename to arm_option_override.  Make
11494         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11495         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11496         * config/arm/arm.md: Update comment referring to arm_override_options.
11497         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11498         instead of OVERRIDE_OPTIONS.
11499         * config/avr/avr-protos.h (avr_override_options): Remove.
11500         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11501         (avr_override_options): Rename to avr_option_override.  Make static.
11502         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11503         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11504         * config/bfin/bfin.c (override_options): Rename to
11505         bfin_option_override.  Make static.
11506         (TARGET_OPTION_OVERRIDE): Define.
11507         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11508         * config/cris/cris-protos.h (cris_override_options): Remove.
11509         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11510         (cris_override_options): Rename to cris_option_override.  Make static.
11511         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11512         * config/frv/frv-protos.h (frv_override_options): Remove.
11513         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11514         (frv_override_options): Rename to frv_option_override.  Make static.
11515         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11516         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11517         * config/h8300/h8300.c (h8300_init_once): Rename to
11518         h8300_option_override.  Make static.
11519         (TARGET_OPTION_OVERRIDE): Define.
11520         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11521         * config/i386/i386-protos.h (override_options): Remove.
11522         * config/i386/i386.c (override_options): Rename to
11523         ix86_option_override_internal.  Make static.  Comments referring
11524         to this function and callers changed.
11525         (ix86_option_override): New.
11526         (TARGET_OPTION_OVERRIDE): Define.
11527         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11528         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11529         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11530         to ia64_override_options.
11531         * config/iq2000/iq2000-protos.h (override_options): Remove.
11532         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11533         (override_options): Rename to iq2000_option_override.  Make static.
11534         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11535         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11536         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11537         (lm32_override_options): Rename to lm32_option_override.  Make static.
11538         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11539         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11540         (m32r_option_override): New.
11541         (m32r_init): Update comment.
11542         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11543         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11544         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11545         (m68hc11_override_options): Rename to m68hc11_option_override.
11546         Make static.  Return void.
11547         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11548         * config/m68k/m68k-protos.h (override_options): Remove.
11549         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11550         (override_options): Rename to m68k_option_override.  Make static.
11551         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11552         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11553         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11554         (mcore_override_options): Rename to mcore_option_override.  Make
11555         static.
11556         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11557         * config/mep/mep-protos.h (mep_override_options): Remove.
11558         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11559         (mep_override_options): Rename to mep_option_override.  Make static.
11560         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11561         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11562         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11563         (mmix_override_options): Rename to mmix_option_override.  Make static.
11564         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11565         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11566         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11567         (mn10300_override_options): Rename to mn10300_option_override.
11568         Make static.
11569         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11570         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11571         * config/moxie/moxie.c (moxie_override_options): Rename to
11572         moxie_option_override.  Make static.
11573         (TARGET_OPTION_OVERRIDE): Define.
11574         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11575         * config/picochip/picochip-protos.h (picochip_override_options):
11576         Remove.  Update comment referring to picochip_override_options.
11577         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11578         (picochip_override_options): Rename to picochip_option_override.
11579         Make static.  Update comment and definition of
11580         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11581         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11582         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11583         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11584         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11585         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11586         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11587         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11588         instead of OVERRIDE_OPTIONS.
11589         * config/rs6000/rs6000-modes.def: Update comment referring to
11590         rs6000_override_options.
11591         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11592         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11593         (rs6000_override_options): Rename to
11594         rs6000_option_override_internal.  Make static.  Commented
11595         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11596         (rs6000_option_override): New.
11597         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11598         instead of OVERRIDE_OPTIONS.
11599         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11600         * config/s390/s390-protos.h (override_options): Remove.
11601         * config/s390/s390.c (override_options): Rename to
11602         s390_option_override.  Make static.
11603         (TARGET_OPTION_OVERRIDE): Define.
11604         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11605         * config/score/score-protos.h (score_override_options): Remove.
11606         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11607         (score_override_options): Rename to score_option_override.  Make
11608         static.
11609         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11610         Update comment referring to override_options.
11611         * config/score/score3.c (score3_override_options): Rename to
11612         score3_option_override.
11613         * config/score/score3.h (score3_override_options): Rename to
11614         score3_option_override.
11615         * config/score/score7.c (score7_override_options): Rename to
11616         score7_option_override.
11617         * config/score/score7.h (score7_override_options): Rename to
11618         score7_option_override.
11619         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11620         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11621         (sparc_override_options): Rename to sparc_option_override.  Make
11622         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11623         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11624         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11625         instead of OVERRIDE_OPTIONS.
11626         * config/spu/spu-protos.h (spu_override_options): Remove.
11627         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11628         (spu_override_options): Rename to spu_option_override.  Make
11629         static.
11630         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11631         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11632         OVERRIDE_OPTIONS.
11633         * config/vax/vax-protos.h (override_options): Remove.
11634         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11635         (override_options): Rename to vax_option_override.  Make static.
11636         Call SUBTARGET_OVERRIDE_OPTIONS.
11637         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11638         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11639         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11640         * config/xtensa/xtensa-protos.h (override_options): Remove.
11641         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11642         (override_options): Rename to xtensa_option_override.  Make static.
11643         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11644
11645 2010-09-16  Richard Guenther  <rguenther@suse.de>
11646
11647         PR tree-optimization/45623
11648         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11649         (get_constraint_for_component_ref): If computing a constraint
11650         for the rhs handle type punning through unions.
11651         (get_constraint_for_address_of): Adjust.
11652         (get_constraint_for_1): Likewise.
11653         (get_constraint_for): Likewise.
11654         (get_constraint_for_rhs): New function.
11655         (do_structure_copy): Adjust.
11656         (make_constraint_to): Likewise.
11657         (handle_const_call): Likewise.
11658         (find_func_aliases): Likewise.
11659         (process_ipa_clobber): Likewise.
11660         (create_variable_info_for): Likewise.
11661
11662 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11663
11664         * tree-vectorizer.c: Fix documentation.
11665         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11666         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11667         is_pattern_stmt_p, is_loop_header_bb_p,
11668         stmt_vinfo_set_inside_of_loop_cost,
11669         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11670         known_alignment_for_access_p): Likewise.
11671         * tree-vect-loop.c: Fix documentation.
11672         (vect_get_cost): Start function name from new line.
11673         * tree-vect-data-refs.c: Fix documentation.
11674         * tree-vect_stmts.c: Likewise.
11675         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11676         (vectorizable_store): Free vec_oprnds if allocated.
11677         (vectorizable_condition): Initialize several variables to avoid
11678         warnings.
11679         * tree-vect-slp.c: Fix documentation.
11680
11681 2010-09-16  Richard Guenther  <rguenther@suse.de>
11682
11683         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11684         is TS_TRANSLATION_UNIT_DECL.
11685         (initialize_tree_contains_struct): Adjust.
11686         (all_translation_units): New global vector.
11687         (build_translation_unit_decl): New function.
11688         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11689         (struct tree_translation_unit_decl): New.
11690         (all_translation_units): Declare.
11691         (union tree_node): Add translation_unit_decl member.
11692         (build_translation_unit_decl): Declare.
11693         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11694         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11695         New function.
11696         (pack_value_fields): Call it.
11697         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11698         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11699         (lto_output_tree_pointers): Call it.
11700         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11701         to TRANSLATION_UNIT_DECL.
11702         (unpack_ts_translation_unit_decl_value_fields): New function.
11703         (unpack_value_fields): Call it.
11704         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11705         (lto_input_tree_pointers): Call it.
11706         * lto-streamer.c (check_handled_ts_structures): Adjust.
11707         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11708         * c-decl.c (all_translation_units): Remove.
11709         (pop_scope): Use build_translation_unit_decl.
11710         (collect_all_refs): Adjust.
11711         (for_each_global_decl): Likewise.
11712         (c_write_global_declarations): Likewise.
11713
11714 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11715
11716         PR bootstrap/45686
11717         * fold-const.c (fold_checksum_tree): Change slot from const void **
11718         to void **, use CONST_CAST_TREE to store into *slot.
11719
11720 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11721
11722         * config/i386/i386.md: Remove unneeded empty conditions and
11723         preparation statements from expanders.
11724         * config/i386/mmx.md: Ditto.
11725         * config/i386/sse.md: Ditto.
11726
11727 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11728
11729         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11730
11731 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11732
11733         PR rtl-optimization/45593
11734         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11735         insns that were in delay slots as stand-alone insns.
11736
11737 2010-09-15  Ian Lance Taylor  <iant@google.com>
11738
11739         * incpath.c (remove_duplicates): If name is not a directory, issue
11740         a warning rather than an error.
11741
11742 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11743
11744         PR middle-end/45644
11745         * tree-sra.c (create_access): Check for bit-fields directly.
11746
11747 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11748
11749         PR tree-optimization/45633
11750         * tree-cfg.c (verify_gimple_assign_binary): Allow
11751         MINUS_EXPR with lhs and rhs1 pointer vector and
11752         rhs2 sizetype vector.
11753         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11754         or vector pointer use TER to optimize pointer subtraction.
11755
11756 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11757
11758         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11759         fcmpd to fcmps.
11760
11761 2010-09-15  Ian Lance Taylor  <iant@google.com>
11762
11763         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11764
11765 2010-09-15  Ian Lance Taylor  <iant@google.com>
11766
11767         * function.c (get_arg_pointer_save_area): Set
11768         arg_pointer_save_area_init to true.
11769
11770 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11771
11772         * tree-sra.c (generate_subtree_copies): Updated comment.
11773         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11774         obtained from the statement iterator instead.
11775         (load_assign_lhs_subreplacements): Removed parameters lhs and
11776         right_offset, which is obtained from top_racc instead.  Parameter lacc
11777         is now expected to be the root of the processed tree rather than root's
11778         first child.  Updated all callers.
11779
11780 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11781
11782         * config/pdp11/pdp11.c (register_move_cost): Rename to
11783         pdp11_register_move_cost.
11784         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11785         pdp11_register_move_cost.
11786         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11787         pdp11_register_move_cost instead of register_move_cost.
11788
11789 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11790
11791         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11792         pattern for vmovn. Expansion in case of non
11793         -mvectorize-with-neon-quad.
11794         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11795         non- -mvectorize-with-neon-quad case.
11796         (move_lo_quad_<mode>): New expansion to vmov into low part.
11797         (move_hi_quad_<mode>): New expansion to vmov into high part.
11798         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11799         (move_lo_quad_v4sf): Likewise.
11800         (move_lo_quad_v8hi): Likewise.
11801         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11802         low part.
11803         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11804         high part.
11805         * config/arm/iterators.md (ANY128): New mode iterator.
11806         (V_narrow_pack): New mode attribute.
11807         (V_HALF): Add attribute.
11808         (V_DOUBLE): Add attribute.
11809         (V_mode_nunits): Add attribute.
11810
11811 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11812
11813         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11814         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11815
11816 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11817             Jose Ruiz  <ruiz@adacore.com>
11818
11819         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11820         * config/alpha/osf5-unwind.h: New file.
11821
11822 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11823
11824         PR bootstrap/45672
11825         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11826         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11827         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11828
11829 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11830
11831         * c-lang.h (struct lang_type): Add variable_size GTY option.
11832
11833 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11834
11835         PR bootstrap/45672
11836         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11837
11838 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11839
11840         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11841         result isn't used in memory address.
11842
11843 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11844
11845         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11846         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11847         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11848         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11849         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
11850         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
11851
11852         * target.def: Add units_per_simd_word to vectorize.
11853
11854         * targhooks.c (default_units_per_simd_word): New.
11855         * targhooks.h (default_units_per_simd_word): Likewise.
11856         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
11857         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11858         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
11859         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11860         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11861         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11862         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11863         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11864
11865         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
11866         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
11867
11868         * tree-vect-stmts.c: Don't include "tm_p.h".
11869         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
11870         with targetm.vectorize.units_per_simd_word.
11871
11872         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
11873
11874         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
11875
11876         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
11877         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11878
11879         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
11880         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
11881
11882         * doc/tm.texi: Regenerated.
11883
11884 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11885
11886         * tree-vect-stmts.c: Include "tm_p.h".
11887
11888         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
11889         out of RTX_CODE.
11890
11891 2010-09-14  Martin Jambor  <mjambor@suse.cz>
11892
11893         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
11894         location of generated statement.  Changed all callers.
11895         (build_ref_for_model): New parameter loc which used to set location of
11896         all generated expressions.  Changed all callers.
11897         (generate_subtree_copies): Likewise.
11898         (init_subtree_with_zero): Likewise.
11899         (sra_modify_expr): Set locations of all generated statements and
11900         expressions to the location the original statement.
11901         (handle_unscalarized_data_in_subtree): Likewise.
11902         (load_assign_lhs_subreplacements): Likewise.
11903         (sra_modify_constructor_assign): Likewise.
11904         (sra_modify_assign): Likewise.
11905
11906 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
11907
11908         PR target/45277
11909         PR target/45363
11910         PR target/45407
11911         * doc/install.texi (sparc*-*-*): New section.
11912         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
11913
11914 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11915
11916         PR middle-end/45567
11917         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
11918         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
11919         (expand_builtin): Adjust caller.
11920         (expand_builtin_unop): Only use subtarget if it has the right mode.
11921
11922 2010-09-14  Tristan Gingold  <gingold@adacore.com>
11923
11924         * configure.ac (plugins): Fix typos.
11925         * configure: Regenerate.
11926
11927 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11928
11929         PR debug/45660
11930         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
11931         gen_type_die for function/method return type.
11932
11933 2010-09-14  Ira Rosen  <irar@il.ibm.com>
11934
11935         PR tree-optimization/45470
11936         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11937         can throw an exception.
11938         * tree-vect-stmts.c (vectorizable_call): Likewise.
11939
11940 2010-09-14  DJ Delorie  <dj@redhat.com>
11941
11942         PR target/44749
11943         * config/mep/mep-protos.h (mep_save_register_info,
11944         mep_reinit_regs, mep_init_regs): Declare.
11945
11946         * config/mep/mep.c: Move all target definitions to the end of the
11947         file to avoid the need for duplicate declarations.
11948         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
11949         (mep_reorg_erepeat): Remove unused variables.
11950         (mep_expand_builtin): Likewise.
11951
11952         * config/mep/mep-pragma.c: Don't include rtl.h.
11953         (INVALID_REGNUM): New.
11954         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
11955         functions.
11956         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
11957         Avoid enum/integer math.
11958
11959 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
11960
11961         PR target/44749
11962         * config/mep/t-mep (GTM_H): Add insn-constants.h.
11963         * config/mep/mep.c (mep_conditional_register_usage): Take no
11964         parameters.
11965         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
11966         prototype.
11967         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
11968         call to mep_conditional_register_usage.
11969
11970 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
11971
11972         PR debug/43937
11973         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
11974         the DECL as well.
11975
11976 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
11977
11978         PR rtl-optimization/45617
11979         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
11980         even if low N bits of X aren't known to be zero.
11981
11982 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
11983
11984         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
11985
11986         * config/i386/i386.c (initial_ix86_tune_features): Add
11987         X86_TUNE_VECTORIZE_DOUBLE.
11988         (ix86_units_per_simd_word): New.
11989
11990         * config/i386/i386.h (ix86_tune_indices): Add
11991         X86_TUNE_VECTORIZE_DOUBLE.
11992         (TARGET_VECTORIZE_DOUBLE): New.
11993         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
11994
11995 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
11996
11997         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
11998         (new_temp_expr_table): Allocate call_cnt vector.
11999         (free_temp_expr_table): Free it.
12000         (process_replaceable): Add call_cnt parm and set in vector.
12001         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12002         (debug_ter): Dump call_cnt value, remove stderr uses.
12003
12004 2010-09-13  Jan Hubicka  <jh@suse.cz>
12005
12006         * tree.c (build_zero_cst): New.
12007         * tree.h (build_zero_cst): Declare.
12008         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12009         (get_base_constructor): Break out from ...
12010         (fold_const_aggregate_ref): Here; handle empty constructors.
12011
12012 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12013
12014         * config/arm/arm.md: (define_attr "conds"): Update comment.
12015         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12016         conds attribute to clob.
12017         (arm_sync_compare_and_swapsi): Likewise.
12018         (arm_sync_compare_and_swap<mode>): Likewise.
12019         (arm_sync_lock_test_and_setsi): Likewise.
12020         (arm_sync_lock_test_and_set<mode>): Likewise.
12021         (arm_sync_new_<sync_optab>si): Likewise.
12022         (arm_sync_new_nandsi): Likewise.
12023         (arm_sync_new_<sync_optab><mode>): Likewise.
12024         (arm_sync_new_nand<mode>): Likewise.
12025         (arm_sync_old_<sync_optab>si): Likewise.
12026         (arm_sync_old_nandsi): Likewise.
12027         (arm_sync_old_<sync_optab><mode>): Likewise.
12028         (arm_sync_old_nand<mode>): Likewise.
12029
12030 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12031
12032         * fwprop.c (forward_propagate_and_simplify): Only attach a
12033         REG_EQUAL note to an insn if the destination is a register.
12034         * gcse.c (try_replace_reg): Likewise.
12035
12036 2010-09-13  Richard Guenther  <rguenther@suse.de>
12037
12038         PR tree-optimization/45611
12039         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12040         (copy_ref_info): Likewise.
12041
12042 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12043
12044         PR debug/45604
12045         PR debug/45419
12046         PR debug/45408
12047         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12048         types of MEM_REF pointer types to the same type.
12049
12050 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12051
12052         PR rtl-optimization/41087
12053         * ifcvt.c (noce_get_condition): Don't allow conditions with
12054         side-effects.
12055
12056 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12057
12058         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12059         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12060         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12061         arguments type to reg_class_t. Add mode argument.
12062         (frv_memory_move_cost): New.
12063         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12064
12065 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12066
12067         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12068         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12069
12070 2010-09-10  Jan Hubicka  <jh@suse.cz>
12071
12072         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12073
12074 2010-09-10  Richard Guenther  <rguenther@suse.de>
12075
12076         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12077         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12078         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12079         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12080         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12081
12082 2010-09-10  Richard Guenther  <rguenther@suse.de>
12083
12084         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12085         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12086         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12087         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12088
12089 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12090
12091         PR middle-end/45634
12092         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12093         of string folding is of integral type.
12094
12095 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12096
12097         * doc/invoke.texi (-x): Fix typo.
12098
12099 2010-09-10  Richard Guenther  <rguenther@suse.de>
12100
12101         PR debug/44115
12102         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12103         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12104         Output DECL_DEBUG_EXPR.
12105         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12106         Input DECL_DEBUG_EXPR.
12107
12108 2010-09-10  Richard Guenther  <rguenther@suse.de>
12109
12110         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12111         (build_index_type): Implement in terms of build_range_type.
12112         (build_range_type): Do not allow NULL_TREE type, improve
12113         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12114         if we didn't hash.
12115         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12116         create a distinct copy of the type.
12117
12118 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12119
12120         * configure: Regenerated.
12121         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12122
12123 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12124
12125         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12126         * config/arm/cortex-a9-neon.md: New and partially generated.
12127         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12128
12129 2010-09-10  Richard Guenther  <rguenther@suse.de>
12130
12131         * tree.h (build_index_2_type): Remove.
12132         * tree.c (build_index_2_type): Remove.
12133
12134 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12135
12136         PR bootstrap/45630
12137         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12138         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12139         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12140
12141 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12142
12143         PR tree-optimization/44972
12144         * tree-sra.c: Include toplev.h.
12145         (build_ref_for_offset): Entirely reimplemented.
12146         (build_ref_for_model): New function.
12147         (build_user_friendly_ref_for_offset): New function.
12148         (analyze_access_subtree): Removed build_ref_for_offset check.
12149         (propagate_subaccesses_across_link): Likewise.
12150         (create_artificial_child_access): Use
12151         build_user_friendly_ref_for_offset.
12152         (propagate_subaccesses_across_link): Likewise.
12153         (ref_expr_for_all_replacements_p): Removed.
12154         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12155         (sra_modify_expr): Use build_ref_for_model.
12156         (load_assign_lhs_subreplacements): Likewise.
12157         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12158         checks for return values of build_ref_for_offset.
12159         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12160         build_ref_for_offset.
12161         * ipa-prop.h: Include gimple.h
12162         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12163         (ipa_analyze_indirect_call_uses): Update comment.
12164         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12165         (IPA_PROP_H): Likewise.
12166
12167 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12168
12169         PR tree-optimization/44972
12170         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12171         calling build_ref_for_offset.
12172
12173 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12174
12175         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12176         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12177         * config/arm/arm-tune.md: Regenerate.
12178         * doc/invoke.texi (ARM Options): Document it.
12179
12180 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12181
12182         * config/i386/i386.c: Include sched-int.h.
12183         (TARGET_SCHED_DISPATCH): Defined.
12184         (TARGET_SCHED_DISPATCH_DO): Defined.
12185         (DISPATCH_WINDOW_SIZE): Defined.
12186         (MAX_DISPATCH_WINDOWS): Defined.
12187         (MAX_INSN): Defined.
12188         (MAX_IMM): Defined.
12189         (MAX_IMM_SIZE): Defined.
12190         (MAX_IMM_32): Defined.
12191         (MAX_IMM_64): Defined.
12192         (MAX_LOAD): Defined.
12193         (MAX_STORE): Defined.
12194         (BIG): Defined.
12195         (dispatch_group): New.
12196         (num_allowable_groups): New.
12197         (group_name): New.
12198         (sched_insn_info_s): New.
12199         (dispatch_windows_s): New.
12200         (imm_info_s): New.
12201         (dispatch_window_list): New.
12202         (dispatch_window_list1): New.
12203         (get_mem_group): New.
12204         (is_cmp): New.
12205         (dispatch_violation): New.
12206         (is_branch): New.
12207         (is_prefetch): New.
12208         (init_window): New.
12209         (allocate_window): New.
12210         (init_dispatch_sched): New.
12211         (is_end_basic_block): New.
12212         (process_end_window): New.
12213         (allocate_next_window): New.
12214         (find_constant_1): New.
12215         (find_constant): New.
12216         (get_num_immediates): New.
12217         (has_immediate): New.
12218         (get_insn_path): New.
12219         (get_insn_group): New.
12220         (count_num_restricted): New.
12221         (fits_dispatch_window): New.
12222         (add_insn_window): New.
12223         (add_to_dispatch_window): New.
12224         (debug_dispatch_window_file): New.
12225         (debug_dispatch_window): New.
12226         (debug_insn_dispatch_info_file): New.
12227         (debug_ready_dispatch): New.
12228         (do_dispatch): New.
12229         (has_dispatch): New.
12230         * config/i386/i386.h (debug_ready_dispatch): Declared.
12231         (debug_dispatch_window): Declared.
12232         * config/i386/i386.opt (mdispatch-scheduler): New flag.
12233         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
12234         (TARGET_SCHED_DISPATCH_DO): New.
12235         * doc/tm.texi: Regererated.
12236         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
12237         ready_remove_first_dispatch
12238         (schedule_block): Call targetm.sched.dispatch and
12239         targetm.sched.dispatch_do.
12240         (sched_init): Call targetm.sched.dispatch and
12241         targetm.sched.dispatch_do.
12242         (ready_remove_first_dispatch): New.
12243         (number_in_ready): New.
12244         (get_ready_element): New.
12245         * hooks.c (hook_bool_rtx_int_false): New.
12246         (hook_void_rtx_int): New.
12247         * hooks.h (hook_bool_rtx_int_false): Declared.
12248         (hook_void_rtx_int): Declared.
12249         * sched-int.h (IS_DISPATCH_ON): Defined.
12250         (IS_CMP): Defined.
12251         (DISPATCH_VIOLATION): Defined.
12252         (FITS_DISPATCH_WINDOW): Defined.
12253         (DISPATCH_INIT): Defined.
12254         (ADD_TO_DISPATCH_WINDOW): Defined.
12255         (get_ready_element): Declared.
12256         (number_in_ready): Declared.
12257         * target.def (dispatch): Defined.
12258         (dispatch_do): Defined.
12259
12260 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12261
12262         PR middle-end/45312
12263         * reload1.c (merge_assigned_reloads): Remove.
12264         (reload_as_needed): Don't call it.
12265
12266 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
12267
12268         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
12269         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12270         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12271
12272 2010-09-09  Matthias Klose  <doko@ubuntu.com>
12273
12274         PR bootstrap/43847
12275         * configure.ac (--enable-plugin): Enhance for cross builds.
12276         * configure: Regenerate.
12277
12278 2010-09-09  Jan Hubicka  <jh@suse.cz>
12279
12280         PR tree-optimization/45598
12281         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
12282         string folding is of integral type.
12283
12284 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12285
12286         * configure.ac (gnu_indirect_function): New test.
12287         * configure: Rebuilt.
12288         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
12289         * defaults.h (IFUNC_ASM_TYPE): Provide default.
12290
12291         * doc/extend.texi (Function Attributes): Document ifunc.
12292         * varasm.c (do_assemble_alias): Deal with ifuncs too.
12293
12294 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12295
12296         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
12297         epilogue instruction move.
12298
12299 2010-09-09  Jan Hubicka  <jh@suse.cz>
12300
12301         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
12302         command line to allow more partitions than input files.
12303
12304 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12305
12306         PR middle-end/44554
12307         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
12308
12309 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12310
12311         PR middle-end/40386
12312         * ira.c (pseudo_for_reload_consideration_p): Don't use
12313         flag_ira_share_spill_slots.
12314
12315 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12316
12317         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
12318         point zero operands that fit into a single GPR.
12319         (s390_preferred_reload_class): Ensure we only return general-purpose
12320         register classes.
12321         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
12322         floating-point zero operands into GPRs.
12323         ("*mov<mode>_64"): Likewise.
12324         ("mov<mode>"): Likewise using lhi.
12325
12326 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12327
12328         * config/s390/s390.c (s390_symref_operand_p): Return false for
12329         literal pool references.
12330         (s390_check_qrst_address): Update caller.
12331
12332 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
12333
12334         * config/i386/predicates.md (ext_register_operand): Check that
12335         SUBREG_REG is really a register before looking for REGNO.
12336         (reg_not_xmm0_operand): Handle SUBREGs correctly.
12337         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
12338
12339 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
12340
12341         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
12342         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
12343         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
12344         * print-rtl.c (print_rtx): Likewise.
12345         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12346         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
12347         for ADDR_EXPR with non-addressable object.
12348         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
12349         (struct dw_val_struct): Add v.val_decl_ref.
12350         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
12351         Handle DW_OP_GNU_implicit_pointer.
12352         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
12353         (get_ref_die_offset_label): New function.
12354         (implicit_ptr_descriptor): New function.
12355         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
12356         (loc_descriptor): Likewise.
12357         (gen_variable_die): Put even definitions into decl_die_table.
12358         (resolve_addr_in_expr): Resolve still unresolved
12359         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
12360         return false.
12361         (dwarf2out_finish): Call output_location_lists after outputting
12362         .debug_info and .debug_abbrev instead of before.
12363
12364 2010-09-09  Roland McGrath  <roland@redhat.com>
12365
12366         * dwarf2out.c (DWARF_REF_SIZE): Define.
12367         (size_of_loc_descr): Use it for DW_OP_call_ref.
12368
12369 2010-09-09  Alan Modra  <amodra@gmail.com>
12370
12371         * doc/invoke.text: Reinstate mcmodel=medium.
12372         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12373         CMODEL_MEDIUM as default.
12374         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12375         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12376         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12377         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12378
12379 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12380
12381         PR target/45250
12382         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12383         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12384         (builtin_longjmp): Likewise.
12385         (allocate_stack): Use hard_frame_pointer_rtx instead of
12386         frame_pointer_rtx.
12387         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12388         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12389         (pa_can_eliminate): Likewise.
12390         (TARGET_INTERNAL_ARG_POINTER): Define.
12391         (TARGET_CAN_ELIMINATE): Define.
12392         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12393         pointer.
12394         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12395         (pa_internal_arg_pointer, pa_can_eliminate,
12396         pa_initial_elimination_offset): New.
12397         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12398         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12399         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12400         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12401         Define.
12402         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12403         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12404         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12405         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12406         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12407         new soft frame pointer.
12408         * config/pa/pa64-regs.h: Likewise.
12409
12410 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12411
12412         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12413         numerical constant.
12414         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12415
12416 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12417
12418         PR debug/45531
12419         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12420
12421 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12422
12423         PR debug/45419
12424         PR debug/45408
12425         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12426         qualifiers in otherwise equal MEM_REF pointer types.
12427         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12428         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12429
12430 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12431
12432         PR target/44392
12433         * config/arm/arm.md (bswapsi2): Handle condition correctly
12434         for armv6 and optimize_size.
12435
12436 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12437
12438         PR other/18555
12439         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12440
12441 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12442
12443         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12444         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12445         ix86_expand_strlen, legitimate_pic_address_disp_p,
12446         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12447         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12448         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12449         prototype to bool.
12450         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12451         return_in_memory_ms_64, ix86_check_movabs,
12452         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12453         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12454         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12455         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12456         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12457         ix86_secondary_memory_needed): Change to bool.  Return
12458         "true" and "false" values.
12459         * config/i386/i386.md: Return "true" and "false" values.
12460
12461 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12462
12463         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12464         run_expensive_tests.
12465
12466 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12467
12468         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12469
12470 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12471
12472         PR other/45443
12473         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12474         at -O3.
12475
12476 2010-09-08  Richard Guenther  <rguenther@suse.de>
12477
12478         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12479         (visit): Adjust.
12480         (iterative_hash_gimple_type): Likewise.
12481         (gimple_type_hash): Likewise.
12482         (gimple_register_type): Likewise.
12483         (print_gimple_types_stats): Likewise.
12484         (free_gimple_type_tables): Likewise.
12485
12486 2010-09-08  Michael Matz  <matz@suse.de>
12487
12488         PR tree-optimization/43430
12489         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12490         copies for conditional statements if it's not part of a reduction.
12491
12492 2010-09-08  Michael Matz  <matz@suse.de>
12493
12494         PR tree-optimization/33244
12495         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12496         empty loop latches.
12497
12498 2010-09-08  Richard Guenther  <rguenther@suse.de>
12499
12500         PR tree-optimization/45578
12501         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12502         Be more careful when transfering alignment information to
12503         the new induction variable.
12504         (copy_ref_info): Likewise.
12505
12506 2010-09-08  Richard Guenther  <rguenther@suse.de>
12507
12508         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12509         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12510
12511 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12512
12513         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12514         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12515
12516 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12517
12518         PR doc/45587
12519         * doc/md.texi: Fixed modes on several standard pattern names.
12520
12521 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12522
12523         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12524         (ashl<mode>3): ...this.
12525         (loongson_psra<V_suffix>): Rename to...
12526         (ashr<mode>3): ...this.
12527         (loongson_psrl<V_suffix>): Rename to...
12528         (lshr<mode>3): ...this.
12529         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12530         (CODE_FOR_loongson_psllw): Define.
12531         (CODE_FOR_loongson_psrlh): Define.
12532         (CODE_FOR_loongson_psrlw): Define.
12533         (CODE_FOR_loongson_psrah): Define.
12534         (CODE_FOR_loongson_psraw): Define.
12535
12536 2010-09-07  Richard Henderson  <rth@redhat.com>
12537
12538         * tree-vect-data-refs.c: Include tm_p.h.
12539         * Makefile.in (tree-vect-data-refs.o): Update deps.
12540         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12541         Move delarations outside #ifdef RTX_CODE.
12542
12543 2010-09-07  Richard Henderson  <rth@redhat.com>
12544
12545         * final.c (rest_of_handle_final): Unconditionally do
12546         output_function_exception_table before assemble_end_function.
12547
12548 2010-09-07  Jan Hubicka  <jh@suse.cz>
12549
12550         * tree-inline.c (tree_inlinable_function_p): Do not test
12551         DECL_REPLACEABLE_P.
12552         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12553         update_callee_keys, cgraph_decide_inlining): Test function availability.
12554         * cif-code.def (OVERWRITABLE): New code.
12555
12556 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12557             Jack Howarth  <howarth@bromo.med.uc.edu>
12558
12559         PR target/36502
12560         PR target/42313
12561         PR target/44651
12562         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12563         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12564         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12565         MAX macro.
12566
12567 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12568
12569         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12570         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12571
12572 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12573
12574         * config.gcc: Don't append t-android for Android targets.
12575
12576         * config/t-android: Removed.
12577
12578 2010-09-07  Richard Henderson  <rth@redhat.com>
12579
12580         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12581         * doc/tm.texi.in: Add doc marker.
12582         * doc/tm.texi: Rebuild.
12583         * except.c (switch_to_exception_section): Always build.
12584         (output_one_function_exception_table): Move section switch,
12585         personality output, and label output ...
12586         (output_function_exception_table): ... here.  Use the new
12587         personality hook.
12588
12589         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12590         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12591         TARGET_ASM_INIT_SECTIONS): New.
12592         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12593         make static.
12594         (TARGET_ASM_UNWIND_EMIT): Update to match.
12595         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12596
12597         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12598         (arm_asm_init_sections): New.
12599         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12600
12601 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12602
12603         * config/arm/arm.md: Remove unused variable.
12604
12605 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12606
12607         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12608         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12609         (m32r_memory_move_cost): New function.
12610
12611 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12612
12613         * config.gcc: Append t-android for Android targets.
12614
12615         * config/t-android: New.
12616
12617 2010-09-07  Richard Henderson  <rth@redhat.com>
12618
12619         * target.def (unwind_emit_before_insn): New hook.
12620         * doc/tm.texi.in: Add @hook marker for it.
12621         * doc/tm.texi: Rebuild.
12622         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12623
12624 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12625
12626         PR fortran/43665
12627         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12628         are any type attributes.
12629
12630 2010-09-07  Jan Hubicka  <jh@suse.cz>
12631
12632         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12633         array_ref_low_bound in string access folding.
12634
12635 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12636
12637         PR target/45206
12638         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12639         eh_return fixup sequence.
12640
12641 2010-09-07  Jan Hubicka  <jh@suse.cz>
12642
12643         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12644         gimple_min_invariant.
12645
12646 2010-09-07  Richard Guenther  <rguenther@suse.de>
12647
12648         PR middle-end/45569
12649         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12650         nor CONSTRUCTOR can trap.
12651         * tree-complex.c (update_complex_assignment): Update EH info.
12652
12653 2010-09-07  Richard Guenther  <rguenther@suse.de>
12654
12655         PR middle-end/45569
12656         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12657         * passes.c (execute_function_todo): Do not verify anything if
12658         we saw errors.
12659
12660 2010-09-07  Richard Guenther  <rguenther@suse.de>
12661
12662         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12663
12664 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12665
12666         PR target/43137
12667         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12668         New define_mode_attrs.
12669         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12670         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12671         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12672         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12673         Remove pool_range attribute.
12674         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12675         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12676         pool_range and neg_pool_range attributes.
12677         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12678         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12679         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12680
12681 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12682
12683         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12684         check glibc.
12685
12686 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12687
12688         PR target/22152
12689         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12690         *mov<mode>_internal_avx, *mov<mode>_internal,
12691         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12692         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12693
12694 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12695
12696         * c-typeck.c (do_warn_double_promotion): Remove.
12697         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12698         Objective-C++ too.
12699
12700 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12701
12702         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12703         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12704         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12705         argument type to reg_class_t. Change result type to bool.
12706         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12707
12708 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12709
12710         PR libobjc/19850
12711         * gthr-posix.h (__gthread_objc_thread_detach): Use
12712         _objc_thread_attribs when detaching a thread.
12713         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12714
12715 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12716
12717         PR target/45524
12718         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12719         * configure: Regenerated.
12720
12721 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12722
12723         * combine.c (try_combine): Set subst_low_luid to i0.
12724
12725 2010-09-06  Richard Guenther  <rguenther@suse.de>
12726
12727         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12728         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12729         (build_aligned_type): Declare.
12730         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12731         (check_aligned_type): New function.
12732         (build_aligned_type): Likewise.
12733         * expr.c (expand_assignment): Handle misaligned stores via
12734         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12735         (expand_expr_real_1): Likewise.
12736         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12737         * tree-vect-stmts.c (vectorizable_store): Do not build
12738         MISALIGNED_INDIRECT_REF but initialize alignment information.
12739         (vectorizable_load): Likewise.
12740         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12741         handling.
12742         * cfgexpand.c (expand_debug_expr): Likewise.
12743         * dwarf2out.c (loc_list_from_tree): Likewise.
12744         * fold-const.c (maybe_lvalue_p): Likewise.
12745         (operand_equal_p): Likewise.
12746         (build_fold_addr_expr_with_type_loc): Likewise.
12747         * gimplify.c (gimplify_addr_expr): Likewise.
12748         (gimplify_expr): Likewise.
12749         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12750         (verify_gimple_assign_single): Likewise.
12751         * tree-dump.c (dequeue_and_dump): Likewise.
12752         (tree_could_trap_p): Likewise.
12753         * tree-predcom.c (ref_at_iteration): Likewise.
12754         * tree-pretty-print.c (dump_generic_node): Likewise.
12755         (op_code_prio): Likewise.
12756         (op_symbol_code): Likewise.
12757         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12758         * tree-ssa-loop-im.c (for_each_index): Likewise.
12759         (gen_lsm_tmp_name): Likewise.
12760         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12761         (find_interesting_uses_address): Likewise.
12762         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12763         * tree-ssa-operands.c (get_expr_operands): Likewise.
12764         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12765         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12766         (ao_ref_init_from_vn_reference): Likewise.
12767         * tree.c (staticp): Likewise.
12768         (build1_stat): Likewise.
12769         (reference_alias_ptr_type): Likewise.
12770         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12771         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12772         MISALIGNED_INDIRECT_REF handling.
12773
12774 2010-09-06  Richard Guenther  <rguenther@suse.de>
12775
12776         PR tree-optimization/45534
12777         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12778         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12779         on the target.
12780         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12781         valid on the target.
12782
12783 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12784
12785         * configure.ac: Quote argument of AC_MSG_WARN.
12786         * configure: Regenerate.
12787
12788 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12789
12790         * sel-sched.c (move_cond_jump): Correct arguments to
12791         maybe_tidy_empty_bb.
12792         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12793
12794 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12795
12796         PR rtl-optimization/44919
12797         * sel-sched.c (move_cond_jump): Remove assert, check that
12798         the several blocks case can only happen with mutually exclusive
12799         insns instead.  Rewrite the movement code to support moving through
12800         several basic blocks.
12801
12802 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12803
12804         * config/i386/i386.md (iptrsize): New mode attribute.
12805         (tp_seg): Ditto.
12806         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12807         mode iterator.
12808         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12809         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12810         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12811         (stack_tls_protect_set_<mode>): Ditto from
12812         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12813         of thread base pointer load.
12814         (stack_tls_protect_test_<mode>): Ditto from
12815         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12816         of thread base pointer load.
12817         (stack_protect_set): Rewrite using indirect functions.
12818         (stack_protect_test): Ditto.
12819         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12820         (ix86_print_operand): Handle '@'.
12821
12822 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12823
12824         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12825         MINUS_EXPR.
12826
12827 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12828
12829         * doc/invoke.texi: Document -Wdouble-promotion.
12830         * c-typeck.c (convert_arguments): Check for implicit conversions
12831         from float to double.
12832         (do_warn_double_promotion): New function.
12833         (build_conditional_expr): Use it.
12834         (build_binary_op): Likewise.
12835
12836 2010-09-05  Richard Guenther  <rguenther@suse.de>
12837
12838         PR tree-optimization/45535
12839         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12840         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12841         dereferencing it.
12842         (indirect_refs_may_alias_p): Likewise.
12843
12844 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12845
12846         * config/sh/sh.c (sh_option_override): Make static.
12847         Adjust comments.  Declare.
12848         (sh_function_value_regno_p): Likewise.
12849         (sh_register_move_cost): Modify the arguments, make static.
12850         Adjust comments.  Declare.
12851         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
12852         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12853         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
12854         REGISTER_MOVE_COST): Delete.
12855         * config/sh/sh-protos.h (sh_override_options): Delete.
12856         (sh_register_move_cost): Delete.
12857         (sh_function_value_regno_p): Delete.
12858
12859 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
12860
12861         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
12862         m32r_function_value_regno_p): New functions.
12863         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12864         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
12865         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
12866         FUNCTION_VALUE_REGNO_P): Remove.
12867
12868 2010-09-04  Jan Hubicka  <jh@suse.cz>
12869
12870         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
12871         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
12872         fold_read_from_constant_string.
12873
12874         * gimple.h (canonicalize_constructor_val): Declare.
12875         * gimple-fold.c (canonicalize_constructor_val): New function.
12876         (get_symbol_constant_value):Use it.
12877         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
12878
12879 2010-09-04  Jan Hubicka  <jh@suse.cz>
12880
12881         * tree-switch-conversion.c (build_one_array): Set constructor to be
12882         static.
12883         * varpool.c (varpool_finalize_decl): Compute const_value_known.
12884
12885 2010-09-04  Richard Guenther  <rguenther@suse.de>
12886
12887         PR bootstrap/45519
12888         * tree-flow.h (force_gimple_operand_1): Declare.
12889         (force_gimple_operand_gsi_1): Likewise.
12890         * gimplify.c (force_gimple_operand_1): New worker taking a
12891         gimple predicate for ...
12892         (force_gimple_operand): ... which now wraps it.
12893         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
12894         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
12895         last change.
12896         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
12897         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
12898         (create_mem_ref): Likewise.
12899
12900 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
12901
12902         * config/i386/predicates.md (sse_reg_operand): New predicate.
12903         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
12904         predicate for operand 1.
12905         (XFmode push splitter): Use fp_register_operand predicate
12906         for operand 1.
12907         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
12908         (SF-DF float_extend push splitter): Add reload_completed insn
12909         predicate.
12910         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
12911         MODEF mode macro.  Add reload_completed insn predicate.
12912
12913 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
12914
12915         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
12916         (struct df_extract_ref): Remove.
12917         (union df_ref_d): Remove extract_ref member.
12918         (df_ref_create): Remove last three arguments.
12919         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
12920         * df-scan.c (df_ref_record): Remove last three arguments, do not
12921         pass them to df_ref_create_structure.
12922         (df_uses_record): Remove first and last three arguments.  Replace
12923         first argument with DF_REF_REGULAR, adjust calls to remove the
12924         width, offset and mode.  Always call recursively on the second
12925         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
12926         (df_ref_create_structure): Remove first argument.
12927         (struct df_scan_problem_data): Remove ref_extract_pool.
12928         (df_scan_free_internal): Do not free it.
12929         (df_scan_alloc): Do not allocate it.
12930         (df_ref_create): Remove last three arguments, do not pass them to
12931         df_ref_create_structure.
12932         (df_free_ref): Remove DF_REF_EXTRACT case.
12933         (df_notes_rescan): Adjust call to df_uses_record.
12934         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
12935         Remove DF_REF_EXTRACT case.
12936         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
12937         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
12938         and SUBREG definitions.
12939         (df_get_conditional_uses): Remove references to width/offset/mode,
12940         adjust call to df_ref_create_structure.
12941         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
12942         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
12943         calls to df_uses_record and df_ref_record.
12944         * fwprop.c (update_df): Remove references to width/offset/mode,
12945         adjust call to df_ref_create.
12946
12947 2010-09-03  Jan Hubicka  <jh@suse.cz>
12948
12949         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
12950         (build_cdtor_fns): Update use of build_cdtor.
12951
12952 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
12953
12954         * doc/options.texi (SeparateAlias): Document.
12955         * opt-functions.awk (switch_flags): Handle SeparateAlias.
12956         * opth-gen.awk: Generate enumeration names for options marked
12957         SeparateAlias, but not for those marked Ignore.
12958         * opts-common.c (generate_canonical_option): Don't output separate
12959         argument for options marked CL_SEPARATE_ALIAS.
12960         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
12961         * opts.h (CL_SEPARATE_ALIAS): New.
12962         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
12963         CL_COMMON): Adjust definitions.
12964         * config/i386/darwin.opt, config/mips/sde.opt: New.
12965         * common.opt (fdump-final-insns): New.
12966         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
12967         i386/darwin.opt.
12968         (mips*-sde-elf*): Add mips/sde.opt.
12969         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
12970         -mno-data-in-code and -mcode-xonly here.
12971         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
12972         * gcc.c (option_map): Add "j" to --dump entry.
12973         (translate_options): Don't translate -d to -foutput-class-dir= here.
12974
12975 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
12976
12977         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
12978         DR_IS_WRITE.
12979         (compute_all_dependences): Same.
12980         (create_rdg_edge_for_ddr): Same.
12981         * tree-data-ref.h (DR_IS_WRITE): New.
12982         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
12983         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
12984         (write_memrefs_written_at_least_once): Same.
12985         * tree-predcom.c (suitable_component_p): Same.
12986         (determine_roots_comp): Same.
12987         (execute_load_motion): Same.
12988         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
12989         (vect_enhance_data_refs_alignment): Same.
12990         (vect_analyze_group_access): Same.
12991
12992 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
12993
12994         PR testsuite/42843
12995         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
12996         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
12997
12998 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
12999
13000         * dwarf2out.c (file scope): Remove #if0'd code.
13001         (gen_subprogram_die): Same.
13002
13003 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13004
13005         PR middle-end/45484
13006         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13007         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13008         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13009         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13010         * config/i386/i386.c (output_set_got): Call it.
13011
13012 2010-09-03  Michael Matz  <matz@suse.de>
13013
13014         PR middle-end/45415
13015         * tree-sra.c (sra_modify_assign): If we modify the statement,
13016         say so.
13017
13018         * tree-ssa.c (verify_ssa): Check number of operands and links
13019         per statement to agree.
13020
13021 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13022             Iain Sandoe  <iains@gcc.gnu.org>
13023
13024         PR target/45476
13025         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13026         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13027         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13028
13029 2010-09-03  Richard Guenther  <rguenther@suse.de>
13030
13031         * lto-streamer-out.c (output_function): Output function
13032         start and end loci.
13033         * lto-streamer-in.c (input_function): Input function start
13034         and end loci.
13035
13036 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13037
13038         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13039         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13040         * configure: Regenerate.
13041         * aclocal.m4: Regenerate.
13042
13043 2010-09-03  Jan Hubicka  <jh@suse.cz>
13044
13045         PR lto/44812
13046         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13047         on functions/variables in other partition.
13048
13049 2010-09-03  Jan Hubicka  <jh@suse.cz>
13050
13051         * cgraph.h (struct varpool_node): Add const_value_known.
13052         (varpool_decide_const_value_known): Declare.
13053         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13054         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13055         (input_varpool_node): Restore const_value_known.
13056         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13057         initializer folding.
13058         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13059         function_and_variable_visibility): Compute const_value_known.
13060         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13061         initializer folding.
13062         * varpool.c (varpool_decide_const_value_known): New function.
13063
13064 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13065
13066         * config/i386/i386.md: Remove empty preparation statements
13067         from splitters.
13068
13069 2010-09-03  Jan Hubicka  <jh@suse.cz>
13070
13071         * passes.c (rest_of_decl_compilation): Do not add local vars into
13072         varpool.
13073         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13074         static or extern vars are in varpool.
13075         (varpool_finalize_decl): Sanity check that only static vars are
13076         finalized.
13077
13078 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13079
13080         PR debug/45500
13081         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13082         not just generic vectors with BLKmode.
13083
13084 2010-09-03  Richard Guenther  <rguenther@suse.de>
13085
13086         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13087         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13088         * tree.h (TMR_SYMBOL): Remove.
13089         (TMR_BASE, TMR_OFFSET): Adjust.
13090         (TMR_INDEX2): New.
13091         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13092         * builtins.c (get_object_alignment): Merge TMR_BASE and
13093         TMR_SYMBOL handling.
13094         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13095         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13096         handling.  Also allow TARGET_MEM_REF as base address.
13097         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13098         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13099         base.  Gimplify TMR_INDEX2.
13100         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13101         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13102         (get_addr_base_and_unit_offset): Likewise.
13103         * tree-eh.c (tree_could_trap_p): Likewise.
13104         * tree-pretty-print.c (dump_generic_node): Likewise.
13105         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13106         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13107         base to index2.
13108         (get_address_description): Reconstruct addres description
13109         from merged TMR_BASE and TMR_INDEX2.
13110         (maybe_fold_tmr): Fold propagated addresses.
13111         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13112         MEM_REF and TARGET_MEM_REF paths.
13113         (indirect_refs_may_alias_p): Likewise.
13114         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13115         instead of TMR_SYMBOL.
13116         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13117         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13118         according to changes ...
13119         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13120         Split TARGET_MEM_REF into two fields plus the base.
13121         * tree.c (mem_ref_offset): Simplify.
13122         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13123         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13124         Strip NOPs when folding MEM_REF addresses.
13125         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13126         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13127         (fold_gimple_assign): ... not here.
13128
13129 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13130
13131         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13132         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13133         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13134
13135 2010-09-02  Richard Henderson  <rth@redhat.com>
13136
13137         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13138         instead of readelf in the test.
13139         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13140         in the .debug_frame section for coff targets.
13141         * configure: Rebuild.
13142
13143 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13144
13145         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13146         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13147         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13148         (m32c_class_likely_spilled_p): Make static. Change argument type to
13149         reg_class_t. Change result type to bool.
13150
13151 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13152
13153         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13154         to convert (double)(long) into a single FRIZ instruction or not
13155         when -ffast-math is used.
13156
13157         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13158         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13159         or FRIZ instruction if -ffast-math.
13160         * config/rs6000/rs6000.md (friz): Ditto.
13161
13162         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13163
13164 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13165
13166         * opth-gen.awk (quote, comma): Remove unused variables.
13167
13168 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13169
13170         * arm.c (arm_override_options): Correct fall-back code to use
13171         SUBTARGET_CPU_DEFAULT.
13172
13173 2010-09-02  Julian Brown  <julian@codesourcery.com>
13174
13175         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13176         unspecs.
13177         (vcond<mode>, vcondu<mode>): New expanders.
13178         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13179         comparisons with zero.
13180         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13181         * config/arm/constraints.md (Dz): New constraint.
13182
13183 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13184
13185         * target.def (class_likely_spilled_p): New hook.
13186         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13187         * doc/tm.texi: Regenerate.
13188         * targhooks.c (default_class_likely_spilled_p): New function.
13189         * targhooks.h (default_class_likely_spilled_p): Declare.
13190         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13191         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13192         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13193         Use fixed_reg_set instead of fixed_regs.
13194         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13195         * calls.c (avoid_likely_spilled_reg): Ditto.
13196         * ira-conflicts.c (ira_build_conflicts): Ditto.
13197         * ira.c (update_equiv_regs): Ditto.
13198         * mode-switching.c (create_pre_exit): Ditto.
13199         * regmove.c (find_matches): Ditto.
13200         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13201         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13202         (small_register_class_p): New inline function.
13203         (push_secondary_reload, find_reusable_reload, find_reloads): Use
13204         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
13205
13206         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
13207         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
13208         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13209
13210 2010-09-02  Richard Guenther  <rguenther@suse.de>
13211
13212         PR tree-optimization/44937
13213         PR tree-optimization/45412
13214         * ipa-split.c (split_function): Properly remove PHI nodes.
13215
13216 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13217
13218         * opts.h (struct cl_option): Add warn_message field.
13219         (struct cl_decoded_option): Add warn_message field.
13220         * doc/options.texi (Ignore, Warn): Document.
13221         * opt-functions.awk (needs_state_p): Don't consider aliases or
13222         ignored options to need state saved.
13223         * optc-gen.awk: Handle Warn and Ignore.
13224         * opth-gen.awk: Output OPT_SPECIAL_ignore.
13225         * opts-common.c (decode_cmdline_option): Set warn_message field.
13226         Handle ignored options.
13227         (decode_cmdline_options_to_array, generate_option,
13228         generate_option_input_file): Set warn_message field.
13229         (read_cmdline_option): Generate warnings from warn_message field.
13230         Handle ignored options.
13231         * common.opt (Wunreachable-code, fargument-alias,
13232         fargument-noalias, fargument-noalias-global,
13233         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
13234         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
13235         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
13236         ftree-salias): Mark Ignore.
13237         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
13238         -mintel-syntax and -mno-intel-syntax here.
13239         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
13240         using Warn.
13241         * opts.c (common_handle_option): Don't handle options marked as
13242         ignored.
13243         (enable_warning_as_error): Handle ignored options.
13244
13245 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13246
13247         PR driver/44076
13248         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
13249         alias_target fields.
13250         * opt-functions.awk (opt_sanitized_name): Don't handle
13251         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
13252         * optc-gen.awk: Generate alias fields.
13253         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
13254         Don't generate such constants for aliases.
13255         * opts-common.c (generate_canonical_option): New.
13256         (decode_cmdline_option): Handle aliases.  Use
13257         generate_canonical_option for known options instead of copying the
13258         input option text.
13259         * doc/options.texi (Alias): Document.
13260         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
13261         fstack-check, specs): Mark as aliases.
13262         * gcc.c (driver_handle_option): Canonicalize -L options to joined
13263         arguments.
13264         (driver_handle_option): Don't handle OPT_specs.
13265         * opts.c (common_handle_option): Don't handle options marked as
13266         aliases.
13267         (enable_warning_as_error): Handle aliases.
13268         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
13269         OPT_Wlarger_than_eq.
13270         * tree-optimize.c (tree_rest_of_compilation): Use
13271         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
13272
13273 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13274
13275         * config/i386/i386.md (nonmemory_operand): New mode attribute.
13276         (push memory peephole2): Macroize peepholes using SWI mode iterator.
13277         (move immediate to memory peephole2): Macroize peepholes using
13278         SWI124 mode iterator.
13279         (non-pairable NOT peephole2): Macroize peepholes using SWI124
13280         mode iterator.
13281         (simple lea add peephole2): Macroize peepholes using SWI48
13282         mode iterator.
13283         (simple lea mult peephole2): Ditto.
13284         (imul by 3,5,9 to lea peephole2): Ditto.
13285         (mov $-1, reg peephole2): Macroize peepholes using SWI248
13286         mode iterator.
13287         (imul $32bit_imm,mem,reg peephole2): Ditto.
13288         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
13289
13290 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
13291
13292         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
13293
13294 2010-09-02  Olivier Hainque  <hainque@adacore.com>
13295
13296         PR middle-end/44763
13297         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
13298         (allocno_priority_compare_func): Use it instead of a straight
13299         difference computation over priorities.
13300
13301 2010-09-02  Andi Kleen  <ak@linux.intel.com>
13302
13303         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
13304
13305 2010-09-02  Ira Rosen  <irar@il.ibm.com>
13306
13307         * tree-vectorizer.h (get_later_stmt): New function.
13308         (vect_analyze_data_ref_dependences): Add argument.
13309         * tree-vect-loop.c (vect_analyze_loop): Update call to
13310         vect_analyze_data_ref_dependences.
13311         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
13312         New function.
13313         (vect_analyze_data_ref_dependence): Add argument for basic block
13314         dependencies. Check dependencies in basic block vectorization.
13315         (vect_analyze_data_ref_dependences): Add argument and update call to
13316         vect_analyze_data_ref_dependences.
13317         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
13318         (vect_bb_vectorizable_with_dependencies): New.
13319         (vect_slp_analyze_bb): Check dependencies in basic block.
13320         (vect_schedule_slp_instance): Insert stores before the last store in
13321         SLP instance.
13322
13323 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13324
13325         PR target/45476
13326         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
13327         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13328
13329 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
13330
13331         PR middle-end/45458
13332         * bb-reorder.c (add_labels_and_missing_jumps): Treat
13333         bbs ending with throwing insns like blocks ending with a call.
13334         (fix_up_fall_thru_edges): Likewise.
13335
13336 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
13337
13338         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
13339         (m32c_function_arg_advance): Delete.
13340         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13341         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
13342         comments.  Take a const_tree and a bool.  Declare.
13343         (m32c_function_arg_advance): Likewise.
13344         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13345
13346 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13347
13348         PR target/45476
13349         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
13350         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
13351         * config/i386/mingw32.h: ... here.
13352
13353 2010-09-01  Andi Kleen  <ak@linux.intel.com>
13354
13355         PR lto/45475
13356         * lto-streamer-in.c (lto_input_ts_target_option): Add.
13357         (lto_input_tree_pointers): Call lto_input_ts_target_option.
13358         * lto-streamer-out (lto_output_ts_target_option): Add.
13359         (lto_output_tree_pointers): Call lto_output_ts_target_option.
13360
13361 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
13362
13363         PR/target 45452
13364         * config/i386/cygwin.h: Change order of specified import libraries.
13365         * config/i386/mingw32.h: Likewise.
13366         * config/i386/t-cygwin: Likewise.
13367         * config/i386/t-mingw32: Likewise.
13368         * config/i386/t-mingw-w32: Likewise.
13369         * config/i386/t-mingw-w64: Likewise.
13370
13371 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13372
13373         * config/arm/neon-schedgen.ml (core): New type.
13374         (allCores): List of supported cores.
13375         (availability_table): Add supported cores.
13376         (collate_bypasses): Accept core as a parameter.
13377         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13378         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13379         and coreStr to get tune attribute and prefix for functional units.
13380         (emit_bypasses): Accept core name and use it.
13381         (calculate_per_core_availability_table): New.
13382         (filter_core): New.
13383         (calculate_core_availability_table): New.
13384         (main): Use calculate_core_availablity_table.
13385         * config/arm/cortex-a8-neon.md: Update copyright year.
13386         Regenerated from ml file and merged in.
13387         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13388         cortex_a8_neon_mrc.
13389
13390 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13391
13392         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13393
13394 2010-09-01  Richard Guenther  <rguenther@suse.de>
13395
13396         * alias.c (ao_ref_from_mem): Adjust.
13397         * builtins.c (get_object_alignment): Likewise.
13398         * cfgexpand.c (expand_debug_expr): Likewise.
13399         * gimple.c (get_base_address): Likewise.
13400         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13401         (get_addr_base_and_unit_offset): Likewise.  Fix for
13402         both TMR_SYMBOL and TMR_BASE being set.
13403         * tree-eh.c (tree_could_trap_p): Likewise.
13404         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13405         TMR_SYMBOL.  Always gimplify TMR_BASE.
13406         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13407         TMR_BASE if there is a TMR_SYMBOL.
13408         * tree-pretty-print.c (dump_generic_node): Adjust.
13409         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13410         (tree_mem_ref_addr): Likewise.
13411         (create_mem_ref_raw): Likewise.
13412         (move_fixed_address_to_symbol): Likewise.
13413         (create_mem_ref): Likewise.
13414         (dump_mem_address): Likewise.
13415         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13416         Fix for both TMR_SYMBOL and TMR_BASE being set.
13417         (indirect_refs_may_alias_p): Likewise.
13418         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13419         * tree.def (TARGET_MEM_REF): Adjust documentation.
13420
13421 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13422
13423         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13424         Rename from X86_TUNE_ADD_ESP_4.
13425         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13426         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13427         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13428         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13429         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13430         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13431         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13432         * config/i386/i386.c (initial_ix86_tune_features)
13433         <X86_TUNE_SINGLE_POP>: Invert members.
13434         <X86_TUNE_DOUBLE_POP>: Ditto.
13435         <X86_TUNE_SINGLE_PUSH>: Ditto.
13436         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13437         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13438         No longer exported.
13439         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13440         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13441         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13442         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13443
13444 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13445
13446         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13447         a volatile LHS if the constructor has only one element.
13448
13449 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13450
13451         PR bootstrap/45321
13452         * tree.c (stdarg_p): Make fntype parameter const.
13453         * tree.h (stdarg_p): Likewise.
13454         (function_args_iterator): Remove unused fntype field.
13455         (function_args_iter_init): Do not initialize fntype
13456         field.  Make fntype parameter const.
13457
13458 2010-09-01  Richard Guenther  <rguenther@suse.de>
13459
13460         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13461         estimate.
13462         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13463         (execute_vrp): Compute number of iteration estimates.
13464         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13465         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13466         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13467         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13468         Infer loop bounds from undefined behavior based on a new parameter.
13469         (estimate_numbers_of_iterations): Likewise.
13470         (scev_probably_wraps_p): Adjust.
13471         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13472
13473 2010-09-01  Nick Clifton  <nickc@redhat.com>
13474
13475         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13476         where appropriate.
13477         (xstormy16_legitimate_address_p): Use true and false instead of 1
13478         and 0.
13479         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13480         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13481         magic constant 2.
13482         (xstormy16_expand_call): Fix comment at start of function.
13483
13484 2010-09-01  Nick Clifton  <nickc@redhat.com>
13485
13486         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13487         when pushing accumulator register.
13488         (rx_get_stack_layout): Always save call clobbered registers inside
13489         interrupt handlers.
13490         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13491
13492 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13493
13494         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13495         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13496
13497         * libgcc-std.ver (GCC_4.6.0): Define version.
13498
13499 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13500
13501         * tree-nested.c (convert_all_function_calls): Iterate until after the
13502         sum of static chains in the nest doesn't change.
13503
13504 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13505
13506         * config/m32c/m32c.c (classes_intersect): Remove.
13507         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13508         reg_classes_intersect_p instead of classes_intersect.
13509         (class_can_hold_mode): Change arguments type from enum reg_class to
13510         reg_class_t.  Use reg_class_contents instead of class_contents.
13511         (m32c_register_move_cost): Make static. Change arguments type from
13512         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13513         classes_intersect. Use reg_class_contents instead of class_contents.
13514         (m32c_memory_move_cost): Make static. Change arguments type from
13515         enum reg_class to reg_class_t.
13516         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13517         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13518         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13519         m32c_memory_move_cost): Remove.
13520
13521 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13522
13523         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13524         (arm_function_arg): Delete.
13525         (arm_needs_doubleword_align): Take a const_tree.
13526         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13527         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13528         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13529         (arm_function_arg): Make static.  Take a const_tree and a bool.
13530         (arm_function_arg_advance): Likewise.
13531         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13532
13533 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13534
13535         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13536         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13537         * lto-wrapper.c (run_gcc): Add jobserver mode.
13538         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13539         argument.
13540
13541 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13542
13543         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13544         (popsi1): Ditto.
13545         (*popdi1_epilogue): Ditto.
13546         (*popsi1_epilogue): Ditto.
13547         (popsi, popdi peephole2 patterns): Update peepholes for changed
13548         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13549
13550         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13551         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13552
13553         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13554         (override_options): Do not initialize removed ix86_gen_pop1.
13555         (gen_pop): New static function.
13556         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13557         (release_scratch_register_on_entry): Ditto.
13558         (ix86_restore_reg_using_pop): Ditto.
13559         (ix86_expand_epilogue): Ditto.
13560
13561 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13562
13563         PR middle-end/45461
13564         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13565
13566 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13567
13568         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13569         semicolons.
13570
13571 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13572
13573         * doc/extend.texi: Fix documentation of the return value of
13574         __builtin_choose_expr.
13575
13576 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13577
13578         * config/v850/v850-protos.h (function_arg): Delete.
13579         * config/v850/v850.h (FUNCTION_ARG): Delete.
13580         (FUNCTION_ARG_ADVANCE): Move code to...
13581         * config/v850/v850.c (v850_function_arg_advance): ...here.
13582         (v850_function_arg): Make static.  Take a const_tree and a bool.
13583         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13584
13585 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13586
13587         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13588         these...
13589         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13590         ...and these...
13591         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13592         ..to here..
13593         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13594         ...and here.
13595         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13596
13597 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13598
13599         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13600         Delete.
13601         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13602         * config/rx/rx.c (rx_function_arg_size): Make static.
13603         (rx_function_arg): Likewise.
13604         (rx_function_arg_advance): New function.
13605         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13606
13607 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13608
13609         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13610         Fix indentation.
13611
13612 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13613
13614         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13615         (dwarf2out_decl) <CONST_DECL>: Likewise.
13616
13617 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13618
13619         Stack usage support
13620         * common.opt (-fstack-usage): New option.
13621         * doc/invoke.texi (Debugging options): Document it.
13622         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13623         allocate_dynamic_stack_space.
13624         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13625         and propagate it to allocate_dynamic_stack_space.
13626         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13627         * calls.c (initialize_argument_information): Pass TRUE as 4th
13628         argument to allocate_dynamic_stack_space.
13629         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13630         to 1 when pushing a variable-sized argument onto the stack.  Pass
13631         TRUE as 4th argument to allocate_dynamic_stack_space.
13632         Update current_function_pushed_stack_size.
13633         (emit_library_call_value_1): Likewise.
13634         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13635         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13636         attempt to find an upper bound.  Remove redundant code for the
13637         SETJMP_VIA_SAVE_AREA case.
13638         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13639         * function.h (struct stack_usage): New structure.
13640         (current_function_static_stack_size): New macro.
13641         (current_function_dynamic_stack_size): Likewise.
13642         (current_function_pushed_stack_size): Likewise.
13643         (current_function_dynamic_alloc_count): Likewise.
13644         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13645         (current_function_allocates_dynamic_stack_space): Likewise.
13646         (struct function): Add new field 'su'.
13647         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13648         add the value of the dynamic offset to the dynamic stack usage.
13649         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13650         for variable-sized objects.
13651         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13652         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13653         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13654         BUILT_IN_ALLOCA for variable-sized objects.
13655         * output.h (output_stack_usage): Declare.
13656         * toplev.c (stack_usage_file): New file pointer.
13657         (output_stack_usage): New function.
13658         (open_auxiliary_file): Likewise.
13659         (lang_dependent_init): Open file if flag_stack_usage is set.
13660         (finalize): Close file if stack_usage_file is not null.
13661         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13662         * config/alpha/alpha.c (compute_frame_size): New function.
13663         (alpha_expand_prologue): Use it.
13664         (alpha_start_function): Likewise.
13665         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13666         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13667         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13668         * config/mips/mips.c (mips_expand_prologue): Likewise.
13669         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13670         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13671         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13672
13673 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13674
13675         PR tree-optimization/45427
13676         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13677         Handle the case that the exit is never taken correctly.
13678         (number_of_iterations_ne): Pass exit_must_be_taken to
13679         number_of_iterations_ne_max.
13680
13681 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13682
13683         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13684         Infer -mdspr2 for the the 74K.
13685
13686 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13687
13688         PR debug/45419
13689         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13690
13691         PR middle-end/45423
13692         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13693         and TRUTH_{AND,OR,XOR}_EXPR.
13694         * c-parser.c (c_parser_omp_atomic): Handle boolean
13695         {PRE,POST}_{INC,DEC}REMENT.
13696
13697 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13698
13699         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13700         (function_arg): Delete.
13701         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13702         (FUNCTION_INCOMING_ARG): Delete.
13703         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13704         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13705         and a bool.
13706         (function_arg): Rename to...
13707         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13708         a bool.
13709         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13710         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13711         (TARGET_FUNCTION_INCOMING_ARG): Define.
13712
13713 2010-08-30  Richard Guenther  <rguenther@suse.de>
13714
13715         PR tree-optimization/21602
13716         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13717         using points-to information.
13718
13719 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13720
13721         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13722
13723 2010-08-30  Richard Guenther  <rguenther@suse.de>
13724
13725         PR tree-optimization/45449
13726         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13727         variables.
13728
13729 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13730
13731         * opts.h (CL_ERR_NEGATIVE): Define.
13732         * opts.c (unknown_option_callback): Don't postpone warnings for
13733         options marked with CL_ERR_NEGATIVE.
13734         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13735         for negative versions of CL_REJECT_NEGATIVE options.
13736
13737 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13738
13739         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13740         zero_extendsidi2_32.
13741         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13742         using SWI12 mode iterator.
13743         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13744         to define_insn_and_split pattern.
13745         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13746         using SWI24 mode iterator.
13747         (*zero_extendqi<mode>2_and): Macroize insn from
13748         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13749         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13750         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13751         SWI24 mode iterator.
13752         (*zero_extendqi<mode>2_movzbl): Ditto from
13753         *zero_extendqi{hi,si}2_movzbl.
13754         (extendsidi2_1): Rename from extendsidi2_32.
13755         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13756         SWI12 mode iterator.
13757
13758 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13759
13760         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13761         general purpose registers.
13762         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13763         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13764         with general purpose registers and memory operands.  Add associated
13765         CCImode post-reload splitter.
13766         * config/ia64/div.md: Change BImode to CCImode throughout.
13767
13768 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13769
13770         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13771
13772 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13773
13774         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13775         function was dropping debug insns which caused PR45299.
13776
13777 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13778
13779         * config/i386/sse.md (extsuffix): New code attribute.
13780         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13781         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13782         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13783         and sse4_1_zero_extendv4qiv4si2.
13784         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13785         and sse4_1_zero_extendv2qiv2di2.
13786         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13787         and sse4_1_zero_extendv4hiv4si2.
13788         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13789         and sse4_1_zero_extendv2hiv2di2.
13790         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13791         and sse4_1_zero_extendv2siv2di2
13792
13793         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13794         using any_extend code iterator.
13795         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13796         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13797         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13798
13799         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13800         gen_sse4_1_sign_extend* functions.
13801         (struct builtin_description bdesc_args): Ditto.
13802
13803 2010-08-27  Xinliang David Li  <davidxl@google.com>
13804
13805         PR/45422
13806         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13807         (iv_ca_set_no_cp): Update used inv expr count.
13808         (iv_ca_set_cp): Ditto.
13809         (iv_ca_new): Initialize new member.
13810         (iv_ca_free): Free memory.
13811
13812 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13813
13814         * config/sh/sh-protos.h (sh_function_arg): Delete.
13815         (sh_function_arg_advance): Delete.
13816         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13817         (PASS_IN_REG_P): Eliminate cast.
13818         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13819         const_tree and a bool.
13820         (sh_function_arg): Likewise.
13821         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13822         sh_function_arg.
13823         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13824
13825 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13826             Kaz Kojima  <kkojima@gcc.gnu.org>
13827
13828         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13829         when possible.
13830         (sh_expand_epilogue): Likewise.
13831         * config/sh/sh.md (movml_push_banked): New insn.
13832         (movml_pop_banked): Likewise.
13833
13834 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13835
13836         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13837         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13838         in vector element 0 rather than the original string when there's
13839         only one element.
13840         (gen_regexp): Remove extra semicolon.
13841
13842         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13843         thumb2_movsf_vfp): Set attribute "insn".
13844         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13845         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13846         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13847         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13848         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13849         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
13850         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
13851         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
13852         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
13853         if_not_arith, if_arith_not, cond_move_not): Likewise.
13854
13855 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13856
13857         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
13858         New declaration.
13859         (rs6000_allocate_stack_temp): Ditto.
13860         (rs6000_expand_convert_si_to_sfdf): Ditto.
13861
13862         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
13863         line.  Update the options set if power6 or power7 server/embedded
13864         type options are used.  If we give a warning for no vsx under
13865         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
13866         (rs6000_allocate_stack_temp): New function to allocate a stack
13867         tempoary and adjust the address so it meets either REG+OFFSET or
13868         REG+REG addressing requirements.
13869         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
13870         that they can be used with the LFIWAX/LFIWZX instrucitons.
13871         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
13872         converting signed/unsigned SImode to either SFmode/DFmode.
13873
13874         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
13875         whether certain instructions can be generated.
13876         (TARGET_FCTIDZ): Ditto.
13877         (TARGET_STFIWX): Ditto.
13878         (TARGET_LFIWAX): Ditto.
13879         (TARGET_LFIWZX): Ditto.
13880         (TARGET_FCFIDS): Ditto.
13881         (TARGET_FCFIDU): Ditto.
13882         (TARGET_FCFIDUS): Ditto.
13883         (TARGET_FCTIDUZ): Ditto.
13884         (TARGET_FCTIWUZ): Ditto.
13885
13886         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
13887         (UNSPEC_FCTID): Ditto.
13888         (UNSPEC_LFIWAX): Ditto.
13889         (UNSPEC_LFIWZX): Ditto.
13890         (UNSPEC_FCTIWUZ): Ditto.
13891         (rreg): Use correct constraints.
13892         (SI_CONVERT_FP): New mode attribute for floating point conversion
13893         tests.
13894         (E500_CONVERT): Ditto.
13895         (lfiwax): New insns for converting from integer to floating point
13896         utilizing newer instructions.  Attempt to optimize conversions
13897         that come from memory so that we don't load the value into a GPR,
13898         spill it to the stack and reload it into a FPR.
13899         (floatsi<mode>2_lfiwax): Ditto.
13900         (floatsi<mode>2_lfiwax_mem): Ditto.
13901         (floatsi<mode>2_lfiwax_mem2): Ditto.
13902         (lfiwzx): Ditto.
13903         (floatunssi<mode>2_lfiwzx): Ditto.
13904         (floatunssi<mode>2_lfiwzx_mem): Ditto.
13905         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
13906         (floatdidf2_mem): Ditto.
13907         (floatunsdidf2_fcfidu): Ditto.
13908         (floatunsdidf2_mem): Ditto.
13909         (floatunsdisf2): Ditto.
13910         (floatunsdisf2_fcfidus): Ditto.
13911         (floatunsdisf2_mem): Ditto.
13912         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
13913         Use FCFID on 32-bit hosts that support it.
13914         (floatsidf2_internal): Ditto.
13915         (floatunssisf2): Ditto.
13916         (floatunssidf2): Ditto.
13917         (floatunssidf2_internal): Ditto.
13918         (floatsisf2): Ditto.
13919         (floatdidf2): Ditto.
13920         (floatdidf2_fpr): Ditto.
13921         (floatunsdidf2): Ditto.
13922         (floatdisf2): Ditto.
13923         (floatdisf2_fcfids): Ditto.
13924         (floatdisf2_internal1): Ditto.
13925         (fixuns_truncsfsi2): Delete, merge into common pattern for both
13926         SF/DF.  Add power7 support.
13927         (fix_truncsfsi2): Ditto.
13928         (fixuns_truncdfsi2): Ditto.
13929         (fixuns_truncdfdi2): Ditto.
13930         (fix_truncdfsi2): Ditto.
13931         (fix_truncdfsi2_internal): Ditto.
13932         (fix_truncdfsi2_internal_gfxopt): Ditto.
13933         (fix_truncdfsi2_mfpgpr): Ditto.
13934         (fctiwz): Ditto.
13935         (btruncdf2): Ditto.
13936         (btruncdf2_fpr): Ditto.
13937         (btructsf2): Ditto.
13938         (ceildf2): Ditto.
13939         (ceildf2_fpr): Ditto.
13940         (ceilsf2): Ditto.
13941         (floordf2): Ditto.
13942         (floordf2_fpr): Ditto.
13943         (floorsf2): Ditto.
13944         (rounddf2): Ditto.
13945         (rounddf2_fpr): Ditto.
13946         (roundsf2): Ditto.
13947         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
13948         (fix_trunc<mode>di2): Ditto.
13949         (fixuns_trunc<mode>si2): Ditto.
13950         (fixuns_trunc<mode>di2): Ditto.
13951         (fctiwz_<mode>): Ditto.
13952         (btrunc<mode>2): Ditto.
13953         (btrunc<mode>2_fpr): Ditto.
13954         (ceil<mode>2): Ditto.
13955         (ceil<mode>2_fpr): Ditto.
13956         (floor<mode>2): Ditto.
13957         (float<mode>2_fpr): Ditto.
13958         (round<mode>2): Ditto.
13959         (round<mode>2_fpr): Ditto.
13960         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
13961         (fixuns_trunc<mode>si2_stfiwx): Ditto.
13962         (fix_truncdfsi2_internal): Ditto.
13963         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
13964         converted value on stack, loaded into GPR, and then stored into
13965         the final destination.
13966         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
13967         FCTIDZ.
13968         (lrint<mode>di2): New insn, provide the lrint builtin functions.
13969         (ftruncdf2): Delete, unused.
13970         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
13971
13972         * config/rs6000/vsx.md (toplevel): Update copyright year.
13973         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
13974         (VSr3): Ditto.
13975
13976 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
13977             Jeremie Salvucci  <jeremie.salvucci@free.fr>
13978
13979         * gengtype.c (output_type_enum): Test the right union member.
13980
13981 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
13982
13983         PR target/41484
13984         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
13985         operands for operand 1.
13986         (sse4_1_extendv4qiv4si2): Ditto.
13987         (sse4_1_extendv2qiv2di2): Ditto.
13988         (sse4_1_extendv4hiv4si2): Ditto.
13989         (sse4_1_extendv2hiv2di2): Ditto.
13990         (sse4_1_extendv2siv2di2): Ditto.
13991         (sse4_1_zero_extendv8qiv8hi2): Ditto.
13992         (sse4_1_zero_extendv4qiv4si2): Ditto.
13993         (sse4_1_zero_extendv2qiv2di2): Ditto.
13994         (sse4_1_zero_extendv4hiv4si2): Ditto.
13995         (sse4_1_zero_extendv2hiv2di2): Ditto.
13996         (sse4_1_zero_extendv2siv2di2): Ditto.
13997         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
13998         (*sse4_1_extendv4qiv4si2): Ditto.
13999         (*sse4_1_extendv2qiv2di2): Ditto.
14000         (*sse4_1_extendv4hiv4si2): Ditto.
14001         (*sse4_1_extendv2hiv2di2): Ditto.
14002         (*sse4_1_extendv2siv2di2): Ditto.
14003         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14004         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14005         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14006         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14007         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14008         (*sse4_1_zero_extendv2siv2di2): Ditto.
14009
14010 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14011
14012         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14013         (mips_function_arg): Delete.
14014         (mips_function_arg_boundary): Take a const_tree.
14015         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14016         (mips_arg_info): Likewise.
14017         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14018         instead of FUNCTION_ARG_ADVANCE.
14019         (mips_function_arg_advance): Adjust prototype.  Make static.
14020         (mips_function_arg): Likewise.
14021         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14022         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14023
14024 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14025
14026         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14027         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14028         (function_arg): Delete.
14029         (function_arg_boundary): Take a const_tree.
14030         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14031         (rs6000_spe_function_arg): Likewise.
14032         (rs6000_parm_start): Likewise.
14033         (rs6000_arg_size): Likewise.
14034         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14035         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14036         (rs6000_mixed_function_arg): Likewise.
14037         (function_arg): Rename to...
14038         (rs6000_function_arg): ...this.
14039         (function_arg_advance): Rename to...
14040         (rs6000_function_arg_advance_1): ...this
14041         (rs6000_function_arg_advance): New function.  Call it.
14042         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14043         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14044         (rs6000_function_value): Likewise.
14045         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14046
14047 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14048
14049         * config/arm/arm.md (enabled): Test the value of arch_enabled
14050         rather than just using it.
14051
14052 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14053             Eric Botcazou  <ebotcazou@adacore.com>
14054
14055         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14056         cover all the possible offsets from this base.
14057         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14058
14059 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14060
14061         PR tree-optimization/44485
14062         * calls.c (flags_from_decl_or_type): For const or pure
14063         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14064         together with ECF_CONST resp. ECF_PURE.
14065         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14066         instead of querying flags directly.
14067         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14068         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14069
14070 2010-08-26  Richard Guenther  <rguenther@suse.de>
14071
14072         PR tree-optimization/45255
14073         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14074         and externals are also invariant.
14075
14076 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14077
14078         PR rtl-optimization/44858
14079         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14080         newi2pat, make sure they don't affect newpat.
14081
14082         PR rtl-optimization/45400
14083         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14084         SUBREG_REG if both modes are of MODE_INT class.
14085
14086 2010-08-25  Julian Brown  <julian@codesourcery.com>
14087
14088         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14089         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14090         (generic_vfp): Likewise.
14091         (cortex-a5.md): Include.
14092         * config/arm/cortex-a5.md: New.
14093
14094 2010-08-25  Richard Guenther  <rguenther@suse.de>
14095
14096         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14097         * gimple.c (gimple_get_alias_set): Remove special handling
14098         for pointers.
14099
14100 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14101
14102         PR middle-end/45355
14103         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14104         dead_or_set_p when computing i0_feeds_i2_n.
14105
14106         * combine.c (find_split_point): Undo canonicalization of multiply-add
14107         to (minus x (mult)) when it seems likely that this will increase the
14108         chances of a split.
14109
14110 2010-08-25  Richard Guenther  <rguenther@suse.de>
14111
14112         PR lto/44562
14113         * lto-streamer.c (lto_record_common_node): Do not mess with
14114         TYPE_CANONICAL when not in lto.
14115         * gimple.c (gimple_register_type): Likewise.
14116
14117 2010-08-25  Richard Guenther  <rguenther@suse.de>
14118
14119         PR tree-optimization/45316
14120         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14121
14122 2010-08-25  Richard Guenther  <rguenther@suse.de>
14123
14124         PR tree-optimization/45393
14125         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14126         and clean EH info.  Avoid SSA update.
14127         (execute_cse_sincos): Cleanup the CFG if it has changed.
14128
14129 2010-08-25  Richard Guenther  <rguenther@suse.de>
14130
14131         PR middle-end/45379
14132         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14133         TARGET_MEM_REF in alignment computation.
14134
14135 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14136
14137         PR tree-optimization/45059
14138         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14139         type conversions from newop{1,2}.  Assert t is a comparison and
14140         newop{1,2} after the stripping are gimple vals.
14141
14142 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14143
14144         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14145         (V_unpack, US): New.
14146         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14147         (vec_unpack<US>_lo_<mode>): Likewise.
14148         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14149         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14150         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14151         (vec_widen_<US>mult_hi_<mode>): Likewise.
14152         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14153         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14154         (neon_unpack<US>_<mode>): Widening move intermediate step for
14155         vectorizing without -mvectorize-with-neon-quad.
14156         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14157         for vectorizing without -mvectorize-with-neon-quad.
14158         * config/arm/predicates.md (vect_par_constant_high): Check for
14159         high-half lanes of a vector.
14160         (vect_par_constant_low): Check for low-half lanes of a vector.
14161
14162 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14163
14164         * tree-if-conv.c (struct ifc_dr): New.
14165         (IFC_DR): New.
14166         (DR_WRITTEN_AT_LEAST_ONCE): New.
14167         (DR_RW_UNCONDITIONALLY): New.
14168         (memref_read_or_written_unconditionally): Use the cached values
14169         when possible.
14170         (write_memref_written_at_least_once): Same.
14171         (if_convertible_loop_p): Initialize and free DR->aux fields.
14172
14173 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14174
14175         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14176         Pass an extra bool parameter include_mem.
14177         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14178         (gimple_assign_rhs_could_trap_p): Same.
14179         * gimple.h (gimple_could_trap_p_1): Declared.
14180         * tree-data-ref.h (same_data_refs_base_objects): New.
14181         (same_data_refs): New.
14182         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14183         (write_memrefs_written_at_least_once): New.
14184         (ifcvt_memrefs_wont_trap): New.
14185         (operations_could_trap): New.
14186         (ifcvt_could_trap_p): New.
14187         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14188         Gets a vector of data refs.
14189         (if_convertible_stmt_p): Same.
14190         (if_convertible_loop_p_1): New.
14191         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14192
14193 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14194
14195         * common.opt (ftree-loop-if-convert-stores): New flag.
14196         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14197         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14198         the created statement before GSI.
14199         (if_convertible_phi_p): Allow virtual phi nodes when
14200         flag_loop_if_convert_stores is set.
14201         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14202         Do not handle types that do not match is_gimple_reg_type.
14203         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
14204         when flag_loop_if_convert_stores is set, as LHS can contain
14205         memory refs.
14206         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
14207         to if_convertible_gimple_assign_stmt_p.
14208         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
14209         (replace_phi_with_cond_gimple_assign_stmt): Renamed
14210         predicate_scalar_phi.  Do not handle virtual phi nodes.
14211         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
14212         Call predicate_scalar_phi.
14213         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
14214         just after the labels for flag_loop_if_convert_stores, otherwise
14215         insert the predicate in the end of the BB.
14216         (predicate_mem_writes): New.
14217         (combine_blocks): Call predicate_all_scalar_phis.  When
14218         flag_loop_if_convert_stores is set, call predicate_mem_writes.
14219         (tree_if_conversion): Call mark_sym_for_renaming when
14220         flag_loop_if_convert_stores is set.
14221         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
14222         flag_loop_if_convert_stores is set.
14223
14224 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
14225
14226         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
14227         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
14228         (pa_function_value): Make static.
14229         (override_options): Rename to...
14230         (pa_option_override): ...this. Make static.
14231         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
14232         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
14233         TARGET_OPTION_OVERRIDE): Define.
14234         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
14235         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
14236         Remove.
14237         * config/pa/pa-protos.h (override_options): Remove.
14238
14239 2010-08-24  Richard Guenther  <rguenther@suse.de>
14240
14241         PR middle-end/45379
14242         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
14243         if addr->index is NULL or zero.
14244         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
14245         TARGET_MEM_REF more properly.
14246         (indirect_ref_may_alias_decl_p): Likewise.
14247         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
14248         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
14249
14250 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
14251
14252         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
14253         (m32c_override_options): Rename to...
14254         (m32c_option_override): ...this. Make static.
14255         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
14256         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
14257         Remove.
14258         * config/m32c/m32c-protos.h (m32c_override_options,
14259         m32c_function_value_regno_p): Remove.
14260
14261 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14262
14263         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
14264         Fix a typo in a previous commit.
14265
14266 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
14267
14268         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
14269         Pre-initialize innerloop_iters to one.
14270
14271 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14272
14273         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
14274         existing static function global.
14275
14276         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
14277         is changed to global.
14278
14279         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
14280         may_be_nonaddressable_p on base, and don't collect this reference
14281         if the address of the base could not be taken.
14282
14283 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14284
14285         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
14286         enable the compiler to autovectorize mathmetical functions for
14287         power7 using the Mathematical Acceleration Subsystem library.
14288
14289         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
14290         handle which vector math library we have.
14291         (rs6000_override_options): Add -mveclibabi=mass support.
14292         (rs6000_builtin_vectorized_libmass): New function to handle auto
14293         vectorizing math functions that are in the MASS library.
14294         (rs6000_builtin_vectorized_function): Call it.
14295
14296         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14297         -mveclibabi=mass.
14298
14299 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14300
14301         PR boehm-gc/34544
14302         * gthr-posix.h (__gthread_active_init): Delete.
14303         (__gthread_active_p): Do activity check here.
14304         Don't include errno.h on hppa-hpux.  Update comment.
14305         * gthr-posix95.h (__gthread_active_init): Delete.
14306         (__gthread_active_p): Do activity check here.
14307         Don't include errno.h on hppa-hpux.  Update comment.
14308         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
14309         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
14310         add -lpthread when -mt or -pthread is specified.
14311         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
14312         (LINK_GCC_C_SEQUENCE_SPEC): Define.
14313         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
14314         (stublib.c, pthread_default_stacksize_np-stub.o,
14315         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
14316         $(T)libgcc_stub.a): Add methods.
14317         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
14318         (stublib.c, pthread_default_stacksize_np-stub.o,
14319         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
14320         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14321         pthread_mutex_unlock): New stubs.
14322
14323 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
14324
14325         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
14326         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
14327         options.
14328         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
14329         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
14330         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
14331         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
14332         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
14333         "-l".
14334         * cppspec.c: Include opts.h.
14335         (lang_specific_driver): Use cl_decoded_option structures.
14336         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
14337         * doc/tm.texi: Regenerate.
14338         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
14339         (driver_handle_option): Allow driver options needing no special
14340         processing.
14341         (process_command): Decode options before call to
14342         lang_specific_driver.  Pass decoded options to
14343         lang_specific_driver.
14344         * gcc.h (lang_specific_driver): Update prototype.
14345         * gccspec.c: Include opts.h.
14346         (lang_specific_driver): Use cl_decoded_option structures.
14347         * opts-common.c (option_ok_for_language, generate_option,
14348         generate_option_input_file): New.
14349         (decode_cmdline_option): Use option_ok_for_language.
14350         (decode_cmdline_options_to_array): Use generate_option_input_file.
14351         (handle_generated_option): Use generate_option.
14352         * opts.h (generate_option, generate_option_input_file): Declare.
14353
14354 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
14355
14356         * config/mips/mips.c (mips_override_options): Rename to...
14357         (mips_option_override): ...this. Make static.
14358         (TARGET_OPTION_OVERRIDE): Define.
14359         (mips_in_small_data_p): Update comment.
14360         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
14361         (FIXED_REGISTERS): Update comment.
14362         * config/mips/mips-protos.h (mips_override_options): Remove.
14363
14364 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14365
14366         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
14367
14368 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14369
14370         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14371         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14372
14373 2010-08-20  Jan Hubicka  <jh@suse.cz>
14374
14375         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14376         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14377         heap allocated.
14378         (record_cdtor_fn): Move to ipa.c; do not test for
14379         have_ctors_dtors.
14380         (build_cdtor): Move to ipa.c; add code avoiding construction
14381         when target have ctors/dtors and there is only one ctor/dtor at given
14382         priority.
14383         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14384         sort; reverse order of constructors.
14385         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14386         (cgraph_finalize_function): Do not call record_cdtor_fn.
14387         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14388         (cgraph_build_static_cdtor): Move to ipa.c.
14389         * ipa.c: Include target.h and tree-iterator.h.
14390         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14391         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14392         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14393         pass_ipa_cdtor_merge): New.
14394         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14395         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14396         bounds access.
14397
14398 2010-08-20  Jan Hubicka  <jh@suse.cz>
14399
14400         PR c++/45307
14401         PR c++/17736
14402         * cgraph.h (cgraph_only_called_directly_p,
14403         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14404         static cdtors.
14405         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14406         are not needed.
14407         (cgraph_finalize_function): Static cdtors are reachable.
14408         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14409
14410 2010-08-20  Jan Hubicka  <jh@suse.cz>
14411
14412         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14413         flag_wpa.
14414         * lto-streamer-out.c (lto_output): Likewise.
14415         * passes.c (ipa_write_optimization_summaries): Initialize statement
14416         uids.
14417
14418 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14419
14420         * tree.h (alias_diag_flags): New enum.
14421         (alias_pair): Add an 'emitted_diags' field.
14422         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14423         (assemble_alias): Initialize emitted_diags of new pairs.
14424
14425 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14426
14427         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14428         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14429         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14430         (STACK_CHECK_PROTECT): Define.
14431         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14432         (output_probe_stack_range): Likewise.
14433         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14434         builtin stack checking is enabled.
14435         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14436         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14437         (probe_stack_range): New insn.
14438
14439 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14440
14441         PR target/45336
14442         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14443         short first.
14444
14445         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14446         char first.
14447
14448 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14449
14450         PR target/45336
14451         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14452         to cover zero extension into 64-bit register.
14453         (*sse2_pextrw): Likewise.
14454         (*sse4_1_pextrd_zext): New insn.
14455
14456 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14457
14458         revert r163410, partially revert r163267.
14459         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14460         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14461         Darwin versions.
14462
14463 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14464
14465         PR middle-end/44974
14466         * builtins.c (expand_builtin): Don't optimize away
14467         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14468
14469 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14470
14471         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14472         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14473         alternative 1 of operand 2.
14474
14475 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14476             Paolo Bonzini  <bonzini@gnu.org>
14477
14478         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14479         (sign_extend (zero_extend (...)) and
14480         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14481
14482 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14483
14484         PR rtl-optimization/45353
14485         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14486         after bb_note is a BARRIER.
14487
14488 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14489
14490         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14491         linking libgcc.a.
14492
14493 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14494             Michael Matz  <matz@suse.de>
14495
14496         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14497
14498 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14499
14500         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14501         (ggc_mark_roots): ...here.
14502
14503 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14504
14505         * vec.h (FOR_EACH_VEC_ELT): Define.
14506         * c-decl.c: Use it.
14507         * cfgloop.c: Likewise.
14508         * cfgloopmanip.c: Likewise.
14509         * cgraph.c: Likewise.
14510         * cgraphunit.c: Likewise.
14511         * combine.c: Likewise.
14512         * config/bfin/bfin.c: Likewise.
14513         * config/mips/mips.c: Likewise.
14514         * config/rs6000/rs6000.c: Likewise.
14515         * dbxout.c: Likewise.
14516         * df-scan.c: Likewise.
14517         * dominance.c: Likewise.
14518         * dse.c: Likewise.
14519         * dwarf2out.c: Likewise.
14520         * except.c: Likewise.
14521         * expr.c: Likewise.
14522         * function.c: Likewise.
14523         * gcse.c: Likewise.
14524         * genattr.c: Likewise.
14525         * ggc-common.c: Likewise.
14526         * gimplify.c: Likewise.
14527         * graphite-blocking.c: Likewise.
14528         * graphite-clast-to-gimple.c: Likewise.
14529         * graphite-dependences.c: Likewise.
14530         * graphite-interchange.c: Likewise.
14531         * graphite-poly.c: Likewise.
14532         * graphite-scop-detection.c: Likewise.
14533         * graphite-sese-to-poly.c: Likewise.
14534         * graphite.c: Likewise.
14535         * haifa-sched.c: Likewise.
14536         * ifcvt.c: Likewise.
14537         * implicit-zee.c: Likewise.
14538         * ipa-prop.c: Likewise.
14539         * ipa-struct-reorg.c: Likewise.
14540         * ipa.c: Likewise.
14541         * ira-build.c: Likewise.
14542         * ira-color.c: Likewise.
14543         * ira-emit.c: Likewise.
14544         * lambda-code.c: Likewise.
14545         * loop-invariant.c: Likewise.
14546         * loop-unroll.c: Likewise.
14547         * lower-subreg.c: Likewise.
14548         * lto-cgraph.c: Likewise.
14549         * lto-opts.c: Likewise.
14550         * lto-streamer-in.c: Likewise.
14551         * lto-streamer-out.c: Likewise.
14552         * lto-streamer.c: Likewise.
14553         * lto-symtab.c: Likewise.
14554         * matrix-reorg.c: Likewise.
14555         * opts.c: Likewise.
14556         * predict.c: Likewise.
14557         * print-tree.c: Likewise.
14558         * sdbout.c: Likewise.
14559         * sel-sched-dump.c: Likewise.
14560         * sel-sched-ir.c: Likewise.
14561         * sel-sched.c: Likewise.
14562         * sese.c: Likewise.
14563         * stor-layout.c: Likewise.
14564         * tree-cfg.c: Likewise.
14565         * tree-cfgcleanup.c: Likewise.
14566         * tree-chrec.c: Likewise.
14567         * tree-data-ref.c: Likewise.
14568         * tree-emutls.c: Likewise.
14569         * tree-inline.c: Likewise.
14570         * tree-into-ssa.c: Likewise.
14571         * tree-loop-distribution.c: Likewise.
14572         * tree-loop-linear.c: Likewise.
14573         * tree-mudflap.c: Likewise.
14574         * tree-outof-ssa.c: Likewise.
14575         * tree-parloops.c: Likewise.
14576         * tree-predcom.c: Likewise.
14577         * tree-pretty-print.c: Likewise.
14578         * tree-scalar-evolution.c: Likewise.
14579         * tree-ssa-live.c: Likewise.
14580         * tree-ssa-loop-im.c: Likewise.
14581         * tree-ssa-loop-ivcanon.c: Likewise.
14582         * tree-ssa-loop-ivopts.c: Likewise.
14583         * tree-ssa-loop-manip.c: Likewise.
14584         * tree-ssa-loop-niter.c: Likewise.
14585         * tree-ssa-loop-prefetch.c: Likewise.
14586         * tree-ssa-phiprop.c: Likewise.
14587         * tree-ssa-pre.c: Likewise.
14588         * tree-ssa-reassoc.c: Likewise.
14589         * tree-ssa-sccvn.c: Likewise.
14590         * tree-ssa-structalias.c: Likewise.
14591         * tree-ssa.c: Likewise.
14592         * tree-vect-data-refs.c: Likewise.
14593         * tree-vect-loop-manip.c: Likewise.
14594         * tree-vect-loop.c: Likewise.
14595         * tree-vect-patterns.c: Likewise.
14596         * tree-vect-slp.c: Likewise.
14597         * tree-vect-stmts.c: Likewise.
14598         * tree-vrp.c: Likewise.
14599         * tree.c: Likewise.
14600         * value-prof.c: Likewise.
14601         * var-tracking.c: Likewise.
14602         * varasm.c: Likewise.
14603         * vmsdbgout.c: Likewise.
14604
14605 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14606             Richard Guenther  <richard.guenther@gmail.com>
14607
14608         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14609         copy the src value and return a copy.
14610         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14611         (C++ Volatiles): Adjust to describe C++ semantics only.
14612
14613 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14614
14615         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14616         be zero or nonzero.
14617         * doc/tm.texi: Regenerate.
14618         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14619         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14620         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14621         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14622         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14623         to 1.
14624
14625 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14626
14627         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14628         an extra nop past a sibling call at the very end.
14629
14630 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14631
14632         PR bootstrap/45350
14633         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14634         a comment.
14635
14636 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14637
14638         * target.def (function_arg, function_incoming_arg): Remove const
14639         qualifier on CUMULATIVE_ARGS parameter.
14640         * targhooks.h (default_function_arg, default_function_incoming_arg):
14641         Likewise.
14642         * targhooks.c (default_function_arg, default_function_incoming_arg):
14643         Likewise.
14644         * config/i386/i386.c (ix86_function_arg): Likewise.
14645
14646 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14647
14648         PR target/45336
14649         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14650         SIGN_EXTENDs or ZERO_EXTENDs.
14651
14652 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14653
14654         PR target/42172
14655         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14656         Take its cost into account if nonnull.
14657         (insn_a_feeds_b): New static function.
14658         (combine_instructions): Look for four-insn combinations.
14659         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14660         them into account when computing all_adjacent and looking for other
14661         uses.
14662         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14663         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14664         (try_combine): New arg I0.  Handle four-insn combinations.
14665         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14666         like ELIM_I1.
14667
14668 2010-08-19  Jason Merrill  <jason@redhat.com>
14669
14670         PR c++/45307
14671         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14672         if ctor is empty.
14673         (gimplify_modify_expr_rhs): Adjust.
14674
14675 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14676
14677         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14678         bitmap_bit_p.
14679         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14680         * dominance.c (iterate_fix_dominators): Likewise.
14681         * dse.c (set_usage_bits): Likewise.
14682         (set_position_unneeded, record_store): Likewise.
14683         * gimple-fold.c (get_maxval_strlen): Likewise.
14684         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14685         * ipa-inline.c (update_caller_keys): Likewise.
14686         * ipa-split.c (verify_non_ssa_vars): Likewise.
14687         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14688         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14689         (close_addressof_down): Likewise.
14690         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14691         (setup_allocno_left_conflicts_size): Likewise.
14692         (ira_reassign_conflict_allocnos): Likewise.
14693         (ira_reassign_pseudos): Likewise.
14694         * ira-emit.c (change_loop): Likewise.
14695         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14696         * lto-streamer-out.c (write_symbol): Likewise.
14697         * predict.c (expr_expected_value_1): Likewise.
14698         * regstat.c (regstat_bb_compute_ri): Likewise.
14699         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14700         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14701         * stmt.c (expand_case): Likewise.
14702         * tree-eh.c (emit_eh_dispatch): Likewise.
14703         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14704         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14705         Likewise.
14706         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14707         (rdg_build_components): Likewise.
14708         * tree-object-size.c (collect_object_sizes_for): Likewise.
14709         * tree-sra.c (convert_callers): Likewise.
14710         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14711         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14712         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14713
14714 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14715
14716         * config/i386/i386.md (*lea_1): Use P mode iterator.
14717         (lea add splitter): Also handle DImode operands.
14718         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14719         predicate.  Do not use ix86_lea_for_add_ok.
14720         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14721         (lea ashift splitter): Also handle DImode operands.
14722         (DImode lea ashift splitter): Remove splitter.
14723
14724 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14725
14726         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14727         ix86_binary_operator_ok.
14728
14729 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14730
14731         PR rtl-optimization/44691
14732         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14733         is not a register.
14734
14735 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14736
14737         PR target/45070
14738         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14739          value of size 1-3 is handled correctly.
14740
14741 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14742
14743         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14744         type for the conditional has wide enough range.
14745
14746 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14747
14748         PR target/45327
14749         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14750         ix86_binary_operator_ok.
14751
14752 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14753
14754         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14755         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14756         code to output insn mnemonic.  Fix comment.
14757         (*addsi_1_zext): Add r-r-0 alternative 1.
14758         <TYPE_LEA>: Split insn to lea.
14759         <default>: Handle alternative 1.
14760         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14761         multi-level if_then_else RTX to set "type" attribute.
14762         <default>: Handle alternative 2.
14763         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14764         Use cond RTX instead of multi-level if_then_else RTX to set
14765         "type" attribute.
14766         <default>: Handle alternatives 2 and 4.
14767         (lea splitters): Update calls to ix86_lea_for_add_ok.
14768
14769         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14770         argument.
14771         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14772
14773 2010-08-18  Richard Guenther  <rguenther@suse.de>
14774
14775         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14776         use operand helpers.
14777
14778 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14779
14780         PR middle-end/45292
14781         * optabs.c (expand_bool_compare_and_swap): Expand pending
14782         pops before trying the optab.
14783
14784 2010-08-18  Yao Qi  <yao@codesourcery.com>
14785
14786         PR target/45094
14787         * config/arm/arm.c (output_move_double): Fix typo generating
14788         instructions ('ldr'->'str').
14789
14790 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14791
14792         PR rtl-optimization/42575
14793         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14794         live ranges.
14795
14796 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14797
14798         * config/arm/arm-protos.h (arm_expand_sync): New.
14799         (arm_output_memory_barrier, arm_output_sync_insn): New.
14800         (arm_sync_loop_insns): New.
14801         * config/arm/arm.c (FL_ARCH7): New.
14802         (FL_FOR_ARCH7): Include FL_ARCH7.
14803         (arm_arch7): New.
14804         (arm_print_operand): Support %C markup.
14805         (arm_legitimize_sync_memory): New.
14806         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14807         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14808         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14809         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14810         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14811         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14812         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14813         * config/arm/arm.h (struct arm_sync_generator): New.
14814         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14815         (TARGET_HAVE_MEMORY_BARRIER): New.
14816         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14817         * config/arm/arm.md: Include sync.md.
14818         (UNSPEC_MEMORY_BARRIER): New.
14819         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14820         (VUNSPEC_SYNC_OP):New.
14821         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14822         (sync_result, sync_memory, sync_required_value): New attributes.
14823         (sync_new_value, sync_t1, sync_t2): Likewise.
14824         (sync_release_barrier, sync_op): Likewise.
14825         (length): Add logic to length attribute defintion to call
14826         arm_sync_loop_insns when appropriate.
14827         * config/arm/sync.md: New file.
14828
14829 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14830
14831         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14832         ENABLE_TREE_CHECKING.
14833         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14834         and GCC >= 4.3.
14835
14836 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14837
14838         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14839         or optimizing for size, always avoid lea if possible.
14840
14841         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14842
14843 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14844
14845         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14846         Dunmmy function with NULL return unless the target is
14847         OSX >= 10.6 (Darwin10).
14848
14849 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
14850
14851         * gcc.c (spec_function): Add remove-outfile.
14852         (remove_outfile_spec_function): New function.
14853         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
14854         * invoke.texi (replace-outfile): Document.
14855
14856 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
14857
14858         PR target/45296
14859         * reginfo.c (globalize_reg): Reject stack registers.
14860
14861 2010-08-17  Richard Guenther  <rguenther@suse.de>
14862
14863         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
14864         list of conditional equivalences.
14865         (free_all_edge_infos): Adjust.
14866         (record_equivalences_from_incoming_edge): Likewise.
14867         (record_cond): Likewise.
14868         (build_and_record_new_cond): Likewise.
14869         (record_conditions): Likewise.
14870         (dom_opt_leave_block): Likewise.
14871
14872 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
14873
14874         * doc/invoke.texi (ms-extension): Add documentation.
14875
14876 2010-08-17  Richard Guenther  <rguenther@suse.de>
14877
14878         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
14879
14880 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
14881
14882         PR c/40563
14883         * c-decl.c (diagnose_uninitialized_cst_member): New function.
14884         (finish_decl): Use it to issue a -Wc++-compat warning about
14885         uninitialized const field in struct or union.
14886
14887         (finish_struct): Use strip_array_types.
14888
14889 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14890
14891         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
14892         functions.
14893         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
14894         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
14895         call block_nreverse here.
14896         (blocks_nreverse): Rename decl temporary to block.
14897
14898 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
14899
14900         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
14901         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
14902         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
14903         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
14904         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
14905         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
14906         thumb2_iorsi3): Delete.
14907         (orsi_notsi_si): No longer a named pattern.
14908         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
14909         * config/arm/predicates.md (shift_amount_operand): New.
14910         (mult_operator): New.
14911         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
14912         attr enabled): New.
14913         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
14914         arch matches t2.
14915         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
14916         (not_shiftsi_compare0): Likewise, renamed from
14917         arm_notsi_shiftsi_compare0.
14918         (not_shiftsi_compare0_scratch): Likweise, renamed from
14919         arm_notsi_shiftsi_compare0_scratch.
14920         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
14921         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
14922         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
14923         so that the register alternative is disabled when the shift_operator
14924         is MULT.  Use "M" as the constraint for constants.
14925         (arith_shiftsi splitter): Enable for TARGET_32BIT.
14926         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
14927         constraint for constants.
14928         (arith_shiftsi_compare0_scratch): Likewise.
14929         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
14930         Handle Thumb2 alternative.
14931
14932 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14933
14934         * doc/options.texi (NoDriverArg): Document.
14935         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
14936         -MDX and -MMDX.
14937         * opt-functions.awk (switch_flags): Handle NoDriverArg.
14938         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
14939         marking for CL_NO_DRIVER_ARG options when in the driver.
14940         * opts.h (CL_NO_DRIVER_ARG): Define.
14941         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
14942         CL_COMMON): Update values.
14943
14944 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14945
14946         * common.opt: Add driver options.
14947         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
14948         * doc/options.texi (Driver, RejectDriver): Document.
14949         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
14950         print_prog_name, print_multi_directory, print_sysroot,
14951         print_multi_os_directory, print_multi_lib,
14952         print_sysroot_headers_suffix, report_times, combine_flag,
14953         use_pipes, wrapper_string): Remove.
14954         (save_switch, driver_unknown_option_callback,
14955         driver_wrong_lang_callback, driver_post_handling_callback,
14956         driver_handle_option): New.
14957         (spec_lang, last_language_n_infiles): Make file-scope static
14958         instead of local to process_command.
14959         (process_command): Use decode_cmdline_options_to_array and
14960         read_cmdline_option for option processing.  Compute have_c in
14961         prescan of decoded options.
14962         * opt-functions.awk (switch_flags): Handle Driver and
14963         RejectDriver.
14964         (var_type, var_type_struct): Handle Separate options as generating
14965         const char * variables.
14966         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
14967         CL_TARGET to be passed by caller if required.
14968         (decode_cmdline_options_to_array): Update comment.
14969         * opts.c (complain_wrong_lang): Handle options only valid for the
14970         driver.
14971         (decode_options): Update call to decode_cmdline_options_to_array.
14972         (print_filtered_help): Ignore driver-only options.
14973         (print_specific_help): Ignore CL_DRIVER.
14974         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
14975         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
14976         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
14977         Update values.
14978
14979 2010-08-16  Richard Guenther  <rguenther@suse.de>
14980
14981         * tree-cfg.c (verify_types_in_gimple_reference): Verify
14982         TARGET_MEM_REF a bit.
14983         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
14984         (create_mem_ref_raw): Always create TMR_OFFSET, store the
14985         alias pointer type via it.
14986         (copy_mem_ref_info): Adjust.
14987         (maybe_fold_tmr): Likewise.
14988         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
14989         (reference_alias_ptr_type): Likewise.
14990         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
14991         adjust documentation of TMR_OFFSET operand.
14992         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
14993         use the alias pointer type.
14994         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
14995         initialize mem attrs but the TMR itself.
14996         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
14997         similar to MEM_REF.
14998         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
14999         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15000         (unshare_and_remove_ssa_names): Likewise.
15001         (copy_ref_info): Adjust.
15002         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15003         TARGET_MEM_REF case.
15004         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15005         at TMR_ORIGINAL.
15006         * tree.h (TMR_ORIGINAL): Remove.
15007         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15008         symbol return that.
15009         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15010         with a symbol.
15011         (get_addr_base_and_unit_offset): Likewise.
15012         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15013         TARGET_MEM_REFs.
15014         (indirect_ref_may_alias_decl_p): Likewise.
15015         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15016
15017 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15018
15019         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15020         with GCC version 4.6, the default setting (when not optimizing
15021         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15022         been changed to -fomit-frame-pointer.
15023
15024 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15025
15026         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15027         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15028
15029 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15030
15031         * doc/invoke.texi (Warning Options): Fix terminology and markup
15032         in the description of how unknown warning options are handled.
15033
15034 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15035
15036         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15037         in basic blocks.
15038         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15039         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15040         data references.
15041         (vect_bb_vectorization_profitable_p): New function.
15042         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15043         check if it's worthwhile to vectorize the basic block.
15044
15045 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15046
15047         * reload.h (register_move_cost, memory_move_secondary_cost,
15048         secondary_reload_class): Adjust prototype.
15049         * rtl.h (reg_class_subset_p): Adjust prototype.
15050         * reload.c (secondary_reload_class): Change arguments type from
15051         enum reg_class to reg_class_t. Change result type to reg_class_t.
15052         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15053         arguments type from enum reg_class to reg_class_t.
15054         (memory_move_secondary_cost): Change arguments type from
15055         enum reg_class to reg_class_t. Change type of saved_flags to
15056         reg_class_t.
15057
15058         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15059         Remove macros.
15060         (mips_cost): Remove.
15061         (struct mips_rtx_cost_data): Moved to mips.c.
15062         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15063         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15064         (mips_cost): Make static.
15065         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15066         Change result type to reg_class_t.
15067         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15068         type from enum reg_class to reg_class_t.
15069         (mips_register_move_cost): Make static. Change arguments
15070         type from enum reg_class to reg_class_t.
15071         (mips_memory_move_cost): New function.
15072         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15073
15074 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15075
15076         PR rtl-optimization/43358
15077         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15078         of a single hard register, using simplify_subreg_regno to decide
15079         what that register should be.
15080
15081 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15082
15083         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15084         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15085         (loongson_pmull<V_suffix>): Rename to...
15086         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15087
15088 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15089
15090         * configure.ac: Enable -fomit-frame-pointer on darwin
15091         which support dwarf2.
15092         * config/i386/i386.c (override_options): Same.
15093
15094 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15095
15096         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15097
15098 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15099
15100         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15101         -MMD.
15102
15103 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15104
15105         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15106         up dot_prod pattern searching if a stmt is outside the loop.
15107
15108 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15109             Uros Bizjak  <ubizjak@gmail.com>
15110
15111         * config.gcc: Handle --enable-frame-pointer.
15112
15113         * configure.ac: Add --enable-frame-pointer.
15114         * configure: Regenerated.
15115
15116         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15117         (override_options): If not configured with --enable-frame-pointer,
15118         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15119         optimizing for size), -fasynchronous-unwind-tables and
15120         -maccumulate-outgoing-args by default.
15121
15122 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15123
15124         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15125
15126         PR middle-end/45262
15127         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15128         -a overflows.  Normalize the range.
15129
15130 2010-08-12  Richard Guenther  <rguenther@suse.de>
15131
15132         PR tree-optimization/45232
15133         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15134         for types with undefined overflow.
15135         (reassociate_bb): Allow re-associating of bit and min/max
15136         operations for types with undefined overflow.
15137         * tree-ssa-forwprop.c (associate_plusminus): New function.
15138         (tree_ssa_forward_propagate_single_use_vars): Call it.
15139
15140 2010-08-12  Richard Guenther  <rguenther@suse.de>
15141
15142         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15143         * tree-ssa-alias.c (get_ptr_info): Move ...
15144         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15145         align and misalign fields conservatively.
15146         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15147         derive alignment information.
15148         (evaluate_stmt): Derive alignment information from memory
15149         allocation functions.
15150         * tree.h (get_pointer_alignment): Make unsigned.
15151         * builtins.c (get_object_alignment): Use alignment information we
15152         have computed for pointers.
15153         (get_pointer_alignment): Likewise.  Make conservative, return
15154         and unsigned value.
15155         (expand_builtin_strlen): Adjust.
15156         (expand_builtin_memcmp): Likewise.
15157         (expand_builtin_strcmp): Likewise.
15158         (expand_builtin_strncmp): Likewise.
15159         (get_builtin_sync_mem): Use at least mode alignment.
15160         (fold_builtin_memset): Adjust.
15161         (fold_builtin_memory_op): Likewise.
15162         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15163         information also dump pointer alignment knowledge.
15164         (dump_gimple_stmt): Likewise.
15165
15166 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15167
15168         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15169         (EMPTY_FIELD_BOUNDARY): Remove.
15170         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15171
15172 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15173
15174         PR debug/45259
15175         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15176         DEBUG_INSNs if n_regs_saved.
15177
15178 2010-08-12  Wei Guozhi  <carrot@google.com>
15179
15180         PR target/44999
15181         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15182         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15183
15184 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15185
15186         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15187
15188         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15189
15190 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15191
15192         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15193         the case removed in the previous patch, when the only phi argument
15194         is defined in the same loop as the phi node itself.  Handle it
15195         separately from the invariant case by both propagating it outside
15196         the region and replacing the phi node with an assign.
15197
15198 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15199
15200         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15201         constant phi nodes with one argument are is_gimple_min_invariant
15202         and SSA_NAME_IS_DEFAULT_DEF.
15203
15204 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15205
15206         * graphite-cloog-util.c (oppose_constraint):
15207         Extend loop counter's value range (CLOOG_ORG).
15208         (cloog_matrix_to_ppl_constraint): Same.
15209         (new_Constraint_System_from_Cloog_matrix): Same.
15210         * graphite-cloog-compat.h (matrix_num_type): New.
15211
15212 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15213
15214         * graphite.c (graphite_initialize): Do not initialize
15215         CLooG and initialize the Parma Polyhedra Library
15216         manually when using CLOOG_ORG.
15217         (graphite_finalize): Do not finalize CLooG and finalize
15218         the Parma Polyhedra Library manually when using CLOOG_ORG.
15219         * graphite-cloog-compat.h (cloog_initialize): Hide function
15220         when using CLOOG_ORG.
15221         (cloog_finalize): Same.
15222
15223 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15224
15225         * graphite-clast-to-gimple.c (free_scattering): Change
15226         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
15227         (CLOOG_ORG).
15228         (build_cloog_prog): Same.
15229         * graphite-cloog-compat.h (cloog_domain): Removed.
15230         (cloog_scattering): New.
15231         (cloog_set_domain): Removed.
15232         (cloog_set_scattering): New.
15233         (cloog_next_domain): Removed.
15234         (cloog_next_scattering): New.
15235         (cloog_set_next_domain): Removed.
15236         (cloog_set_next_scattering): New.
15237         (CloogScatteringList): New.
15238         (CloogScattering): New.
15239         (cloog_scattering_free): New.
15240         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
15241         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
15242         New.
15243
15244 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15245
15246         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
15247         CloogState.
15248         (set_cloog_options): Same.
15249         (print_clast_stmt): Same.
15250         (scop_to_clast): Same.
15251         (print_generated_program): Same.
15252         (gloog): Same.
15253         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
15254         (scop_to_clast): Extend with CloogState.
15255         * graphite-cloog-util.c: Include graphite-cloog-compat.h
15256         (new_Cloog_Domain_from_ppl_Polyhedron):
15257         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
15258         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
15259         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15260         * graphite-cloog-util.h (build_cloog_prog): Same.
15261         * graphite-cloog-copat.h (build_cloog_prog): New.
15262         (CloogState): New.
15263         (cloog_state_malloc): New.
15264         (cloog_state_free): New.
15265         (cloog_loop_malloc): New.
15266         (cloog_options_malloc): New.
15267         (cloog_statement_alloc): New.
15268         (cloog_domain_from_cloog_matrix): New.
15269         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
15270         (new_Cloog_Domain_from_ppl_Polyhedron): New.
15271
15272 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15273
15274         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
15275         type of NAME now depends on used CLooG version.
15276         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
15277         (gcc_type_for_clast_expr): Same.
15278         (print_clast_stmt): Replace pprint with clast_pprint.
15279         * graphite-cloog-compat.h: Provide compatibility macros for
15280         CLooG Legacy.
15281         (clast_name_p): New.
15282         (clast_expr_term): New.
15283         (clast_expr_red): New.
15284         (clast_expr_bin): New.
15285         (clast_pprint): New.
15286
15287 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15288
15289         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
15290         compatible to newer CLooG releases (CLOOG_ORG).
15291         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
15292         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
15293         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
15294         (build_cloog_prog) : New.
15295         (cloog_program_extract_scalars): New.
15296         (cloog_program_scatter): New.
15297
15298 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15299
15300         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
15301         conditionally (CLOOG_ORG).
15302         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
15303         (cloog_statement_usr): New.
15304         (cloog_domain): Same.
15305         (cloog_set_domain): Same.
15306         (cloog_next_domain): Same.
15307         (cloog_set_next_domain): Same.
15308         (cloog_program_nb_scattdims): Same.
15309         (cloog_program_set_nb_scattdims): Same.
15310         (cloog_program_names): Same.
15311         (cloog_program_set_names): Same.
15312         (cloog_program_set_context): Same.
15313         (cloog_program_set_loop): Same.
15314         (cloog_program_blocklist): Same.
15315         (cloog_program_set_blocklist): Same.
15316         (cloog_program_scaldims): Same.
15317         (cloog_program_set_scaldims): Same.
15318         (cloog_names_nb_parameters): Same.
15319         (cloog_names_set_nb_parameters): Same.
15320         (cloog_names_parameters): Same.
15321         (cloog_names_set_parameters): Same.
15322         (cloog_names_set_nb_iterators): Same.
15323         (cloog_names_set_iterators): Same.
15324         (cloog_names_set_nb_scattering): Same.
15325         (cloog_names_set_scattering): Same.
15326         (cloog_statement_set_usr): Same.
15327         (cloog_loop_set_next): Same.
15328         (cloog_loop_set_domain): Same.
15329         (cloog_loop_set_block): Same.
15330         (cloog_block_list_next): Same.
15331         (cloog_block_list_set_next):
15332         (cloog_block_list_set_block): Same.
15333
15334 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15335
15336         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
15337         a bool.
15338         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
15339         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
15340         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
15341         when something has been changed.
15342         (rewrite_commutative_reductions_out_of_ssa): Same.
15343
15344 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15345
15346         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
15347         handle the case when def is in the sese region.
15348         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
15349         for invariant expressions.
15350         (rewrite_cross_bb_phi_deps): Removed.
15351         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
15352         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
15353         rewrite_cross_bb_phi_deps.
15354
15355 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15356
15357         * graphite-sese-to-poly.c
15358         (rewrite_commutative_reductions_out_of_ssa_loop): Call
15359         scev_analyzable_p only on is_gimple_reg
15360
15361 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15362
15363         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
15364         (rewrite_close_phi_out_of_ssa): Propagate constant values or
15365         parametric expressions outside the scop region.
15366         (rewrite_cross_bb_scalar_deps): Same.
15367         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
15368
15369 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15370
15371         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15372         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15373
15374 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15375
15376         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15377         instantiate default definitions.
15378
15379 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15380             Sebastian Pop  <sebastian.pop@amd.com>
15381
15382         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15383         (loop_exits_from_bb_p): New.
15384         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15385         (loop_exits_from_bb_p): Declared.
15386         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15387         loop_exits_to_bb_p.
15388
15389 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15390
15391         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15392         extra parameter for the region.  Call scev_analyzable_p.
15393         (rewrite_reductions_out_of_ssa): Update call to
15394         rewrite_close_phi_out_of_ssa.
15395         (rewrite_cross_bb_phi_deps): Same.
15396         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15397         parameter for the region.  Call scev_analyzable_p.
15398         (rewrite_commutative_reductions_out_of_ssa): Update call to
15399         rewrite_commutative_reductions_out_of_ssa_loop.
15400
15401 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15402
15403         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15404
15405 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15406
15407         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15408         SSA scalar phi nodes that can be scev_analyzable_p.
15409
15410 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15411
15412         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15413         handle SSA_NAME_IS_DEFAULT_DEF.
15414
15415 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15416
15417         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15418
15419 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15420
15421         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15422         case non close-phi nodes with one argument.
15423
15424 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15425
15426         * sese.h (scev_analyzable_p): Scevs could be expressions without
15427         chrecs and still be scev_analyzable_p.
15428
15429 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15430
15431         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15432
15433 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15434
15435         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15436         * cfgloop.h (struct loop): Remove single_iv field.
15437         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15438         (scop_canonicalize_loops): Removed.
15439         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15440         over all the loop phi nodes in loop->header.
15441         (build_poly_scop): Remove use of scop_canonicalize_loops.
15442
15443 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15444
15445         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15446         handle GIMPLE_CALL.
15447
15448 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15449
15450         * tree-chrec.c (chrec_apply): Should only apply to the specified
15451         variable.  Also handle multivariate chains of recurrences that
15452         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15453
15454 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15455
15456         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15457         (debug_clast_name_indexes_1): Removed.
15458         (debug_clast_name_indexes): Removed.
15459         (pbb_to_depth_to_oldiv): Removed.
15460         (build_iv_mapping): Replace the use of rename_map with iv_map.
15461         (translate_clast_user): Remove uses of rename_map.  Allocate and
15462         free iv_map.
15463         (translate_clast_for_loop): Remove uses of rename_map.
15464         (translate_clast_for): Same.
15465         (translate_clast_guard): Same.
15466         (translate_clast): Same.
15467         (gloog): Same.
15468         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15469         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15470         * sese.c (set_rename): Now static.
15471         (rename_variables_in_stmt): Removed.
15472         (rename_uses): New.
15473         (is_parameter): Removed.
15474         (is_iv): Removed.
15475         (expand_scalar_variables_call): Removed.
15476         (expand_scalar_variables_ssa_name): Removed.
15477         (expand_scalar_variables_expr): Removed.
15478         (expand_scalar_variables_stmt): Removed.
15479         (expand_scalar_variables): Removed.
15480         (rename_variables): Removed.
15481         (remove_condition): Removed.
15482         (get_true_edge_from_guard_bb): Removed.
15483         (get_false_edge_from_guard_bb): Removed.
15484         (struct igp): Removed.
15485         (default_before_guard): Removed.
15486         (convert_for_phi_arg): Removed.
15487         (add_guard_exit_phis): Removed.
15488         (insert_guard_phis): Removed.
15489         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15490         region.  Do not copy conditions.  Do not copy induction variables.
15491         Call rename_uses.
15492         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15493         the translated statement.  Use the iv_map for the induction
15494         variable renaming.
15495         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15496         (set_rename): Removed declaration.
15497         (scev_analyzable_p): ...here.
15498         * tree-chrec.c (chrec_apply_map): New.
15499         * tree-chrec.h (chrec_apply_map): Declared.
15500
15501 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15502
15503         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15504         insert_loop_close_phis.
15505         * sese.c (name_defined_in_loop_p): Removed.
15506         (expr_defined_in_loop_p): Removed.
15507         (alive_after_loop): Removed.
15508         (close_phi_not_yet_inserted_p): Removed.
15509         (struct alep): Removed.
15510         (add_loop_exit_phis): Removed.
15511         (insert_loop_close_phis): Removed.
15512
15513 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15514
15515         * graphite-cloog-util.c
15516         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15517         * graphite-poly.c
15518         (psct_scattering_dim_for_loop_depth): Same.
15519
15520 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15521
15522         * graphite-cloog-util.h: Added cloog.h.
15523         * graphite-blocking.c: Removed cloog.h.
15524         * graphite-dependences.c: Same.
15525         * graphite-interchange.c: Same.
15526         * graphite-poly.c: Same.
15527         * graphite-ppl.c: Same.
15528         * graphite-scop-detection.c: Same.
15529         * graphite-sese-to-poly.c:
15530         Removed cloog.h.
15531         Removed graphite-clast-to-gimple.h.
15532         (check_poly_representation): Removed (unused).
15533         * graphite-sese-to-poly.h
15534         (check_poly_representation): Removed (unused).
15535
15536 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15537
15538         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15539         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15540         (graphite-cloog-util.o): New.
15541         (graphite-ppl.o): Added graphite-cloog-util.h.
15542         * graphite-clast-to-gimple.c:
15543         Added graphite-cloog-util.h to include statements.
15544         * graphite-cloog-util.c: New.
15545         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15546         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15547         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15548         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15549         (insert_constraint_into_matrix): Same.
15550         (ppl_Constrain_System_number_of_constraints): Same.
15551         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15552         (oppose_constraint): Same.
15553         (cloog_matrix_to_ppl_constraint): Same.
15554         (new_Constraint_System_from_Cloog_Matrix): Same.
15555         * graphite-cloog-util.h: New.
15556         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15557         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15558         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15559         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15560         (insert_constraint_into_matrix): Same.
15561         * graphite-ppl.c:
15562         Added graphite-cloog-util.h to include statements.
15563         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15564         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15565         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15566         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15567         (insert_constraint_into_matrix): Same.
15568         (ppl_Constrain_System_number_of_constraints): Same.
15569         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15570         (oppose_constraint): Same.
15571         (cloog_matrix_to_ppl_constraint): Same.
15572         (new_Constraint_System_from_Cloog_Matrix): Same.
15573         * graphite-ppl.h:
15574         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15575         graphite-cloog-util.h.
15576         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15577         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15578         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15579         (insert_constraint_into_matrix): Same.
15580
15581 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15582
15583         * graphite-clast-to-gimple.c
15584         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15585         (precision_for_interval): Same.
15586         (gcc_type_for_interval): Same.
15587         (compute_type_for_level): Same.
15588         * graphite-interchange.c
15589         (lst_interchange_profitable_p): Same.
15590         * graphite-poly.c
15591         (psct_scattering_dim_for_loop_depth): Same.
15592         * graphite-ppl.c
15593         (ppl_max_for_le_pointset): Same.
15594         (ppl_min_for_le_pointset): Same.
15595
15596 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15597
15598         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15599         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15600
15601 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15602
15603         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15604         rewrite_close_phi_out_of_ssa.
15605
15606 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15607
15608         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15609
15610 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15611
15612         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15613         rename_map.
15614         * sese.c (debug_rename_map): Same.
15615         (get_rename): Same.
15616         (set_rename): Same.
15617         (rename_variables_in_stmt): Same.
15618         (expand_scalar_variables_call): Same.
15619         (expand_scalar_variables_ssa_name): Same.
15620         (expand_scalar_variables_expr): Same.
15621         (expand_scalar_variables_stmt): Same.
15622         (expand_scalar_variables): Same.
15623         (rename_variables): Same.
15624         (graphite_copy_stmts_from_block): Same.
15625         (copy_bb_and_scalar_dependences): Same.
15626
15627 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15628
15629         * graphite-clast-to-gimple.c (copy_renames): Removed.
15630         (translate_clast_for): Do not call copy_renames.
15631         (translate_clast_guard): Same.
15632
15633 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15634
15635         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15636         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15637         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15638         before rewrite_cross_bb_scalar_deps.
15639
15640 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15641
15642         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15643         Early return in when flag_associative_math is not set.
15644
15645 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15646
15647         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15648         of SSA copies on edges except for loop->latch.
15649
15650 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15651
15652         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15653         Split out of rewrite_reductions_out_of_ssa.
15654         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15655         Declared.
15656         * graphite.c (graphite_transform_loops): Call it.
15657
15658 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15659
15660         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15661
15662 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15663
15664         * dbgcnt.def (graphite_scop): New counter.
15665         * graphite.c: Include dbgcnt.h.
15666         (graphite_transform_loops): Use new counter to limit transformations.
15667         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15668
15669 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15670
15671         * passes.c (init_optimization_passes): Add pass_graphite.
15672         Schedule a pass_copy_prop before pass_graphite_transforms.
15673         * timevar.def (TV_GRAPHITE): Declared.
15674         * tree-pass.h (pass_graphite): Declared.
15675         * tree-ssa-loop.c (pass_graphite): New.
15676
15677 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15678
15679         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15680         Remove calls to rename_nb_iterations and rename_sese_parameters.
15681         * graphite-clast-to-gimple.h (gloog): Update declaration.
15682         * graphite.c (graphite_transform_loops): Update call to gloog.
15683         * sese.c (rename_variables_in_expr): Removed.
15684         (rename_nb_iterations): Removed.
15685         (rename_sese_parameters): Removed.
15686         * sese.h (rename_nb_iterations): Removed.
15687         (rename_sese_parameters): Removed.
15688
15689 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15690
15691         * graphite-clast-to-gimple.c (gloog): Remove call to
15692         sese_adjust_liveout_phis.
15693         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15694         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15695         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15696         rewrite_phi_out_of_ssa.
15697         * sese.c (get_vdef_before_sese): Removed.
15698         (sese_adjust_vphi): Removed.
15699         (sese_adjust_liveout_phis): Removed.
15700         * sese.h (sese_adjust_liveout_phis): Removed.
15701
15702 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15703
15704         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15705         argument for the place after which to insert the out of SSA copy.
15706         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15707         (rewrite_phi_out_of_ssa): Same.
15708         (rewrite_cross_bb_scalar_deps): Same.
15709         (insert_copyout): Removed.
15710         (insert_copyin): Removed.
15711         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15712         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15713         insert_copyin.
15714
15715 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15716
15717         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15718         (rewrite_reductions_out_of_ssa): Same.
15719         (rewrite_commutative_reductions_out_of_ssa): Same.
15720         (build_poly_scop): Do not call these functions.
15721         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15722         (rewrite_reductions_out_of_ssa): Declared.
15723         (rewrite_commutative_reductions_out_of_ssa): Declared.
15724         * graphite.c (graphite_transform_loops): Call on every scop
15725         rewrite_commutative_reductions_out_of_ssa before calling
15726         rewrite_reductions_out_of_ssa and build_scop_bbs.
15727
15728 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15729
15730         * graphite-dependences.c (dot_deps): Make system call to dotty run
15731         in background.
15732         (dot_deps_stmt): Same.
15733         * graphite-poly.c (dot_lst): Same.
15734
15735 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15736
15737         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15738         phi_arg_in_outermost_loop.
15739         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15740         (remove_invariant_phi): Same.
15741
15742 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15743
15744         * target.def (output_addr_const_extra): New hook.
15745         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15746         * doc/tm.texi: Regenerate.
15747         * targhooks.c (default_asm_output_addr_const_extra): New function.
15748         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15749         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15750         target hook.
15751
15752         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15753         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15754         * config/i386/i386.h (output_addr_const_extra): Rename to...
15755         (i386_asm_output_addr_const_extra): ...this. Make static.
15756         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15757
15758 2010-08-11  Richard Henderson  <rth@redhat.com>
15759
15760         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15761
15762 2010-08-11  Nick Clifton  <nickc@redhat.com>
15763
15764         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15765         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15766         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15767         stormy16-lib2-cmpsi.c.
15768
15769         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15770         -O2.
15771
15772 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15773
15774         * opts.h (struct cl_option_handler_func): Make handler take
15775         cl_decoded_option structure as parameter, not individual elements.
15776         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15777         structure as parameter, not individual elements.
15778         (handle_option): Take cl_decoded_option structure as parameter,
15779         not individual elements.
15780         (handle_generated_option): Declare.
15781         * opts-common.c (handle_option): Take cl_decoded_option structure
15782         as parameter, not individual elements.  Update calls to callback
15783         and handler functions.
15784         (handle_generated_option): New.
15785         (read_cmdline_option): Update calls to callback functions and
15786         handle_option.
15787         * opts.c (common_handle_option, complain_wrong_lang,
15788         unknown_option_callback, post_handling_callback,
15789         lang_handle_option, target_handle_option): Take cl_decoded_option
15790         structure as parameter, not individual elements.
15791         (lang_handle_option, target_handle_option, common_handle_option):
15792         Assert option has at most one argument.
15793         (enable_warning_as_error): Call handle_generated_option instead of
15794         handle_option.  Do not pass -Werror argument as argument of
15795         generated option.
15796
15797 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15798
15799         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15800         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15801         (SUBWORD_BOOL_CAS): Likewise.
15802         (SUBWORD_SYNC_OP): Likewise.
15803         (SUBWORD_TEST_AND_SET): Likewise.
15804         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15805         (SUBWORD_SYNC_OP): Likewise.
15806         (OP_AND_FETCH_WORD): Likewise.
15807
15808 2010-08-10  Xinliang David Li  <davidxl@google.com>
15809
15810         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15811         compute max/min offset in address.
15812
15813 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15814
15815         * ira-live.c: Include sbitmap.h.
15816         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15817         Compress live ranges even more.
15818
15819 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15820
15821         * coverage.c (ctr_labels): Delete.
15822
15823 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15824
15825         PR bootstrap/45177
15826         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15827         test here from arm_gen_load_multiple_1.
15828         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15829         multiple_operation_profitable_p.
15830
15831 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15832
15833         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15834         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15835
15836 2010-08-10  Richard Henderson  <rth@redhat.com>
15837
15838         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15839         after saving registers.  Assert that SSE registers are only saved
15840         with a sufficiently aligned frame.
15841         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15842         remove stack_realign_fp handling.
15843         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15844         and do not mark the stack alignment as frame related.
15845         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15846
15847         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15848         saves when re-aligning the stack.
15849
15850 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15851
15852         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
15853         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
15854         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
15855
15856 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15857
15858         * dwarf2out.c (struct die_struct): Move die_tag to the end.
15859
15860 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
15861
15862         * config/arm/iterators.md: New file.
15863         * config/arm/arm.md: Include iterators.md.
15864         (QHSI): Move to new file.
15865         (LTUGEU, cnb, optab, ior_xor): Likewise.
15866         * config/arm/iwmmxt.md (VMMX): Move to new file.
15867         (VSHFT, MMX_char): Likewise.
15868         * config/arm/neon.md (VD): Move to new file.
15869         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
15870         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
15871         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
15872         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
15873         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
15874         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
15875         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
15876         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
15877         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
15878         (Is_d_reg, V_mode_nunits): Likewise.
15879         * config/arm/vec-common.md (VALL): Move to new file.
15880         (VALLW, VINT, VINTW): Likewise.
15881
15882 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15883
15884         PR middle-end/45182
15885         * combine.c (make_compound_operation): Don't try to convert
15886         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
15887
15888 2010-08-10  Richard Guenther  <rguenther@suse.de>
15889
15890         * tree.h (get_object_alignment): Adjust prototype.
15891         * builtins.c (get_object_alignment): Return unsigned int,
15892         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
15893         and TARGET_MEM_REF properly.
15894         (get_pointer_alignment): Adjust.
15895         * emit-rtl.c (get_mem_align_offset): Adjust comment.
15896         (set_mem_attributes_minus_bitpos): Adjust.
15897         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
15898
15899 2010-08-10  Richard Guenther  <rguenther@suse.de>
15900
15901         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
15902         (copy_prop_visit_assignment): Simplify.
15903         (copy_prop_visit_stmt): Also visit assignments from
15904         constants.
15905         (copy_prop_visit_phi_node): Use operand_equal_p.
15906
15907 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15908
15909         * ipa-split.c (find_split_points): Free stack.
15910
15911 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15912
15913         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
15914         * tree.c (tree_node_kind): Delete corresponding entries.
15915
15916 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
15917
15918         * alias.c (may_alias_p): Remove unused ret.
15919
15920 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
15921
15922         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
15923         alias_sets_conflict_p.
15924         (walk_mems_1): Moved from alias.c.
15925         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
15926         in alias.c.
15927         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
15928         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
15929         * alias.c (walk_mems_2): Moved to ddg.c.
15930         (walk_mems_1): Ditto.
15931         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
15932         to ddg.c.
15933         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
15934         disambiguation.
15935         *(may_alias_p): New function to check whether two memory expression
15936         may alias or not. Currently used in buidling inter-iteration memory
15937         dependence.
15938         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
15939         (insn_alias_sets_conflict_p): Removed
15940         *rtl.h (may_alias_p): New function prototype.
15941
15942 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15943
15944         * tree.c (nreverse): Assert that we don't have a BLOCK.
15945
15946 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15947
15948         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
15949         * config/arm/arm.c (arm_get_pcs_model): Likewise.
15950         * config/avr/avr.c (init_cumulative_args): Likewise.
15951         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
15952         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
15953         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
15954         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
15955         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
15956         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15957         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
15958         * dwarf2out.c (gen_subprogram_die): Likewise.
15959         * function.c (allocate_struct_function): Likewise.
15960         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
15961         (deserves_ellipsis): Delete.
15962
15963 2010-08-09  Richard Guenther  <rguenther@suse.de>
15964
15965         * tree-ssa-copy.c (cached_last_copy_of): Remove.
15966         (valueize_val): New function.
15967         (get_last_copy_of): Remove.
15968         (set_copy_of_val): Simplify.
15969         (dump_copy_of): Likewise.
15970         (copy_prop_visit_cond_stmt): Use valueize_val.
15971         (copy_prop_visit_phi_node): Properly handle unvisited names.
15972         Drop code managing copy-of chains.
15973         (init_copy_prop): Adjust.
15974         (fini_copy_prop): Likewise.
15975         (execute_copy_prop): Remove obsolete comment.
15976
15977 2010-08-09  Richard Guenther  <rguenther@suse.de>
15978
15979         PR middle-end/44632
15980         * function.c (gimplify_parameters): Do not clear addressable
15981         bit of the original parameter.
15982
15983 2010-08-09  Richard Guenther  <rguenther@suse.de>
15984
15985         PR middle-end/45212
15986         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
15987         alignment from MEM_REF offset only if we took it from the
15988         base object.
15989
15990 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
15991
15992         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
15993
15994 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15995
15996         * c-tree.h (build_arg_info): Declare.
15997         * c-decl.c (build_arg_info): Define.
15998         (get_parm_info): Call it.  Delete initialization code.
15999         * c-parser.c (c_parser_parms_declarator): Likewise.
16000         (c_parser_parms_list_declaractor): Likewise.
16001
16002 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16003
16004         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16005         (struct c_arg_info): Change type of tags field.
16006         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16007         (get_parm_info): Likewise.
16008         (store_parm_decls_newstyle): Likewise.
16009
16010 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16011
16012         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16013         (branch_island_list): Delete.
16014         (branch_islands): Declare.
16015         (add_compiler_branch_island): Adjust for branch_islands instead of
16016         branch_island_list.
16017         (macho_branch_islands): Likewise.
16018         (no_previous_def): Likewise.
16019         (get_prev_label): Likewise.
16020
16021 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16022
16023         PR boehm-gc/34544
16024         * gthr-posix.h (__gthread_start): Delete.
16025         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16026         pthread_create to determine if hpux pthreads are active.
16027         * gthr-posix95.h (__gthread_start): Delete.
16028         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16029
16030 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16031
16032         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16033         _WIN64 not expanded.
16034
16035 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16036             H.J. Lu  <hongjiu.lu@intel.com>
16037
16038         PR target/45213
16039         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16040         to output 32bit SFmode immediate as 8 byte sign extended value.
16041
16042 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16043
16044         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16045         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16046         (SUBWORD_BOOL_CAS): Likewise.
16047         (SUBWORD_SYNC_OP): Likewise.
16048         (SUBWORD_TEST_AND_SET): Likewise.
16049         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16050         (SUBWORD_SYNC_OP): Likewise.
16051         (OP_AND_FETCH_WORD): Likewise.
16052
16053 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16054
16055         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16056         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16057         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16058         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16059         generic part.
16060         (cortex_a9_sched_adjust_cost): New function.
16061         (xscale_sched_adjust_cost): New function.
16062         * config/arm/arm-protos.h (struct tune_params): New field
16063         sched_adjust_cost.
16064         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16065
16066 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16067
16068         PR target/44942
16069         * config/sparc/sparc.c (function_arg_advance): Always take into account
16070         the padding, if any.
16071
16072 2010-08-06  Richard Guenther  <rguenther@suse.de>
16073
16074         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16075         (dump_lattice_value): Dump it.
16076         (get_default_value): Adjust.
16077         (get_constant_value): Likewise.
16078         (set_value_varying): Likewise.
16079         (set_lattice_value): Make sure to not go up the lattice
16080         with bitwise constant values.
16081         (get_value_for_expr): Handle ADDR_EXPRs.
16082         (value_to_double_int): New function.
16083         (get_value_from_alignment): Likewise.
16084         (do_dbg_cnt): Adjust.
16085         (ccp_lattice_meet): Handle partially constant values.
16086         (bit_value_unop_1): New function.
16087         (bit_value_binop_1): Likewise.
16088         (bit_value_unop): Likewise.
16089         (bit_value_binop): Likewise.
16090         (evaluate_stmt): Track partially constant values if
16091         flag_tree_bit_ccp is set.
16092         (ccp_fold_stmt): Dump if we folded a predicate.
16093         (ccp_visit_stmt): Adjust.
16094         * common.opt (ftree-bit-ccp): New flag.
16095         * doc/invoke.texi (ftree-bit-ccp): Document.
16096         * opts.c (decode_options): Enable bit-CCP at -O1.
16097
16098 2010-08-06  Alan Modra  <amodra@gmail.com>
16099
16100         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16101         and -mrelocatable-lib description.
16102
16103 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16104
16105         From Martin Thuresson  <martint@google.com>
16106         * postreload.c (reload_cse_simplify_operands): Use
16107         SET_REGNO_RAW instead of SET_REGNO.
16108         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16109         SET_REGNO.
16110         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16111         instead of SET_REGNO.
16112         * rtl.h (SET_REGNO_RAW): New macro.
16113
16114 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16115
16116         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16117         computations.  Fix formatting issues.
16118         (num_sign_bit_copies1): Likewise.
16119         (canonicalize_condition): Likewise.
16120
16121 2010-08-05  Richard Henderson  <rth@redhat.com>
16122
16123         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16124         (floor_log2): Use clz_hwi.
16125         (exact_log2): Use ctz_hwi.
16126         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16127         * builtins.c (fold_builtin_bitop): Use them.
16128         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16129         * combine.c (get_pos_from_mask): Use ctz_hwi.
16130         * double-int.c (double_int_ctz): Likewise.
16131         * explow.c (force_reg): Likewise.
16132         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16133
16134 2010-08-05  Richard Henderson  <rth@redhat.com>
16135
16136         PR target/45189
16137         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16138         the alignment constant is properly sign-extended.
16139
16140 2010-08-05  Richard Guenther  <rguenther@suse.de>
16141
16142         * expr.c (store_expr): Use emit_block_move only if both
16143         source and target are MEMs.  Use store_bit_field if only
16144         the target is a MEM.
16145
16146 2010-08-05  Richard Henderson  <rth@redhat.com>
16147
16148         PR debug/45188
16149         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16150         (INCOMING_RETURN_ADDR_RTX): Likewise.
16151         (dwarf2out_do_frame): Remove conditional compilation.
16152         (dwarf2out_frame_init): Likewise.
16153
16154 2010-08-05  Nicolas Setton  <setton@adacore.com>
16155
16156         * gcov.c (flag_display_progress): New static variable.
16157         (main): Display progress info on standard output if requested.
16158         (options): Add -d/--display-progress.
16159         (print_usage): Print them.
16160         (process_args): Handle them.
16161         * doc/gcov.texi: Document them.
16162
16163 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16164
16165         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16166         (ipcp_insert_stage): Redirect only edges not flagged with
16167         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16168         discovered constants.
16169
16170 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16171
16172         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16173         (struct ipa_param_descriptor): New fields types and
16174         cannot_devirtualize.
16175         (ipa_param_cannot_devirtualize_p): New function.
16176         (ipa_param_types_vec_empty): Likewise.
16177         (ipa_make_edge_direct_to_target): Declare.
16178         * ipa-cp.c: Fixed first stage driver name in initial comment,
16179         described devirtualization there too.
16180         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16181         (ipcp_print_all_lattices): Print devirtualization info.
16182         (ipa_set_param_cannot_devirtualize): New function.
16183         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16184         lattice to BOTTOM.
16185         (ipcp_init_stage): Merged into...
16186         (ipcp_generate_summary): ...its caller.
16187         (ipcp_change_tops_to_bottom): Also process type lists.
16188         (ipcp_add_param_type): New function.
16189         (ipcp_copy_types): Likewise.
16190         (ipcp_propagate_types): Likewise.
16191         (ipcp_propagate_stage): Also propagate types.
16192         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16193         Also return true if propagated types require it.
16194         (ipcp_update_callgraph): Dump redirection info.
16195         (ipcp_process_devirtualization_opportunities): New function.
16196         (ipcp_const_param_count): Include known type information.
16197         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16198         on new node.  Fixed formatting.
16199         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16200         ipa_make_edge_direct_to_target and changed all callers.  Made
16201         externally visible.
16202         (ipa_node_duplication_hook): Duplicate types vector.
16203         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
16204         redirect outgoing calls for which we can't get a decl from the
16205         statement.  Check that we can get a decl from the call statement.
16206         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16207         ipa_analyze_params_uses only when ipa-cp is disabled.
16208         * tree-inline.c (get_indirect_callee_fndecl): Removed.
16209         (expand_call_inline): Do not call get_indirect_callee_fndecl.
16210         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
16211         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
16212
16213 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16214
16215         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
16216         temporary. Emit move from temporary to accum, so REG_EQUAL note will
16217         be attached to this insn in correct mode.
16218
16219 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16220
16221         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
16222         using REGNO of base_reg directly.
16223
16224 2010-08-05  Jie Zhang  <jie@codesourcery.com>
16225
16226         PR tree-optimization/45144
16227         * tree-sra.c (type_consists_of_records_p): Return false
16228         if the record contains bit-field.
16229
16230 2010-08-04  Richard Henderson  <rth@redhat.com>
16231
16232         * config/i386/i386.c (struct ix86_frame): Remove padding and
16233         to_allocate members.
16234         (ix86_compute_frame_layout): Don't store them.
16235         (ix86_can_use_return_insn_p): Use a more direct and more obviously
16236         correct condition for the position of the stack pointer.
16237         (ix86_expand_prologue): Compute remaining stack allocation based
16238         on the ultimate stack pointer offset.
16239         (ix86_expand_epilogue): Use more obvious expressions testing for
16240         the stack pointer already pointing to the saved registers.
16241
16242         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
16243         duplication deconstructing the frame pointer.  Simplify
16244         deallocation of the local stack frame.
16245
16246         * reg-notes.def (CFA_EXPRESSION): New.
16247         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
16248         (dwarf2out_frame_debug_cfa_expression): New.
16249         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
16250
16251         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
16252         * config/i386/i386.c (ix86_expand_prologue): Set it.
16253         (ix86_expand_epilogue): Clear it.
16254         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
16255         context, add REG_CFA_EXPRESSION notes.
16256
16257         * config/i386/i386.h (struct machine_frame_state): Rename from
16258         machine_cfa_state.  Add members tracking SP and FP regardless
16259         of the current CFA register.
16260         (ix86_cfa_state): Remove.
16261         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
16262         and sse_reg_save_offset members.
16263         (ix86_compute_frame_layout): Set them.
16264         (gen_push): Increment sp_offset too.
16265         (choose_baseaddr_len, choose_baseaddr): New.
16266         (ix86_emit_save_reg_using_mov): New.
16267         (ix86_emit_save_regs_using_mov): Use it.
16268         (ix86_emit_save_sse_regs_using_mov): Likewise.
16269         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
16270         compare vs the saved red_zone_offset.
16271         (pro_epilogue_adjust_stack): Adjust sp_offset.
16272         (ix86_adjust_stack_and_probe): Likewise.
16273         (ix86_expand_prologue): Set up, use, and validate the new
16274         frame_state_info members.  Use gen_frame_mem.
16275         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
16276         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
16277         new frame_state_info members.
16278         (ix86_emit_leave): Likewise.
16279         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
16280         out-of-range stack pointer offsets here.
16281         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16282         (ix86_expand_epilogue): Use and validate the new frame_state_info
16283         members.  Break up and simplify the logic selecting the
16284         restore_regs_via_mov code path.  Ensure that there will be no
16285         out-of-range stack pointer offsets.
16286
16287         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
16288
16289         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
16290         argument name to reflect the expected tree; fix indentation.
16291         (ix86_asm_output_function_label): Output the entire 32-bit
16292         ms_hook here as bytes ...
16293         (ix86_expand_prologue): ... not here as insns.  Attach the
16294         unwind info for the ms_hook to a blockage insn.
16295         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
16296         (ix86_ms_bitfield_layout_p): Fix indentation.
16297         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
16298
16299         * config/i386/i386.c (ix86_using_red_zone): New.
16300         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
16301         ix86_expand_prologue, ix86_force_to_memory): Use it.
16302
16303         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
16304         saving the int registers.
16305
16306         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
16307         and DWARF2_UNWIND_INFO conditional compilation.
16308
16309 2010-08-04  Richard Henderson  <rth@redhat.com>
16310
16311         PR debug/45171
16312         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
16313         an is_naming_typedef_decl.
16314
16315 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
16316
16317         PR rtl-optimization/45162
16318         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
16319         * dce.c (word_dce_process_block): Likewise.
16320
16321 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
16322
16323         PR target/44583
16324         * config/ia64/constraints.md (Z): New.
16325         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
16326         (xfreg_or_signed_fp01_operand): New.
16327         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
16328         with fr_reg_or_signed_fp01_operand and constraint G with Z.
16329         (subsf3): Ditto.
16330         (*maddsf4): Ditto.
16331         (*msubsf4): Ditto.
16332         (adddf3): Ditto.
16333         (adddf3_trunc): Ditto.
16334         (subdf3): Ditto.
16335         (*subdf3_trunc): Ditto.
16336         (*madddf4): Ditto.
16337         (*madddf4_trunc): Ditto.
16338         (*msubdf4): Ditto.
16339         (*msubdf4_trunc): Ditto.
16340         (addxf3): Replace xfreg_or_fp01_operand with
16341         xfreg_or_signed_fp01_operand and constraint G with Z.
16342         (*addxf3_truncsf): Ditto.
16343         (*addxf3_truncdf): Ditto.
16344         (subxf3): Ditto.
16345         (*subxf3_truncsf): Ditto.
16346         (*subxf3_truncdf): Ditto.
16347         (*maddxf4): Ditto.
16348         (*maddxf4_truncsf): Ditto.
16349         (*maddxf4_truncdf): Ditto.
16350         (*msubxf4): Ditto.
16351         (*msubxf4_truncsf): Ditto.
16352         (*msubxf4_truncdf): Ditto.
16353
16354 2010-08-04  Richard Guenther  <rguenther@suse.de>
16355
16356         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
16357         if either alias-set is zero.
16358
16359 2010-08-04  Richard Guenther  <rguenther@suse.de>
16360
16361         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
16362         * tree-ssa-ccp.c: ... here.
16363         * tree-ssa-copy.c: ... and here.
16364         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
16365         value_range_t): Move ...
16366         * tree-vrp.c: ... here.
16367         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
16368         (substitute_and_fold): Adjust prototype.
16369         * tree-ssa-propagate.c (replace_uses_in): Adjust.
16370         (replace_phi_args_in): Likewise.
16371         (substitute_and_fold): Take callback to query lattice instead
16372         of pointer to lattice.  Replace SSA name defs with lattice
16373         values first.
16374         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16375         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16376         (get_value): New function.
16377         (fini_copy_prop): Adjust.
16378         * tree-vrp.c (vrp_finalize): Adjust.
16379
16380 2010-08-04  Richard Guenther  <rguenther@suse.de>
16381
16382         PR middle-end/45176
16383         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16384         points-to set for original MEM_REF.
16385
16386 2010-08-04  Richard Guenther  <rguenther@suse.de>
16387
16388         * tree-ssa-ccp.c (get_constant_value): New function.
16389         (get_rhs_assign_op_for_ccp): Remove.
16390         (valueize_op): New function.
16391         (ccp_fold): Use get_constant_value and valueize_op.
16392         (fold_const_aggregate_ref): Likewise.
16393         (ccp_fold_stmt): Likewise.
16394         (visit_assignment): Simplify.
16395
16396 2010-08-04  Richard Guenther  <rguenther@suse.de>
16397
16398         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16399         * double-int.h (double_int_ctz): Declare.
16400         * double-int.c (double_int_ctz): New function.
16401
16402 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16403
16404         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16405         Define.
16406         picochip_expand_movmemhi : Expand movmem pattern.
16407         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16408         Declare.
16409         * config/picochip/picochip.md (movmemhi) : New pattern.
16410
16411 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16412
16413         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16414
16415 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16416
16417         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16418         NEG as operand of a MULT by merging it with the other operand.
16419         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16420         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16421         MULT.
16422         * config/arm/constraints.md (M): Examine only 32 bits of a
16423         HOST_WIDE_INT.
16424         * config/arm/predicates.md (power_of_two_operand): Likewise.
16425
16426 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16427
16428         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16429         non-NOTE insns.
16430
16431 2010-08-03  Jan Hubicka  <jh@suse.cz>
16432
16433         * ipa-split.c (struct split_point): Add split_part_set_retval.
16434         (find_retval): Forward declare.
16435         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16436         (consider_split): Compute current->split_part_set_retval.
16437         (visit_bb): Do not look into return value.
16438         (split_function): Handle !split_part_set_retval
16439
16440 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16441
16442         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16443         its own access->expr intead of using build_ref_for_offset.
16444
16445 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16446
16447         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16448         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16449         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16450         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16451         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16452         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16453         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16454         DEFAULT_SWITCH_TAKES_ARG.
16455         * config/rx/rx.opt (-patch=): Remove option.
16456         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16457         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16458         * doc/invoke.texi (RX Options): Remove -patch=.
16459         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16460         (option_map): Remove --profile-blocks, --quiet and --silent.
16461
16462 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16463
16464         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16465         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16466         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16467         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16468         Update calls to ix86_expand_compare and ix86_expand_branch.
16469         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16470         ix86_expand_compare.
16471         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16472         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16473         Make static.
16474         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16475         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16476         (ix86_expand_int_movcc): Ditto.
16477         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16478         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16479         (ix86_expand_setcc): Ditto.
16480         (ix86_expand_compare): Remove prototype.
16481         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16482         ix86_compare_op0 and ix86_compare_op1.  Update calls
16483         to ix86_expand_branch to directly pass operands[1] and operands[2].
16484         (cbranchxf4): Ditto.
16485         (cbranch<MODEF:mode>4): Ditto.
16486         (cbranchcc4): Ditto.
16487         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16488         Update calls to ix86_expand_setcc to directly pass operands[2] and
16489         operands[3].
16490         (cstorexf4): Ditto.
16491         (cstore<MODEF:mode>4): Ditto.
16492         (cstorecc4): Ditto.
16493
16494 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16495
16496         PR target/45063
16497         * caller-save.c (save_call_clobbered_regs): Remove regs from
16498         hard_regs_saved when they are set.
16499
16500 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16501
16502         PR target/41089
16503         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16504         as volatile.
16505
16506 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16507
16508         * common.opt (ftree-loop-distribute-patterns): New.
16509         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16510         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16511         at -O3.
16512         * tree-data-ref.c (stores_zero_from_loop): New.
16513         * tree-data-ref.h (stores_zero_from_loop): Declared.
16514         * tree-loop-distribution.c (tree_loop_distribution): Call
16515         stores_zero_from_loop.
16516         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16517
16518 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16519
16520         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16521         into account.
16522
16523         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16524         * config/arm/arm.c (thumb1_code): New variable.
16525         (arm_override_options): Set it.
16526         (thumb1_final_prescan_insn): Keep track of condition code status.
16527         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16528         jumps that depend on them.
16529         * config/arm/arm.h (thumb1_code): Declare variable.
16530         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16531         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16532         thumb1_cc_mode.
16533         (CC_STATUS_INIT): New macro.
16534         * config/arm/constraints.md (Pd): New constraint.
16535         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16536         * config/arm/arm.md (is_thumb1): New define_attr.
16537         (conds): Set default to "clob" when generating Thumb1 code.
16538         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16539         code are set.  Use two-operand assembly syntax.
16540         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16541         pattern.
16542         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16543         codes are set.  Use two-operand assembly syntax.
16544         (zero_extendhisi splitter): Remove constraints.
16545         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16546         thumb1_movsf_insn): Set conds attribute as appropriate.
16547         (cbranchsi4_insn): Use condition code status from struct
16548         machine_function to determine whether the comparison can be eliminated.
16549         Discourage the alternative using high registers.
16550         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16551         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16552         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16553         subsi3_cbranch): Delete.
16554         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16555         one subtract and one cbranch insn.
16556
16557         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16558         thumb2_movdf_soft_insn): Delete patterns.
16559         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16560         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16561         (pool_range, neg_pool_range): Use them to define defaults.
16562         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16563         and allow for TARGET_32BIT.
16564
16565         PR target/40457
16566         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16567         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16568         load_multiple_sequence, store_multiple_sequence): Delete
16569         declarations.
16570         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16571         declarations.
16572         * config/arm/ldmstm.md: New file.
16573         * config/arm/arm.c (arm_regs_in_sequence): New array.
16574         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16575         CHECK_REGS.  All callers changed.
16576         If SAVED_ORDER is nonnull, copy the computed order into it.
16577         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16578         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16579         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
16580         If SAVED_ORDER is nonnull, copy the computed order into it.
16581         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
16582         like REGS.  Handle Thumb mode.
16583         (arm_gen_load_multiple_1): New function, broken out of
16584         arm_gen_load_multiple.
16585         (arm_gen_store_multiple_1): New function, broken out of
16586         arm_gen_store_multiple.
16587         (arm_gen_multiple_op): New function, with code from
16588         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16589         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16590         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16591         changed.
16592         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16593         * config/arm/predicates.md (commutative_binary_operator): New.
16594         (load_multiple_operation, store_multiple_operation): Handle more
16595         variants of these patterns with different starting offsets.  Handle
16596         Thumb-1.
16597         * config/arm/arm.md: Include "ldmstm.md".
16598         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16599         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16600         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16601         peepholes): Delete.
16602         * config/arm/ldmstm.md: New file.
16603         * config/arm/arm-ldmstm.ml: New file.
16604
16605         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16606         if statement which adds extra costs to frame-related expressions.
16607
16608 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16609
16610         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16611
16612 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16613
16614         PR target/45142
16615         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16616         alternative 2.
16617         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16618         split V4SI operands.
16619
16620 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16621
16622         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16623         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16624         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16625         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16626
16627 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16628
16629         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16630         LOCAL_INCLUDE_DIR.
16631
16632 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16633
16634         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16635         used in the call to optab_for_tree_code.  Fix the second
16636         is_widening_mult_p call.  Check that both unwidened operands
16637         have the same sign.
16638
16639 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16640
16641         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16642
16643 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16644
16645         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16646
16647 2010-07-30  DJ Delorie  <dj@redhat.com>
16648
16649         * config/rx/predicates.md (rx_constshift_operand): New.
16650         * config/rx/rx.md (zs_cond): New.
16651         (cbranchsi4): Remove mode.
16652         (*cbranchsi4_<code>): Likewise.
16653         (*tstbranchsi4_<code>): New.
16654         (*tstbranchsi4r_<code>): New.
16655         (*tstbranchsi4m_eq): New.
16656         (*tstbranchsi4m_ne): New.
16657         (cbranchsf4): Remove mode.
16658         (*cbranchsf4_<code>): Likewise.
16659
16660 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16661
16662         * rtlanal.c (simplify_subreg_regno): Don't treat
16663         HARD_FRAME_POINTER_REGNUM specially.
16664
16665 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16666
16667         * common.opt (-G): Don't define option here.
16668         * config/g.opt: New.
16669         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16670         rs6000/powerpc and score targets.
16671         * opts.c (common_handle_option): Don't handle -G here.
16672         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16673         * config/frv/frv.c (frv_handle_option): Handle -G.
16674         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16675         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16676         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16677         * config/mips/mips.c (mips_handle_option): Handle -G.
16678         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16679         * config/score/score.c (score_handle_option): Handle -G.
16680
16681 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16682
16683         * config/mmix/mmix.c: Include basic-block.h.
16684
16685 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16686
16687         PR debug/45055
16688         PR rtl-optimization/45137
16689         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16690         prototypes.
16691         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16692         New functions.
16693         * combine.c (next_nonnote_nondebug_insn): Removed.
16694         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16695         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16696         * sched-deps.c (sched_analyze_insn): Likewise.
16697         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16698         * rtlanal.c (canonicalize_condition): Likewise.
16699         * postreload.c (reload_combine_recognize_pattern): Likewise.
16700         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16701
16702 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16703
16704         * config/i386/i386.md (int_cond): Remove code iterator.
16705         (fp_cond): Ditto.
16706         (cbranch<mode>4): Use ordered_comparison_operator predicate
16707         for operator0.
16708         (cstore<mode>4): Ditto for operator1.
16709         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16710         (add<mode>cc): ditto.
16711
16712 2010-07-30  Richard Guenther  <rguenther@suse.de>
16713
16714         PR middle-end/45141
16715         * expr.c (expand_expr_real_1): Check for not handled base address.
16716
16717 2010-07-30  Richard Guenther  <rguenther@suse.de>
16718
16719         * ipa-prop.c (ipa_modify_formal_parameters): Use
16720         build_distinct_type_copy.
16721
16722 2010-07-30  Anthony Green  <green@moxielogic.com>
16723
16724         * config/moxie/rtems.h: New file.
16725         * config.gcc: Add moxie-rtems support.
16726
16727 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16728
16729         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16730         df flags as in run_fast_df_dce.
16731
16732 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16733
16734         Revert:
16735         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16736
16737         * rtl.def (NOTE): Swap operands 4 and 5.
16738         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16739         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16740         Adjust accordingly.
16741         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16742
16743 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16744
16745         PR debug/45110
16746         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16747         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16748         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16749         formal parameters.
16750         (gen_decl_die): Change return type to dw_die_ref, return what
16751         gen_formal_parameter_die returned.
16752
16753 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16754
16755         * dbgcnt.def (eipa_sra): New counter.
16756         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16757
16758 2010-07-29  Xinliang David Li  <davidxl@google.com>
16759
16760         PR bootstrap/45119
16761         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16762         in revision 162652.
16763
16764 2010-07-29  Richard Guenther  <rguenther@suse.de>
16765
16766         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16767         (TV_TREE_STORE_CCP): Likewise.
16768         (TV_TREE_REDPHI): Likewise.
16769
16770 2010-07-29  Richard Guenther  <rguenther@suse.de>
16771
16772         * double-int.h (double_int_and_not): New function.
16773         * combine.c (try_combine): Use it.
16774         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16775
16776 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16777
16778         PR rtl-optimization/42575
16779         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16780         Argument AU removed.  All callers changed.  Ignore artificial refs.
16781         Use return value of df_word_lr_simulate_defs to decide whether an insn
16782         is necessary.
16783         (fast_dce): Rename arg to WORD_LEVEL.
16784         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16785         static.
16786         (pass_fast_rtl_byte_dce): Delete.
16787         * dce.h (run_word_dce): Declare.
16788         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16789         All callers changed.  Simplify code to only deal with two-word regs.
16790         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16791         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16792         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16793         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16794         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16795         (df_word_lr_mark_ref): Declare.
16796         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16797         df_word_lr_simulate_uses): Declare or rename from byte variants.
16798         (df_byte_lr_simulate_artificial_refs_at_top,
16799         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16800         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16801         declarations.
16802         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16803         (enum df_mm): Delete.
16804         * df-byte-scan.c: Delete file.
16805         * df-problems.c (df_word_lr_problem_data): Renamed from
16806         df_byte_lr_problem_data, all members deleted except for
16807         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16808         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16809         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16810         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16811         df_byte_lr_confluence_0): Delete functions.
16812         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16813         callers changed.
16814         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16815         Don't initialize members that were deleted, don't try to discover data
16816         about registers.  Ignore hard regs.
16817         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16818         (df_word_lr_mark_ref): New function.
16819         (df_word_lr_bb_local_compute): Renamed from
16820         df_byte_bb_lr_local_compute; all callers changed.  Use
16821         df_word_lr_mark_ref.  Assert that artificial refs don't include
16822         pseudos.  Ignore hard registers.
16823         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16824         Assert that exit block uses don't contain pseudos.
16825         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16826         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16827         callers changed.  Ignore hard regs.
16828         (df_word_lr_transfer_function): Renamed from
16829         df_byte_lr_transfer_function; all callers changed.
16830         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16831         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16832         changed.
16833         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16834         callers changed.
16835         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16836         confluence operator 0 set to NULL.
16837         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16838         callers changed.
16839         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16840         Return bool, true if bitmap changed or insn otherwise necessary.
16841         All callers changed.  Simplify using df_word_lr_mark_ref.
16842         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16843         all callers changed.  Simplify using df_word_lr_mark_ref.
16844         * lower-subreg.c: Include "dce.h"
16845         (decompose_multiword_subregs): Call run_word_dce if df available.
16846         * Makefile.in (lower-subreg.o): Adjust dependencies.
16847         (df-byte-scan.o): Delete.
16848         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16849
16850 2010-07-29  Richard Guenther  <rguenther@suse.de>
16851
16852         * tree.c (build_vector): Assert that the vector constant
16853         has enough elements.
16854         (build_vector_from_ctor): Pad with trailing zeros.
16855
16856 2010-07-29  Richard Guenther  <rguenther@suse.de>
16857
16858         PR tree-optimization/45120
16859         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16860         Handle offset in DEREFs properly.
16861         (get_constraint_for_1): Handle MEM_REF offset properly.
16862
16863 2010-07-29  Richard Guenther  <rguenther@suse.de>
16864
16865         PR middle-end/45034
16866         * convert.c (convert_to_integer): Always use an unsigned
16867         type for narrowed negate and bitwise not.
16868
16869 2010-07-29  Ira Rosen  <irar@il.ibm.com>
16870
16871         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
16872         to outer loop when creating reduction epilogue for double reduction,
16873         and switch back to the inner loop when updating the phi nodes.
16874         Update uses of outer loop exit phi nodes in double reduction (instead
16875         of uses of reduction).
16876
16877 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
16878
16879         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
16880         popcount on power7 and parity on power6 systems.
16881         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
16882         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
16883         instructions.
16884
16885         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
16886         (UNSPEC_PARITY): Ditto.
16887         (SFDF): New iterator for SF/DF.
16888         (rreg2): New mode attribute for floating register constraint.
16889         (TARGET_FLOAT): New mode attribute for whether single/double float
16890         is supported.
16891         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
16892         pattern.
16893         (parity<mode>2_cmpb): New insn for parity on power6 and newer
16894         machines.
16895         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
16896         pattern.  Add support for fcpsgn instruction added in power6.
16897         (copysignsf3): Delete.
16898         (copysigndf3): Delete.
16899         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
16900         instead of if_then_else in RTL to avoid problems with -0.
16901
16902         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
16903         of if_then_else to mirror scalar code.
16904         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
16905         rs6000.md.
16906
16907         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
16908         instead of if_then_else.
16909
16910 2010-07-28  Xinliang David Li  <davidxl@google.com>
16911
16912         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
16913         (dump_cand): Dump var_before/after.
16914         (htab_inv_expr_eq): New function.
16915         (htab_inv_expr_hash): New function.
16916         (tree_ssa_iv_optimize_init): Support pseudo invariants.
16917         (add_candidate_1): consider base type precision.
16918         (set_use_iv_cost): New parameter.
16919         (adjust_setup_cost): Use profile information.
16920         (get_address_cost): Do not hard code width in computing address
16921         offset limits.
16922         (compare_aff_trees): New function.
16923         (get_loop_invariant_expr_id): New function.
16924         (get_computation_cost_at): New parameter and use profile information.
16925         (get_computation_cost): New parameter.
16926         (determine_use_iv_cost_generic): Pass new parameter.
16927         (determine_use_iv_cost_address): Ditto.
16928         (determine_use_iv_cost_condition): Ditto.
16929         (autoinc_possible_for_pair): Ditto.
16930         (determine_use_iv_costs): More dumps.
16931         (iv_ca_get_num_inv_exprs): New function.
16932         (iv_ca_recount_cost): Consider loop invariants in register pressure
16933         cost.
16934         (iv_ca_add_use): New parameter.
16935         (iv_ca_dump): Better dumping.
16936         (iv_ca_extend): New parameter.
16937         (try_add_cand_for): Attempt to get better partial solution.
16938         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
16939         (create_new-ivs): More dumps.
16940         (rewrite_use_compare): Ditto.
16941         (free_loop_data): More cleanup.
16942         (treee_ssa_iv_optimize_finalize): Ditto.
16943
16944 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
16945
16946         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
16947         * config/i386/i386.c (ix86_profile_before_prologue): New.
16948         (override_options): Add special handling for -mfentry.
16949         (ix86_function_regparm): Likewise.
16950         (ix86_function_sseregparm): Likewise.
16951         (ix86_frame_pointer_required): Likewise.
16952         (ix86_expand_prologue): Check for ms_hook_prologue.
16953         (x86_function_profiler): Adjust mcount output.
16954         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
16955         * config/i386/i386.opt (mfentry): New.
16956         * doc/invoke.texi (mfentry): Add documentation.
16957         * doc/tm.texi: Regenerated..
16958         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
16959         * final.c (final_start_function): Replace macro
16960         PROFILE_BEFORE_PROLOGUE by target hook.
16961         * function.c (thread_prologue_and_epilogue_insns): Likewise.
16962         * target.def (profile_before_prologue): New hook.
16963         * targhooks.c (default_profile_before_prologue): New.
16964         * targhooks.h (default_profile_before_prologue): New.
16965
16966 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
16967
16968         PR debug/45105
16969         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
16970
16971         PR debug/45103
16972         * dwarf2out.c (dwarf2out_var_location): Always consider
16973         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
16974
16975 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
16976
16977         PR rtl-optimization/45107
16978         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
16979
16980 2010-07-28  Richard Guenther  <rguenther@suse.de>
16981
16982         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
16983         (set_lattice_value): Do not query an old default value.
16984         (get_value_for_expr): New function.  Properly canonicalize
16985         float values.
16986         (ccp_visit_phi_node): Use it.
16987
16988 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
16989
16990         * config/arm/arm.c (arm_pcs_default): Remove static.
16991         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
16992         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
16993         (arm_pcs_default): Declare.
16994
16995 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
16996
16997         * config/rs6000/rs6000.c (rs6000_override_options):
16998         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
16999         ... to darwin_rs6000_override_options.
17000         (rs6000_return_in_memory): Update preceding comment for darwin
17001         64 bit ABI.  Use TARGET_MACHO inline.
17002         (rs6000_darwin64_struct_check_p): New.
17003         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17004         (function_arg): Likewise.
17005         (rs6000_arg_partial_bytes): Likewise.
17006         (rs6000_function_value): Likewise.
17007
17008 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17009
17010         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17011
17012 2010-07-28  Richard Guenther  <rguenther@suse.de>
17013
17014         PR middle-end/44903
17015         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17016         targets try harder to not generate unaligned accesses.
17017
17018 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17019
17020         PR rtl-optimization/45101
17021         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17022         for gcse-las.
17023
17024 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17025
17026         PR tree-optimization/44885
17027         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17028         with non-aliased component.
17029
17030 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17031
17032         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17033         WORD_SWITCH_TAKES_ARG): Remove.
17034         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17035         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17036         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17037         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17038         definitions from gcc.c.
17039         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17040         defaults.h.
17041         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17042         Move to defaults.h.
17043         * opts-common.c: Include tm.h.
17044         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17045         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17046         Handle more than one argument.  Set canonical_option_num_elements.
17047         (decode_cmdline_options_to_array): Set
17048         canonical_option_num_elements and trailing elements of
17049         canonical_option.
17050         * opts.h (struct cl_decoded_option): Allow four elements in
17051         canonical_option.  Add field canonical_option_num_elements.
17052         * Makefile.in (opts-common.o): Update dependencies.
17053
17054 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17055
17056         PR middle-end/44790
17057         PR middle-end/44993
17058         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17059         sure the base has address_mode before adding the offset.
17060
17061 2010-07-27  Xinliang David Li  <davidxl@google.com>
17062
17063         * tree-flow.h (create_mem_ref): Add one new parameter.
17064         * tree-ssa-address.c (create_mem_ref): New parameter.
17065         (addr_to_parts): Ditto.
17066         (move_variant_to_index): New function.
17067         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17068
17069 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17070
17071         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17072         4 and 5.
17073         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17074         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17075         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17076         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17077         CODE_LABELs and NOTEs.
17078         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17079         * combine.c (try_combine): Likewise.
17080         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17081         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17082
17083 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17084
17085         * coretypes.h (struct cl_option_handlers): Declare.
17086         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17087         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17088         * langhooks-def.h (lhd_handle_option): Declare.
17089         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17090         * langhooks.c (lhd_handle_option): New.
17091         * langhooks.h (struct lang_hooks): Update prototype and return
17092         value type of handle_option hook.
17093         * optc-gen.awk: Generate target_flags_explicit definition for the
17094         driver.
17095         * opts-common.c: Include diagnostic.h.
17096         (handle_option): Move from opts.c.  Update prototype and return
17097         value type.  Use handlers structure.
17098         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17099         handlers structure.
17100         (set_option): Move from opts.c.
17101         * opts.c (common_handle_option): Update prototype and return value
17102         type.  Update calls to handle_option and enable_warning_as_error.
17103         (unknown_option_callback, post_handling_callback,
17104         lang_handle_option, target_handle_option): New.
17105         (handle_option, read_cmdline_option): Move to opts-common.c.
17106         (read_cmdline_options): Update prototype.  Update call to
17107         read_cmdline_option.
17108         (decode_options): Initialize and use handlers structure.
17109         (set_option): Move to opts-common.c.
17110         (enable_warning_as_error): Update prototype.  Update call to
17111         handle_option.
17112         * opts.h (struct cl_option_handler_func, struct
17113         cl_option_handlers): New.
17114         (handle_option, enable_warning_as_error): Update prototypes.
17115         (read_cmdline_option): Declare.
17116         * Makefile.in (opts-common.o): Update dependencies.
17117
17118 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17119
17120         * config/arm/arm.c (params.h): Include.
17121         (arm_override_options): Tune gcse-unrestricted-cost.
17122         * config/arm/t-arm (arm.o): Define dependencies.
17123
17124 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17125
17126         PR target/42495
17127         PR middle-end/42574
17128         * basic-block.h (get_dominated_to_depth): Declare.
17129         * dominance.c (get_dominated_to_depth): New function, use
17130         get_all_dominated_blocks as a base.
17131         (get_all_dominated_blocks): Use get_dominated_to_depth.
17132
17133         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17134         (hoist_exprs): Remove.
17135         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17136         (compute_code_hoist_vbeinout): Add debug print outs.
17137         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17138
17139         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17140         quadratic behavior.
17141         * params.h (MAX_HOIST_DEPTH): New macro.
17142         * doc/invoke.texi (max-hoist-depth): Document.
17143
17144 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17145
17146         PR rtl-optimization/40956
17147         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17148         constants.
17149
17150 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17151
17152         PR target/42495
17153         PR middle-end/42574
17154         * config/arm/arm.c (legitimize_pic_address): Use
17155         gen_calculate_pic_address pattern to emit calculation of PIC address.
17156         (will_be_in_index_register): New function.
17157         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17158         (thumb1_legitimate_address_p): Use it provided !strict_p.
17159         * config/arm/arm.md (calculate_pic_address): New expand and split.
17160
17161 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17162
17163         PR target/42495
17164         PR middle-end/42574
17165         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17166         * config/arm/arm.md (define_split "J", define_split "K"): Make
17167         IRA/reload friendly.
17168
17169 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17170
17171         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17172         unused checks.
17173         (pre_edge_insert, hoist_code): Update.
17174
17175 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17176
17177         PR target/42495
17178         PR middle-end/42574
17179         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17180
17181 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17182
17183         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17184
17185 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17186
17187         PR rtl-optimization/40956
17188         PR target/42495
17189         PR middle-end/42574
17190         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17191         for hoisting.
17192         (hoist_code): Count occurences in current block too.
17193
17194 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17195
17196         * gcse.c (struct expr:max_distance): New field.
17197         (doing_code_hoisting_p): New static variable.
17198         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17199         simple expressions, don't change behavior for PRE.  Set max_distance.
17200         (insert_expr_in_table): Set new max_distance field.
17201         (hash_scan_set): Update.
17202         (hoist_expr_reaches_here_p): Stop search after max_distance
17203         instructions.
17204         (find_occr_in_bb): New static function.  Use it in ...
17205         (hoist_code): Calculate sizes of basic block before any changes are
17206         done.  Pass max_distance to hoist_expr_reaches_here_p.
17207         (one_code_hoisting_pass): Set doing_code_hoisting_p.
17208
17209         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
17210         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
17211         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
17212         macros.
17213         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
17214         Document.
17215
17216 2010-07-27  Jeff Law  <law@redhat.com>
17217             Maxim Kuvyrkov  <maxim@codesourcery.com>
17218
17219         * gcse.c (compute_transpout, transpout): Remove, move logic
17220         to prune_expressions.
17221         (compute_pre_data): Move pruning of trapping expressions ...
17222         (prune_expressions): ... here.  New static function.
17223         (compute_code_hoist_data): Use it.
17224         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
17225
17226 2010-07-27  Xinliang David Li  <davidxl@google.com>
17227
17228         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
17229         (rewrite_use_address): Adjust iv update position when needed.
17230
17231 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17232
17233         * dbgcnt.def (hoist_insn): New debug counter.
17234         * gcse.c (hoist_code): Use it.
17235
17236 2010-07-27  Xinliang David Li  <davidxl@google.com>
17237
17238         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
17239         (niter_for_single_dom_exit): Passes additional parameter.
17240         (iv_period): Fix comments.
17241         (may_eliminate_iv): Handles multiple exit loops properly.
17242         (free_tree_niter_desc): New function.
17243         (free_loop_data): Frees up loop iteration descriptors.
17244
17245 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17246
17247         PR target/44542
17248         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
17249         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
17250         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
17251         (expand_one_var): Don't consider DECL_ALIGN for variables for
17252         which expand_one_stack_var_at has been already called.
17253
17254         PR testsuite/44701
17255         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
17256         constraints on IA-64.
17257
17258 2010-07-27  Jie Zhang  <jie@codesourcery.com>
17259
17260         PR target/44290
17261         Revert:
17262         2010-07-23  Jie Zhang  <jie@codesourcery.com>
17263
17264         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17265         false if ! tree_versionable_function_p.
17266
17267 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17268
17269         * dwarf2out.c (add_data_member_location_attribute): Use
17270         add_AT_unsigned instead of add_AT_int if offset is non-negative.
17271
17272 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17273
17274         * postreload.c (try_replace_in_use): New static function.
17275         (reload_combine_recognize_const_pattern): Use it here.  Allow
17276         substituting into a final add insn, and substituting into a memory
17277         reference in an insn that sets the reg.
17278
17279 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17280
17281         * common.opt (o): Add MissingArgError.
17282         * doc/options.texi (MissingArgError): Document.
17283         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
17284         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
17285         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
17286         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
17287         * langhooks.h (struct lang_hooks): Remove missing_argument.
17288         * optc-gen.awk: Handle MissingArgError and output new structure
17289         field initializers.
17290         * opts.c (read_cmdline_option): Use missing_argument_error field
17291         instead of missing_argument langhook.
17292         * opts.h (struct cl_option): Add missing_argument_error field.
17293         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
17294
17295 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17296
17297         PR target/29090
17298         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
17299         Darwin64 ABI, for zero-sized objects.
17300
17301 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17302
17303         PR target/35491
17304         PR target/29090
17305
17306         Merge from Apple local 4.2.1.
17307         2005-05-11  Stan Shebs  <shebs@apple.com>
17308         Fix 64-bit varargs for Darwin (Radar 4028089).
17309         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
17310         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
17311         Add argument, add case for 8-byte register half-filled with a float.
17312         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
17313         single-precision floats specially.
17314
17315 2010-07-27  Ira Rosen  <irar@il.ibm.com>
17316
17317         PR tree-optimization/44152
17318         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
17319         complex numbers for further check.
17320         (vect_supported_load_permutation_p): Check nodes with
17321         complex numbers.
17322
17323 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17324
17325         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
17326         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
17327         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
17328         (LANG_HOOKS_INITIALIZER): Add new hooks.
17329         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
17330         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
17331         and complain_wrong_lang_p.  Update init_options prototype.
17332         * c-objc-common.c (c_initialize_diagnostics): First call
17333         c_common_initialize_diagnostics.
17334         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
17335         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
17336         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
17337         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
17338         (hook_uint_void_0): New.
17339         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
17340         (hook_uint_void_0): New.
17341         * opts-common.c (decode_cmdline_option,
17342         decode_cmdline_options_to_array): Also fill in canonical_option field.
17343         * opts.c (complain_wrong_lang): Use langhook to determine whether
17344         to complain instead of special-casing LTO.
17345         (decode_options): Separate lang_mask determination with
17346         option_lang_mask hook from call of init_options hook.
17347         * opts.h (struct cl_decoded_option): Add canonical_option.
17348
17349 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17350
17351         PR tree-optimization/45083
17352         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
17353
17354 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17355
17356         * postreload.c (reload_combine_recognize_const_pattern): Move test
17357         for limiting the insn movement to the right scope.
17358
17359         PR rtl-optimization/45051
17360         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
17361         than reg_mentioned_p.
17362
17363 2010-07-26  Richard Henderson  <rth@redhat.com>
17364
17365         PR target/44132
17366         * tree-emutls.c: New file.
17367         * Makefile.in (OBJS-common): Add it.
17368         * tree-pass.h (pass_ipa_lower_emutls): Declare.
17369         * passes.c (init_optimization_passes): Add it.
17370
17371         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17372         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17373         * expr.c (emutls_var_address): Delete.
17374         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17375         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17376         (emutls_finish): Delete.
17377         * toplev.c (compile_file): Don't call it.
17378         * tree.h (emutls_decl): Delete.
17379         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17380         (emutls_finish, emutls_finalize_control_var): Delete.
17381         (emutls_object_type): Move to tree-emutls.c.
17382         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17383         default_emutls_var_fields, get_emutls_object_type,
17384         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17385         default_emutls_var_init): Likewise.
17386         (get_variable_section): Don't special case emutls.
17387         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17388         default_elf_select_section, default_unique_section,
17389         default_encode_section_info): Likewise.
17390         * varpool.c (decide_is_variable_needed): Likewise.
17391         * gimple-iterator.c (update_call_edge_frequencies): New
17392         (gsi_insert_on_edge_immediate): Use it.
17393         (gsi_insert_seq_on_edge_immediate): Likewise.
17394         (gsi_commit_one_edge_insert): Likewise.
17395
17396         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17397         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17398         (x86_64_elf_unique_section): Likewise.
17399
17400 2010-07-26  Jan Hubicka  <jh@suse.cz>
17401
17402         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17403         GTY((skip)).
17404
17405 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17406
17407         * target.def (output_source_filename): New hook.
17408         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17409         * doc/tm.texi: Regenerate.
17410         * toplev.c (output_file_directive) Remove function.
17411         * toplev.h (output_file_directive) Remove.
17412         * output.h (default_asm_output_source_filename,
17413         output_file_directive): Declare.
17414         * varasm.h (default_asm_output_source_filename,
17415         output_file_directive): New functions.
17416
17417         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17418         * config/mips/mips-protos.h (mips_output_filename): Remove.
17419         * config/mips/mips.c (mips_output_filename): Make Static.
17420         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17421
17422 2010-07-26  Richard Guenther  <rguenther@suse.de>
17423
17424         PR tree-optimization/43784
17425         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17426         if the destination is used by the call.
17427
17428 2010-07-26  Richard Guenther  <rguenther@suse.de>
17429
17430         PR middle-end/45073
17431         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17432         SSA updating on being in SSA form.
17433
17434 2010-07-26  Richard Guenther  <rguenther@suse.de>
17435
17436         PR middle-end/45056
17437         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17438
17439 2010-07-26  Richard Guenther  <rguenther@suse.de>
17440
17441         PR tree-optimization/45071
17442         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17443         adjust op->opcode.
17444
17445 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17446
17447         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17448         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17449         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17450         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17451         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17452         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17453         save_r31, return_r31, save_interrupt, return_interrupt,
17454         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17455         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17456         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17457         new ABI requirements.
17458         (save_r6_r9, L_callt_save_r6_r9): Remove.
17459         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17460         const_float_1_operand const_float_0_operand): New Predicates.
17461         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17462         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17463         * config/v850/t-v850: Update multilibs for new target variants.
17464         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17465         * config/v850/t-v850e: Likewise.
17466         * config/v850/v850.c (v850_issue_rate): New.
17467         (v850_strict_argument_naming): New.
17468         (function_arg): Modify to generate a different ABI.
17469         (print_operand): Update case 'z' to support float modes.
17470         (output_move_single): Modify to generate appropriate and better
17471         assembly.
17472         (v850_float_z_comparison_operator, v850_select_cc_mode,
17473         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17474         v850_gen_compare): New functions to support comparison of float values.
17475         (ep_memory_offset): Add support for V850E2 targets.
17476         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17477         (INTERRUPT_REGPARM_NUM): Remove.
17478         (compute_register_save_size): Add extra case to save/restore long call.
17479         (use_prolog_function): New function to support prologue.
17480         (expand_prologue): Add support for V850E2 targets and modified
17481         as per the current ABI requirements.
17482         (expand_epilogue): Likewise.
17483         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17484         (construct_save_jarl): Likewise.
17485         (construct_dispose_instruction): Update as per the current ABI
17486         requirements.
17487         (construct_prepare_instruction): Likewise.
17488         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17489         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17490         (CPP_SPEC): Updated to support v850e2 targets.
17491         (STRICT_ALIGNMENT): Modified.
17492         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17493         (FIXED_REGISTERS): Likewise.
17494         (CALL_USED_REGISTERS): Likewise.
17495         (CONDITIONAL_REGISTER_USAGE): Updated.
17496         (HARD_REGNO_MODE_OK): Updated.
17497         (reg_class): Updated to add even registers.
17498         (REG_CLASS_NAMES): Likewise.
17499         (REG_CLASS_CONTENTS): Likewise.
17500         (REGNO_REG_CLASS): Updated for CC registers.
17501         (REG_CLASS_FROM_LETTER): Added support for even registers.
17502         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17503         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17504         ARG_POINTER_REGNUM): Updated.
17505         (FUNCTION_ARG_ADVANCE): Define.
17506         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17507         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17508         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17509         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17510         (SELECT_CC_MODE): Define.
17511         (REGISTER_NAMES): Updated to add psw and fcc registers.
17512         (ADDITIONAL_REGISTER_NAMES): Updated.
17513         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17514         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17515         * config/v850/v850.md (define_constants): Define new constants.
17516         (type): Update store,bit1,macc,div,fpu and single attributes.
17517         (cpu): New attribute.
17518         (cc): Add set_z attribute.
17519         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17520         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17521         23word_store): New instructions for 23-bit displacement load and store.
17522         (movqi_internal, movhi_internal): Update the attributes.
17523         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17524         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17525         the attributes.
17526         (v850_tst1): Modified using CC_REGNUM.
17527         (tstsi): Remove.
17528         (cmpsi): Modified as define_expand from define_insn.
17529         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17530         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17531         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17532         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17533         one_cmplsi2): Clobber the CC_REGNUM register.
17534         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17535         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17536         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17537         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17538         v850e2v3 target.
17539         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17540         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17541         targets.
17542         (sasf_1, sasf_2): Remove.
17543         (sasf): New instruction.
17544         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17545         targets. CC_REGNUM register is clobbered and attributes are
17546         updated.
17547         (branch_z_normal, branch_z_invert, branch_nz_normal,
17548         branch_nz_invert): New branch related instructions.
17549         (jump): Updated the attributes.
17550         (switch): Update to support new targets. CC_REGNUM register is
17551         clobbered and attributes are updated.
17552         (call_internal_short, call_internal_long, call_value_internal_short,
17553         call_value_internal_long): Updated the attributes.
17554         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17555         clobbered and attributes are updated.
17556         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17557         Update to support new targets. CC_REGNUM register is clobbered.
17558         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17559         instructions.
17560         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17561         are updated.
17562         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17563         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17564         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17565         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17566         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17567         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17568         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17569         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17570         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17571         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17572         point instructions defined for V850e2v3 target.
17573         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17574         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17575         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17576         support for new targets.
17577         * config/v850/v850-modes.def: New file.
17578         * config/v850/v850.opt(mstrict-align): Remove.
17579         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17580         mv850e2v3): New command line options for V850.
17581         * config.gcc: Update the newly added files.
17582         * doc/invoke.texi: Update the newly added command line options for
17583         V850 target.
17584
17585 2010-07-26  Richard Guenther  <rguenther@suse.de>
17586
17587         PR tree-optimization/45052
17588         * ipa-pure-const.c (check_stmt): Check volatileness.
17589
17590 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17591
17592         PR target/44707
17593         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17594         * config/sparc/sparc.c: Include reload.h.
17595         (legitimize_tls_address): Rename into...
17596         (sparc_legitimize_tls_address): ...this.
17597         (legitimize_pic_address): Rename into...
17598         (sparc_legitimize_pic_address): ...this.
17599         (sparc_expand_move): Adjust to above renaming.
17600         (sparc_tls_referenced_p): Likewise.
17601         (sparc_legitimize_tls_address): Likewise.
17602         (sparc_legitimize_pic_address): Likewise.
17603         (sparc_legitimize_address): Likewise.
17604         (sparc_output_mi_thunk): Likewise.
17605         (sparc_legitimize_reload_address): New global function.  Recognize
17606         (lo_sum (high ...) ...) patterns generated by earlier passes.
17607         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17608
17609 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17610
17611         PR target/44484
17612         * config/sparc/predicates.md (memory_reg_operand): Delete.
17613         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17614         (*sync_compare_and_swap): Encode the address form in the pattern.
17615         (*sync_compare_and_swapdi_v8plus): Likewise.
17616
17617 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17618
17619         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17620         Streamline paragraph on compatibility with the system compiler.
17621
17622 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17623
17624         PR middle-end/45035
17625         * alias.c (true_dependence_1): Fix thinko in merge of old
17626         true_dependence and canon_true_dependence.
17627
17628 2010-07-23  Jan Hubicka  <jh@suse.cz>
17629
17630         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17631         references.
17632
17633 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17634
17635         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17636         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17637         and an unnecessary assignment.
17638         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17639         self-assign warning.
17640         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17641         unnecessary self-init.
17642
17643 2010-07-23  Richard Guenther  <rguenther@suse.de>
17644
17645         PR lto/43071
17646         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17647         for -flto and -fwhopr.
17648
17649 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17650
17651         PR target/41943
17652         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17653         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17654         * config.gcc (user_headers_inc_next_pre): New.
17655         (user_headers_inc_next_post): Likewise.
17656         (*-w64-mingw*): Use for float.h post-fixing, and for
17657         stddef.h/stdarg.h pre-fixing by include_next.
17658         * configure.ac (user_headers_inc_next_post): New.
17659         (user_headers_inc_next_pre): New.
17660         * configure: Regenerated.
17661
17662 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17663
17664         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17665         Set tga_func for Solaris 2/x86 resp. SPARC.
17666         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17667         (LIB_THREAD_LDFLAGS_SPEC): Define.
17668         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17669         * configure: Regenerate.
17670         * config.in: Regenerate.
17671         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17672         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17673         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17674         alternate thread libraries on Solaris 8.
17675         Document TLS patch requirements.
17676         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17677         Document tls.
17678
17679         PR target/18788
17680         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17681         -shared.
17682
17683 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17684
17685         * tree.h (struct tree_base): Add nameless_flag bitfield.
17686         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17687         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17688         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17689         DECL_ARTIFICIAL where needed.
17690         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17691         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17692         has DECL_NAMELESS set.
17693
17694 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17695
17696         PR tree-optimization/44915
17697         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17698         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17699         (analyze_function): Likewise.
17700
17701 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17702
17703         PR tree-optimization/44914
17704         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17705         changed, add purging dead eh edges.
17706         (ipa_sra_modify_function_body): Return true if CFG was changed,
17707         simplify purging dead eh edges.
17708         (modify_function): Return true if CFG was changed.
17709         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17710         was changed.
17711         (ipa_early_sra): Likewise.
17712
17713 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17714
17715         PR target/44290
17716         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17717         if "naked".
17718         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17719         false if ! tree_versionable_function_p.
17720
17721 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17722
17723         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17724         * ipa-pure-const.c (special_builtlin_state): Remove
17725         BUILT_IN_ARGS_INFO case.
17726         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17727         * builtins.c (expand_builtin): Likewise.
17728         (expand_builtin_args_info): Remove.
17729         * doc/tm.texi (__builtin_args_info): Remove.
17730         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17731         * doc/tm.text.in: Likewise.
17732
17733 2010-07-23  Richard Guenther  <rguenther@suse.de>
17734
17735         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17736         (lto_symtab_merge_decls_2): Likewise.
17737         * tree-ssa.c (useless_type_conversion_p): Likewise.
17738         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17739         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17740         (struct type_pair_d): Make same_p an array indexed by mode.
17741         Update comment.
17742         (lookup_type_pair): Update initialization.
17743         (struct sccs): Adjust same_p type.
17744         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17745         Adjust.
17746         (print_gimple_types_stats): Likewise.
17747         * gimple.h (enum gtc_mode): New.
17748         (gimple_types_compatible_p): Adjust prototype.
17749
17750 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17751
17752         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17753         again after processing insn.
17754
17755 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17756
17757         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17758         proper words when !tree_versionable_function_p.
17759
17760 2010-07-23  Richard Guenther  <rguenther@suse.de>
17761
17762         PR tree-optimization/45037
17763         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17764
17765 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17766
17767         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17768         Add MCORE instead.
17769
17770 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17771
17772         PR lto/44992
17773         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17774         lto_get_section_name.
17775         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17776         * lto-streamer-out.c (produce_asm): Likewise.
17777         (copy_function): Likewise.
17778         (produce_symtab): Likewise.
17779         (produce_asm_for_decls): Likewise.
17780         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17781         Rewrite to add random postfix to LTO sections.
17782         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17783         (lto_get_section_name): Add file_data argument to prototype.
17784
17785 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17786
17787         * lto-section-in.c (lto_section_name): Synchronize names
17788         with lto_get_section_name.
17789
17790 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17791
17792         * lto-opts.c (lto_read_file_options): Check for missing section.
17793
17794 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17795
17796         * ira.c (check_allocation): Correctly handle the case where an allocno
17797         with two objects was allocated to a single reg.
17798
17799 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17800
17801         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17802         (is_widening_mult_p): Likewise.
17803         (convert_to_widen): Use them.
17804         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17805         well as integer ones.
17806
17807 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17808
17809         * alias.c (true_dependence_1): New function, merged version of
17810         true_dependence and canon_true_dependence.
17811         (true_dependence): Simplify.
17812         (canon_true_dependence): Simplify.
17813
17814 2010-07-22  Richard Henderson  <rth@redhat.com>
17815
17816         PR target/45027
17817         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17818         of V4SFmode for the SSE saves; increase stack alignment if needed.
17819         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17820
17821 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17822
17823         PR bootstrap/45028
17824         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17825         call cprop_find_used_regs again via note_uses.
17826
17827 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17828
17829         * alias.c (get_alias_set): Fix formatting issues.
17830
17831 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17832
17833         PR middle-end/44878
17834         * stmt.c (expand_value_return):  Call promote_function_mode with
17835         a for_return argument of 2 when returning by reference.
17836
17837 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17838
17839         PR debug/45024
17840         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17841         unit DIE if we can find the scope DIE.
17842
17843 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17844
17845         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17846         changed.  Initialize OBJECT_SUBWORD.
17847         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17848         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17849         all callers changed.
17850         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
17851         (finish_allocno): Likewise.
17852         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
17853         (remove_low_level_allocnos): Likewise.
17854         (update_bad_spill_attribute): Likewise.
17855         (setup_min_max_allocno_live_range_point): Likewise.
17856         (sort_conflict_id_map): Likewise.
17857         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
17858         (ior_hard_reg_conflicts): New function.
17859         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
17860         (compress_conflict_vecs): Iterate over objects, not allocnos.
17861         (ira_add_live_range_to_object): New function.
17862         (object_range_compare_func): Renamed from allocno_range_compare_func.
17863         All callers changed.
17864         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
17865         subobjects, widen the min/max range of the lowest-order object to
17866         potentially include all other such low-order objects.
17867         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
17868         (check_allocation): Likewise.  Use more fine-grained tests for register
17869         conflicts.
17870         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
17871         allocno subobjects.
17872         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
17873         choices about which bits to set in each set.  Don't use
17874         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
17875         using the multiple sets we computed.
17876         (push_allocno_to_stack): Iterate over allocno subobjects.
17877         (all_conflicting_hard_regs_coalesced): New static function.
17878         (setup_allocno_available_regs_num): Use it.
17879         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
17880         subobjects.
17881         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
17882         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
17883         by ALLOCNO_NUM_OBJECTS.
17884         (calculate_spill_cost): Likewise.
17885         (color_pass): Express if statement in a more normal way.
17886         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
17887         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
17888         (setup_slot_coalesced_allocno_live_ranges): Likewise.
17889         (allocno_reload_assign): Likewise.
17890         (ira_reassign_pseudos): Likewise.
17891         (fast_allocation): Likewise.
17892         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17893         (print_allocno_conflicts): Likewise.
17894         (ira_build_conflicts): Likewise.
17895         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
17896         callers changed.  Test subword 0 of each allocno for conflicts.
17897         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
17898         callers changed.  Iterate over allocno subobjects.
17899         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
17900         * ira-int.h (struct ira_allocno): New member: num_objects.
17901         Rename object to objects and change it into an array.
17902         (ALLOCNO_OBJECT): Add new argument N.
17903         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
17904         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
17905         (ior_hard_reg_conflicts): Declare.
17906         (ira_add_live_range_to_object): Declare.
17907         (ira_allocno_object_iterator): New.
17908         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
17909         (FOR_EACH_ALLOCNO_OBJECT): New macro.
17910         * ira-lives.c (objects_live): Renamed from allocnos_live; all
17911         uses changed.
17912         (allocnos_processed): New sparseset.
17913         (make_object_born): Renamed from make_allocno_born; take an
17914         ira_object_t argument.  All callers changed.
17915         (make_object_dead): Renamed from make_allocno_dead; take an
17916         ira_object_t argument.  All callers changed.
17917         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
17918         All callers changed.
17919         (mark_pseudo_regno_live): Iterate over allocno subobjects.
17920         (mark_pseudo_regno_dead): Likewise.
17921         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
17922         functions.
17923         (mark_ref_live): Detect subword accesses and call
17924         mark_pseudo_regno_subword_live as appropriate.
17925         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
17926         (process_bb_nodes_live): Deal with object-related updates first; set
17927         and test bits in allocnos_processed to avoid computing allocno
17928         statistics more than once.
17929         (create_start_finish_chains): Iterate over objects, not allocnos.
17930         (print_object_live_ranges): New function.
17931         (print_allocno_live_ranges): Use it.
17932         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
17933         and objects_live.
17934
17935 2010-07-22  Richard Guenther  <rguenther@suse.de>
17936
17937         PR lto/42451
17938         * gimple.c (gtc_next_dfs_num): New global.
17939         (struct sccs): Make value a union, add integer same_p member.
17940         (gtc_visit): New function.
17941         (gimple_types_compatible_p_1): New function, split out from ...
17942         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
17943         (iterative_hash_gimple_type): Adjust for sccs change.
17944
17945 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17946
17947         PR tree-optimization/44891
17948         * tree-sra.c: Include gimple-pretty-print.h.
17949         (replace_uses_with_default_def_ssa_name): Renamed to
17950         get_repl_default_def_ssa_name, return the new SSA name instead of
17951         replacing the old one.
17952         (sra_modify_assign): Dump a message when removing a load, if the LHS
17953         is an SSA_NAME, do not do any propagation, just set the RHS to a
17954         default definition SSA NAME, type convert if necessary.
17955         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
17956
17957 2010-07-22  Richard Guenther  <rguenther@suse.de>
17958
17959         PR tree-optimization/45017
17960         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
17961         TYPE_PRECISION of integral types in addition to size.
17962
17963 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
17964
17965         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
17966         when no C library is specified.
17967
17968 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17969
17970         * ipa-prop.h (struct ipa_node_params): Updated comment.
17971         (struct ipa_edge_args): Likewise.
17972         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
17973
17974 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17975
17976         * cgraphunit.c (verify_edge_count_and_frequency): New function.
17977         (verify_cgraph_node): Verify frequencies of indirect edges.
17978         * tree-inline.c (tree_function_versioning): Update frequencies of
17979         indirect edges.
17980
17981 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17982
17983         PR target/43698
17984         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
17985         Set *arm_rev to be predicable.
17986
17987 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
17988
17989         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
17990         (LINK_COMMAND_SPEC_A): New.
17991         (DSYMUTIL): New.
17992         (DSYMUTIL_SPEC): New.
17993         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
17994         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
17995
17996 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
17997
17998         * calls.c (load_register_parameters): Move check for zero
17999         sized items so that only the call to
18000         mem_overlaps_already_clobbered_arg_p () is protected.
18001
18002 2010-07-22  Jan Hubicka  <jh@suse.cz>
18003
18004         * ipa-pure-const.c (varying_state): Break out from ...
18005         (get_function_state): ... here; always return varying_state
18006         when state would be NULL otherwise.
18007         (remove_node_data): Do not free varying state.
18008
18009 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18010
18011         PR bootstrap/44970
18012         PR middle-end/45009
18013         * postreload.c: Include "target.h".
18014         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18015         into account.
18016         (fixup_debug_insns): Don't copy the rtx.
18017         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18018         Don't copy when replacing.  Call fixup_debug_insns in the case where
18019         we merged one add with another.
18020         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18021         Try harder to determine whether we're picking a valid index register.
18022         Don't set store_ruid for an insn we're going to scan in the
18023         next iteration.
18024         (reload_combine): Remove unused code.
18025         (reload_combine_note_use): When updating use information for
18026         an old insn, ignore a use that occurs after store_ruid.
18027         * Makefile.in (postreload.o): Update dependencies.
18028
18029         * function.c (record_hard_reg_sets): Restrict the previous change
18030         to cases where the incoming nominal mode is the same as the
18031         incoming promoted mode and everything happens in MODE_INT.
18032
18033 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18034
18035         PR debug/45015
18036         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18037         ASM_OPERANDS_OUTPUT_IDX.
18038         (adjust_insn): For inline asm with multiple sets ensure first
18039         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18040         the insn.
18041
18042 2010-07-21  Richard Henderson  <rth@redhat.com>
18043
18044         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18045         comparison for avoiding xmm register saves.  Emit the xmm register
18046         saves explicitly.
18047         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18048         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18049         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18050         Remove patterns and the associated splitters.
18051
18052 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18053
18054         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18055         and imagine parts of a complex, so that they can have the same
18056         base and fall into the same group.
18057
18058 2010-07-21  Richard Guenther  <rguenther@suse.de>
18059
18060         PR lto/45018
18061         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18062         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18063         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18064
18065 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18066
18067         PR tree-optimization/44900
18068         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18069         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18070
18071 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18072
18073         PR middle-end/44738
18074         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18075
18076 2010-07-21  Richard Guenther  <rguenther@suse.de>
18077
18078         PR middle-end/45013
18079         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18080         gimple_types_compatible_p only when in lto.
18081         * gimple.c (gimple_types_compatible_p): Use canonical types
18082         to speed up comparison.
18083
18084 2010-07-21  Richard Guenther  <rguenther@suse.de>
18085
18086         * tree-flow.h (referenced_var): Move define ...
18087         * tree-flow-inline.h (referenced_var): ... here as an inline
18088         function.  Assert here ...
18089         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18090         * tree-ssa.c (maybe_optimize_var): Check if the variable
18091         is in referenced vars.
18092         (execute_update_addresses_taken): Remove old broken check.
18093         * gimple-pretty-print.c (pp_points_to_solution): Use
18094         referenced_var_lookup.
18095         * tree-into-ssa.c (dump_decl_set): Likewise.
18096
18097 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18098
18099         PR debug/45003
18100         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18101         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18102         ZERO_EXTEND here.
18103
18104 2010-07-20  Richard Henderson  <rth@redhat.com>
18105
18106         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18107
18108 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18109
18110         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18111         computing the sum of the stack pointer and a large constant.
18112         * config/arm/constraints.md (M): Remove superfluous parentheses.
18113         (Pc): New constraint.
18114
18115 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18116
18117         PR debug/45006
18118         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18119         operand's type if exp is tcc_unary class tree.
18120
18121 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18122
18123         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18124         Reverse sense of if_then_else condition.
18125
18126 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18127
18128         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18129         * config/rs6000/rs6000.c (rs6000_override_options): Set
18130         rs6000_block_move_inline_limit appropriately.
18131         (expand_block_move): Use rs6000_block_move_inline_limit.
18132         * doc/invoke.texi (mblock-move-inline-limit): Document.
18133
18134 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18135
18136         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18137         FROM and TO.  All callers changed.  Don't look for tracked uses,
18138         just scan the RTL for DEBUG_INSNs and substitute.
18139         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18140         (reload_combine): Ignore DEBUG_INSNs.
18141
18142 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18143
18144         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18145         depth to 8 from 5.
18146
18147         PR debug/45003
18148         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18149         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18150         instead of the result's type.
18151
18152 2010-07-20  Richard Guenther  <rguenther@suse.de>
18153
18154         PR tree-optimization/44977
18155         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18156         SSA form.
18157
18158 2010-07-20  Richard Guenther  <rguenther@suse.de>
18159
18160         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18161         (lto_symtab_merge_decls_2): Likewise.
18162         * gimple.h (gimple_types_compatible_p): Declare.
18163         * gimple.c (gimple_queue_type_fixup): Remove.
18164         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18165         (gimple_compatible_complete_and_incomplete_type_p): New function.
18166         (gimple_types_compatible_p): Adjust.
18167         (gimple_register_type): Remove type fixup code.
18168         (print_gimple_types_stats): Adjust.
18169         (free_gimple_type_tables): Likewise.
18170         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18171         * tree-ssa.c (useless_type_conversion_p): Likewise.
18172
18173 2010-07-20  Richard Guenther  <rguenther@suse.de>
18174
18175         PR middle-end/44971
18176         PR middle-end/44988
18177         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18178         (execute_update_addresses_taken): ... here.
18179         (non_rewritable_mem_ref_base): Likewise.
18180         (execute_update_addresses_taken): Do not iterate over all referenced
18181         vars but just all local decls and parms.
18182         Properly check call and asm arguments and rewrite call arguments.
18183
18184 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18185
18186         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18187         to top level.
18188         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18189         definitions ...
18190         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18191         New macro.
18192         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18193
18194 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18195
18196         * gengtype.c (start_root_entry): New function, split out from
18197         write_root.  Check whether V is null and raise an error if so.
18198         (write_field_root): Check for V being null.  Don't raise an error here;
18199         set V to null instead.
18200         (write_root): Update comment above function.  Use start_root_entry.
18201
18202 2010-07-19  Xinliang David Li  <davidxl@google.com>
18203
18204         PR testsuite/44932
18205         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
18206         def edges.
18207         (find_uninit_use): Add dump.
18208         (is_use_properly_guarded): Ditto.
18209         (warn_uninitialized_phi): Ditto.
18210         (execute_late_warn_uninitialized): Ditto.
18211
18212 2010-07-19  Richard Guenther  <rguenther@suse.de>
18213
18214         PR middle-end/44941
18215         * expr.c (emit_block_move_hints): Move zero size check first.
18216         Move asserts to more useful places.
18217         * calls.c (load_register_parameters): Check for zero size.
18218
18219 2010-07-19  Richard Henderson  <rth@redhat.com>
18220
18221         * tree-optimize.c (execute_all_early_local_passes): New.  Change
18222         cgraph_state here ...
18223         (execute_early_local_optimizations): ... not here.  Remove.
18224         (pass_early_local_passes, pass_all_early_optimizations): Update.
18225
18226 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
18227
18228         * postreload.c (reload_combine_closest_single_use): Ignore the
18229         number of uses for DEBUG_INSNs.
18230         (fixup_debug_insns): New static function.
18231         (reload_combine_recognize_const_pattern): Use it.  Don't let the
18232         main loop be affected by DEBUG_INSNs.
18233         Really disallow moving adds past a jump insn.
18234         (reload_combine_recognize_pattern): Don't update use_ruid here.
18235         (reload_combine_note_use): Do it here.
18236         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
18237
18238 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
18239
18240         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
18241         of a loop.
18242         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
18243
18244 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
18245
18246         * config/i386/darwin.h: Define darwin_emit_branch_islands.
18247         (TARGET_MACHO_BRANCH_ISLANDS): New.
18248         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
18249         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
18250         default value.
18251         * config/i386/i386.c (output_pic_addr_const): Do not emit
18252         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
18253         (x86_output_mi_thunk): Adjust symbol creation.
18254         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
18255         Remove out of date comment.
18256         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
18257         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18258         (DARWIN_GENERATE_ISLANDS): Ditto.
18259         (output_call):  Do not emit branch islands unless
18260         darwin_emit_branch_islands is set.
18261         * config/darwin.c: Declare darwin_emit_branch_islands.
18262         (machopic_indirect_data_reference): Do not emit unless
18263         darwin_emit_branch_islands is set.
18264         (darwin_override_options): Set darwin_emit_branch_islands
18265         where it is needed.
18266         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18267
18268 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18269
18270         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18271         sse_runtime, sse2_runtime.
18272
18273 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
18274
18275         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
18276         low half of a single-register SCmode return value before ORing
18277         it with the high half.
18278         * config/mips/mips16.S (MERGE_GPRf): Likewise.
18279
18280 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18281
18282         PR target/44805
18283         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
18284         on all targets.
18285
18286 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
18287
18288         PR target/42235
18289         * postreload.c (reload_cse_move2add): Return bool, true if anything.
18290         changed.  All callers changed.
18291         (move2add_use_add2_insn): Likewise.
18292         (move2add_use_add3_insn): Likewise.
18293         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
18294         reload_combine.
18295         (RELOAD_COMBINE_MAX_USES): Bump to 16.
18296         (last_jump_ruid): New static variable.
18297         (struct reg_use): New members CONTAINING_MEM and RUID.
18298         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
18299         (reload_combine_split_one_ruid, reload_combine_split_ruids,
18300         reload_combine_purge_insn_uses, reload_combine_closest_single_use
18301         reload_combine_purge_reg_uses_after_ruid,
18302         reload_combine_recognize_const_pattern): New static functions.
18303         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
18304         is true for our reg and that we have available index regs.
18305         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
18306         callers changed.  Use them to initialize fields in struct reg_use.
18307         (reload_combine): Initialize last_jump_ruid.  Be careful when to
18308         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
18309         Call reload_combine_recognize_const_pattern.
18310         (reload_combine_note_store): Update REAL_STORE_RUID field.
18311
18312 2010-07-16  Jason Merrill  <jason@redhat.com>
18313
18314         * Makefile.in (opts-common.o): Depend on options.h.
18315
18316 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18317
18318         * tree.c (build_common_builtin_nodes): Use build_function_type_list
18319         instead of build_function_type.
18320         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
18321         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
18322
18323 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18324
18325         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
18326         do all the work.
18327         (rs6000_emit_int_cmove): Use function pointers for insn generation.
18328         Don't force values into registers unnecessarily.
18329         (output_isel): Assert that we're not given conditions we can't handle.
18330         Delete corresponding code.
18331         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
18332         scc_comparison_operator constraint.  Permit 0 for the consequent
18333         operand.  Permit any GPR for the alternative operand.
18334         (isel_unsigned_<mode>): Likewise.
18335
18336 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
18337
18338         PR target/44942
18339         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
18340         argument to const_tree.
18341         * config/i386/i386.c (function_arg_advance): If padding needs to be
18342         inserted before argument, increment cum->words by number of padding
18343         words as well.
18344         (contains_aligned_value_p): Change argument to const_tree.
18345         (ix86_function_arg_boundary): Change second argument to const_tree.
18346
18347 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
18348
18349         PR target/42235
18350         * function.c (record_hard_reg_sets): New static function.
18351         (assign_parm_setup_reg): If an optab for extending exists and the
18352         generated code clobbbers no hard regs, emit the insn directly and
18353         create a REG_EQUIV note.
18354
18355 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18356
18357         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
18358         TREE_CHAIN.
18359         * c-typeck.c (push_init_level): Likewise.
18360         (process_init_element): Likewise.
18361
18362 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
18363
18364         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
18365         (integer_three_node): Add.
18366         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
18367         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
18368         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
18369         of call build_int_cst.
18370         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18371         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18372         (find_interesting_uses_address): Ditto.
18373         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18374         * tree-eh.c (lower_eh_constructs_2): Ditto.
18375         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18376         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18377         * expmed.c (expand_divmod): Ditto.
18378         * tree-mudflap.c (mx_register_decls): Ditto.
18379         * varasm.c (array_size_for_constructor): Ditto.
18380         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18381         * c-parser.c (c_parser_postfix_expression): Ditto.
18382
18383 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18384
18385         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18386         New static variables.
18387         (reload_combine_recognize_pattern): New static function, broken out
18388         of reload_combine.
18389         (reload_combine): Use it.  Only initialize first_index_reg and
18390         last_index_reg once.
18391
18392 2010-07-15  Richard Henderson  <rth@redhat.com>
18393
18394         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18395         when done.
18396
18397 2010-07-15  Jan Hubicka  <jh@suse.cz>
18398
18399         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18400         comdats for broken gold.
18401         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18402
18403 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18404
18405         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18406
18407 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18408
18409         * tree.h (DECL_CHAIN): Define.
18410         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18411         * c-decl.c: Likewise.
18412         * c-parser.c: Likewise.
18413         * c-typeck.c: Likewise.
18414         * cfgexpand.c: Likewise.
18415         * cgraph.c: Likewise.
18416         * cgraphunit.c: Likewise.
18417         * combine.c: Likewise.
18418         * config/alpha/alpha.c: Likewise.
18419         * config/arm/arm.c: Likewise.
18420         * config/frv/frv.c: Likewise.
18421         * config/i386/i386.c: Likewise.
18422         * config/i386/winnt-cxx.c: Likewise.
18423         * config/ia64/ia64.c: Likewise.
18424         * config/iq2000/iq2000.c: Likewise.
18425         * config/mep/mep.c: Likewise.
18426         * config/mips/mips.c: Likewise.
18427         * config/pa/som.h: Likewise.
18428         * config/rs6000/rs6000.c: Likewise.
18429         * config/s390/s390.c: Likewise.
18430         * config/sh/sh.c: Likewise.
18431         * config/sh/symbian-cxx.c: Likewise.
18432         * config/sparc/sparc.c: Likewise.
18433         * config/spu/spu.c: Likewise.
18434         * config/stormy16/stormy16.c: Likewise.
18435         * config/vxworks.c: Likewise.
18436         * config/xtensa/xtensa.c: Likewise.
18437         * coverage.c: Likewise.
18438         * dbxout.c: Likewise.
18439         * dwarf2out.c: Likewise.
18440         * emit-rtl.c: Likewise.
18441         * expr.c: Likewise.
18442         * function.c: Likewise.
18443         * gimple-low.c: Likewise.
18444         * gimple-pretty-print.c: Likewise.
18445         * gimplify.c: Likewise.
18446         * integrate.c: Likewise.
18447         * ipa-inline.c: Likewise.
18448         * ipa-prop.c: Likewise.
18449         * ipa-split.c: Likewise.
18450         * ipa-struct-reorg.c: Likewise.
18451         * ipa-type-escape.c: Likewise.
18452         * langhooks.c: Likewise.
18453         * lto-cgraph.c: Likewise.
18454         * omp-low.c: Likewise.
18455         * stor-layout.c: Likewise.
18456         * tree-cfg.c: Likewise.
18457         * tree-complex.c: Likewise.
18458         * tree-dfa.c: Likewise.
18459         * tree-dump.c: Likewise.
18460         * tree-inline.c: Likewise.
18461         * tree-mudflap.c: Likewise.
18462         * tree-nested.c: Likewise.
18463         * tree-object-size.c: Likewise.
18464         * tree-pretty-print.c: Likewise.
18465         * tree-sra.c: Likewise.
18466         * tree-ssa-live.c: Likewise.
18467         * tree-ssa-loop-niter.c: Likewise.
18468         * tree-ssa-math-opts.c: Likewise.
18469         * tree-ssa-reassoc.c: Likewise.
18470         * tree-ssa-sccvn.c: Likewise.
18471         * tree-ssa-structalias.c: Likewise.
18472         * tree-tailcall.c: Likewise.
18473         * tree-vrp.c: Likewise.
18474         * tree.c: Likewise.
18475         * var-tracking.c: Likewise.
18476         * varasm.c: Likewise.
18477
18478 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18479
18480         PR target/44877
18481         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18482         (as well as pointers) as argument to mask_for_load builtins.
18483
18484 2010-07-15  Richard Guenther  <rguenther@suse.de>
18485
18486         PR tree-optimization/44946
18487         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18488         with accessing only padding properly.
18489
18490 2010-07-15  Jan Hubicka  <jh@suse.cz>
18491
18492         * ipa.c (function_and_variable_visibility): Variables marked as used
18493         should not be localized.
18494
18495 2010-07-15  Jan Hubicka  <jh@suse.cz>
18496
18497         * cgraph.c: Include lto-streamer.h
18498         (change_decl_assembler_name): Work when assembler name hash is at place.
18499         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18500         be sure to rename it to avoid name clash.
18501         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18502         Localize hidden symbols only when locally defined.
18503
18504 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18505
18506         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18507
18508 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18509             Kevin F. Quinn  <kevquinn@gentoo.org>
18510
18511         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18512         * common.opt: Add -Wtrampolines.
18513         * doc/invoke.texi: Add -Wtrampolines.
18514
18515 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18516
18517         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18518         cortex_a8_issue_ls.
18519
18520 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18521
18522         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18523         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18524
18525 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18526
18527         * config/spu/spu.c (reg_names): Remove prototype.
18528         (call_used_regs): Likewise.
18529
18530 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18531
18532         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18533         "unused" with attribute "used".
18534         (__JCR_END__): Likewise.
18535         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18536         "used" attribute.
18537         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18538
18539 2010-07-14  Richard Guenther  <rguenther@suse.de>
18540
18541         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18542         (maybe_fixup_decls): Likewise.
18543         (input_gimple_stmt): Do not fixup anything.
18544         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18545         non-automatic variable uses are wrapped inside a MEM_REF.
18546
18547 2010-07-14  Richard Henderson  <rth@redhat.com>
18548
18549         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18550         for functions.
18551         * varasm.c (assemble_variable): Remove early exit for functions;
18552         assert that we're given a variable.
18553
18554 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18555
18556         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18557         cortex_a8_default when neon_type is not none.
18558
18559 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18560
18561         * lower-subreg.c (subreg_context): New static bitmap.
18562         (decompose_multiword_subregs): Allocate and free it.
18563         (find_decomposable_subregs): Set a bit in it for a register that
18564         occurs in a subreg that changes mode but not size.
18565         (can_decompose_p): Test it instead of non_decomposable_context.
18566
18567 2010-07-14  Richard Guenther  <rguenther@suse.de>
18568
18569         PR tree-optimization/44824
18570         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18571         is_gimple_mem_ref_addr.
18572         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18573         non-decl_address_invariant_p addresses.
18574
18575 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18576
18577         * reload.c (find_reloads): Revert code to penalize small register
18578         classes that was brought in with the IRA merge.
18579
18580 2010-07-14  Richard Guenther  <rguenther@suse.de>
18581
18582         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18583         as base of ARRAY_REFs.
18584
18585 2010-07-14  Richard Guenther  <rguenther@suse.de>
18586
18587         PR middle-end/44930
18588         * tree-pretty-print.c (do_niy): Do not print a newline.
18589
18590 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18591
18592         * ira-int.h (struct ira_object): New.
18593         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18594         (struct ira_allocno): Remove members min, max,
18595         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18596         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18597         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18598         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18599         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18600         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18601         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18602         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18603         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18604         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18605         an ira_object_t rather than ira_allocno_t.  All uses changed.
18606         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18607         contains a vector of ira_object_t; all uses changed.
18608         (ira_objects_num): Declare variable.
18609         (ira_create_allocno_object): Declare function.
18610         (ira_conflict_vector_profitable_p): Adjust prototype.
18611         (ira_allocate_conflict_vec): Renamed from
18612         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18613         (ira_allocate_object_conflicts): Renamed from
18614         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18615         (struct ira_object_iterator): New.
18616         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18617         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18618         to conflict_vec_p.  All uses changed.
18619         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18620         Changed to take into account that conflicts are now tracked for
18621         objects.
18622         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18623         Args changed to accept ira_object_t.  All uses changed.
18624         (allocnos_conflict_p): New static function.
18625         (collected_conflict_objects): Renamed from collected_allocno_objects;
18626         now a vector of ira_object_t.  All uses changed.
18627         (build_conflict_bit_table): Changed to take into account that
18628         conflicts are now tracked for objects.
18629         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18630         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18631         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18632         setup_allocno_left_conflicts_size, allocno_reload_assign,
18633         fast_allocation): Likewise.
18634         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18635         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18636         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18637         Likewise.
18638         * ira-build.c (ira_objects_num): New variable.
18639         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18640         contains a vector of ira_object_t; all uses changed.
18641         (ira_object_id_map_vec): Corresponding change.
18642         (object_pool): New static variable.
18643         (initiate_allocnos): Initialize it.
18644         (finish_allocnos): Free it.
18645         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18646         New functions.
18647         (ira_create_allocno): Don't set members that were removed.
18648         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18649         (merge_hard_reg_conflicts): Changed to take into account that
18650         conflicts are now tracked for objects.
18651         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18652         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18653         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18654         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18655         setup_min_max_conflict_allocno_ids, ):  Likewise.
18656         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18657         to ira_object_t; all callers changed.
18658         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18659         to ira_object_t, all callers changed.
18660         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18661         to ira_object_t, all callers changed.
18662         (conflict_check, curr_conflict_check_tick): Renamed from
18663         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18664         changed.
18665         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18666         arg changed to ira_object_t, all callers changed.
18667         (create_cap_allocno): Call ira_create_allocno_object.
18668         (finish_allocno): Free the corresponding object.
18669         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18670         callers changed.  Adjusted for dealing with objects.
18671         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18672         dealing with objects.
18673         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18674
18675         * ira-int.h (struct live_range): Rename allocno member to object
18676         and change type to ira_object_t.
18677         (struct ira_object): New member live_ranges.
18678         (struct ira_allocno): Remove member live_ranges.
18679         (ALLOCNO_LIVE_RANGES): Remove.
18680         (OBJECT_LIVE_RANGES): New macro.
18681         (ira_create_live_range, ira_copy_live_range_list,
18682         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18683         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18684         * ira-build.c (ira_create_object): Initialize live ranges here.
18685         (ira_create_allocno): Not here.
18686         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18687         changed to ira_object_t, all callers changed.
18688         (copy_live_range): Rename from copy_allocno_live_range, all callers
18689         changed.
18690         (ira_copy_live_range_list): Rename from
18691         ira_copy_allocno_live_range_list, all callers changed.
18692         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18693         all callers changed.
18694         (ira_live_ranges_intersect_p): Rename from
18695         ira_allocno_live_ranges_intersect_p, all callers changed.
18696         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18697         callers changed.
18698         (ira_finish_live_range_list): Rename from
18699         ira_finish_allocno_live_range_list, all callers changed.
18700         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18701         last arg changed to ira_object_t, all callers changed.
18702         (finish_allocno): Changed to expect live ranges in the allocno's object.
18703         (move_allocno_live_ranges, copy_allocno_live_ranges,
18704         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18705         ira_flattening, ira_build): Likewise.
18706         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18707         slot_coalesced_allocno_live_ranges_intersect,
18708         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18709         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18710         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18711         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18712         make_allocno_dead, create_start_finish_chains,
18713         remove_some_program_points_and_update_live_ranges,
18714         ira_debug_live_range_list): Likewise.
18715
18716         * ira-int.h (ira_object_conflict_iterator): Rename from
18717         ira_allocno_conflict_iterator.
18718         (ira_object_conflict_iter_init): Rename from
18719         ira_allocno_conflict_iter_init, second arg changed to
18720         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18721         FOR_EACH_ALLOCNO_CONFLICT.
18722         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18723         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18724         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18725         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18726
18727 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18728
18729         PR other/44874
18730         * tree-dump.c (dump_options): Add enumerate_locals entry.
18731         Add TDF_NOID exclusion to all entry.
18732         * tree-dump.h (dump_enumerated_decls): Declare.
18733         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18734         Don't display type uid.
18735         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18736         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18737         * tree-ssa-live.c: Include gimple.h.
18738         (numbered_tree_d): New struct.
18739         (numbered_tree): New typedef.
18740         (DEF_VEC_O (numbered_tree): New.
18741         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18742         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18743         (dump_enumerated_decls): Likewise.
18744         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18745         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18746         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18747         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18748
18749 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18750
18751         * expmed.h (MAX_BITS_PER_WORD): Move to...
18752         * defaults.h (MAX_BITS_PER_WORD): ...here.
18753
18754 2010-07-13  DJ Delorie  <dj@redhat.com>
18755
18756         * config/h8300/h8300.c (h8300_init_once): Default to
18757         -fstrict_volatile_bitfields.
18758
18759         * config/sh/sh.c (sh_override_options): Default to
18760         -fstrict_volatile_bitfields.
18761
18762         * config/rx/rx.c (rx_option_override): New.
18763
18764         * config/m32c/m32c.c (m32c_override_options): Default to
18765         -fstrict_volatile_bitfields.
18766
18767 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18768
18769         * tree.h (build_function_call_expr): Delete.
18770         (build_call_expr_loc_array): New function.
18771         (build_call_expr_loc_vec): New function.
18772         * tree-flow.h (struct omp_region): Change type of ws_args field
18773         to a VEC.
18774         * builtins.c (build_function_call_expr): Delete.
18775         (build_call_expr_loc_array): New function.
18776         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18777         (build_call_expr): Likewise.
18778         (build_call_expr_loc_vec): New function.
18779         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18780         build_function_call_expr.
18781         * expr.c (emutls_var_address): Likewise.
18782         * varasm.c (emutls_common_1): Likewise.
18783         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18784         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18785         (get_ws_args_for): Return a VEC instead of a tree.
18786         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18787         build_function_call_expr.
18788         * stor-layout.c (self_referential_size): Likewise.
18789
18790 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18791
18792         PR testsuite/44701
18793         * recog.c (constrain_operands): Allow side-effects in memory
18794         operands if either < or > constraint is used, rather than if
18795         both < and > is used.
18796
18797 2010-07-13  Richard Guenther  <rguenther@suse.de>
18798
18799         PR middle-end/44911
18800         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18801         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18802         without name.
18803
18804 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18805
18806         PR target/44761
18807         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18808         to variable emited.
18809         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18810         * config/sh/sh.md (symGOT_load): Likewise.
18811         (symDTPOFF2reg): Likewise.
18812         (symTPOFF2reg): Likewise.
18813
18814 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18815
18816         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18817         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18818
18819 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18820
18821         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18822         explanation.
18823         Find ucontext_t * on Solaris 11.
18824         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18825         Handle new Solaris 11 __sighndlr patterns.
18826
18827 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18828
18829         PR debug/44901
18830         * vec.h (VEC_block_remove): Fix comment.
18831         * tree-ssa-live.c (remove_unused_locals): Don't use
18832         VEC_unordered_remove on local_decls, instead replace a single
18833         vector element in each iteration if at least one element had
18834         to be removed and VEC_truncate at the end.
18835         * omp-low.c (expand_omp_taskreg): Likewise.
18836
18837 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18838
18839         * c-decl.c (finish_function): Fix typo in comment.
18840
18841 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18842
18843         PR bootstrap/44921
18844         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18845         on min_regno.
18846
18847 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18848
18849         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
18850         (simplify_stmt_using_ranges): Use it.
18851
18852 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18853
18854         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
18855         member.  Do not mark as GTY(()).
18856         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
18857         (spu_builtin_decls): New static variable.
18858         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
18859         (spu_init_builtins): Likewise.
18860         (spu_builtin_mul_widen_even): Likewise.
18861         (spu_builtin_mul_widen_odd): Likewise.
18862         (spu_builtin_mask_for_load): Likewise.
18863         (spu_builtin_vec_perm): Likewise.
18864         * config/spu/spu-c.c: Include "target.h".
18865         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
18866         of using spu_builtins[].fndecl.
18867
18868 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18869
18870         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
18871         imply -minterlink-mips16.
18872
18873 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18874
18875         * config/mips/mips.h (mips16_globals): Declare.
18876         (SWITCHABLE_TARGET): Define.
18877         * config/mips/mips.c: Include target-globals.h.
18878         (mips16_globals): New variable.
18879         (mips_set_mips16_mode): Use save_target_globals and
18880         restore_target_globals instead of target_reinit.
18881
18882 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18883
18884         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
18885         to say that the function can be called more than once.
18886         * target-globals.c (save_target_globals): Call init_reg_sets.
18887
18888 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18889
18890         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
18891         * bb-reorder.h: New file.
18892         * bb-reorder.c (default_target_bb_reorder): New variable.
18893         (this_target_bb_reorder): New conditional variable.
18894         (uncond_jump_length): Redefine as a macro.
18895         * target-globals.h (this_target_bb_reorder): Declare.
18896         (target_globals): Add a bb_reorder field.
18897         (restore_target_globals): Copy the bb_reorder field to
18898         this_target_bb-reorder.
18899         * target-globals.c: Include bb-reorder.h.
18900         (default_target_globals): Initialize the bb_reorder field.
18901         (save_target_globals): Likewise.
18902
18903 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18904
18905         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
18906         * gcse.h: New file.
18907         * gcse.c: Include gcse.h.
18908         (default_target_gcse): New variable.
18909         (this_target_gcse): New conditional variable.
18910         (can_copy): Redefine as a macro.
18911         (can_copy_init_p): New macro.
18912         (can_copy_p): Remove can_copy_init_p.
18913         * target-globals.h (this_target_gcse): Declare.
18914         (target_globals): Add a gcse field.
18915         (restore_target_globals): Copy the gcse field to this_target_gcse.
18916         * target-globals.c: Include gcse.h.
18917         (default_target_globals): Initialize the gcse field.
18918         (save_target_globals): Likewise.
18919
18920 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18921
18922         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
18923         and x_ira_prohibited_mode_move_regs_initialized_p.
18924         (ira_prohibited_mode_move_regs): Redefine as a macro.
18925         * ira.c (ira_prohibited_mode_move_regs): Delete.
18926         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
18927
18928 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18929
18930         * reload.h (target_reload): Add x_cached_reg_save_code and
18931         x_cached_reg_restore_code.
18932         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
18933         Redefine as macros.
18934
18935 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18936
18937         * Makefile.in (target-globals.o): Depend on builtins.h.
18938         * builtins.h: New file.
18939         * builtins.c: Include builtins.h.
18940         (default_target_builtins): New variable.
18941         (this_target_builtins): New conditional variable.
18942         (apply_args_mode, apply_result_mode): Redefine as macros.
18943         * target-globals.h (this_target_builtins): Declare.
18944         (target_globals): Add a builtins field.
18945         (restore_target_globals): Copy the builtins field to
18946         this_target_builtins.
18947         * target-globals.c: Include builtins.h.
18948         (default_target_globals): Initialize the builtins field.
18949         (save_target_globals): Likewise.
18950
18951 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18952
18953         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
18954         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
18955         from expmed.c.
18956         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
18957         (alg_hash, alg_hash_used_p): New macros.
18958         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
18959         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
18960         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
18961
18962 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18963
18964         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
18965         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
18966         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
18967         (this_op_costs, costs_classes): Redefine as macros.
18968         (record_reg_classes): Don't take op_costs as a parameter.
18969         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
18970         (scan_one_insn): Update call to record_operand_costs.
18971
18972 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18973
18974         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
18975         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
18976         (target_ira_int): New structure.
18977         (default_target_ira_int): Declare.
18978         (this_target_ira_int): Declare as a variable or define as a macro.
18979         (ira_reg_mode_hard_regset, ira_register_move_cost)
18980         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
18981         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
18982         (prohibited_class_mode_regs, ira_important_classes_num)
18983         (ira_important_classes, ira_reg_class_intersect)
18984         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
18985         (ira_reg_class_union): Redefine as macros.
18986         * ira.h (target_ira): New structure.
18987         (default_target_ira): Declare.
18988         (this_target_ira): Declare as a variable or define as a macro.
18989         (ira_available_class_regs, ira_hard_regno_cover_class)
18990         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
18991         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
18992         (ira_class_hard_regs_num): Redefine as macros.
18993         * ira.c (default_target_ira, default_target_ira_int): New variables.
18994         (this_target_ira, this_target_ira_int): New conditional variables.
18995         (ira_reg_mode_hard_regset, ira_memory_move_cost)
18996         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
18997         (ira_class_subset_p): Delete.
18998         (no_unit_alloc_regs): Redefine as a macro.
18999         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19000         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19001         (ira_available_class_regs): Delete.
19002         (alloc_reg_class_subclasses): Redefine as a macro.
19003         (ira_reg_class_cover_size, ira_reg_class_cover)
19004         (ira_important_classes_num, ira_important_classes)
19005         (ira_important_class_nums, ira_class_translate): Delete.
19006         (cover_class_order): Document the variable's lifetime.
19007         (reorder_important_classes): Don't set ira_important_class_nums.
19008         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19009         (ira_reg_class_super_classes, ira_reg_class_union)
19010         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19011         Delete.
19012         (setup_reg_class_nregs): Don't set ira_max_regs.
19013         (prohibited_class_mode_regs): Delete.
19014         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19015         (target_globals): Add ira and ira_int fields.
19016         (restore_target_globals): Copy the ira field to this_target_ira
19017         and the ira_int field to this_target_ira_int.
19018         * target-globals.c: Include ira-int.h.
19019         (default_target_globals): Initialize the ira and ira_int fields.
19020         (save_target_globals): Likewise.
19021
19022 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19023
19024         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19025         * cfgloop.h (target_cfgloop): New structure.
19026         (default_target_cfgloop): Declare.
19027         (this_target_cfgloop): Declare as a variable or define as a macro.
19028         (target_avail_regs, target_clobbered_regs, target_res_regs)
19029         (target_reg_cost, target_spill_cost): Redefine as macros.
19030         * cfgloopanal.c (default_target_cfgloop): New variable.
19031         (this_target_cfgloop): New conditional variable.
19032         (target_avail_regs, target_clobbered_regs, target_res_regs)
19033         (target_reg_cost, target_spill_cost): Delete.
19034         * target-globals.h (this_target_cfgloop): Declare.
19035         (target_globals): Add a cfgloop field.
19036         (restore_target_globals): Copy the cfgloop field to
19037         this_target_cfgloop.
19038         * target-globals.c: Include cfgloop.h.
19039         (default_target_globals): Initialize the cfgloop field.
19040         (save_target_globals): Likewise.
19041
19042 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19043
19044         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19045         x_float_extend_from_mem.
19046         (direct_load, direct_store, float_extend_from_mem): New macros.
19047         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19048
19049 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19050
19051         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19052         (target-globals.o): Depend on $(LIBFUNCS_H).
19053         * libfuncs.h: Include hashtab.h.
19054         (libfunc_entry): Moved from optabs.c.
19055         (target_libfuncs): New structure.
19056         (default_target_libfuncs): Declare.
19057         (this_target_libfuncs): Declare as a variable or define as a macro.
19058         (libfunc_table): Redefine as a macro.
19059         * optabs.c (default_target_libfuncs): New variable.
19060         (this_target_libfuncs): New conditional variable.
19061         (libfunc_table): Delete.
19062         (libfunc_entry): Moved to optabs.h.
19063         (libfunc_hash): Redefine as a macro.
19064         (hash_libfunc, eq_libfunc): Fix comments.
19065         (init_optabs): Use libfunc_hash to detect cases where the function
19066         has already been called.  Clear the hash table instead of
19067         recreating it.
19068         * target-globals.h (this_target_libfuncs): Declare.
19069         (target_globals): Add a libfuncs field.
19070         (restore_target_globals): Copy the libfuncs field to
19071         this_target_libfuncs.
19072         * target-globals.c: Include libfuncs.h.
19073         (default_target_globals): Initialize the libfuncs field.
19074         (save_target_globals): Likewise.
19075
19076 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19077
19078         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19079         in all dependency lists.
19080
19081 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19082
19083         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19084         * optabs.h (target_optabs): New structure.
19085         (default_target_optabs): Declare.
19086         (this_target_optabs): Declare as a variable or define as a macro.
19087         (optab_table, convert_optab_table, direct_optab_table): Redefine
19088         as macros.
19089         * optabs.c (default_target_optabs): New variable.
19090         (this_target_optabs): New conditional variable.
19091         (optab_table, convert_optab_table, direct_optab_table): Delete.
19092         * target-globals.h (this_target_optabs): Declare.
19093         (target_globals): Add a optabs field.
19094         (restore_target_globals): Copy the optabs field to
19095         this_target_optabs.
19096         * target-globals.c: Include expr.h and optabs.h.
19097         (default_target_globals): Initialize the optabs field.
19098         (save_target_globals): Likewise.
19099
19100 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19101
19102         * flags.h (target_flagstate): Add x_flag_excess_precision.
19103         (flag_excess_precision): Redefine as a macro.
19104         * toplev.c (flag_excess_precision): Delete.
19105
19106 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19107
19108         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19109         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19110         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19111         (no_caller_save_reg_set): Redefine as a macro.
19112         * reload.h (target_reload): Add x_caller_save_initialized_p and
19113         x_regno_save_mode.
19114         (caller_save_initialized_p): Redefine as a macro.
19115         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19116         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19117         (regno_save_mode): Redefine as a macro.
19118
19119 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19120
19121         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19122         * expmed.h: New file.
19123         * expmed.c (default_target_costs): New variable.
19124         (this_target_costs): New conditional variable.
19125         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19126         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19127         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19128         * target-globals.h (this_target_expmed): Declare.
19129         (target_globals): Add a expmed field.
19130         (restore_target_globals): Copy the expmed field to
19131         this_target_expmed.
19132         * target-globals.c: Include expmed.h.
19133         (default_target_globals): Initialize the expmed field.
19134         (save_target_globals): Likewise.
19135
19136 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19137
19138         * Makefile.in (target-globals.o): Depend on reload.h.
19139         * reload.h (target_reload): New structure.
19140         (default_target_reload): Declare.
19141         (this_target_reload): Declare as a variable or define as a macro.
19142         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19143         * reload1.c (default_target_reload): New variable
19144         (this_target_reload): New conditional variable.
19145         (indirect_symref_ok, double_reg_address_ok): Delete.
19146         (spill_indirect_levels): Redefine as a macro.
19147         * target-globals.h (this_target_reload): Declare.
19148         (target_globals): Add a reload field.
19149         (restore_target_globals): Copy the reload field to
19150         this_target_reload.
19151         * target-globals.c: Include hard-reg-set.h.
19152         (default_target_globals): Initialize the reload field.
19153         (save_target_globals): Likewise.
19154
19155 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19156
19157         * rtl.h (target_rtl): Add x_static_reg_base_value.
19158         * alias.c (static_reg_base_value): Redefine as a macro.
19159
19160 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19161
19162         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19163         (GTFILES): Remove reginfo.c.
19164         * rtl.h (target_rtl): Add x_top_of_stack.
19165         (top_of_stack): New macro.
19166         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19167         (top_of_stack): Delete.
19168
19169 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19170
19171         * regs.h (target_regs): Add x_hard_regs_of_mode,
19172         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19173         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19174         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19175         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19176         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19177         (may_move_in_cost, may_move_out_cost): Delete.
19178         (last_mode_for_init_move_cost): Redefine as a macro.
19179
19180 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19181
19182         * hard-reg-set.h (target_hard_regs): New structure.
19183         (default_target_hard_regs): Declare.
19184         (this_target_hard_regs): Declare as a variable or define as a macro.
19185         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19186         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19187         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19188         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19189         (reg_class_superunion, reg_names): Redefine as macros.
19190         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19191         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19192         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19193         (reg_class_contents, reg_class_size, reg_class_subclasses)
19194         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19195         (default_target_hard_regs): New variable
19196         (this_target_hard_regs, initial_call_really_used_regs)
19197         (initial_reg_alloc_order): New conditional variables.
19198         (initial_reg_names): New variable.
19199         (init_reg_sets): Assert that initial_call_really_used_regs,
19200         initial_reg_alloc_order and initial_reg_names
19201         are all the same size as their variable counterparts.  Use them to
19202         initialize those counterparts.
19203         * target-globals.h (this_target_hard_regs): Declare.
19204         (target_globals): Add a hard_regs field.
19205         (restore_target_globals): Copy the hard_regs field to
19206         this_target_hard_regs.
19207         * target-globals.c: Include hard-reg-set.h.
19208         (default_target_globals): Initialize the hard_regs field.
19209         (save_target_globals): Likewise.
19210
19211 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19212
19213         * Makefile.in (target-globals.o): Depend on $(RTL_H).
19214         * rtl.h (target_rtl): New structure.
19215         (default_target_rtl): Declare.
19216         (this_target_rtl): Declare as a variable or define as a macro.
19217         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
19218         Redefine as macros.
19219         * emit-rtl.c (default_target_rtl): New variable.
19220         (this_target_rtl): New conditional variable.
19221         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
19222         (return_address_pointer_rtx): Delete.
19223         (initial_regno_reg_rtx): New macro.
19224         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
19225         (init_emit_regs): Likewise.
19226         * target-globals.h (this_target_rtl): Declare.
19227         (target_globals): Add a rtl field.
19228         (restore_target_globals): Copy the rtl field to this_target_rtl.
19229         * target-globals.c: Include rtl.h.
19230         (default_target_globals): Initialize the rtl field.
19231         (save_target_globals): Likewise.
19232
19233 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19234
19235         * Makefile.in (target-globals.o): Depend on $(REGS_H).
19236         * regs.h (target_reg_modes): New structure.
19237         (default_target_reg_modes): Declare.
19238         (this_target_reg_modes): Declare as a variable or define as a macro.
19239         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
19240         * reginfo.c (default_target_reg_modes): New variable.
19241         (this_target_reg_modes): New conditional variable.
19242         (hard_regno_nregs, reg_raw_mode): Delete.
19243         * target-globals.h (this_target_regs): Declare.
19244         (target_globals): Add a regs field.
19245         (restore_target_globals): Copy the regs field to this_target_regs.
19246         * target-globals.c: Include regs.h.
19247         (default_target_globals): Initialize the regs field.
19248         (save_target_globals): Likewise.
19249
19250 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19251
19252         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
19253         * doc/tm.texi: Regenerate.
19254         * Makefile.in (OBJS-common): Add target-globals.o.
19255         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
19256         and target-globals.h.
19257         (target-globals.o): New rule.
19258         (GTFILES): Include $(srcdir)/target-globals.h.
19259         * defaults.h (SWITCHABLE_TARGET): Define.
19260         * gengtype.c (open_base_files): Add target-globals.h to the
19261         list of includes.
19262         * target-globals.h: New file.
19263         * target-globals.c: Likewise.
19264
19265         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
19266         * flags.h (target_flag_state): New structure.
19267         (default_target_flag_state): Declare.
19268         (this_target_flag_state): Declare as a variable or define as a macro.
19269         (align_loops_log): Redefine as a macro.
19270         (align_loops_max_skip, align_jumps_log): Likewise.
19271         (align_jumps_max_skip, align_labels_log): Likewise.
19272         (align_labels_max_skip, align_functions_log): Likewise.
19273         * toplev.c (default_target_flag_state): New variable.
19274         (this_target_flag_state): New conditional variable.
19275         (align_loops_log): Delete.
19276         (align_loops_max_skip, align_jumps_log): Likewise.
19277         (align_jumps_max_skip, align_labels_log): Likewise.
19278         (align_labels_max_skip, align_functions_log): Likewise.
19279         * target-globals.h (this_target_flag_state): Declare.
19280         (target_globals): Add a flag_state field.
19281         (restore_target_globals): Copy the flag_state field to
19282         this_target_flag_state.
19283         * target-globals.c: Include flags.h.
19284         (default_target_globals): Initialize the flag_state field.
19285         (save_target_globals): Likewise.
19286
19287 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19288
19289         * postreload.c (reg_symbol_ref[]): New.
19290         (move2add_use_add2_insn): New.
19291         (move2add_use_add3_insn): New.
19292         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
19293         (move2add_note_store): Likewise.
19294
19295 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
19296
19297         PR rtl-optimization/44752
19298         * genautomata.c (main): Don't emit an empty file even if there
19299         is no automaton.
19300
19301 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19302
19303         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
19304         ix86_solaris_return_in_memory.
19305         * config/i386-protos.h: Reflect this.
19306         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19307         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19308         Move ...
19309         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
19310
19311 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19312
19313         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
19314         align the stack when it's going to be saved.
19315
19316 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19317
19318         PR pch/14940
19319         * config/host-solaris.c (mmap_fixed): New function.
19320         (sol_gt_pch_get_address): Use it.
19321         (sol_gt_pch_use_address): Likewise.
19322
19323 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19324
19325         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19326         pentiumpro on Solaris 8 and 9/x86.
19327         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
19328         Document SSE/SSE2 support.
19329         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
19330
19331 2010-07-12  Andi Kleen  <ak@linux.intel.com>
19332
19333         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
19334         instead of gcc_assert to print better error message for multiple
19335         prevailing defs.
19336
19337 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
19338
19339         * config/i386/i386.c (ix86_asm_output_function_label): Change format
19340         string placeholder from 0x%x to %#x.
19341         (ix86_code_end): Use putc to output '\n'.
19342         (ix86_print_operand) <case ';'>: Use putc to output ';'.
19343
19344 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
19345
19346         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
19347         in directive -export.
19348
19349 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
19350
19351         * reginfo.h (reg_classes_intersect_p): Change arguments type to
19352         reg_class_t.
19353         * rtl.h (reg_classes_intersect_p): Adjust prototype.
19354
19355         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19356         Remove macros.
19357         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
19358         rs6000_memory_move_cost): Remove
19359         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
19360         TARGET_MEMORY_MOVE_COST): Define.
19361         (rs6000_register_move_cost): Make static. Change arguments type from
19362         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
19363         (rs6000_memory_move_cost): Make static. Change arguments type from
19364         'enum reg_class' to reg_class_t.
19365
19366 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
19367
19368         PR middle-end/42505
19369         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
19370         lookup code into....
19371         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19372         new functions.
19373         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19374         * cfgloopanal.c (target_clobbered_regs): Define.
19375         (init_set_costs): Initialize target_clobbered_regs.
19376         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19377         adjust the number of available registers to exclude the
19378         call-clobbered registers.
19379         * cfgloop.h (target_clobbered_regs): Declare.
19380         (estimate_reg_pressure_cost): Adjust declaration.
19381         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19382         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19383         (determine_set_costs): Dump target_clobbered_regs.
19384         (loop_body_includes_call): New function.
19385         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19386         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19387         call_p flag through.
19388         (best_gain_for_invariant): Likewise.
19389         (find_invariants_to_move): Likewise.
19390         (move_single_loop_invariants): Likewise, using already-computed
19391         has_call field.
19392
19393 2010-07-10  Richard Guenther  <rguenther@suse.de>
19394             Joern Rennecke  <joern.rennecke@embecosm.com>
19395
19396         PR debug/44832
19397         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19398         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19399         unless they have DECL_IGNORED_P set.
19400
19401 2010-07-10  Richard Guenther  <rguenther@suse.de>
19402
19403         PR lto/44889
19404         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19405         helper function.
19406         (gimple_types_compatible_p): Similar to pointed-to
19407         types allow and merge a mix of complete and incomplete aggregate.
19408         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19409         (iterative_hash_gimple_type): Adjust for that.
19410
19411 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19412
19413         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19414
19415 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19416
19417         PR objc/44140
19418         * config/darwin.c (output_objc_section_asm_op): Save and restore
19419         section when outputting ObjC section list.
19420
19421 2010-07-09  Jan Hubicka  <jh@suse.cz>
19422
19423         * lto-streamer-out.c (produce_symtab): Do not write alias
19424         cgraph/varpool nodes.
19425
19426 2010-07-09  Jan Hubicka  <jh@suse.cz>
19427
19428         * tree-inline.c (declare_return_variable): Fix ICE while
19429         inlining DECL_BY_VALUE function not in SSA form
19430
19431 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19432
19433         PR tree-optimization/44576
19434         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19435         New.  Pull out from is_loop_prefetching_profitable to implement
19436         the trip count to ahead ratio heuristic.
19437         (mem_ref_count_reasonable_p): New.  Pull out from
19438         is_loop_prefetching_profitable to implement the instruction to
19439         memory reference ratio heuristic.  Also consider not reasonable if
19440         the memory reference count is above a threshold (to avoid
19441         explosive compilation time.
19442         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19443         is_loop_prefetching_profitable to implement the instruction to
19444         prefetch ratio heuristic.
19445         (is_loop_prefetching_profitable): Removed.
19446         (loop_prefetch_arrays): Distribute the cost analysis across the
19447         function to allow early exit of the prefetch analysis.
19448         is_loop_prefetching_profitable is splitted into three functions,
19449         with each one called as early as possible.
19450         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19451         number of memory references in a loop is considered too many.
19452
19453 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19454
19455         * reload.c (find_reloads): Don't clear badop if we have a winreg
19456         alternative, but not win, and the class only has fixed regs.
19457         * hard-reg-set.h (class_only_fixed_regs): Declare.
19458         * reginfo.c (class_only_fixed_regs): New array.
19459         (init_reg_sets_1): Initialize it.
19460         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19461         discourage alternatives using the stack pointer.
19462
19463         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19464
19465         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19466
19467         * config/arm/arm.md (cbranchqi4): Fix array size.
19468         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19469         calculating length.
19470
19471 2010-07-09  Richard Guenther  <rguenther@suse.de>
19472
19473         * gimple.c (struct type_fixup_s): New struct and VEC type.
19474         (gimple_register_type_fixups): New static global.
19475         (gimple_queue_type_fixup): New function.
19476         (gimple_types_compatible_p): Queue type fixups instead of
19477         applying them here.
19478         (gimple_register_type): Apply queued fixups for the
19479         canonical type.  Empty the type fixup queue.
19480
19481 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19482
19483         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19484         * configure: Regenerate.
19485         * config.in: Ditto.
19486
19487 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19488             Denys Vlasenko  <dvlasenk@redhat.com>
19489             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19490
19491         PR tree-optimization/28632
19492         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19493         (extract_range_from_binary_expr): Further optimize
19494         BIT_AND_EXPR and BIT_IOR_EXPR.
19495
19496 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19497
19498         * tree-if-conv.c (fold_or_predicates): New.
19499         (add_to_predicate_list): Call it.
19500
19501 2010-07-09  Richard Guenther  <rguenther@suse.de>
19502
19503         PR middle-end/44890
19504         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19505         if base is a pointer.
19506         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19507
19508 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19509
19510         PR target/44877
19511         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19512         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19513         builtin mask for load/store builtins.
19514
19515 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19516
19517         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19518         for "lock addl".
19519         * configure: Regenerate.
19520         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19521         Remove TARGET_MACHO.
19522
19523 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19524
19525         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19526         default ISA flags.
19527         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19528
19529 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19530
19531         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19532
19533 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19534
19535         * config/picochip/picochip.md (commsTestPort): Emit more
19536         efficient sequence for tstport instruction.
19537
19538 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19539
19540         * config/i386/i386.c (ix86_veclib_handler): Make static.
19541
19542 2010-07-09  Richard Guenther  <rguenther@suse.de>
19543
19544         PR tree-optimization/44852
19545         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19546         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19547         in MEM_REF.
19548         (indirect_refs_may_alias_p): Likewise.
19549         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19550
19551 2010-07-09  Richard Guenther  <rguenther@suse.de>
19552
19553         PR tree-optimization/44882
19554         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19555         sets do conflict.
19556         (vectorizable_load): Likewise.
19557
19558 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19559
19560         PR target/40657
19561         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19562         All callers changed.
19563         Handle the case when we're called for the epilogue.
19564         (thumb_unexpanded_epilogue): Use it.
19565         (thumb1_expand_epilogue): Likewise.
19566
19567 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19568
19569         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19570         both ranges are range_int_cst_p with non-negative minimum,
19571         try harder to derive smaller range.
19572
19573 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19574
19575         * genrecog.c: Include diagnostic-core.h before toplev.h.
19576         * genoutput.c: Likewise.
19577         * genextract.c: Likewise.
19578         * genautomata.c: Likewise.
19579         * genemit.c: Likewise.
19580         * genpeep.c: Likewise.
19581         * genattrtab.c: Likewise.
19582         * genconditions.c: Likewise.
19583         * genpreds.c: Likewise.
19584
19585 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19586
19587         * lto-section-in.c (lto_section_name): Add missing comma.
19588
19589 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19590
19591         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19592         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19593         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19594         (ia64_override_options): Rename to...
19595         (ia64_option_override): ... this one. Make static.
19596
19597 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19598
19599         PR middle-end/44843
19600         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19601         pointed-to type of the offset in a MEM_REF to compute the alignment.
19602
19603 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19604
19605         * final.c (final_scan_insn): Replace
19606         TARGET_UNWIND_INFO macro check by unwind_emit
19607         hook NULL check.
19608         * targhooks.c (default_unwind_emit): Removed.
19609         * targhooks.h (default_unwind_emit): Likewise.
19610         * target.def (unwind_emit): Set default value to NULL.
19611
19612         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19613         New prototype.
19614         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19615         for NULL fntype argument and allow 64-bit targets.
19616         (ix86_asm_output_function_label): New function.
19617         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19618         (ix86_handle_fndecl_attribute): Likewise.
19619         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19620         * doc/doc/tm.texi: Regenerated.
19621         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19622         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19623         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19624         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19625         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19626         * config/elfos.h: Likewise.
19627         * config/i386/cygming.h: Likewise.
19628         * config/netbsd-aout.h: Likewise.
19629         * config/openbsd.h: Likewise.
19630         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19631         by ix86_asm_output_function_label function call.
19632         * varasm.c (assemble_start_function): Use
19633         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19634
19635 2010-07-08  Jan Hubicka  <jh@suse.cz>
19636
19637         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19638         New function.
19639         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19640         Declare.
19641         * ipa-cp.c (ipcp_estimate_growth): Use it.
19642         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19643         Likewise.
19644
19645 2010-07-08  Jan Hubicka  <jh@suse.cz>
19646
19647         * tree-inline.c (declare_return_variable): Allocate annotation for new
19648         temporary.
19649
19650 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19651
19652         PR tree-optimization/44710
19653         * tree-if-conv.c (parse_predicate): New.
19654         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19655         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19656
19657 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19658
19659         * common.opt (ftree-loop-if-convert): New flag.
19660         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19661         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19662         when flag_tree_loop_if_convert is set.
19663
19664 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19665
19666         * config/i386/i386.c: Use short syntax for function calls
19667         through function pointers.
19668         * config/i386/i386.md: Ditto.
19669
19670 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19671
19672         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19673
19674 2010-07-08  Richard Guenther  <rguenther@suse.de>
19675
19676         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19677         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19678
19679 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19680
19681         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19682         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19683         (loc_list_from_tree): Likewise.
19684         (output_loc_operands): Handle outputting DW_OP_const[48]u
19685         with loc->dtprel set.
19686         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19687
19688 2010-07-08  Jan Hubicka  <jh@suse.cz>
19689
19690         * ipa.c: Include pointer-set.h
19691         (cgraph_externally_visible_p): New attribute ALIASED;
19692         when in LTO, hidden symbols are local unless they are aliased.
19693         (function_and_variable_visibility): Compute aliased nodes;
19694         handle LTO and hidden symbol on functions and vars.
19695         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19696         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19697
19698 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19699
19700         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19701         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19702         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19703         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19704         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19705         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19706         (ix86_gen_probe_stack_range): Likewise.
19707         (override_options): Set them.
19708         (ix86_target_stack_probe): New function.
19709         (ix86_compute_frame_layout): Force use of push instructions to
19710         save registers if stack checking with probes is enabled.
19711         (get_scratch_register_on_entry): New function.
19712         (release_scratch_register_on_entry): Likewise.
19713         (ix86_adjust_stack_and_probe): Likewise.
19714         (output_adjust_stack_and_probe): Likewise.
19715         (ix86_emit_probe_stack_range): Likewise.
19716         (output_probe_stack_range): Likewise.
19717         (ix86_expand_prologue): Emit stack checking code if static built-in
19718         stack checking is enabled.
19719         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19720         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19721         (output_adjust_stack_and_probe): Likewise.
19722         (output_probe_stack_range): Likewise.
19723         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19724         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19725         TARGET_STACK_PROBE.
19726         (allocate_stack_worker_64): Likewise.
19727         (allocate_stack): Likewise.
19728         (adjust_stack_and_probe): New insn.
19729         (probe_stack_range): Likewise.
19730
19731 2010-07-08  Richard Guenther  <rguenther@suse.de>
19732
19733         PR tree-optimization/44831
19734         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19735         a MEM_REF preserving TBAA info of the original dereference.
19736         Dereference the original pointer if the address is not invariant.
19737         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19738         at least one invariant address that we are going to dereference.
19739
19740 2010-07-08  Richard Guenther  <rguenther@suse.de>
19741
19742         PR tree-optimization/44861
19743         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19744         information when building MEM_REFs.
19745         (vectorizable_load): Likewise.
19746         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19747
19748 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19749
19750         * config/sol2-c.c: Do not include diagnostic-core.h.
19751
19752 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19753
19754         PR bootstrap/44768
19755         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19756         with respect to current_function_decl. Pass decl of the function.
19757         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19758         * ipa-inline.c (compute_inline_parameters): Pass decl to
19759         estimated_stack_frame_size.
19760
19761 2010-07-08  Richard Guenther  <rguenther@suse.de>
19762
19763         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19764         New function.
19765         (valueize_refs): Call it.
19766
19767 2010-07-08  Richard Guenther  <rguenther@suse.de>
19768
19769         PR rtl-optimization/44838
19770         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19771         SSA form do not use pointer equivalence.
19772
19773 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19774
19775         * dwarf2out.c (AT_linkage_name): Delete.
19776         (add_linkage_attr): New function.
19777         (add_linkage_name): Call it to emit the linkage attribute.
19778         (dwarf2out_finish): Likewise.
19779         (move_linkage_attr): Explicitly accept both attribute variants.
19780
19781 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19782
19783         * toplev.h: Do not include diagnostic-core.h.
19784         Include diagnostic-core.h in every file that includes toplev.h.
19785         * c-tree.h: Do not include toplev.h.
19786         * pretty-print.h: Update comment.
19787         * Makefile.in: Update dependencies.
19788         * alias.c: Include diagnostic-core.h in every file that includes
19789         toplev.h.
19790         * attribs.c: Likewise.
19791         * auto-inc-dec.c: Likewise.
19792         * bb-reorder.c: Likewise.
19793         * bt-load.c: Likewise.
19794         * caller-save.c: Likewise.
19795         * calls.c: Likewise.
19796         * cfg.c: Likewise.
19797         * cfganal.c: Likewise.
19798         * cfgbuild.c: Likewise.
19799         * cfgcleanup.c: Likewise.
19800         * cfghooks.c: Likewise.
19801         * cfgloop.c: Likewise.
19802         * combine.c: Likewise.
19803         * config/alpha/alpha.c: Likewise.
19804         * config/arc/arc.c: Likewise.
19805         * config/arm/arm.c: Likewise.
19806         * config/arm/pe.c: Likewise.
19807         * config/avr/avr.c: Likewise.
19808         * config/bfin/bfin.c: Likewise.
19809         * config/cris/cris.c: Likewise.
19810         * config/crx/crx.c: Likewise.
19811         * config/darwin-c.c: Likewise.
19812         * config/darwin.c: Likewise.
19813         * config/fr30/fr30.c: Likewise.
19814         * config/frv/frv.c: Likewise.
19815         * config/h8300/h8300.c: Likewise.
19816         * config/host-darwin.c: Likewise.
19817         * config/i386/i386.c: Likewise.
19818         * config/i386/netware.c: Likewise.
19819         * config/i386/nwld.c: Likewise.
19820         * config/i386/winnt-cxx.c: Likewise.
19821         * config/i386/winnt-stubs.c: Likewise.
19822         * config/i386/winnt.c: Likewise.
19823         * config/ia64/ia64-c.c: Likewise.
19824         * config/ia64/ia64.c: Likewise.
19825         * config/iq2000/iq2000.c: Likewise.
19826         * config/lm32/lm32.c: Likewise.
19827         * config/m32c/m32c-pragma.c: Likewise.
19828         * config/m32c/m32c.c: Likewise.
19829         * config/m32r/m32r.c: Likewise.
19830         * config/m68hc11/m68hc11.c: Likewise.
19831         * config/m68k/m68k.c: Likewise.
19832         * config/mcore/mcore.c: Likewise.
19833         * config/mep/mep-pragma.c: Likewise.
19834         * config/mep/mep.c: Likewise.
19835         * config/mmix/mmix.c: Likewise.
19836         * config/mn10300/mn10300.c: Likewise.
19837         * config/moxie/moxie.c: Likewise.
19838         * config/pa/pa.c: Likewise.
19839         * config/pdp11/pdp11.c: Likewise.
19840         * config/picochip/picochip.c: Likewise.
19841         * config/rs6000/rs6000-c.c: Likewise.
19842         * config/rs6000/rs6000.c: Likewise.
19843         * config/rx/rx.c: Likewise.
19844         * config/s390/s390.c: Likewise.
19845         * config/score/score.c: Likewise.
19846         * config/score/score3.c: Likewise.
19847         * config/score/score7.c: Likewise.
19848         * config/sh/sh.c: Likewise.
19849         * config/sh/symbian-base.c: Likewise.
19850         * config/sh/symbian-c.c: Likewise.
19851         * config/sh/symbian-cxx.c: Likewise.
19852         * config/sol2-c.c: Likewise.
19853         * config/sol2.c: Likewise.
19854         * config/sparc/sparc.c: Likewise.
19855         * config/spu/spu.c: Likewise.
19856         * config/stormy16/stormy16.c: Likewise.
19857         * config/v850/v850-c.c: Likewise.
19858         * config/v850/v850.c: Likewise.
19859         * config/vax/vax.c: Likewise.
19860         * config/vxworks.c: Likewise.
19861         * config/xtensa/xtensa.c: Likewise.
19862         * convert.c: Likewise.
19863         * cse.c: Likewise.
19864         * cselib.c: Likewise.
19865         * dbgcnt.c: Likewise.
19866         * dbxout.c: Likewise.
19867         * ddg.c: Likewise.
19868         * dominance.c: Likewise.
19869         * emit-rtl.c: Likewise.
19870         * explow.c: Likewise.
19871         * expmed.c: Likewise.
19872         * fixed-value.c: Likewise.
19873         * fold-const.c: Likewise.
19874         * fwprop.c: Likewise.
19875         * gcse.c: Likewise.
19876         * ggc-common.c: Likewise.
19877         * ggc-page.c: Likewise.
19878         * ggc-zone.c: Likewise.
19879         * gimple-low.c: Likewise.
19880         * gimplify.c: Likewise.
19881         * graph.c: Likewise.
19882         * haifa-sched.c: Likewise.
19883         * ifcvt.c: Likewise.
19884         * implicit-zee.c: Likewise.
19885         * integrate.c: Likewise.
19886         * ira-build.c: Likewise.
19887         * ira-color.c: Likewise.
19888         * ira-conflicts.c: Likewise.
19889         * ira-costs.c: Likewise.
19890         * ira-lives.c: Likewise.
19891         * ira.c: Likewise.
19892         * lists.c: Likewise.
19893         * loop-doloop.c: Likewise.
19894         * loop-iv.c: Likewise.
19895         * lto-opts.c: Likewise.
19896         * lto-symtab.c: Likewise.
19897         * main.c: Likewise.
19898         * modulo-sched.c: Likewise.
19899         * optabs.c: Likewise.
19900         * params.c: Likewise.
19901         * plugin.c: Likewise.
19902         * postreload-gcse.c: Likewise.
19903         * postreload.c: Likewise.
19904         * predict.c: Likewise.
19905         * profile.c: Likewise.
19906         * real.c: Likewise.
19907         * regcprop.c: Likewise.
19908         * reginfo.c: Likewise.
19909         * regmove.c: Likewise.
19910         * reorg.c: Likewise.
19911         * resource.c: Likewise.
19912         * rtl.c: Likewise.
19913         * rtlanal.c: Likewise.
19914         * sched-deps.c: Likewise.
19915         * sched-ebb.c: Likewise.
19916         * sched-rgn.c: Likewise.
19917         * sdbout.c: Likewise.
19918         * sel-sched-dump.c: Likewise.
19919         * sel-sched-ir.c: Likewise.
19920         * simplify-rtx.c: Likewise.
19921         * stmt.c: Likewise.
19922         * stor-layout.c: Likewise.
19923         * store-motion.c: Likewise.
19924         * targhooks.c: Likewise.
19925         * tree-cfg.c: Likewise.
19926         * tree-cfgcleanup.c: Likewise.
19927         * tree-dump.c: Likewise.
19928         * tree-eh.c: Likewise.
19929         * tree-inline.c: Likewise.
19930         * tree-nomudflap.c: Likewise.
19931         * tree-object-size.c: Likewise.
19932         * tree-optimize.c: Likewise.
19933         * tree-outof-ssa.c: Likewise.
19934         * tree-phinodes.c: Likewise.
19935         * tree-profile.c: Likewise.
19936         * tree-ssa-ccp.c: Likewise.
19937         * tree-ssa-coalesce.c: Likewise.
19938         * tree-ssa-live.c: Likewise.
19939         * tree-ssa-loop-niter.c: Likewise.
19940         * tree-ssa-loop-prefetch.c: Likewise.
19941         * tree-ssa-loop.c: Likewise.
19942         * tree-ssa-structalias.c: Likewise.
19943         * tree-ssa-uninit.c: Likewise.
19944         * tree-ssa.c: Likewise.
19945         * tree-vect-data-refs.c: Likewise.
19946         * tree-vect-loop-manip.c: Likewise.
19947         * tree-vect-loop.c: Likewise.
19948         * tree-vect-patterns.c: Likewise.
19949         * tree-vect-stmts.c: Likewise.
19950         * tree-vrp.c: Likewise.
19951         * varasm.c: Likewise.
19952         * vec.c: Likewise.
19953         * web.c: Likewise.
19954         * xcoffout.c: Likewise.
19955
19956 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
19957
19958         * gengtype.c (write_field_root): New function.
19959         (write_root): Use it.
19960
19961 2010-07-07  Wei Guozhi  <carrot@google.com>
19962
19963         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
19964         of lowest bits to lshift/compare): Add a missing line.
19965
19966 2010-07-07  Wei Guozhi  <carrot@google.com>
19967
19968         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
19969         of lowest bits to lshift/compare): New.
19970
19971 2010-07-07  Tom Tromey  <tromey@redhat.com>
19972
19973         * doc/tm.texi: Update.
19974         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
19975         Add @hook.
19976         * target.def (want_debug_pub_sections): New hook.
19977         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
19978         * dwarf2out.c (add_pubname_string): Check
19979         targetm.want_debug_pub_sections.
19980         (add_pubname): Likewise.
19981         (add_pubtype): Likewise.
19982
19983 2010-07-07  Jie Zhang  <jie@codesourcery.com>
19984
19985         * genautomata.c (output_automata_list_min_issue_delay_code):
19986         Correctly decompress min_issue_delay.
19987
19988 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19989
19990         PR rtl-optimization/44404
19991         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
19992         possible, use reg_overlap_mentioned_p instead.
19993
19994 2010-07-07  Duncan Sands  <baldrick@free.fr>
19995
19996         PR middle-end/41355
19997         * tree.c (build_function_type_skip_args): Copy the original type using
19998         build_distinct_type_copy rather than copy_node.
19999
20000 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20001
20002         PR target/44850
20003         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20004         revision 161876.
20005         (ix86_expand_prologue): Likewise.
20006         (ix86_handle_fndecl_attribute): Likewise.
20007         (ix86_asm_declare_function_name): Likewise.
20008         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20009         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20010         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20011         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20012         * doc/extend.texi: Likewise.
20013
20014 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20015
20016         PR target/44844
20017         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20018         retry if the carry flag isn't valid.
20019         (rdrand<mode>_1): New.
20020
20021 2010-07-07  Richard Guenther  <rguenther@suse.de>
20022
20023         PR middle-end/44790
20024         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20025         for expanding the constant offset for MEM_REFs.
20026
20027 2010-07-07  Richard Guenther  <rguenther@suse.de>
20028
20029         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20030         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20031         * gimple.h (is_gimple_operand): Remove.
20032         * gimple.c (is_gimple_operand): Likewise.
20033         (walk_gimple_op): Fix wi->val_only setting for calls.
20034         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20035         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20036         invalid gimple calls.
20037
20038 2010-07-06  Jan Hubicka  <jh@suse.cz>
20039
20040         * lto-cgraph.c (output_cgraph): Add missing declaration.
20041
20042 2010-07-06  Jan Hubicka  <jh@suse.cz>
20043
20044         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20045         partition.
20046
20047 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20048
20049         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20050         * doc/rtl.texi (Debug Information): New node.
20051         (NOTE_INSN_VAR_LOCATION): Document.
20052         (debug_insn): Likewise.
20053         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20054
20055 2010-07-07  Jan Hubicka  <jh@suse.cz>
20056
20057         With parts by Richard Guenther.
20058
20059         PR middle-end/44813
20060         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20061         for functions passed by reference.
20062         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20063         in memory when passed by reference.
20064         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20065         beggining.
20066         * ipa-split.c (split_function): Cleanup way return value is passed;
20067         handle SSA DECL_BY_REFERENCE retvals.
20068         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20069         DECL_BY_REFERENCE is set.
20070         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20071         find_what_p_points_to): Handle RESULT_DECL.
20072         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20073         when passing by reference ensure that RESULT_DECL is gimple_val.
20074         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20075         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20076
20077 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20078
20079         PR rtl-optimization/44787
20080         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20081         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20082
20083 2010-07-06  Jan Hubicka  <jh@suse.cz>
20084
20085         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20086         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20087         with body can prevail.
20088         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20089         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20090         * cgraph.c (cgraph_get_node_or_alias): New function.
20091         * cgraph.h (cgraph_get_node_or_alias): Declare.
20092
20093 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20094
20095         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20096         support.
20097         (ix86_expand_prologue): Likewise.
20098         (ix86_handle_fndecl_attribute): Likewise.
20099         (ix86_asm_declare_function_name): New function for
20100         ASM_DECLARE_FUNCTION_NAME.
20101         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20102         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20103         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20104         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20105         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20106         attribute.
20107
20108 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20109
20110         * config/i386/i386.md (immediate_operand): New mode attribute.
20111
20112         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20113         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20114         using P mode iterator.
20115         (pro_epilogue_adjust_stack_di_2): Rename from
20116         pro_epilogue_adjust_stack_rex64_2.
20117
20118         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20119
20120 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20121
20122         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20123         through gen_mov_insv_1 function pointer.
20124         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20125         gen_truncxf<mode>2 through gen_truncxf function pointer.
20126         (remainder<mode>3): Ditto.
20127         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20128         (allocate_stack): Call gen_allocate_stack_worker_64 or
20129         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20130         function pointer.
20131         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20132         function pointer.
20133
20134 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20135
20136         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20137         operand constraint instead of <r><i>m.
20138
20139 2010-07-06  Richard Guenther  <rguenther@suse.de>
20140
20141         PR middle-end/44828
20142         * convert.c (convert_to_integer): Watch out for overflowing
20143         MULT_EXPR as well.
20144
20145 2010-07-05  Jan Hubicka  <jh@suse.cz>
20146
20147         * lto-streamer.c (write_symbol_vec): Rename to ...
20148         (write_symbol) ... this one; write only symbol given and when
20149         present in cache. Sanity check that what is defined is present
20150         in cgraph/varpool with body/finalized decl.
20151         (write_symbols_of_kind): Remove.
20152         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20153         pairs to produce symtab.
20154         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20155         when doing WPA streaming.
20156
20157 2010-07-05  Jan Hubicka  <jh@suse.cz>
20158
20159         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20160         function is still available to fold into.
20161
20162 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20163
20164         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20165         * function.h (struct_function): Change type of local_decls field
20166         to a VEC.
20167         (add_local_decl): New function.
20168         (FOR_EACH_LOCAL_DECL): New macro.
20169         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20170         cfun->local_decls.
20171         (estimated_stack_frame_size): Likewise.
20172         (expand_used_vars): Likewise.
20173         * cgraphbuild.c (build_cgraph_edges): Likewise.
20174         * function.c (instantiate_decls_1): Likewise.
20175         * ipa-struct-reorg.c (build_data_structure): Likewise.
20176         * ipa-type-escape.c (analyze_function): Likewise.
20177         * lto-streamer-in.c (input_function): Likewise.
20178         * lto-streamer-out.c (output_function): Likewise.
20179         * tree-ssa-live.c (remove_unused_locals): Likewise.
20180         * tree.c (free_lang_data_in_decl): Likewise.
20181         (find_decls_types_in_node): Likewise.
20182         * omp-low.c (remove_exit_barrier): Likewise.
20183         (expand_omp_taskreg): Likewise.
20184         (list2chain): Rename to...
20185         (vec2chain): ...this.  Adjust.
20186         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20187         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20188         * gimple-low.c (record_vars_into): Likewise.
20189         * tree-inline.c (remap_decls): Likewise.
20190         (declare_return_variable): Likewise.
20191         (declare_inline_vars): Likewise.
20192         (copy_forbidden): Adjust for new type of cfun->local_decls.
20193         (add_local_variables): New function.
20194         (expand_call_inline): Call it.
20195         (tree_function_versioning): Likewise.
20196
20197 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20198
20199         AVX Programming Reference (June, 2010)
20200         * config/i386/cpuid.h (bit_F16C): New.
20201         (bit_RDRND): Likewise.
20202         (bit_FSGSBASE): Likewise.
20203
20204         * config/i386/i386-builtin-types.def: Add
20205         "DEF_FUNCTION_TYPE (UINT16)", function types for
20206         float16 <-> float conversions and
20207         "DEF_FUNCTION_TYPE (VOID, UINT64)".
20208
20209         * config/i386/i386-c.c (ix86_target_macros_internal): Support
20210         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
20211         OPTION_MASK_ISA_F16C.
20212
20213         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
20214         (OPTION_MASK_ISA_RDRND_SET): Likewise.
20215         (OPTION_MASK_ISA_F16C_SET): Likewise.
20216         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
20217         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
20218         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
20219         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
20220         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
20221         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
20222         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
20223         (override_options): Handle them.
20224         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
20225         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
20226         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
20227         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
20228         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
20229         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
20230         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
20231         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
20232         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
20233         (bdesc_args): Likewise.
20234         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
20235         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
20236         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
20237         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
20238         Handle non-memory store.
20239
20240         * config/i386/i386.h (TARGET_FSGSBASE): New.
20241         (TARGET_RDRND): Likewise.
20242         (TARGET_F12C): Likewise.
20243
20244         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
20245         (UNSPEC_VCVTPS2PH): Likewise.
20246         (UNSPECV_RDFSBASE): Likewise.
20247         (UNSPECV_RDGSBASE): Likewise.
20248         (UNSPECV_WRFSBASE): Likewise.
20249         (UNSPECV_WRGSBASE): Likewise.
20250         (UNSPECV_RDRAND): Likewise.
20251         (rdfsbase<mode>): Likewise.
20252         (rdgsbase<mode>): Likewise.
20253         (wrfsbase<mode>): Likewise.
20254         (wrgsbase<mode>): Likewise.
20255         (rdrand<mode>): Likewise.
20256
20257         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
20258
20259         * config/i386/immintrin.h (_rdrand_u16): New.
20260         (_rdrand_u32): Likewise.
20261         (_readfsbase_u32): Likewise.
20262         (_readfsbase_u64): Likewise.
20263         (_readgsbase_u32): Likewise.
20264         (_readgsbase_u64): Likewise.
20265         (_writefsbase_u32): Likewise.
20266         (_writefsbase_u64): Likewise.
20267         (_writegsbase_u32): Likewise.
20268         (_writegsbase_u64): Likewise.
20269         (_rdrand_u64): Likewise.
20270         (_cvtsh_ss): Likewise.
20271         (_mm_cvtph_ps): Likewise.
20272         (_mm256_cvtph_ps): Likewise.
20273         (_cvtss_sh): Likewise.
20274         (_mm_cvtps_ph): Likewise.
20275         (_mm256_cvtps_ph): Likewise.
20276
20277         * config/i386/sse.md (vcvtph2ps): New.
20278         (*vcvtph2ps_load): Likewise.
20279         (vcvtph2ps256): Likewise.
20280         (vcvtps2ph): Likewise.
20281         (*vcvtps2ph): Likewise.
20282         (*vcvtps2ph_store): Likewise.
20283         (vcvtps2ph256): Likewise.
20284
20285         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
20286
20287         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
20288
20289 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
20290
20291         PR bootstrap/44512
20292         * genenums.c (main): Output include of insn-constants.h
20293         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
20294
20295 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
20296
20297         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
20298         (override_options): Initialize it.
20299         (ix86_expand_prologue): Use it.
20300
20301 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20302
20303         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
20304
20305 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20306
20307         * double-int.h (fit_double_type): Remove declaration.
20308         * double-int.c (fit_double_type): Remove function.
20309         * tree.h (int_fits_type_p): Adjust prototype.
20310         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
20311         instead of fit_double_type.
20312         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
20313         instead of fit_double_type and build_int_cst_wide.
20314         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
20315         instead of fit_double_type and build_int_cst_wide.
20316         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
20317         of fit_double_type.
20318
20319 2010-07-05  Jan Hubicka  <jh@suse.cz>
20320
20321         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
20322         in_other_partition.
20323         * lto-cgraph.c (referenced_from_other_partition_p,
20324         reachable_from_other_partition_p): Use in_other_partition flags.
20325         (output_node, output_varpool_node): COMDAT nodes always have private
20326         copies and thus are never used from other partition.
20327
20328 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20329
20330         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20331         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
20332         * config/ia64/ia64.c Include reload.h.
20333         (ia64_memory_move_cost): New function.
20334         (TARGET_MEMORY_MOVE_COST): Define.
20335         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
20336         memory_move_cost.
20337
20338 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
20339
20340         PR middle-end/42505
20341         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
20342         comments about cost model.
20343         (try_add_cand_for):  Add second strategy for choosing initial set
20344         based on original IVs, controlled by ORIGINALP argument.
20345         (get_initial_solution): Add ORIGINALP argument.
20346         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
20347         (find_optimal_iv_set): Try two different strategies for choosing
20348         the IV set, and return the one with lower cost.
20349
20350 2010-07-05  Richard Guenther  <rguenther@suse.de>
20351
20352         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
20353
20354 2010-07-05  Richard Guenther  <rguenther@suse.de>
20355
20356         * tree.c (reference_alias_ptr_type): New function.
20357         * tree.h (reference_alias_ptr_type): Declare.
20358         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
20359         allow non-TARGET_MEM_REF new refs.
20360         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
20361         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
20362         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
20363         (create_mem_ref): Get alias pointer type.  Adjust calls to
20364         create_mem_ref_raw.
20365         (maybe_fold_tmr): Likewise.
20366         * tree-flow.h (create_mem_ref): Adjust prototype.
20367
20368 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20369
20370         PR c++/44808
20371         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20372         *from_p is VAR_DECL.
20373
20374 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20375
20376         * tree.h (build_call_list): Remove.
20377         * tree.c (build_call_list): Remove.
20378
20379 2010-07-05  Richard Guenther  <rguenther@suse.de>
20380
20381         * double-int.h (double_int_sub): Declare.
20382         * double-int.c (double_int_sub): New function.
20383         * dwarf2out.c (field_byte_offset): Use it.
20384         * fixed-value.c (do_fixed_add): Likewise.
20385         (do_fixed_multiply): Likewise.
20386         (do_fixed_divide): Likewise.
20387         * tree-predcom.c (add_ref_to_chain): Likewise.
20388         (determine_roots_comp): Likewise.
20389         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20390
20391 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20392
20393         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20394         implementations.
20395
20396 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20397
20398         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20399         * arm-modes.def (CC_NOTB): Don't define.
20400         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20401         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20402         (LTUGEU): New code_iterator.
20403         (cnb, optab): New corresponding code_attrs.
20404         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20405         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20406         using LTUGEU.
20407         (addsi3_carryin_shift_<optab>): Likewise.
20408         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20409         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20410         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20411         (subsi3_compare): Renamed from subsi3_compare0_c.
20412         Change CC_NOTB to CC.
20413         (arm_subsi3_insn): Allow constants for operand 0.
20414         (compare_scc peephole for eq case): New.
20415         (compare_scc splitters): Change CC_NOTB to CC.
20416
20417 2010-07-05  Richard Guenther  <rguenther@suse.de>
20418
20419         * tree-ssa-loop-im.c (for_each_index): Do not handle
20420         ALIGN_INDIRECT_REF.
20421         (gen_lsm_tmp_name): Likewise.
20422         * tree-dump.c (dequeue_and_dump): Likewise.
20423         * tree-pretty-print.c (dump_generic_node): Likewise.
20424         (op_code_prio): Likewise.
20425         (op_symbol_code): Likewise.
20426         * tree.c (staticp): Likewise.
20427         (build1_stat): Likewise.
20428         * tree.h (INDIRECT_REF_P): Likewise.
20429         * fold-const.c (maybe_lvalue_p): Likewise.
20430         (operand_equal_p): Likewise.
20431         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20432         (ao_ref_init_from_vn_reference): Likewise.
20433         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20434         (find_interesting_uses_address): Likewise.
20435         * dwarf2out.c (loc_list_from_tree): Likewise.
20436         * gimplify.c (gimplify_expr): Likewise.
20437         * tree-eh.c (tree_could_trap_p): Likewise.
20438         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20439         * cfgexpand.c (expand_debug_expr): Likewise.
20440         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20441         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20442         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20443         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20444         * tree-ssa-operands.c (get_expr_operands): Likewise.
20445         * expr.c (safe_from_p): Likewise.
20446         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20447         * tree-vect-data-refs.c (vect_setup_realignment): Build
20448         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20449         * tree-vect-stmts.c (vectorizable_load): Likewise.
20450         * tree.def (ALIGN_INDIRECT_REF): Remove.
20451
20452 2010-07-05  Richard Guenther  <rguenther@suse.de>
20453
20454         PR tree-optimization/44784
20455         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20456         for inserted stmts.
20457         (find_or_generate_expression): Fix SCCVN insertion check.
20458
20459 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20460
20461         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20462         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20463         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20464         directives.
20465
20466 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20467
20468         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20469         statements that are not vectorized.
20470         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20471         in INSIDE_COST.
20472
20473 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20474
20475         PR bootstrap/44820
20476         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20477
20478 2010-07-05  Richard Guenther  <rguenther@suse.de>
20479
20480         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20481         RESULT_DECLs properly.
20482
20483 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20484
20485         PR rtl-optimization/44695
20486         * config/i386/i386.md (extract_code): Removed.
20487         (<u>divmodqi4): Likewise.
20488         (divmodqi4): New.
20489         (udivmodqi4): Likewise.
20490         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20491         (udivmodhiqi3): Likewise.
20492
20493 2010-07-04  Jan Hubicka  <jh@suse.cz>
20494
20495         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20496
20497 2010-07-04  Jan Hubicka  <jh@suse.cz>
20498
20499         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20500         is not already initialized.
20501
20502 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20503
20504         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20505         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20506         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20507         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20508         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20509         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20510         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20511         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20512         (sync_new_nand_optab): Redefine as macros.
20513         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20514         Delete.
20515         (direct_optab_index): New enum.
20516         (direct_optab_d): New structure.
20517         (direct_optab): New typedef.
20518         (direct_optab_table): Declare.
20519         (direct_optab_handler, set_direct_optab_handler): New functions.
20520         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20521         (sync_lock_release_optab): New macros.
20522         * optabs.c (direct_optab_table): New variable.
20523         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20524         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20525         cmpstr_optab and cmpstrn_optab.
20526         (emit_conditional_move): Likewise for movcc_optab.
20527         (can_conditionally_move_p): Likewise for movcc_gen_code.
20528         (init_insn_codes): Clear direct_optab_table.
20529         (init_optabs): Don't initialize the new "direct optabs" here.
20530         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20531         vcond_gen_code.
20532         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20533         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20534         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20535         (expand_sync_operation): Likewise other sync_*_optabs.
20536         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20537         to sync_compare_and_swap_optab.
20538         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20539         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20540         to the names of both.
20541         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20542         cmpstr_optab and cmpstrn_optab.
20543         (expand_builtin_lock_release): Likewise sync_lock_release.
20544         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20545         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20546         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20547         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20548         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20549         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20550         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20551         (sync_lock_test_and_set, sync_lock_release): Delete.
20552         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20553         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20554         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20555         macro optabs.
20556         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20557         the "optab" local variable.  Use direct_optab_handler for optab and
20558         sync_compare_and_swap_optab.
20559         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20560         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20561         reload_in_optab and reload_out_optab.
20562         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20563         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20564         * config/pa/pa.c (pa_secondary_reload): Likewise.
20565         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20566         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20567         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20568         (VMSupportsCS8_builtin): Likewise.
20569
20570 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20571
20572         * optabs.h (optab_handlers): Change type of insn_code to int.
20573         (optab_handler, set_optab_handler, convert_optab_handler)
20574         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20575         CODE_FOR_nothing".
20576         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20577         (init_insn_codes): Zero both the above arrays.
20578         (init_optabs): Never call init_insn_codes first time around.
20579
20580 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20581
20582         * optabs.h (optab_handler, convert_optab_handler): Turn into
20583         inline functions that return an insn code.
20584         (set_optab_handler, set_convert_optab_handler): New functions.
20585         * builtins.c: Replace optab_handler(X)->insn_code with
20586         optab_handler or set_optab_handler thoughout.  Likewise
20587         convert_optab_handler(X)->insn_code with convert_optab_handler
20588         and set_convert_optab_handler.
20589         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20590         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20591         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20592         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20593         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20594         config/spu/spu.c: Likewise.
20595
20596 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20597
20598         PR target/44531
20599         * config.gcc (sh*-*-*): Use regular expressions instead of
20600         the 'i' modifier for sed substitutions.
20601
20602 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20603
20604         * gimple.c (gimple_body): Comments added.
20605
20606 2010-07-04  Richard Guenther  <rguenther@suse.de>
20607
20608         PR middle-end/44809
20609         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20610         of an INDIRECT_REF.
20611
20612 2010-07-04  Richard Guenther  <rguenther@suse.de>
20613
20614         PR tree-optimization/44479
20615         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20616         extra SSA name copy statements which preserves points-to
20617         information.
20618         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20619         Copy points-to information for all pointers.  Properly handle
20620         MEM_REFs.
20621         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20622         copy statements.
20623         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20624         dependency.
20625
20626 2010-07-04  Richard Guenther  <rguenther@suse.de>
20627
20628         PR middle-end/44785
20629         * tree-inline.c (initialize_inlined_parameters): Do not
20630         re-use pointer-map slot over remap_type call.
20631
20632 2010-07-04  Richard Guenther  <rguenther@suse.de>
20633
20634         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20635
20636 2010-07-04  Richard Guenther  <rguenther@suse.de>
20637
20638         PR tree-optimization/44656
20639         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20640         again after value-replacing in the defintions lhs.
20641
20642 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20643             Revital Eres  <eres@il.ibm.com>
20644
20645         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20646         Document new arguments.
20647         * doc/tm.texi: Regenerate.
20648         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20649         Handle unaligned store.
20650         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20651         * target.def (builtin_vectorization_cost): Add new arguments.
20652         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20653         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20654         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20655         (vect_vfa_segment_size): Fix indentation.
20656         * tree-vectorizer.h (struct _vect_peel_info): New.
20657         (struct _vect_peel_extended_info): New.
20658         (struct _loop_vec_info): Add new field for peeling hash table and a
20659         macro for its access.
20660         (VECT_MAX_COST): Define.
20661         (vect_get_load_cost): Declare.
20662         (vect_get_store_cost, vect_get_known_peeling_cost,
20663         vect_get_single_scalar_iteraion_cost): Likewise.
20664         (vect_supportable_dr_alignment): Add new argument.
20665         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20666         field.
20667         (destroy_loop_vec_info): Free peeling hash table.
20668         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20669         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20670         vect_analyze_slp. Fix indentation.
20671         (vect_get_single_scalar_iteraion_cost): New function.
20672         (vect_get_known_peeling_cost): Likewise.
20673         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20674         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20675         statement. Move outside cost calculation inside unknown peeling case.
20676         Call vect_get_known_peeling_cost for known amount of peeling.
20677         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20678         reference to the print message of forced alignment.
20679         (vect_verify_datarefs_alignment): Update call to
20680         vect_supportable_dr_alignment.
20681         (vect_get_data_access_cost): New function.
20682         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20683         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20684         vect_peeling_hash_choose_best_peeling): Likewise.
20685         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20686         to store all the accesses in the loop and find best possible access to
20687         align using peeling for known alignment case. For unknown alignment
20688         check if stores are preferred or if peeling is worthy.
20689         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20690         (vect_supportable_dr_alignment): Add new argument and check aligned
20691         accesses according to it.
20692         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20693         (cost_for_stmt): Call vect_get_stmt_cost.
20694         (vect_model_simple_cost): Likewise.
20695         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20696         vect_get_store_cost to calculate the cost of the statement.
20697         (vect_get_store_cost): New function.
20698         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20699         vect_get_load_cost to calculate the cost of the statement.
20700         (vect_get_load_cost): New function.
20701         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20702         (vectorizable_load): Likewise.
20703         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20704         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20705         arguments. Handle unaligned store.
20706         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20707         (rs6000_builtin_support_vector_misalignment): Return true for word and
20708         double word alignments for VSX.
20709         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20710         vect_supportable_dr_alignment and builtin_vectorization_cost.
20711
20712 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20713
20714         PR target/44597
20715         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20716         (prefetch_nocc_operand): Likewise.
20717         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20718         (prefetch_20): New insn.
20719         (prefetch_cc): Remove.
20720         (prefetch_nocc): Likewise.
20721
20722 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20723
20724         * expr.c (vector_mode_valid_p): Move to c-common.c.
20725         * expr.h (vector_mode_valid_p): Do not declare here.
20726         * system.h: Poison GCC_EXPR_H in front-ends.
20727         * Makefile.in: Update dependencies.
20728
20729 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20730
20731         PR target/44705
20732         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20733
20734 2010-07-03  Jan Hubicka  <jh@suse.cz>
20735
20736         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20737         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20738         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20739         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20740         Likewise.
20741
20742         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20743         Update timevars.V
20744         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20745         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20746         TV_IPA_LTO_DECL_OUT): New.
20747         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20748
20749 2010-07-03  Jan Hubicka  <jh@suse.cz>
20750
20751         * ipa-inline.c (update_edge_key): Break out from ...
20752         update_callers_keys): ... here;
20753         (update_callee_keys): Update only the edges from caller to callee.
20754         (update_all_calle_keys): Do what update_calle_keys did.
20755         (decide_inlining_of_small_functions): Avoid recomputing of all
20756         callees when badness increase.
20757
20758 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20759
20760         * config/arm/arm.c (arm_attr_length_move_neon): New.
20761         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20762         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20763         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20764         to compute length attribute.
20765
20766 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20767
20768         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20769         as predicate for operand 1 and remove its constraint.
20770         * config/arm/predicates.md (vfp_register_operand): New.
20771         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20772         (*push_fp_multi): Likewise.
20773
20774 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20775
20776         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20777
20778 2010-07-03  Jan Hubicka  <jh@suse.cz>
20779
20780         * config/i386/i386.c (override_options): Revert accidental commit.
20781
20782 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20783
20784         PR c++/44128
20785         * doc/invoke.texi: Update documentation of -Wshadow.
20786
20787 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20788             Julian Brown  <julian@codesourcery.com>
20789             Sandra Loosemore  <sandra@codesourcery.com>
20790
20791         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20792         comparisons.  Adjust to take both operands.
20793         (arm_select_cc_mode): Handle DImode comparisons.
20794         (arm_gen_compare_reg): Generate a scratch register for DImode
20795         comparisons which require one.  Use xor for Thumb equality checks.
20796         (arm_const_double_by_immediates): New.
20797         (arm_print_operand): Allow 'Q' and 'R' for constants.
20798         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20799         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20800         arm_canonicalize_comparison.
20801         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20802         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20803         prototype.
20804         (arm_const_double_by_immediates): Declare.
20805         * config/arm/constraints.md (Di): New constraint.
20806         * config/arm/predicates.md (arm_immediate_di_operand)
20807         (arm_di_operand, cmpdi_operand): New.
20808         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20809         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20810         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20811         (cstoredi4): Handle non-Cirrus also.
20812
20813 2010-07-02  Julian Brown  <julian@codesourcery.com>
20814             Sandra Loosemore  <sandra@codesourcery.com>
20815
20816         PR target/43703
20817         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20818         (smax<mode>3): Disable for NEON float modes when
20819         flag_unsafe_math_optimizations is false.
20820         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20821         (*mul<mode>3_neon)
20822         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20823         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20824         for NEON float modes when flag_unsafe_math_optimizations is false.
20825         (quad_halves_<code>v4sf): Only enable if
20826         flag_unsafe_math_optimizations is true.
20827         * doc/invoke.texi (ARM Options): Add note about floating point
20828         vectorization requiring -funsafe-math-optimizations.
20829
20830 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20831             Julian Brown  <julian@codesourcery.com>
20832
20833         * config/arm/neon.md (UNSPEC_VABA): Delete.
20834         (UNSPEC_VABAL): Delete.
20835         (UNSPEC_VABS): Delete.
20836         (UNSPEC_VMUL_N): Delete.
20837         (adddi3_neon): New.
20838         (subdi3_neon): New.
20839         (mul<mode>3add<mode>_neon): Make the pattern named.
20840         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20841         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20842         unspec parts...
20843         (neon_vadd<mode>_unspec): ...to this.
20844         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20845         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20846         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20847         (neon_vaba<mode>): Rewrite in terms of vabd.
20848         (neon_vabal<mode>): Rewrite in terms of vabdl.
20849         (neon_vabs<mode>): Rewrite without unspec.
20850         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
20851         (*arm_subdi3): Likewise.
20852         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
20853         No_op attribute to disable assembly output checks.
20854         * config/arm/arm_neon.h: Regenerated.
20855         * doc/arm-neon-intrinsics.texi: Regenerated.
20856
20857 2010-07-02  Jan Hubicka  <jh@suse.cz>
20858
20859         * ipa-split.c (split_function): For aggregate values, set the return
20860         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
20861         *<retval> = fncall.part ().
20862         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
20863
20864 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20865
20866         * config/arm/neon.md (UNSPEC_VAND): Delete.
20867         (UNSPEC_VBIC): Delete.
20868         (UNSPEC_VCLZ): Delete.
20869         (UNSPEC_VCNT): Delete.
20870         (UNSPEC_VEOR): Delete.
20871         (UNSPEC_VORN): Delete.
20872         (UNSPEC_VORR): Delete.
20873         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
20874         core registers too.
20875         (anddi3_neon): Likewise.
20876         (orndi3_neon): Likewise.
20877         (bicdi3_neon): Likewise.
20878         (xordi3_neon): Likewise.
20879         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
20880         rid of unspec and handle unused operand.
20881         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
20882         * config/arm/predicates.md (imm_for_neon_logic_operand):
20883         Require TARGET_NEON.
20884         (imm_for_neon_inv_logic_operand): Likewise.
20885         * config/arm/arm.md (define_split for logical_binary_operator):
20886         Disable for NEON registers.
20887         (anddi3): Add new define_expand, and rename the insn.  Disable
20888         this insn for NEON, where anddi3_neon now applies.
20889         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
20890         (iordi3): As for anddi3.
20891         (xordi3): Likewise.
20892         * config/arm/neon.ml (Vand): Split DImode variants and mark them
20893         as No_op to disable testing for exact instruction match.
20894         (Vorr): Likewise.
20895         (Veor): Likewise.
20896         (Vbic): Likewise.
20897         (Vorn): Likewise.
20898         * config/arm/arm_neon.h: Regenerated.
20899         * doc/arm-neon-intrinsics.texi: Regenerated.
20900
20901 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20902
20903         * expr.h (emit_stack_probe): Declare.
20904         * explow.c (emit_stack_probe): Make global.
20905         (anti_adjust_stack_and_probe): Fix comments.
20906         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20907         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20908         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20909         * config/sparc/sparc.c: Include except.h.
20910         (sparc_emit_probe_stack_range): New function.
20911         (output_probe_stack_range): Likewise.
20912         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
20913         built-in stack checking is enabled.
20914         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
20915         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20916         (probe_stack_range): New insn.
20917
20918 2010-07-02  Richard Guenther  <rguenther@suse.de>
20919
20920         PR target/43958
20921         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
20922         for argument alignment.
20923
20924 2010-07-02  Jan Hubicka  <jh@suse.cz>
20925
20926         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
20927         walk backwards from entry_bb to check only those basic block of header
20928         that might lead to execution of split part.
20929         (consider_split) ... here.
20930         (find_return_bb): Allow assignment in return BB.
20931         (find_retval): New.
20932         (split_function): Fix name of cloned function; take care of updating
20933         return value in return_bb containing move.
20934
20935 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
20936
20937         PR target/44771
20938         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
20939         used variable insn.
20940
20941 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20942
20943         * implicit-zee.c (combine_reaching_defs): Fix long lines.
20944         (is_set_with_extension_DI): Delete.
20945         (struct zero_extend_info): New structure.
20946         (add_removable_zero_extend): New function.
20947         (find_removable_zero_extends): Use note_stores to find SETs.
20948         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
20949
20950 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
20951
20952         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
20953         is_miss_rate_acceptable. Pull total_positions computation
20954         out of the loops.  Early return if miss_positions exceeds
20955         the acceptable threshold.
20956         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
20957         is_miss_rate_acceptable after renaming of compute_miss_rate.
20958
20959 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
20960
20961         PR middle-end/44576
20962         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
20963         of 1000) for miss rate if the address diference is greater than or
20964         equal to the cache line size (the two reference will never hit the
20965         same cache line).
20966
20967 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
20968
20969         PR target/42835
20970         * config/arm/arm-modes.def (CC_NOTB): New mode.
20971         * config/arm/arm.c (get_arm_condition_code): Handle it.
20972         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
20973         * config/arm/arm.md (subsi3_compare0_c): New pattern.
20974         (compare_scc): Now a define_and_split.  Add a number of extra
20975         splitters before it.
20976
20977         PR target/42172
20978         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
20979         and ZERO_EXTEND.
20980         (arm_rtx_costs_1): Likewise.
20981         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
20982         * config/arm/arm.md (is_arch6): New attribute.
20983         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
20984         extendqisi2): Tighten the code somewhat, avoiding invalid
20985         RTL to occur in the expander patterns.
20986         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
20987         (thumb1_zero_extendhisi2_v6): Delete.
20988         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
20989         (thumb1_extendhisi2_v6): Delete.
20990         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
20991         (thumb1_extendqisi2_v6): Delete.
20992         (zero_extendhisi2 for register input splitter): New.
20993         (zero_extendqisi2 for register input splitter): New.
20994         (thumb1_extendhisi2 for register input splitter): New.
20995         (extendhisi2 for register input splitter): New.
20996         (extendqisi2 for register input splitter): New.
20997         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
20998         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
20999         and add support for a register alternative requiring a split.
21000         (thumb1_zero_extendqisi2): Likewise.
21001         (arm_zero_extendqisi2): Likewise.
21002         (arm_extendhisi2): Likewise.
21003         (arm_extendqisi2): Likewise.
21004
21005 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21006
21007         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21008         instead of an unspec.
21009         (neon_expand_vector_init): Likewise.
21010         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21011         (UNSPEC_VDUP_LANE): Delete.
21012         (UNSPEC VDUP_N): Delete.
21013         (UNSPEC_VGET_HIGH): Delete.
21014         (UNSPEC_VGET_LANE): Delete.
21015         (UNSPEC_VGET_LOW): Delete.
21016         (UNSPEC_VMVN): Delete.
21017         (UNSPEC_VSET_LANE): Delete.
21018         (V_double_vector_mode): New.
21019         (vec_set<mode>_internal): Make code emitted match that for the
21020         corresponding intrinsics.
21021         (vec_setv2di_internal): Likewise.
21022         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21023         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21024         (neon_vset_lane<mode>): Combine double and quad patterns and
21025         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21026         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21027         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21028         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21029         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21030         with neon_vdup_lanev2di, adjusting the pattern from the latter
21031         to be predicable for consistency.
21032         (neon_vdup_lane<mode>_internal): New.
21033         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21034         to avoid using an unspec.
21035         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21036         (neon_vdup_lanev2di): Turn into a define_expand.
21037         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21038         (neon_vget_high<mode>): Replace with....
21039         (neon_vget_highv16qi): New pattern using canonical RTL.
21040         (neon_vget_highv8hi): Likewise.
21041         (neon_vget_highv4si): Likewise.
21042         (neon_vget_highv4sf): Likewise.
21043         (neon_vget_highv2di): Likewise.
21044         (neon_vget_low<mode>): Replace with....
21045         (neon_vget_lowv16qi): New pattern using canonical RTL.
21046         (neon_vget_lowv8hi): Likewise.
21047         (neon_vget_lowv4si): Likewise.
21048         (neon_vget_lowv4sf): Likewise.
21049         (neon_vget_lowv2di): Likewise.
21050
21051         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21052         test for this emitting vmov.
21053         (Vset_lane): Likewise.
21054         (Vdup_n): Likewise.
21055         (Vmov_n): Likewise.
21056
21057         * doc/arm-neon-intrinsics.texi: Regenerated.
21058
21059 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21060
21061         * config/arm/neon.md (vec_extractv2di): Correct error in register
21062         numbering to reconcile with neon_vget_lanev2di.
21063
21064 2010-07-02  Richard Guenther  <rguenther@suse.de>
21065
21066         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21067         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21068         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21069         points-to information.
21070
21071 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21072
21073         * config/s390/s390.c (override_options): Adopt prefetching
21074         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21075
21076 2010-07-02  Jan Hubicka  <jh@suse.cz>
21077
21078         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21079         (df_set_note): Just call add_reg_note.
21080         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21081         df_create_unused_note): Do not deal with lists of old notes.
21082         (df_note_bb_compute): Likewise.
21083
21084 2010-07-02  Richard Guenther  <rguenther@suse.de>
21085
21086         * tree-ssa-structalias.c (find_func_aliases): Handle
21087         pointer alignment via BIT_AND_EXPR.
21088         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21089
21090 2010-07-02  Richard Guenther  <rguenther@suse.de>
21091
21092         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21093         mismatching number of dimensions properly.
21094
21095 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21096
21097         PR target/44707
21098         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21099         (lo_sum (high ...) ...) patterns generated by earlier passes.
21100
21101 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21102
21103         * doc/install.texi (Prerequisites): Document Perl requirement on
21104         Solaris 2.
21105         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21106
21107 2010-07-02  Richard Guenther  <rguenther@suse.de>
21108
21109         PR middle-end/44777
21110         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21111
21112 2010-07-02  Jan Hubicka  <jh@suse.cz>
21113
21114         PR middle-end/44706
21115         * predict.c (predict_paths_for_bb): Handle case when control dependence
21116         BB has only abnormal edges.
21117
21118 2010-07-02  Richard Guenther  <rguenther@suse.de>
21119
21120         PR tree-optimization/44748
21121         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21122         the embedded conversion in MEM_REFs.
21123
21124 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21125
21126         * reload.c: Include toplev.h.
21127         * recog.c:  Likewise.
21128         * Makefile.in: Adjust dependencies.
21129
21130 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21131
21132         PR debug/44694
21133         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21134         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21135
21136 2010-07-01  Richard Guenther  <rguenther@suse.de>
21137
21138         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21139         types for offsets.
21140
21141 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21142
21143         PR target/44732
21144         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21145         Fix argument types.
21146
21147 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21148
21149         PR target/44727
21150         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21151         Make sure operand 0 dies.
21152
21153 2010-07-01  Richard Guenther  <rguenther@suse.de>
21154
21155         PR middle-end/42834
21156         PR middle-end/44468
21157         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21158         * doc/generic.texi (References to storage): Document MEM_REF.
21159         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21160         (print_call_name): Likewise.
21161         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21162         (build_simple_mem_ref_loc): New function.
21163         (mem_ref_offset): Likewise.
21164         * tree.h (build_simple_mem_ref_loc): Declare.
21165         (build_simple_mem_ref): Define.
21166         (mem_ref_offset): Declare.
21167         * fold-const.c: Include tree-flow.h.
21168         (operand_equal_p): Handle MEM_REF.
21169         (build_fold_addr_expr_with_type_loc): Likewise.
21170         (fold_comparison): Likewise.
21171         (fold_unary_loc): Fold
21172         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21173         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21174         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21175         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21176         (ptr_deref_may_alias_ref_p_1): Likewise.
21177         (ao_ref_base_alias_set): Properly differentiate base object for
21178         offset and TBAA.
21179         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21180         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21181         (indirect_refs_may_alias_p): Likewise.
21182         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21183         chasing code.
21184         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21185         (call_may_clobber_ref_p_1): Likewise.
21186         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21187         * expr.c (expand_assignment): Handle MEM_REF.
21188         (store_expr): Handle MEM_REFs from STRING_CSTs.
21189         (store_field): If expanding a MEM_REF of a non-addressable
21190         decl use bitfield operations.
21191         (get_inner_reference): Handle MEM_REF.
21192         (expand_expr_addr_expr_1): Likewise.
21193         (expand_expr_real_1): Likewise.
21194         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21195         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21196         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21197         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21198         (dr_analyze_indices): Likewise.
21199         (dr_analyze_alias): Likewise.
21200         (object_address_invariant_in_loop_p): Likewise.
21201         * gimplify.c (mark_addressable): Handle MEM_REF.
21202         (gimplify_cond_expr): Build MEM_REFs.
21203         (gimplify_modify_expr_to_memcpy): Likewise.
21204         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
21205         (gimple_fold_indirect_ref): Adjust.
21206         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
21207         * tree.def (MEM_REF): New tree code.
21208         * tree-dfa.c: Include toplev.h.
21209         (get_ref_base_and_extent): Handle MEM_REF.
21210         (get_addr_base_and_unit_offset): New function.
21211         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
21212         * gimple-fold.c (may_propagate_address_into_dereference): Handle
21213         MEM_REF.
21214         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
21215         accesses if the array has just one dimension.  Remove always true
21216         parameter.  Do not require type compatibility here.
21217         (maybe_fold_offset_to_component_ref): Remove.
21218         (maybe_fold_stmt_indirect): Remove.
21219         (maybe_fold_reference): Remove INDIRECT_REF handling.
21220         Fold back to non-MEM_REF.
21221         (maybe_fold_offset_to_address): Simplify.  Deal with type
21222         mismatches here.
21223         (maybe_fold_reference): Likewise.
21224         (maybe_fold_stmt_addition): Likewise.  Also handle
21225         &ARRAY + I in addition to &ARRAY[0] + I.
21226         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
21227         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
21228         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
21229         * tree-ssa.c (useless_type_conversion_p): Make most pointer
21230         conversions useless.
21231         (warn_uninitialized_var): Handle MEM_REF.
21232         (maybe_rewrite_mem_ref_base): New function.
21233         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
21234         to SSA form.
21235         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
21236         INDIRECT_REF handling.
21237         (copy_tree_body_r): Handle MEM_REF.
21238         * gimple.c (is_gimple_addressable): Adjust.
21239         (is_gimple_address): Likewise.
21240         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
21241         invariant base are invariant.
21242         (is_gimple_min_lval): Adjust.
21243         (is_gimple_mem_ref_addr): New function.
21244         (get_base_address): Handle MEM_REF.
21245         (count_ptr_derefs): Likewise.
21246         (get_base_loadstore): Likewise.
21247         * gimple.h (is_gimple_mem_ref_addr): Declare.
21248         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
21249         * tree-cfg.c (verify_address): New function, split out from ...
21250         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
21251         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
21252         INDIRECT_REFs.
21253         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
21254         INDIRECT_REF.  Allow conversions.
21255         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
21256         a register does not change its size.
21257         (verify_types_in_gimple_reference): Verify MEM_REF.
21258         (verify_gimple_assign_single): Disallow INDIRECT_REF.
21259         Handle MEM_REF.
21260         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
21261         New.
21262         (mark_address_taken): Handle MEM_REF.
21263         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
21264         (get_asm_expr_operands): Pass opf_not_non_addressable.
21265         (get_expr_operands): Handle opf_[not_]non_addressable.
21266         Handle MEM_REF.  Remove INDIRECT_REF handling.
21267         * tree-vrp.c (check_array_ref): Handle MEM_REF.
21268         (search_for_addr_array): Likewise.
21269         (check_array_bounds): Likewise.
21270         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
21271         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
21272         (ref_always_accessed_p): Likewise.
21273         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
21274         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
21275         Handle MEM_REF.
21276         * cgraphbuild.c (mark_load): Properly check for NULL result
21277         from get_base_address.
21278         (mark_store): Likewise.
21279         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
21280         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
21281         handling for MEM_REF.
21282         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
21283         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
21284         * builtins.c (stabilize_va_list_loc): Use the function ABI
21285         valist type if we couldn't canonicalize the argument type.
21286         Always dereference with the canonical va-list type.
21287         (maybe_emit_free_warning): Handle MEM_REF.
21288         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
21289         memmove to memcpy.
21290         * builtins.c (fold_builtin_memory_op): Use ref-all types
21291         for all memcpy foldings.
21292         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
21293         (build_outer_var_ref): Likewise.
21294         (scan_omp_1_op): Likewise.
21295         (lower_rec_input_clauses): Likewise.
21296         (lower_lastprivate_clauses): Likewise.
21297         (lower_reduction_clauses): Likewise.
21298         (lower_copyprivate_clauses): Likewise.
21299         (expand_omp_atomic_pipeline): Likewise.
21300         (expand_omp_atomic_mutex): Likewise.
21301         (create_task_copyfn): Likewise.
21302         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
21303         Remove old union trick.  Initialize constant offsets.
21304         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
21305         INDIRECT_REF.  Init base_alias_set properly.
21306         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
21307         (vn_reference_fold_indirect): Adjust for MEM_REFs.
21308         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
21309         for ARRAY_REFs.
21310         (may_insert): Remove.
21311         (visit_reference_op_load): Do not test may_insert.
21312         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
21313         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
21314         a field to store the constant offset this op applies.
21315         (run_scc_vn): Adjust prototype.
21316         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
21317         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
21318         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
21319         bother about volatile qualifiers on pointers.
21320         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
21321         * tree-ssa-loop-ivopts.c
21322         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
21323         (strip_offset_1): Likewise.
21324         (find_interesting_uses_address): Replace INDIRECT_REF handling with
21325         MEM_REF handling.
21326         (get_computation_cost_at): Likewise.
21327         * ipa-pure-const.c (check_op): Handle MEM_REF.
21328         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
21329         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
21330         and constants.
21331         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
21332         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
21333         (eliminate_local_variables_1): Likewise.
21334         (create_call_for_reduction_1): Likewise.
21335         (create_loads_for_reductions): Likewise.
21336         (create_loads_and_stores_for_name): Likewise.
21337         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
21338         (ssa_accessed_in_tree): Handle MEM_REF.
21339         (ssa_accessed_in_assign_rhs): Likewise.
21340         (update_type_size): Likewise.
21341         (analyze_accesses_for_call_stmt): Likewise.
21342         (analyze_accesses_for_assign_stmt): Likewise.
21343         (transform_access_sites): Likewise.
21344         (transform_allocation_sites): Likewise.
21345         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
21346         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21347         not handle INDIRECT_REF.
21348         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
21349         (cond_store_replacement): Likewise.
21350         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21351         MEM_REF, no not handle INDIRECT_REFs.
21352         (insert_into_preds_of_block): Properly initialize avail.
21353         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
21354         for ARRAY_REFs.  Properly handle reference lookups that
21355         require a bit re-interpretation.
21356         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
21357         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
21358         (build_ref_for_offset_1): Remove.
21359         (build_ref_for_offset): Build MEM_REFs.
21360         (gate_intra_sra): Disable for now.
21361         (sra_ipa_modify_expr): Handle MEM_REF.
21362         (ipa_early_sra_gate): Disable for now.
21363         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
21364         MEM_REF handling.
21365         (disqualify_base_of_expr): Likewise.
21366         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
21367         MEM_REF handling.
21368         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
21369         Use mem_ref_offset.  Remove bogus folding.
21370         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21371         (make_fancy_name_1): Add support for MEM_REF.
21372         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21373         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21374         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21375         (compute_complex_ancestor_jump_func): Likewise.
21376         (ipa_analyze_virtual_call_uses): Likewise.
21377         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21378         INDIRECT_REF folding with more generalized MEM_REF folding.
21379         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21380         (forward_propagate_addr_into_variable_array_index): Also handle
21381         &ARRAY + I in addition to &ARRAY[0] + I.
21382         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21383         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21384         creates assignments with overlap.
21385         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21386         (get_frame_field): Likewise.
21387         (get_nonlocal_debug_decl): Likewise.
21388         (convert_nonlocal_reference_op): Likewise.
21389         (struct nesting_info): Add mem_refs pointer-set.
21390         (create_nesting_tree): Allocate it.
21391         (convert_local_reference_op): Insert to be folded mem-refs.
21392         (fold_mem_refs): New function.
21393         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21394         (free_nesting_tree): Free the pointer-set.
21395         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21396         (vectorizable_load): Likewise.
21397         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21398         (propagate_with_phi): Likewise.
21399         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21400         instead of INDIRECT_REFs.
21401         (compute_object_offset): Handle MEM_REF.
21402         (plus_stmt_object_size): Handle MEM_REF.
21403         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21404         for &MEM_REF.
21405         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21406         (symbol_marked_for_renaming): Likewise.
21407         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21408         (fold-const.o): Add $(TREE_FLOW_H).
21409         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21410         (find_func_clobbers): Likewise.
21411         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21412         (decompose_access): Likewise.
21413         (replace_field_acc): Likewise.
21414         (replace_field_access_stmt): Likewise.
21415         (insert_new_var_in_stmt): Likewise.
21416         (get_stmt_accesses): Likewise.
21417         (reorg_structs_drive): Disable.
21418         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21419         (ix86_canonical_va_list_type): Likewise.
21420
21421 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21422
21423         PR other/44566
21424         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21425         * target.def (struct gcc_target): Replace enum reg_class with
21426         reg_class_t in hook argument / return types.
21427         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21428         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21429         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21430         * targhooks.h (default_branch_target_register_class): Likewise.
21431         (default_ira_cover_classes, default_secondary_reload): Likewise.
21432         (default_memory_move_cost, default_register_move_cost): Likewise.
21433         * targhooks.c (default_branch_target_register_class): Likewise.
21434         (default_ira_cover_classes, default_secondary_reload): Likewise.
21435         (default_memory_move_cost, default_register_move_cost): Likewise.
21436         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21437         * bt-load.c (branch_target_load_optimize): Likewise.
21438         * ira.c (setup_cover_and_important_classes): Likewise.
21439         * ira-costs.c (copy_cost): Likewise.
21440         * reload1.c (emit_input_reload_insns): Likewise.
21441         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21442         * config/frv/frv.c (frv_secondary_reload): Likewise.
21443         * config/s390/s390.c (s390_secondary_reload): Likewise.
21444         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21445         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21446         (ix86_register_move_cost): Likewise.
21447         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21448         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21449         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21450         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21451         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21452         (rs6000_ira_cover_classes): Likewise.
21453         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21454         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21455         Likewise.
21456         * config/pa/pa.c (pa_secondary_reload): Likewise.
21457         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21458         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21459         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21460         * doc/tm.texi: Regenerate.
21461
21462 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21463
21464         PR bootstrrap/44726
21465         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21466         use.
21467         (build_alias_set_optimal_p): Likewise.
21468         (build_base_obj_set_for_drs): Likewise.
21469
21470 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21471
21472         * target.def: Remove comment about licensing problems of function
21473         declarations.
21474
21475         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21476         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21477         * doc/tm.texi: Regenerate.
21478
21479         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21480         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21481
21482         * target.def (enum_va_list_p): Use DEFHOOK.
21483         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21484         Rename ptype to ptree.
21485         * doc/tm.texi: Regenerate.
21486
21487         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21488         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21489         * doc/tm.texi: Regenerate.
21490
21491         * target.def (memory_move_cost): Use DEFHOOK.
21492         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21493         Rename regclass AKA class to rclass.
21494         * doc/tm.texi: Regenerate.
21495
21496         * target.def (pragma_parse): Use DEFHOOK.
21497         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21498         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21499         * doc/tm.texi: Regenerate.
21500
21501         * target.def (pass_by_reference): Use DEFHOOK.
21502         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21503         * doc/tm.texi: Regenerate.
21504
21505         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21506         Use DEFHOOK.
21507         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21508         * doc/tm.texi: Regenerate.
21509
21510         * target.def (return_pops_args): Use DEFHOOK.
21511         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21512         Rename stack-size to size.
21513         * doc/tm.texi: Regenerate.
21514
21515         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21516         last-sched_cycle to last_clock, cur_cycle to clock.
21517         * doc/tm.texi.in: Use @hook.
21518         * doc/tm.texi: Regenerate.
21519
21520         * target.def (print_operand, print_operand_address): Update comment.
21521         (print_operand_punct_valid_p): Likewise.
21522
21523 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21524
21525         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21526         to rtl.h.
21527         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21528         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21529         * rtl-error.h: New.
21530         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21531         * rtl-error.c: Likewise.
21532         * reload.c: Likewise.
21533         * recog.c:  Likewise.
21534         * sel-sched.c: Likewise.
21535         * function.c: Likewise.
21536         * reg-stack.c: Likewise.
21537         * cfgrtl.c: Likewise.
21538         * reload1.c: Likewise.
21539         * final.c: Include rtl-error.
21540         * Makefile.in: Adjust dependencies.
21541
21542 2010-06-30  Jan Hubicka  <jh@suse.cz>
21543
21544         PR middle-end/PR44706
21545         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21546         to return the value.
21547
21548 2010-06-30  Michael Matz  <matz@suse.de>
21549
21550         PR bootstrap/44699
21551         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21552         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21553         a gimple reg, attach the original VDEF to the last store in the
21554         sequence.
21555
21556 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21557
21558         PR other/44034
21559         * config/darwin.c (darwin_override_options): Use renamed
21560         targetm.asm_out.emit_unwind_label.
21561
21562 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21563
21564         PR tree-optimization/39799
21565         * tree-inline.c (remap_ssa_name): Initialize variable only if
21566         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21567
21568 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21569
21570         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21571
21572 2010-06-30  Richard Guenther  <rguenther@suse.de>
21573
21574         PR target/44722
21575         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21576         against oscillation with reverse peephole2.
21577
21578 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21579
21580         PR target/44721
21581         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21582         Fix last commit.
21583
21584 2010-06-30  Nick Clifton  <nickc@redhat.com>
21585
21586         * config/rx/rx-modes.def: New file.
21587         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21588         (CC_REGNUM): Define.
21589         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21590         register.
21591         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21592         (SELECT_CC_MODE): Define.
21593         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21594         (reg:CC CC_REG) instead of (cc0).
21595         (attr "cc"): Delete.
21596         (cbranchsi4): Do not split compare and branch here. Instead move
21597         it to...
21598         (cbranchsi4_<code>): ... here.  New patterns.
21599         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21600         to emit the compare instruction.
21601         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21602         cc_status flags.
21603         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21604         FIRST_PSEUDO_REGNUM.
21605         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21606         (rx_notice_update_cc): Delete.
21607         (rx_cc_modes_compatible): New function.
21608         (flags_needed_for_conditional): New function.
21609         (flags_from_mode): New function.
21610         (rx_compare_redundant): New function - scans backwards through
21611         insn list to find out if condition flags are already set correctly.
21612         (TARGET_CC_MODES_COMPATIBLE): Define.
21613         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21614
21615         * config/rx/rx.h (BRANCH_COST): Define.
21616         (REGISTER_MOVE_COST): Define.
21617         * config/rx/predicates (rx_source_operand): Allow all constant types.
21618         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21619         (tstsi4): New pattern.
21620         * config/rx/rx.c (rx_memory_move_cost): Define.
21621         (TARGET_MEMORY_MOVE_COST): Define.
21622
21623 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21624
21625         * tree.h (block_may_fallthru): Declare here.
21626         * tree-flow.h (block_may_fallthru): Do not declare here.
21627         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21628         bitmap.h
21629         * Makefile.in (c-typeck.o): Update dependencies.
21630
21631 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21632
21633         PR debug/44694
21634         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21635         * cselib.c (cfa_base_preserved_regno): New static variable.
21636         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21637         of REGNO (cfa_base_preserved_val->locs->loc).
21638         (cselib_preserve_cfa_base_value): Add regno argument, set
21639         cfa_base_preserved_regno to it.
21640         (cselib_invalidate_regno): Allow removal of registers other than
21641         cfa_base_preserved_regno from cfa_base_preserved_val.
21642         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21643         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21644         of MEM addresses, if not on LHS.
21645         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21646         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21647
21648 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21649
21650         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21651         static variables.
21652         (peep2_buf_position): New static function.
21653         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21654         peephole2_optimize): Use it.
21655         (peep2_attempt, peep2_update_life): New static functions, broken out
21656         of peephole2_optimize.
21657         (peep2_fill_buffer): New static function.
21658         (peephole2_optimize): Change the main loop to try to fill the buffer
21659         with the maximum number of insns before matching them against
21660         peepholes.  Use a forward scan.  Remove special case for targets with
21661         conditional execution.
21662         * genrecog.c (change_state): Delete dead code.
21663         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21664         Rewrite so as not to expect the second insn to have had a peephole
21665         applied yet.
21666
21667 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21668
21669         * genhooks.c (emit_findices): Cast field precision to int.
21670         (emit_documentation): Likewise.
21671
21672 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21673
21674         PR tree-optimization/43801
21675         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21676         if old_decl was DECL_ONE_ONLY.
21677
21678         PR debug/44668
21679         * dwarf2out.c (add_accessibility_attribute): New function.
21680         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21681         instead of adding DW_AT_accessibility manually.
21682         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21683         gen_typedef_die): Use it.
21684
21685 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21686
21687         * vmsdbgout.c (full_name): Just output the file name if not native.
21688
21689 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21690
21691         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21692         (funcnam_table): New static table.
21693         (funcnum_table): New static table.
21694         (write_rtnbeg): Write value saved in funcnum_table.
21695         (write_rtnend): Write value saved in funcnum_table.
21696         (vmsdbgout_begin_function): Save current function info in
21697         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21698         (vmsdbgout_finish): Iterate over funcnum_table.
21699
21700 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21701
21702         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21703         (vmsdbgout_type_decl): Declare
21704         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21705         (FUNC_EPILOGUE_LABEL): New macro
21706         (vmsdbgout_begin_epilogue): New function.
21707         (vmsdbgout_type_decl): New function.
21708
21709 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21710
21711         * vmsdbg.h: Update copyright.
21712
21713 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21714
21715         * vmsdbg.h (DST_K_TBG): New DST constant.
21716         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21717         (write_modbeg): Cast module_language to avoid warning.
21718         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21719
21720 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21721
21722         PR other/44034
21723         * target.def, doc/tm.texi.in, genhooks.c: New files.
21724         * target.h: Instead of defining individual hook members,
21725         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21726         include target.def.
21727         * target-def.h: Instead of defining individual hook initializers,
21728         include target-hooks-def.h.
21729         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21730         targetm.live_on_entry -> targetm.extra_live_on_entry
21731         targetm.sched.md_finish ->targetm.sched.finish
21732         targetm.sched.md_init -> targetm.sched.init
21733         targetm.sched.md_init_global -> targetm.sched.init_global
21734         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21735         targetm.asm_out.except_table_label ->
21736           targetm.asm_out.emit_except_table_label
21737         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21738         targetm.target_help -> targetm.help
21739         targetm.vectorize.builtin_support_vector_misalignment ->
21740           targetm.vectorize.support_vector_misalignment
21741         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21742         targetm.file_start_file_directive ->
21743          targetm.asm_file_start_file_directive
21744         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21745         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21746         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21747         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21748           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21749         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21750           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21751         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21752         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21753         * Makefile.in (TARGET_H): Depend on target.def.
21754         (TARGET_DEF_H): Depend on target-hooks-def.h.
21755         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21756         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21757         * doc/tm.texi: Regenerate.
21758
21759         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21760
21761         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21762         (targetm.sched.init): Likewise.
21763
21764 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21765
21766         PR bootstrap/44713
21767         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21768         (function_arg_advance_32): Const-ify TYPE parameter.
21769         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21770         (ix86_function_arg_advance): Change type of NAMED to bool.
21771         (function_arg_32): Const-ify CUM and TYPE parameters.
21772         (function_arg_64): Likewise.  Change type of NAMED to bool.
21773         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21774         to bool.
21775         (ix86_function_arg): Change type of NAMED to bool.
21776         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21777         last argument as a bool.
21778
21779 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21780
21781         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21782         (OVERRIDE_OPTIONS): Add note of obsolescence.
21783         Replace references with references to TARGET_OPTION_OVERRIDE.
21784         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21785          the macro).
21786         * targhooks.c (default_target_option_override): New function.
21787         * targhooks.h (default_target_option_override): Declare.
21788         * target.h (struct gcc_target): Add override member to
21789         target_option member.
21790         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21791         targetm.target_option.override call.
21792         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21793         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21794
21795 2010-06-29  Jan Hubicka  <jh@suse.cz>
21796
21797         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21798
21799 2010-06-29  Jan Hubicka  <jh@suse.cz>
21800
21801         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21802         unreachable.
21803         (rebuild_frequencies): New function.
21804         * predict.h (rebuild_frequencies): Declare.
21805         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21806         entry block and edge reaching new_entry.
21807         (tree_function_versioning): When doing partial cloning, rebuild
21808         frequencies when done.
21809         * passes.c (execute_function_todo): Use rebild_frequencies.
21810
21811 2010-06-29  Richard Guenther  <rguenther@suse.de>
21812
21813         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21814         * tree-flow.h (enum noalias_state): Remove.
21815         (struct var_ann_d): Remove noalias_state member.
21816
21817 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21818
21819         PR target/43902
21820         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21821         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21822         (maddhidi4): Likewise.
21823
21824         Revert parts of the change for PR25130.
21825         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21826         MEM_ALIAS_SET.
21827
21828 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21829
21830         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21831         targetm.calls.function_incoming_arg, and
21832         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21833         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21834         * target.h (struct gcc_target): Add function_arg_advance,
21835         function_arg, and function_incoming_arg fields.
21836         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21837         (TARGET_FUNCTION_INCOMING_ARG): Define.
21838         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21839         and TARGET_FUNCTION_INCOMING_ARG.
21840         * targhooks.h (default_function_arg_advance): Declare.
21841         (default_function_arg, default_function_incoming_arg): Declare.
21842         * targhooks.c (default_function_arg_advance): New function.
21843         (default_function_arg, default_function_incoming_arg): New function.
21844         * config/i386/i386.c (function_arg_advance): Rename to...
21845         (ix86_function_arg_advance): ...this.  Make static.
21846         (function_arg): Rename to...
21847         (ix86_function_arg): ...this.  Make static.
21848         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21849         (TARGET_FUNCTION_ARG): Define.
21850         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
21851         (FUNCTION_ARG): Delete.
21852         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
21853         (function_arg): Delete prototype.
21854
21855 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21856
21857         * reginfo.c (init_reg_sets_1): Adjust comments.
21858         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
21859         * calls.c (prepare_call_address): Likewise.
21860         (emit_call_1): Use targetm.calls.return_pops_args.
21861         (expand_call): Likewise.
21862         * function.c (assign_parms): Likewise.
21863         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
21864         * target.h (struct gcc_target) [struct calls]: Add
21865         return_pops_args field.
21866         * targhooks.h (default_return_pops_args): Declare.
21867         * targhooks.c (default_return_pops_args): Define.
21868         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
21869         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
21870         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
21871         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
21872         documentation.
21873         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
21874         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
21875         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
21876         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
21877         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
21878         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
21879         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
21880         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
21881         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
21882         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
21883         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
21884         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
21885         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
21886         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
21887         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
21888         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
21889         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
21890         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
21891         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
21892         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
21893         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
21894         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
21895         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
21896         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
21897         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
21898         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
21899         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
21900         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
21901         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
21902         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
21903         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
21904         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
21905         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
21906         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
21907         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
21908         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
21909         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
21910         * config/i386/i386.c (ix86_return_pops_args): Make static.
21911         Constify arguments.
21912         (TARGET_RETURN_POPS_ARGS): Define.
21913         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
21914         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
21915         (TARGET_RETURN_POPS_ARGS): Define.
21916         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
21917         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
21918         (TARGET_RETURN_POPS_ARGS): Define.
21919
21920 2010-06-29  Richard Guenther  <rguenther@suse.de>
21921
21922         PR middle-end/44667
21923         * tree-inline.c (initialize_inlined_parameters): Make sure
21924         to remap the inlined parameter variable substitutions types.
21925
21926 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
21927
21928         PR rtl-optimization/44659
21929         * combine.c (make_compound_operation) <SUBREG>: Do not return the
21930         result of force_to_mode if it partially re-expanded the compound.
21931
21932 2010-06-28  Jan Hubicka  <jh@suse.cz>
21933
21934         PR middle-end/44671
21935         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
21936         RESULT_DECL.
21937
21938 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
21939
21940         * double-int.h (force_fit_type_double): Remove declaration.
21941         * double-int.c (force_fit_type_double): Move to tree.c.
21942         * tree.h (force_fit_type_double): Declare.
21943         * tree.h (force_fit_type_double): Moved from double-int.c. Use
21944         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
21945         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
21946         * convert.c (convert_to_pointer): Adjust call to
21947         force_fit_type_double.
21948         * tree-vrp.c (extract_range_from_assert,
21949         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
21950         * fold-const.c: Update comment.
21951         (int_const_binop, fold_convert_const_int_from_int,
21952         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
21953         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
21954         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
21955         round_up_loc): Adjust call to force_fit_type_double.
21956
21957 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21958
21959         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
21960
21961 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21962
21963         * tree-sra.c (convert_callers): New parameter, change fndecls of
21964         recursive calls.
21965         (modify_function): Pass the old decl to convert_callers.
21966
21967 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21968
21969         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
21970         ipa_check_create_node_params and ipa_initialize_node_params with
21971         checking asserts they are not necessary.
21972
21973 2010-06-28  Jan Hubicka  <jh@suse.cz>
21974
21975         PR tree-optimization/44687
21976         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
21977
21978 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21979
21980         PR c++/44535
21981         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
21982         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
21983         instead of BINFO_BASE_BINFO.
21984
21985 2010-06-28  Michael Matz  <matz@suse.de>
21986
21987         PR middle-end/44592
21988         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
21989         proper VDEF chain for intermediate stores in the sequence.
21990
21991 2010-06-28  Jan Hubicka  <jh@suse.cz>
21992
21993         PR tree-optimization/44357
21994         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
21995         uninlinable functions.
21996
21997 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21998
21999         * config.gcc (powerpc*-*-*): Handle titan.
22000         * config/rs6000/rs6000.c (titan_cost): New costs.
22001         (rs6000_override_options): Add "titan" to processor_target_table.
22002         Add Titan to branch alignment logic.
22003         Correctly set rs6000_cost for titan.
22004         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22005         * config/rs6000/titan.md: New file.
22006         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22007
22008 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22009
22010         * tree-browser.c (TB_history_stack): Convert to a VEC.
22011         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22012         (TB_history_prev): Likewise.
22013
22014 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22015
22016         * vec.h (vec_heap_free): Add parentheses around free.
22017
22018 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22019
22020         * system.h: Poison GCC_EXCEPT_H for front-end files.
22021
22022         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22023         langhook.
22024         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22025         Define to NULL by default.
22026         * except.h: Define GCC_EXCEPT_H.
22027         (doing_eh): Remove prototype.
22028         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22029         (lang_protect_cleanup_actions): Remove.
22030         * except.c (lang_protect_cleanup_actions): Remove.
22031         (doing_eh): Remove.
22032         (gen_eh_region): Don't check doing_eh here.
22033         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22034         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22035         instead of lang_protect_cleanup_actions.
22036         * omp-low.c (maybe_catch_exception): Likewise.
22037         * Makefile.in: Update dependencies.
22038
22039 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22040
22041         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22042         (struct cgraph_local_info): new used_from_object_file flag.
22043         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22044         (cgraph_clone_node): initialize used_from_object_file.
22045         (cgraph_create_virtual_clone): initialize used_from_object_file.
22046         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22047         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22048         when compiling with -fwhole-program.
22049         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22050         internal resolver.
22051         * ipa.c (function_and_variable_visibility): Set externally_visible
22052         flag of varpool_node if used_from_object_file flag is set.
22053         (cgraph_externally_visible_p): check used_from_object_file flag.
22054         * doc/invoke.texi (-fwhole-program option): Change description of
22055         externally_visible attribute accordingly.
22056         * doc/extend.texi (externally_visible): Ditto.
22057
22058 2010-06-27  Jan Hubicka  <jh@suse.cz>
22059
22060         * params.def (max-inline-insns-auto): Default to 40.
22061         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22062
22063 2010-06-27  Jan Hubicka  <jh@suse.cz>
22064
22065         PR middle-end/44671
22066         PR middle-end/44686
22067         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22068         signature change.
22069         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22070         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22071
22072 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22073
22074         * target.h (struct gcc_target): Add register_move_cost field.
22075         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22076         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22077         * targhooks.c (default_register_move_cost): New function.
22078         * targhooks.h (default_register_move_cost): Declare function.
22079         * defaults.h (REGISTER_MOVE_COST): Delete.
22080         * ira-int.h (ira_register_move_cost): Update comment.
22081         * ira.c (ira_register_move_cost): Update comment.
22082         * reload.h (register_move_cost): Declare.
22083         * reginfo.c (register_move_cost): New function.
22084         (move_cost): Update comment.
22085         (init_move_cost, memory_move_secondary_cost): Replace
22086         REGISTER_MOVE_COST with register_move_cost.
22087         * postreload.c (reload_cse_simplify_set): (Ditto.).
22088         * reload.c (find_valid_class, find_reloads): (Ditto.).
22089         * reload1.c (choose_reload_regs): (Ditto.).
22090         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22091         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22092         * doc/md.texi (can_create_pseudo_p): Update documentation.
22093
22094         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22095         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22096         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22097         (TARGET_MEMORY_MOVE_COST): Define.
22098
22099         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22100         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22101         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22102         (TARGET_MEMORY_MOVE_COST): Define.
22103
22104 2010-06-27  Richard Guenther  <rguenther@suse.de>
22105
22106         PR tree-optimization/44683
22107         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22108         false edge from the inverted condition.
22109
22110 2010-06-27  Richard Guenther  <rguenther@suse.de>
22111
22112         PR middle-end/44684
22113         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22114         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22115         for register LHS.  Or non-store assignments.
22116
22117 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22118
22119         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22120         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22121         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22122         (sparc_emit_set_const64): Likewise.
22123
22124 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22125
22126         * config/mips/mips.md (alu_type): New attribute.
22127         (type): Infer type from alu_type.
22128         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22129         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22130         *subsi3_extended, negsi2, negdi2, *low<mode>,
22131         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22132         xor<mode>3, *nor<mode>3,
22133         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22134         *zero_extendhi_truncqi):  Set alu_type instead of type.
22135
22136 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22137
22138         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22139         splay_tree_new_ggc call.
22140         (alpha_use_linkage): Likewise.
22141
22142 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22143
22144         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22145         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22146         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22147         (static_specs): Remove switches_need_spaces.
22148         (process_command, do_self_spec): Hardcode handling "-o" instead of
22149         checking switches_need_spaces.
22150         * system.h (SWITCHES_NEED_SPACES): Poison.
22151
22152 2010-06-26  Richard Guenther  <rguenther@suse.de>
22153
22154         PR tree-optimization/44393
22155         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22156         stmt removal and VOP renaming.
22157         (generate_memset_zero): Remove redundant stmt updating.
22158         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22159         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22160
22161 2010-06-26  Jan Hubicka  <jh@suse.cz>
22162
22163         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22164         edges comming from header are equivalent.
22165         (visit_bb): Handle PHIs correctly.
22166         * tree-inline.c (copy_phis_for_bb): Be able to copy
22167         PHI from entry edge.
22168         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22169
22170 2010-06-26  Richard Guenther  <rguenther@suse.de>
22171
22172         PR middle-end/44674
22173         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22174         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22175
22176 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22177
22178         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22179         add_infile, alloc_switch): New.
22180         (process_command): Remove variable lang_n_infiles.  Process
22181         options in a single pass.  Use new functions for allocating
22182         infiles and switches arrays.  Properly skip operands of
22183         -Xpreprocessor and -Xassembler.
22184
22185 2010-06-26  Jan Hubicka  <jh@suse.cz>
22186
22187         PR middle-end/44671
22188         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22189         cgraph_make_decl_local call; fix typo copying RTL data.
22190
22191 2010-06-25  DJ Delorie  <dj@redhat.com>
22192
22193         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22194         (m32c_output_aligned_common): Likewise.
22195         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22196         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22197         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22198         (m32c_register_pragmas): Register it.
22199         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22200         (m32c_insert_attributes): Set #pragma address decls volatile.
22201         (pragma_entry_eq): New.
22202         (pragma_entry_hash): New.
22203         (m32c_note_pragma_address): New.
22204         (m32c_get_pragma_address): New.
22205         (m32c_output_aligned_common): New.
22206         * doc/extend.texi: Document the new pragma.
22207
22208         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
22209         also.
22210         * config/m32c/predicates.md (m32c_any_operand): Check the code
22211         instead of memory_operand so as to allow matching volatile MEMs.
22212         (m32c_nonimmediate_operand): Likewise.
22213         (mra_operand): Allow volatiles.
22214
22215 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
22216
22217         PR debug/44610
22218         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
22219         address if the offset is unknown.
22220
22221 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
22222
22223         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
22224         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
22225         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
22226         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
22227         to ia64_start_function. Invoke it.
22228         * config/ia64/ia64.c (ia64_start_function): Call new function
22229         dwarf2out_vms_debug_main_pointer.
22230
22231 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22232
22233         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
22234         statements computing the true predicate.
22235
22236 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22237
22238         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
22239         to boolean_true_node.
22240         (reset_bb_predicate): New.
22241         (predicate_bbs): Call reset_bb_predicate.
22242
22243 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22244
22245         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
22246         (tree_if_conversion): Returns true when something has been changed.
22247         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
22248         changed something.
22249
22250 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22251
22252         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
22253         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
22254         * tree-if-conv.c: Include dbgcnt.h.
22255         (tree_if_conversion): Use if_conversion_tree to count the number of
22256         if-convertible loops.
22257
22258 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
22259
22260         * common.opt (fprefetch-loop-arrays): Re-define
22261         -fprefetch-loop-arrays as a tri-state option with the initial
22262         value of -1.
22263         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
22264         pass only when flag_prefetch_loop_arrays > 0.
22265         * toplev.c (process_options): Note that, with tri-states,
22266         flag_prefetch_loop_arrays>0 means prefetching is enabled.
22267         * config/i386/i386.c (override_options): Enable prefetching at -O3
22268         for a set of CPUs that sw prefetching is helpful.
22269         (software_prefetching_beneficial_p): New.  Return TRUE if software
22270         prefetching is beneficial for the given CPU.
22271
22272 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22273
22274         PR rtl-optimization/44326
22275         * implicit-zee.c (find_removable_zero_extends): Replace
22276         INSN_P with NONDEBUG_INSN_P.
22277
22278 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22279
22280         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
22281         (struct ipa_node_params): Removed the modification_analysis_done flag.
22282         (ipa_is_param_modified): Removed.
22283         (ipa_analyze_node): Declare.
22284         (ipa_compute_jump_functions): Remove declaration.
22285         (ipa_count_arguments): Likewise.
22286         (ipa_detect_param_modifications): Likewise.
22287         (ipa_analyze_params_uses): Likewise.
22288         * ipa-prop.c (struct param_analysis_info): New type.
22289         (visit_store_addr_for_mod_analysis): Removed.
22290         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
22291         moved down in the file.
22292         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
22293         (ipa_count_arguments): Made static.
22294         (mark_modified): New function.
22295         (is_parm_modified_before_call): New function.
22296         (compute_pass_through_member_ptrs): New parameter parms_info, call
22297         is_parm_modified_before_call instead of ipa_is_param_modified.
22298         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
22299         it to compute_pass_through_member_ptrs.
22300         (ipa_compute_jump_functions): New parameter parms_info, pass it to
22301         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
22302         on the callee if it is analyzed.  Made static.
22303         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
22304         is_parm_modified_before_call instead of ipa_is_param_modified.
22305         (ipa_analyze_call_uses): New parameter parms_info, pass it to
22306         ipa_analyze_indirect_call_uses.
22307         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
22308         ipa_analyze_call_uses.
22309         (ipa_analyze_params_uses): New parameter parms_info, pass it to
22310         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
22311         (ipa_analyze_node): New function.
22312         (ipa_print_node_params): Do not dump the modified flag.
22313         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
22314         it.  Do not stream the modified parameter flag.
22315         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
22316         it.  Do not stream the modified parameter flag.
22317         * ipa-cp.c (ipcp_analyze_node): Removed.
22318         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
22319         with only a call to ipa_analyze_node.
22320         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
22321         node with only a call to ipa_analyze_node.
22322
22323 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22324
22325         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
22326
22327 2010-06-25  Jan Hubicka  <jh@suse.cz>
22328
22329         * tree-pass.h (pass_split_functions): Declare.
22330         * opts.c (decode_options): Enable function splitting at -O2
22331         * timevar.def (TV_IPA_FNSPLIT): New macro.
22332         * ipa-split.c: New file.
22333         * common.opt (-fpartial-inlining): New flag.
22334         * Makefile.in (ipa-split.o): New object file.
22335         * passes.c (init_optimization_passes): Add ipa-split.
22336         * params.def (partial-inlining-entry-probability): New parameters.
22337         * doc/invoke.texi (-fpartial-inlining): New.
22338
22339 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22340
22341         PR 44665
22342         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
22343         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
22344         (gimplify_expr): Likewise.
22345
22346 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22347
22348         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
22349         statements instead of bailing out on them.
22350         (ipa_analyze_indirect_call_uses): Do not require that loads from the
22351         parameter are in the same BB as the condition.  Update comments.
22352
22353 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
22354
22355         PR middle-end/43866
22356         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
22357         true or always false, return NULL_TREE.
22358         (tree_unswitch_single_loop): Optimize conditions even when reaching
22359         max-unswitch-level parameter.  If num > 0, optimize first all conditions
22360         using entry checks, then do still reachable block discovery and consider
22361         only conditions in still reachable basic blocks in the loop.
22362
22363         PR tree-optimization/44539
22364         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
22365         the call doesn't have LHS, but has VDEF.
22366
22367 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22368
22369         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
22370         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22371         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22372         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22373         * system.h (MODIFY_TARGET_NAME): Poison.
22374
22375 2010-06-25  Alan Modra  <amodra@gmail.com>
22376
22377         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22378         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22379         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22380         CMODEL_LARGE as default.
22381         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22382         (offsettable_ok_by_alignment): Delete.
22383         (rs6000_emit_move): Remove mcmodel=medium optimization.
22384
22385 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22386
22387         With large parts from Jim Wilson:
22388         PR target/43902
22389         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22390         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22391         * optabs.c (optab_for_tree_code): Likewise.
22392         (expand_widen_pattern_expr): Likewise.
22393         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22394         out of execute_optimize_widening_mul.
22395         (convert_plusminus_to_widen): New function.
22396         (execute_optimize_widening_mul): Use the two new functions.
22397         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22398         Remove code to generate widening multiply-accumulate.  Add support
22399         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22400         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22401         (dump_gimple_assign): Call it when appropriate.
22402         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22403         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22404         (expand_gimple_stmt_1): Likewise.
22405         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22406         WIDEN_MULT_MINUS_EXPR.
22407         * tree-ssa-operands.c (get_expr_operands): Likewise.
22408         * tree-inline.c (estimate_operator_cost): Likewise.
22409         * gimple.c (extract_ops_from_tree_1): Renamed from
22410         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22411         (gimple_build_assign_stat): Support operations with three operands.
22412         (gimple_build_assign_with_ops_stat): Likewise.
22413         (gimple_assign_set_rhs_from_tree): Likewise.
22414         (gimple_assign_set_rhs_with_ops_1): Renamed from
22415         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22416         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22417         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22418         WIDEN_MULT_MINUS_EXPR.
22419         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22420         (extract_ops_from_tree_1): Adjust declaration.
22421         (gimple_assign_set_rhs_with_ops_1): Likewise.
22422         (gimple_build_assign_with_ops): Pass NULL for last operand.
22423         (gimple_build_assign_with_ops3): New macro.
22424         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22425         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22426         functions.
22427         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22428         (verify_gimple_assign): Call it.
22429         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22430         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22431         functions for dealing with three-operand statements.
22432         * tree.c (commutative_ternary_tree_code): New function.
22433         * tree.h (commutative_ternary_tree_code): Declare it.
22434         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22435         ternary statements.
22436         (gimple_assign_nonzero_warnv_p): Likewise.
22437         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22438         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22439         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22440         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22441         (struct hashtable_expr): New member ternary in the union.
22442         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22443         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22444         (iterative_hash_hashable_expr): Likewise.
22445         (print_expr_hash_elt): Handle EXPR_TERNARY.
22446         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22447         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22448         statements.  Handle GIMPLE_TERNARY_RHS.
22449
22450 2010-06-25  Jan Hubicka  <jh@suse.cz>
22451
22452         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22453
22454 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22455
22456         PR c/44517
22457         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22458         parameters are not good.
22459         (c_parser_parameter_declaration): Error unknown type name if the type
22460         name can't start declaration specifiers.
22461
22462 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22463
22464         * gcc.c (translate_options): Don't mention +e in comment.
22465         (process_command): Don't handle +e specially.
22466
22467 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22468
22469         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22470
22471         * ira-build.c (merge_hard_reg_conflicts): New function.
22472         (create_cap_allocno, copy_info_to_removed_store_destinations,
22473         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22474         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22475         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22476         copy_nifo_to_removed_store_destination): Use them.
22477         * ira-lives.c (make_hard_regno_born): New function, split out of
22478         make_regno_born.
22479         (make_allocno_born): Likewise.
22480         (make_hard_regno_dead): New function, split out of make_regno_dead.
22481         (make_allocno_dead): Likewise.
22482         (inc_register_pressure): New function, split out of set_allocno_live.
22483         (dec_register_pressure): New function, split out of clear_allocno_live.
22484         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22485         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22486         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22487         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22488         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22489         mark_pseudo_regno_live.
22490         (process_bb_node_lives): Use mark_pseudo_regno_live,
22491         make_hard_regno_born and make_allocno_dead.
22492         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22493         set_allocno_live, clear_allocno_live): Delete functions.
22494
22495         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22496         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22497         functions.
22498         (ira_flattening): Use ira_parent_allocno.
22499         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22500         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22501
22502         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22503         statement.
22504
22505         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22506         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22507         minmax_set_iter_cond, minmax_set_iter_next,
22508         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22509         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22510         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22511         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22512         uses changed.
22513
22514         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22515         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22516         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22517         All uses changed.
22518
22519 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22520
22521         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22522         (peephole2 to convert zero_extract/compare of single bit to
22523          lshift/compare): New.
22524
22525 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22526
22527         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22528         recursive call and call to 'int_const_binop'.
22529         (build_range_check, fold_cond_expr_with_comparison, unextend,
22530         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22531         multiple_of_p): Adjust call to const_binop.
22532
22533 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22534
22535         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22536         determine size of XFmode operand.
22537         (XFmode extended DFmode push splitter): Ditto.
22538         (XFmode extended SFmode push splitter): Ditto.
22539
22540 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22541
22542         PR target/44588
22543         * config/i386/i386.md (extract_code): New.
22544         (<u>divmodqi4): Likewise.
22545         (divmodhiqi3): Likewise.
22546         (udivmodhiqi3): Likewise.
22547         (<u>divqi3): Remvoved.
22548
22549 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22550
22551         PR middle-end/44492
22552         * recog.h (struct recog_data): Add is_asm field.
22553         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22554         present in constraints of inline-asm operand and memory operand
22555         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22556         (extract_insn): Initialize recog_data.is_asm.
22557         * doc/md.texi (Constraints): Document operand side-effect rules.
22558
22559 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22560
22561         * c-parser.c (c_parser_conditional_expression): Call
22562         warn_for_omitted_condop.
22563         * doc/invoke.texi: Document omitted condop warning.
22564
22565 2010-06-24  Nick Clifton<nickc@redhat.com>
22566
22567         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22568         insn in the sequence is a jump insn before setting its label.
22569
22570 2010-06-24  Alan Modra  <amodra@gmail.com>
22571
22572         * collect2.c (main): Match exactly --version and --help.
22573
22574 2010-06-24  DJ Delorie  <dj@redhat.com>
22575
22576         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22577
22578 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22579
22580         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22581         using X87MODEF mode iterator.
22582         (pushsf splitter): Macroize splitter using P mode iterator.
22583         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22584         mode iterator.
22585
22586         (*movxf_internal): Rename from *movxf_integer.
22587         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22588         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22589         (*movdf_internal): Rename from *movdf_integer.
22590         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22591         (*movsf_internal): Rename from *movdf_1.
22592
22593 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22594
22595         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22596         (const_gimple_seq_node): Removed typedefs.
22597
22598         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22599         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22600
22601 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22602
22603         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22604         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22605         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22606         and CODE_FOR_vec_extract_lo_v4df.
22607
22608         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22609         Changed to define_insn_and_split.
22610         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22611         (vec_extract_lo_v16hi): Likewise.
22612         (vec_extract_lo_v32qi): Likewise.
22613         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22614         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22615
22616 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22617
22618         PR target/44640
22619         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22620         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22621         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22622         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22623         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22624
22625         PR target/44640
22626         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22627
22628         PR other/44644
22629         * df-core.c (struct df): Rename to df_d.
22630         * df.h (struct df): Likewise.
22631         * dse.h (struct df): Remove forward declaration.
22632         * recog.h (struct insn_data): Rename to:
22633         (struct_insn_data_d).  Adjusted all users.
22634
22635 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22636
22637         PR ada/22220
22638         * doc/install.texi: Update requirements to build GNAT.
22639
22640 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22641
22642         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22643         enum type.
22644         (m68k_sched_attr_opx_type): Remove unreachable return.
22645         (m68k_sched_attr_opy_type): Likewise.
22646         (m68k_sched_attr_size): Likewise.
22647         (sched_get_opxy_mem_type): Likewise.
22648         (m68k_sched_attr_op_mem): Likewise.
22649
22650 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22651
22652         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22653         new statement and adjust VDEF only if necessary.  Remove superfluous
22654         call to maybe_clean_or_replace_eh_stmt.
22655         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22656         copy the flags.
22657         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22658         * tree-inline.c (copy_bb): ...and not there.
22659
22660 2010-06-22  Cary Coutant  <ccoutant@google.com>
22661
22662         * dwarf2out.c (is_nested_in_subprogram): New function.
22663         (should_move_die_to_comdat): Use it.
22664         (copy_ancestor_tree): Don't mark DIEs here.
22665         (copy_decls_walk): Start walk from root of newly-added tree;
22666         mark DIEs here instead.
22667
22668 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22669
22670         * config/i386/i386.md (unit): Also check sseishft1.
22671
22672 2010-06-22  Jan Hubicka  <jh@suse.cz>
22673
22674         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22675         enabled.
22676
22677 2010-06-22  Jan Hubicka  <jh@suse.cz>
22678
22679         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22680         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22681         Return true if something changed.
22682         * df.h (df_confluence_function_n): Return bool.
22683         * df-core.c (df_worklist_propagate_forward,
22684         df_worklist_propagate_backward): Track changes and ages.
22685         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22686         track ages.
22687         * dse.c (dse_confluence_n): Return always true.
22688
22689 2010-06-22  Jan Hubicka  <jh@suse.cz>
22690
22691         * bitmap.c (bitmap_clear_bit): Micro optimize.
22692
22693 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22694
22695         * config/i386/i386.md (SWI1248x): New mode iterator.
22696         (SWI48x): Ditto.
22697         (SWI12): Ditto.
22698         (SWI24): Ditto.
22699
22700         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22701         SWI1248x mode iterator.
22702         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22703         using SWI124 mode iterator.
22704         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22705         mode iterator.
22706         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22707         *pushdi2_prologue_rex64 using P mode iterator.
22708         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22709         using SWI48 mode iterator.
22710         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22711         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22712         using SWI1248x mode iterator.
22713         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22714         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22715         SWI48 mode iterator.
22716         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22717         iterator.
22718         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22719         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22720         SWI12 mode iterator.
22721         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22722         SWI12 mode iterator.
22723         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22724         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22725         SWI24 mode iterator.
22726         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22727         SWI48 mode iterator.
22728         (mov<mode>_insn_1): New expander.
22729         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22730         using SWI48x mode iterator.
22731
22732         (*movoi_internal_avx): Rename from *movoi_internal.
22733         (*movti_internal_rex64): Rename from *movti_rex64.
22734         (*movti_internal_sse): Rename from *movti_sse.
22735         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22736         (*movdi_internal): Rename from *movdi_2.
22737         (*movsi_internal): Rename from *movsi_1.
22738         (*movhi_internal): Rename from *movhi_1.
22739         (*movqi_internal): Rename from *movqi_1.
22740
22741         (insv): Update the call to gen_movsi_insv_1 for rename.
22742         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22743
22744 2010-06-22  Jan Hubicka  <jh@suse.cz>
22745
22746         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22747         to ...
22748         (execute_todo) ... this one.
22749
22750 2010-06-22  Alan Modra  <amodra@gmail.com>
22751
22752         PR target/44364
22753         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22754         * caller-save.c (insert_restore, insert_save): Use non-validate
22755         form of adjust_address.
22756
22757 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22758
22759         PR target/39690
22760         * config/pa/pa.c (override_options): Disable
22761         -freorder-blocks-and-partition.
22762
22763 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22764
22765         PR target/44615
22766         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22767
22768         * config/i386/i386.md (type): Add sseishft1
22769
22770         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22771         (ppro_insn_load): Likewise.
22772         (ppro_insn_store): Likewise.
22773         (ppro_insn_both): Likewise.
22774
22775         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22776         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22777         for type.
22778         (*vec_extractv2di_1_avx): Likewise.
22779         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22780         type.  Remove atom_unit.
22781         (*vec_extractv2di_1_sse2): Likewise.
22782
22783 2010-06-21  DJ Delorie  <dj@redhat.com>
22784
22785         * diagnostic.h (diagnostic_classification_change_t): New.
22786         (diagnostic_context): Add history and push/pop list.
22787         (diagnostic_push_diagnostics): Declare.
22788         (diagnostic_pop_diagnostics): Declare.
22789         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22790         from pragmas in a history chain instead of the global table.
22791         (diagnostic_push_diagnostics): New.
22792         (diagnostic_pop_diagnostics): New.
22793         (diagnostic_report_diagnostic): Scan history chain to find state
22794         of diagnostics as of the diagnostic location.
22795         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22796         diagnostic_classify_diagnostic.
22797         (enable_warning_as_error): Likewise.
22798         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22799         use in the history chain.
22800         * doc/extend.texi: Document pragma GCC diagnostic changes.
22801
22802 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22803
22804         * dwarf2out.c (add_linkage_name): New function.  Don't add
22805         anything to DW_TAG_member DIEs.
22806         (add_name_and_src_coords_attributes): Use it.
22807         (gen_variable_die): Call it for C++ static data members if
22808         specification is DW_TAG_member.
22809
22810         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22811         C++ char16_t and char32_t.
22812
22813         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22814         * genattrtab.c: Include vecprim.h.
22815         (cached_attrs, cached_attr_count, attrs_seen_once,
22816         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22817         attrs_cached_after): New variables.
22818         (find_attrs_to_cache): New function.
22819         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22820         (write_test_expr): Add attrs_cached argument, return it too,
22821         attempt to cache non-const attributes used more than once in
22822         a single case handling.
22823         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22824         emit cached_* variables.  Adjust write_attr_set callers.
22825         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22826         to find attributes that should be cached in this block.  Adjust
22827         write_test_expr callers.
22828         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22829         callers.
22830         (make_automaton_attrs): Adjust write_test_expr caller.
22831
22832         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22833         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22834         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22835         write separate internal_dfa_insn_code_* and insn_default_latency_*
22836         functions for each attribute's value and emit init_sched_attrs
22837         function and function pointers.
22838         * genattr.c (const_attrs, reservations): New variables.
22839         (gen_attr): Add const attributes to const_attrs vector.
22840         (check_tune_attr, find_tune_attr): New functions.
22841         (main): Add reservations to reservations vector.  If find_tune_attr
22842         returns true, add prototype for init_sched_attrs and make
22843         internal_dfa_insn_code and insn_default_latency function pointers,
22844         otherwise define init_sched_attrs as dummy macro.
22845         * cfgexpand.c: Include insn-attr.h.
22846         (gimple_expand_cfg): Call init_sched_attrs.
22847
22848         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22849
22850         PR target/44575
22851         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
22852         va_arg from a set of register save slots into a temporary,
22853         if the container is bigger than type size, do the copying
22854         using smaller mode or using memcpy.
22855
22856         PR bootstrap/44426
22857         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
22858         prototype.
22859         (sel_print_to_dot): Remove macro.
22860         (sel_print): Likewise.  New prototype.
22861         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
22862         (sel_print): New function.
22863
22864 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22865
22866         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
22867         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
22868
22869 2010-06-21  Nick Clifton  <nickc@redhat.com>
22870
22871         * config/rx/rx.h (PTRDIFF_TYPE): Define.
22872         (SMALL_REGISTER_CLASS): Define (to zero).
22873         (PRINT_OPERAND): Delete.
22874         (PRINT_OPERAND_ADDRESS): Delete.
22875         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
22876         (rx_print_operand_address): Delete prototype.
22877         * config/rx/rx.c (rx_print_operand): Make static.
22878         Allow %H and %L to handle CONST_DOUBLEs.
22879         (rx_print_operand_address): Make static.
22880         (rx_gen_move_template): Rename local variable 'template' to
22881         out_template.
22882         (rx_function_arg): Do not pass unknown sized objects in registers.
22883         (TARGET_PRINT_OPERAND): Define.
22884         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22885
22886 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
22887
22888         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
22889
22890 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
22891
22892         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
22893         stack-alignment for simple leaf-functions.
22894
22895 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22896
22897         * doc/install.texi: Document bootstrap-lto.
22898
22899 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22900
22901         PR debug/44248
22902         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
22903         (input_function): Drop them here, if VTA is disabled.
22904
22905 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
22906
22907         PR target/44546
22908         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
22909         New predicate.
22910         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
22911         ix86_swapped_fp_comparsion_operator instead of
22912         ix86_fp_comparison_operator.
22913
22914         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
22915         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
22916         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
22917         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
22918         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
22919         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
22920
22921 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
22922
22923         PR other/32998
22924         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
22925         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
22926         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
22927         (decode_cmdline_option): Update for this return value.  Set
22928         orig_option_with_args_text field.  Set arg field for unknown
22929         options.  Make static.
22930         (decode_cmdline_options_to_array): New.
22931         (prune_options): Update handling of find_opt return value.
22932         * opts.c (read_cmdline_option): Take decoded option.  Return void.
22933         (read_cmdline_options): Take decoded options.
22934         (decode_options): Add parameters for decoded options.  Use
22935         decode_cmdline_options_to_array.  Use decoded options for -O
22936         scan.  Use integral_argument for -O parameters.  Update call to
22937         read_cmdline_options.
22938         (enable_warning_as_error): Update handling of find_opt return value.
22939         * opts.h: Update comment on unknown options.
22940         (struct cl_decoded_option): Update comments on opt_index and arg.
22941         Add orig_option_with_args_text.
22942         (decode_cmdline_option): Remove.
22943         (decode_cmdline_options_to_array): Declare.
22944         (decode_options): Update prototype.
22945         * toplev.c (save_argv): Remove.
22946         (save_decoded_options, save_decoded_options_count): New.
22947         (read_integral_parameter): Remove.
22948         (print_switch_values): Use decoded options.
22949         (toplev_main): Don't set save_argv.  Update call to decode_options.
22950         * toplev.h (read_integral_parameter): Remove.
22951         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
22952
22953 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
22954
22955         PR target/44072
22956         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
22957         immediate.
22958         * constraints.md (Pw, Px): New constraints.
22959         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
22960
22961 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
22962
22963         * config/i386/sse.md (fma4modesuffixf4): Removed.
22964         (ssemodesuffixf2s): Likewise.
22965         (ssemodesuffixf4): Likewise.
22966         (ssemodesuffixf2c): Likewise.
22967         (ssescalarmodesuffix2s): Likewise.
22968         (avxmodesuffixf2c): Likewise.
22969         (ssemodesuffix): New.
22970         (ssescalarmodesuffix): Likewise.
22971         Update patterns with ssemodesuffix and ssescalarmodesuffix.
22972
22973 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
22974
22975         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
22976
22977 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
22978
22979         * stor-layout.c (debug_rli): Remove unused local variables.
22980
22981 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
22982
22983         PR rtl-optimization/40900
22984         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
22985         original expression for later reuse.
22986         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
22987         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
22988
22989 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
22990
22991         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
22992         double_int_fits_in_uhwi_p): Implement as static inline.
22993         (double_int_xor): New inline function.
22994         (double_int_lrotate, double_int_rrotate, double_int_max,
22995         double_int_umax, double_int_smax, double_int_min, double_int_umin,
22996         double_int_smin): Declare.
22997         (lrotate_double, rrotate_double): Remove declaration.
22998         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
22999         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23000         (double_int_lrotate, double_int_rrotate, double_int_max,
23001         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23002         double_int_smin): New function.
23003         * fold-const.c (int_const_binop): Clean up, use double_int_*
23004         functions.
23005         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23006         double_int_* and immed_double_int_const functions.
23007
23008 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23009
23010         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23011         * function.c (types_used_by_cur_var_decl): Likewise.
23012         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23013
23014 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23015
23016         * tree.h (record_layout_info): Change type of pending_statics field
23017         to a VEC.
23018         * stor-layout.c (start_record_layout): Store NULL into
23019         pending_statics.
23020         (debug_rli): Call debug_vec_tree instead of debug_tree.
23021         (place_field): Likewise.
23022         (finish_record_layout): Likewise.
23023
23024 2010-06-18  Alan Modra  <amodra@gmail.com>
23025
23026         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23027
23028 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23029
23030         PR target/43740
23031         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23032         for SET source operand from SET destination operand.
23033
23034 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23035
23036         PR rtl-optimization/39871
23037         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23038         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23039         (function_invariant_p): Rule out a plus of frame or arg pointer with
23040         a SYMBOL_REF.
23041         * ira.c (find_reg_equiv_invariant_const): Likewise.
23042
23043 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23044
23045         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23046         print_operand_address and puts to output the operand for CONST.
23047
23048 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23049
23050         PR debug/44572
23051         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23052         hook.
23053
23054 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23055
23056         * v850-protos.h (print_operand): Delete.
23057         (print_operand_address): Delete.
23058         * v850.h (PRINT_OPERAND): Delete.
23059         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23060         (PRINT_OPERAND_ADDRESS): Delete.
23061         * v850.c (print_operand_address): Rename to...
23062         (v850_print_operand_address): ...this.  Make static. Call
23063         v850_print_operand.
23064         (print_operand): Rename to...
23065         (v850_print_operand): ...this.  Make static.  Call
23066         v850_print_operand_address.
23067         (v850_print_operand_punct_valid_p): New function.
23068         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23069         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23070
23071 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23072
23073         * config/sh/sh-protos.h (print_operand): Delete.
23074         (print_operand_address): Delete.
23075         * config/sh/sh.h (PRINT_OPERAND): Delete.
23076         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23077         (PRINT_OPERAND_ADDRESS): Delete.
23078         * config/sh/sh.c (sh_print_operand_address): Make static.
23079         (sh_print_operand): Make static.  Call sh_print_operand_address
23080         and sh_print_operand.
23081         (sh_print_operand_punct_valid_p): New function.
23082         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23083         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23084
23085 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23086
23087         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23088         (mcore_print_operand_address): Delete.
23089         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23090         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23091         (PRINT_OPERAND_ADDRESS): Delete.
23092         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23093         (mcore_print_operand): Make static.
23094         (mcore_print_operand_punct_valid_p): New function.
23095         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23096         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23097
23098 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23099
23100         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23101         (print_operand_address): Delete.
23102         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23103         (PRINT_OPERAND_ADDRESS): Delete.
23104         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23105         static.
23106         (m68hc11_print_operand): Make static.
23107         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23108
23109 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23110
23111         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23112         (m32r_print_operand_address): Delete.
23113         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23114         (PRINT_OPERAND): Delete.
23115         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23116         (PRINT_OPERAND_ADDRESS): Delete.
23117         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23118         (m32r_print_operand_address): Make static.
23119         (m32r_print_operand): Make static.
23120         (m32r_print_operand_punct_valid_p): New function.
23121         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23122         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23123
23124 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23125
23126         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23127         (print_operand_address): Delete.
23128         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23129         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23130         (PRINT_OPERAND_ADDRESS): Delete.
23131         (iq2000_print_operand_punct): Delete.
23132         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23133         (iq2000_print_operand_address): Make static.
23134         (iq2000_print_operand): Make static.
23135         (iq2000_print_operand_punct_valid_p): New function.
23136         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23137         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23138
23139 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23140
23141         * config/frv/frv-protos.h (frv_print_operand): Delete.
23142         (frv_print_operand_address): Delete.
23143         * config/frv/frv.h (PRINT_OPERAND): Delete.
23144         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23145         (PRINT_OPERAND_ADDRESS): Delete.
23146         * config/frv/frv.c (frv_print_operand_address): Make static.
23147         (frv_print_operand): Make static.
23148         (frv_print_operand_punct_valid_p): New function.
23149         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23150         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23151
23152 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23153
23154         * tree.h (vec_member): Declare.
23155         * tree.c (vec_member): Define.
23156
23157 2010-06-17  Richard Guenther  <rguenther@suse.de>
23158
23159         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23160         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23161
23162 2010-06-17  Richard Guenther  <rguenther@suse.de>
23163
23164         * tree-inline.c (declare_return_variable): Remove bogus code.
23165
23166 2010-06-17  Richard Guenther  <rguenther@suse.de>
23167
23168         * gimplify.c (gimplify_bind_expr): Always promote complex
23169         and vector variables to registers if possible.
23170
23171 2010-06-17  Richard Guenther  <rguenther@suse.de>
23172
23173         * expr.c (get_inner_reference): Use double_int for bit_offset
23174         calculation.
23175
23176 2010-06-16  DJ Delorie  <dj@redhat.com>
23177
23178         * common.opt (-fstrict-volatile-bitfields): new.
23179         * doc/invoke.texi: Document it.
23180         * fold-const.c (optimize_bit_field_compare): For volatile
23181         bitfields, use the field's type to determine the mode, not the
23182         field's size.
23183         * expr.c (expand_assignment): Likewise.
23184         (get_inner_reference): Likewise.
23185         (expand_expr_real_1): Likewise.
23186         * expmed.c (store_fixed_bit_field): Likewise.
23187         (extract_bit_field_1): Likewise.
23188         (extract_fixed_bit_field): Likewise.
23189
23190 2010-06-16  Richard Guenther  <rguenther@suse.de>
23191
23192         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23193
23194 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23195
23196         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23197         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23198         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23199         * debug.c: Likewise.
23200         * sdbout.c: Likewise.
23201         * vmsdbgout.c: Likewise.
23202         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
23203         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
23204         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
23205         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
23206         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
23207         * dwarf2out.c (dw_fde_struct): New fields
23208         dw_fde_vms_{end,begin}_prologue.
23209         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
23210         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
23211         (dwarf2out_vms_end_prologue): New function.
23212         (dwarf2out_vms_begin_epilogue): New function.
23213         (dw_val_struct): New value dw_val_class_vms_delta.
23214         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
23215         begin_epilogue for VMS.
23216         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
23217         new static functions.
23218         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
23219         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
23220         static functions.
23221         (print_die): New case dw_val_class_vms_delta.
23222         (attr_checksum): Likewise.
23223         (same_dw_val_p: Likewise.
23224         (size_of_die): Likewise.
23225         (value_format): Likewise.
23226         (output_die): Likewise.
23227         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
23228         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
23229         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
23230         dwarf2out_cfi_begin_epilogue
23231         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
23232
23233 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23234
23235         * config/cris/cris-protos.h (cris_print_operand): Delete.
23236         (cris_print_operand_address): Delete.
23237         * config/cris/cris.h (PRINT_OPERAND): Delete.
23238         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23239         (PRINT_OPERAND_ADDRESS): Delete.
23240         * config/cris/cris.c (cris_print_operand_address): Make static.
23241         (cris_print_operand): Make static.
23242         (cris_print_operand_punct_valid_p): New function.
23243         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23244         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23245
23246 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23247
23248         * config/arm/arm-protos.h (arm_print_operand): Delete.
23249         (arm_print_operand_address): Delete.
23250         * config/arm/arm.h (PRINT_OPERAND): Delete.
23251         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23252         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
23253         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
23254         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
23255         (arm_print_operand): Make static.
23256         (arm_print_operand_punct_valid_p): New function.
23257         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23258         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23259
23260 2010-06-16  Nick Clifton  <nickc@redhat.com>
23261
23262         * config/rx/constraints.md (NEGint4): New constraint.
23263         * config/rx/rx.md (attr cc): Add set_zsc.
23264         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
23265         initialised.
23266         (cmpsf): Likewise.
23267         (call_internal): Clobber the cc0 register.
23268         (call_value_internal): Likewise.
23269         (cstoresi4): Likewise.
23270         (movsieq): Likewise.
23271         (movsine): Likewise.
23272         (addsi3): Add alternative to handle small negative constants.
23273         (sunsi3): Likewise.
23274         (addsi3): Do not set the O bit in the cc0 register.
23275         (adddi3): Likewise.
23276         (subsi3): Likewise.
23277         (subdi3): Likewise.
23278         (andsi3): Reorder alternatives to prefer shorter forms.
23279         (mulsi3): Likewise.
23280         (iorsi3): Likewise.
23281         (negsi2): Note that the cc0 flags are set.
23282         (rotlsi3): Note that only the Z and S bits are set in cc0.
23283         (lshrsi3): Likewise.
23284         (ashlsi3): Likewise.
23285         (subsf3): Use %Q for the MEM operand.
23286         (fix_truncsfsi2): Likewise.
23287         (floatsisf2): Likewise.
23288         (bitset): Remove early clobber from destination.
23289         (bitset_in_memory): Likewise.
23290         (lrintsf2): Clobber the cc0 register.
23291         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
23292         (rx_print_operand): Handle %N.
23293
23294 2010-06-16  Jan Hubicka  <jh@suse.cz>
23295
23296         * df-core.c (df_compact_blocks): Free problem_temps vector.
23297
23298 2010-06-16  Martin Jambor  <mjambor@suse.cz>
23299
23300         PR tree-optimization/43905
23301         * tree-sra.c: Include tree-inline.h.
23302         (create_abstract_origin): Removed.
23303         (modify_function): Version the call graph node instead of creating
23304         abstract origins and dealing with same_body aliases.
23305         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
23306         function is versionable.
23307         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
23308
23309 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
23310
23311         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
23312         (CHOOSE_DYNAMIC_LINKER): Update.
23313
23314 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
23315
23316         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
23317         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
23318         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
23319         *prefetch_3dnow_rex.
23320
23321 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
23322
23323         * target.h (struct asm_out):Add declare_constant_name field.
23324         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23325         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
23326         * output.h (default_asm_declare_constant_name): Declare.
23327         (assemble_label): Update prototype.
23328         * varasm.c (assemble_constant_contents): Use
23329         targetm.asm_out.declare_constant_name target hook.
23330         (assemble_label): Add 'file' argument.
23331         (default_asm_declare_constant_name): New function.
23332         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
23333         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
23334         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
23335
23336         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
23337         * config/darwin.c (darwin_asm_declare_constant_name): New function.
23338         (machopic_output_indirection): Update assemble_label argument list.
23339         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
23340         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23341
23342 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
23343
23344         PR middle-end/44391
23345         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23346         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
23347
23348 2010-06-15  Richard Guenther  <rguenther@suse.de>
23349
23350         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
23351
23352 2010-06-15  Paul Brook  <paul@codesourcery.com>
23353
23354         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
23355         hard-float ABI.
23356
23357 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
23358
23359         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
23360         don't get a vector type for output.
23361
23362 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
23363
23364         PR fortran/44536
23365         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
23366         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
23367         (LANG_HOOKS_DECLS): Add it.
23368         * gimplify.c (omp_notice_variable): Call
23369         lang_hooks.decls.omp_report_decl.
23370
23371 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23372
23373         PR lto/44464
23374         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23375         on the newly dead SSA name.
23376
23377 2010-06-15  Alan Modra  <amodra@gmail.com>
23378
23379         * doc/invoke.texi: Add mcmodel to powerpc options.
23380         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23381         * configure: Regenerate.
23382         * config.in: Regenerate.
23383         * config/rs6000/linux64.opt (mcmodel): New.
23384         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23385         (TARGET_CMODEL, SET_CMODEL): Define.
23386         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23387         select CMODEL_MEDIUM default.
23388         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23389         (TARGET_CMODEL): Define default.
23390         * config/rs6000/rs6000.c (cmodel): New variable.
23391         (rs6000_explicit_options): Add cmodel field.
23392         (rs6000_handle_option): Handle -mcmodel.
23393         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23394         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23395         (rs6000_delegitimize_address): Recognise new toc reference rtl
23396         and minimal-toc rtl.
23397         (rs6000_legitimize_reload_address): Handle new toc references.
23398         (print_operand_address): Handle legitimate_constant_pool_address_p
23399         match before lo_sum.
23400         (rs6000_eliminate_indexed_memrefs): Tidy.
23401         (rs6000_emit_move): Tweak threshold for inlining constants.
23402         Keep rs6000_emit_allocate_stack large stack frame offsets
23403         loaded into r0 inline.
23404         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23405         (tocrel_base, tocrel_offset): New variables.
23406         (toc_relative_expr_p): Set them here.
23407         (print_operand_address): Skip over any offset on constant pool address.
23408         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23409         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23410         (offsettable_ok_by_alignment): New function.
23411         (rs6000_emit_move): Address suitably aligned local symbol_refs
23412         relative to the toc pointer for -mcmodel=medium.
23413         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23414         strict param.  Allow lo_sum version of addressing.  Verify reg
23415         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23416         * config/rs6000/constraints.md: Update for above change.
23417         * config/rs6000/predicates.md: Likewise.
23418         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23419         code.
23420         (tls_gd): Split for -mcmodel=medium/large.
23421         (tls_gd_high, tls_gd_low): New.
23422         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23423         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23424         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23425         (largetoc_high, largetoc_low): New.
23426         (cmptf_internal2): Add clobber.
23427         * config/rs6000/rs6000-protos.h: Update.
23428
23429 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23430
23431         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23432         true if no prefetch is going to be generated for a given group.
23433         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23434         estimate the prefetch_count.
23435         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23436         prefetch count by considering the unroll_factor and prefetch_mod
23437         for is_loop_prefetching_profitable.
23438
23439 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23440
23441         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23442         anything if the argument is not a MEM.
23443
23444 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23445
23446         PR debug/43650
23447         PR debug/44181
23448         PR debug/44247
23449         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23450         debug stmts.
23451         (canonicalize_loop_ivs): Likewise.
23452
23453 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23454
23455         PR debug/43656
23456         * haifa-sched.c (setup_insn_reg_pressure_info,
23457         update_register_pressure): Reject debug insns.
23458         (ready_sort): Don't setup reg pressure for debug insns.
23459         (schedule_insn): Don't update reg pressure for debug insns.
23460
23461 2010-06-14  Richard Guenther  <rguenther@suse.de>
23462
23463         * lto-streamer.c (cached_bp): Remove.
23464         (bitpack_delete): Likewise.
23465         (bitpack_create): Likewise.
23466         (bp_get_next_word): Likewise.
23467         (bp_pack_value, bp_unpack_value): Move ...
23468         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23469         Re-implement.
23470         (struct bitpack_d): Likewise.
23471         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23472         New inline functions.
23473         * lto-streamer-out.c (lto_output_bitpack): Remove.
23474         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23475         (pack_value_fields): Adjust.
23476         (lto_write_tree): Likewise.
23477         (output_gimple_stmt): Likewise.
23478         (output_function): Likewise.
23479         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23480         (input_function): Likewise.
23481         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23482         (lto_input_bitpack): Remove.
23483         (lto_materialize_tree): Adjust.
23484         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23485         * lto-cgraph.c (lto_output_edge): Adjust.
23486         (lto_output_node): Likewise.
23487         (lto_output_varpool_node): Likewise.
23488         (lto_output_ref): Likewise.
23489         (input_node): Likewise.
23490         (input_varpool_node): Likewise.
23491         (input_ref): Likewise.
23492         (input_edge): Likewise.
23493         (output_node_opt_summary): Likewise.
23494         (input_node_opt_summary): Likewise.
23495         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23496         (pure_const_read_summary): Likewise.
23497         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23498         (ipa_read_indirect_edge_info): Likewise.
23499         (ipa_write_node_info): Likewise.
23500         (ipa_read_node_info): Likewise.
23501
23502 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23503
23504         PR target/44534
23505         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23506         (vec_extract_lo_v16hi): Likewise.
23507         (vec_extract_lo_v32qi): Likewise.
23508
23509 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23510
23511         PR bootstrap/44426
23512         * tree.h (build_call_expr): Don't define as vararg macro, instead
23513         add a prototype.
23514         * builtins.c (build_call_nofold): Remove.
23515         (expand_builtin_int_roundingfn, expand_builtin_pow,
23516         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23517         expand_builtin_memset_args, expand_builtin_strcmp,
23518         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23519         build_call_nofold_loc instead of build_call_nofold.
23520         (build_call_expr): New function.
23521
23522         PR tree-optimization/44508
23523         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23524         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23525         don't eliminate trivially dead stmts.
23526         * tree-vrp.c (vrp_finalize): Pass false as last argument
23527         to substitute_and_fold.
23528         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23529         to substitute_and_fold.
23530         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23531
23532         PR bootstrap/44509
23533         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23534
23535 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23536
23537         PR tree-optimization/44507
23538         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23539         to build initial vector for BIT_AND_EXPR.
23540         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23541
23542 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23543
23544         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23545         adjust z10prop set_attr.
23546
23547 2010-06-13  Jan Hubicka  <jh@suse.cz>
23548
23549         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23550         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23551         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23552         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23553         datastructure checks into checking asserts.
23554         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23555         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23556         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23557         df_ref_create_structure): Likewise.
23558         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23559         pool_free): Use gcc_checking_assert.
23560         * alias.c (get_alias_set): Likewise.
23561         * var-tracking.c (variable_htab_free, shared_hash_copy,
23562         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23563         * lto-streamer.c (bp_unpack_value): Likewise.
23564
23565 2010-06-13  Richard Guenther  <rguenther@suse.de>
23566
23567         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23568         Do not stream but initialize TYPE_CANONICAL to NULL.
23569         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23570         * gimple.c (gimple_types_compatible_p): Disregard
23571         TYPE_STRUCTURAL_EQUALITY_P.
23572         (gimple_register_type): Use TYPE_CANONICAL as cache.
23573         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23574         before registering common types.
23575         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23576         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23577         * tree.h (TYPE_CANONICAL): Clarify documentation.
23578
23579 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23580
23581         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23582         LIBCALL_VALUE): Remove macros.
23583         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23584         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23585         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23586         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23587         (ia64_function_value): Make static. Handle receiving the function
23588         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23589
23590 2010-06-12  Jan Hubicka  <jh@suse.cz>
23591
23592         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23593         at correct place.
23594
23595 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23596
23597         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23598
23599 2010-06-12  Jan Hubicka  <jh@suse.cz>
23600
23601         * df-core.c (df_clear_bb_info): New function.
23602         (df_set_blocks): bb_info is always allocated.
23603         (df_get_bb_info): Use block_info_elt_size.
23604         (df_set_bb_info): Likewise.
23605         (df_compact_blocks): Update for new block_info.
23606         (grow_bb_info): New function.
23607         * df-problems.c (df_grow_bb_info): Move to df-core.c
23608         (df_rd_set_bb_info): Remove.
23609         (df_rd_free_bb_info): Do not free block pool.
23610         (df_rd_alloc): Do not create pool, use check for
23611         obstack presence instead of NULL pointer for new blocks.
23612         (df_rd_free): DO not free alloc pool; clear block_info.
23613         (problem_RD): Add size of block info structure.
23614         (df_lr_set_bb_info): Remove.
23615         (df_lr_free_bb_info): Do not free block pool.
23616         (df_lr_alloc): Do not create pool, use check for
23617         obstack presence instead of NULL pointer for new blocks.
23618         (df_lr_free): DO not free alloc pool; clear block_info.
23619         (problem_LR): Add size of block info structure.
23620         (df_live_set_bb_info): Remove.
23621         (df_live_free_bb_info): Do not free block pool.
23622         (df_live_alloc): Do not create pool, use check for
23623         obstack presence instead of NULL pointer for new blocks.
23624         (df_live_free): DO not free alloc pool; clear block_info.
23625         (problem_LIVE): Add size of block info structure.
23626         (problem_CHAIN): Add size of block info structure.
23627         (df_byte_lr_set_bb_info): Remove.
23628         (df_byte_lr_free_bb_info): Do not free block pool.
23629         (df_byte_lr_alloc): Do not create pool, use check for
23630         obstack presence instead of NULL pointer for new blocks.
23631         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23632         (problem_BYTE_LR): Add size of block info structure.
23633         (problem_NOTE): Add size of block info structure.
23634         (df_byte_MD_set_bb_info): Remove.
23635         (df_byte_MD_free_bb_info): Do not free block pool.
23636         (df_byte_MD_alloc): Do not create pool, use check for
23637         obstack presence instead of NULL pointer for new blocks.
23638         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23639         (problem_BD): Add size of block info structure.
23640         * df-scan.c (df_scan_free_internal): Free block pool.
23641         (df_scan_set_bb_info): Remove.
23642         (df_scan_free_bb_info): Check for artificial_defs instead
23643         of bb_info being non-NULL.
23644         (df_scan_alloc): DO not create df_scan_block pool.
23645         (problem_SCAN): Set size of block info.
23646         (df_bb_refs_record): Do not allocate bb_info.
23647         * df.h (df_problem): Add block_info_elt_size.
23648         (struct dataflow): Change block_info to void *.
23649         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23650         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23651         in-line structures.
23652
23653 2010-06-12  Jan Hubicka  <jh@suse.cz>
23654
23655         PR tree-optimize/44485
23656         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23657         containing use of return value of noreturn function.
23658
23659 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23660
23661         * targhooks.c (default_function_value): Don't use
23662         FUNCTION_OUTGOING_VALUE.
23663         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23664         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23665
23666 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23667
23668         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23669         Add crtfastmath.o to extra_parts.
23670         * config/mips/crtfastmath.c: New.
23671         * config/mips/linux.h (ENDFILE_SPEC): New.
23672
23673 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23674
23675         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23676         old_type in parameter.
23677         (gcc_type_for_value): Update call to gcc_type_for_interval.
23678         (compute_type_for_level_1): Renamed compute_type_for_level.
23679         Update call to gcc_type_for_interval.
23680
23681 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23682
23683         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23684         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23685
23686 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23687
23688         * opts-common.c: Include options.h.
23689         (integral_argument): Move from opts.c.
23690         (decode_cmdline_option): New.  Based on read_cmdline_option.
23691         * opts.c (integral_argument): Move to opts-common.c.
23692         (read_cmdline_option): Move most contents to
23693         decode_cmdline_option.  Use %qs in diagnostics.
23694         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23695         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23696         decode_cmdline_option): New.
23697
23698 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23699
23700         PR target/44481
23701         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23702         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23703         (partiysi2_cmp): Ditto.
23704         (*partiyhi2_cmp): Ditto.
23705         (*parityqi2_cmp): Remove.
23706
23707 2010-06-11  Jan Hubicka  <jh@suse.cz>
23708
23709         * bitmap.h (bmp_iter_next_bit): New.
23710         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23711
23712 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23713             Eric Botcazou  <ebotcazou@adacore.com>
23714
23715         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23716         computed cost.
23717
23718 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23719
23720         * config/i386/i386.md (unspec): New define_c_enum.
23721         (unspecv): Ditto.
23722
23723 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23724
23725         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23726
23727 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23728
23729         PR middle-end/44483
23730         * tree-if-conv.c (bb_predicate_s): New struct.
23731         (bb_predicate_p): New.
23732         (bb_has_predicate): New.
23733         (bb_predicate): New.
23734         (set_bb_predicate): New.
23735         (bb_predicate_gimplified_stmts): New.
23736         (set_bb_predicate_gimplified_stmts): New.
23737         (add_bb_predicate_gimplified_stmts): New.
23738         (init_bb_predicate): New.
23739         (free_bb_predicate): New.
23740         (is_predicated): Use bb_predicate.
23741         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23742         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23743         before processing their successors.
23744         (clean_predicate_lists): Removed.
23745         (find_phi_replacement_condition): Use bb_predicate.
23746         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23747         computations.
23748         (insert_gimplified_predicates): New.
23749         (combine_blocks): Call insert_gimplified_predicates.
23750         (tree_if_conversion): Call free_bb_predicate instead of
23751         clean_predicate_lists.
23752
23753 2010-10-11  Paul Brook  <paul@codesourcery.com>
23754
23755         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23756         * config/arm/arm.c (all_architectures): Change v7e-m default to
23757         cortexm4.
23758         * config/arm/arm-cores.def: Add cortex-m4.
23759         * config/arm/arm-tune.md: Regenerate.
23760
23761 2010-06-11  Jan Hubicka  <jh@suse.cz>
23762
23763         * ipa-pure-const.c (special_builtlin_state): New function.
23764         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23765         (propagate_pure_const): Use it.
23766
23767 2010-06-11  Jan Hubicka  <jh@suse.cz>
23768
23769         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23770         (df_live_alloc): Initialize df_live_scratch when initializing
23771         problem_data.
23772         (df_live_transfer_function): Update uses of df_live_scratch.
23773         (df_live_free): Free problem_data; clear df_live_scratch before
23774         releasing the obstack.
23775         (df_md_free): Free problem data.
23776
23777 2010-06-11  Jan Hubicka  <jh@suse.cz>
23778
23779         * doc/invoke.texi (Wsuggest-attribute): Document.
23780         (Wmissing-noreturn): Remove.
23781         * ipa-pure-const.c (warn_function_noreturn): New function.
23782         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23783         warn_missing_noreturn.
23784         * common.opt (Wsuggest-attribute=noreturn): New.
23785         * tree-flow.h (warn_function_noreturn): Declare.
23786         * tree-cfg.c (execute_warn_function_noreturn): Use
23787         warn_function_noreturn.
23788         (gate_warn_function_noreturn): New.
23789         (pass_warn_function_noreturn): Update.
23790
23791 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23792
23793         * c-typeck.c (handle_warn_cast_qual): Add loc
23794         parameter. Improve warning message.
23795         (build_c_cast): Pass location to handle_warn_cast_qual.
23796
23797 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23798
23799         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23800         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23801         insn mnemonic.
23802         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23803
23804 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23805
23806         Fix bootstap on mips
23807         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23808         be naming typedefs.
23809
23810 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23811
23812         * system.h (helper_const_non_const_cast): New inline for
23813         gcc version <= 4.0.
23814         (CONST_CAST2): For gcc version <= 4.0 use
23815         new helper to do const/non-const casting.
23816
23817 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23818
23819         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23820         * Makefile.in (OBJS-common): Include insn-enums.o.
23821         (insn-enums.o): New rule.
23822         (simple_generated_c): Add insn-enums.c.
23823         (build/genenums.o): New rule.
23824         (genprogmd): Add "enums".
23825         * genconstants.c (print_enum_type): Declare a C string array
23826         for each enum.
23827         * genenums.c: New file.
23828         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23829         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23830         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23831
23832 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23833
23834         * doc/md.texi (define_enum_attr): Document.
23835         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23836         * read-md.h (lookup_enum_type): Declare.
23837         * read-md.c (lookup_enum_type): New function.
23838         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23839         * genattrtab.c (attr_desc): Add an enum_name field.
23840         (evaluate_eq_attr): Take the associated attribute as argument.
23841         Get the enum prefix from the enum_name field, if defined.
23842         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23843         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23844         (add_attr_value): New function, split out from...
23845         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23846         (write_test_expr): Pass attr to evaluate_eq_attr.
23847         (write_attr_get): Use the enum_name as the enum tag, if defined.
23848         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23849         (find_attr): Initialize enum_name.
23850         (main): Handle DEFINE_ENUM_ATTR.
23851         * gensupport.c (process_rtx): Likewise.
23852         * config/mips/mips.h (mips_tune_attr): Delete.
23853         * config/mips/mips.md (cpu): Use define_attr_enum.
23854
23855 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23856
23857         * doc/md.texi (define_c_enum, define_enum): Document.
23858         * read-md.h (md_constant): Add a parent_enum field.
23859         (enum_value, enum_type): New structures.
23860         (upcase_string, traverse_enum_types): Declare.
23861         * read-md.c (enum_types): New variable.
23862         (upcase_string, add_constant): New functions.
23863         (handle_constants): Don't create the hash table here.
23864         Use add_constant.
23865         (traverse_md_constants): Don't check for a null md_constants.
23866         (decimal_string, handle_enum, traverse_enum_types): New functions.
23867         (read_md_files): Initialize md_constants and md_enums.
23868         * genconstants.c (print_md_constant): Ignore info argument.
23869         Only print constants that belong to no enum.
23870         (print_enum_type): New function.
23871         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
23872         for each defined enum type.
23873         * config/mips/mips.md (processor): New define_enum.
23874         (unspec): New define_c_enum.
23875         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
23876         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
23877         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
23878         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
23879         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
23880         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
23881         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
23882         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
23883         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
23884         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
23885         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
23886         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
23887         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
23888         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
23889         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
23890         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
23891         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
23892         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
23893         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
23894         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
23895         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
23896         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
23897         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23898         (UNSPEC_RDDSP): Move to mips-dsp.md.
23899         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
23900         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
23901         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
23902         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
23903         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
23904         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
23905         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
23906         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
23907         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
23908         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
23909         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
23910         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
23911         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
23912         Moved to mips-dspr2.md.
23913         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
23914         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
23915         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
23916         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
23917         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
23918         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
23919         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23920         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23921         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23922         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23923         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23924         UNSPEC_LOONGSON_PSADBH)
23925         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23926         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23927         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
23928         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23929         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23930         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23931         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
23932         (cpu): Update comment.
23933         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
23934         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
23935         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
23936         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
23937         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
23938         UNSPEC_LOONGSON_PCMPEQ)
23939         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
23940         UNSPEC_LOONGSON_PINSR_0)
23941         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23942         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23943         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23944         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23945         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23946         UNSPEC_LOONGSON_PSADBH)
23947         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23948         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23949         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
23950         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23951         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23952         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23953         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
23954         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
23955         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
23956         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
23957         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
23958         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
23959         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
23960         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
23961         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
23962         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
23963         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
23964         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
23965         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
23966         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
23967         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
23968         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
23969         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
23970         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
23971         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
23972         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
23973         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23974         (UNSPEC_RDDSP): Moved from mips.md.
23975         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
23976         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
23977         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
23978         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
23979         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
23980         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
23981         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
23982         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
23983         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
23984         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
23985         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
23986         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
23987         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
23988         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
23989         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
23990         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
23991         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
23992         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
23993         (UNSPEC_SCC): Moved from mips.md.
23994         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
23995         "processor_type" to "processor".
23996         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
23997         * config/mips/mips.h (processor_type): Delete.
23998         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
23999         "processor_type" to "processor".
24000
24001 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24002
24003         * configure.ac (tm_include_list): Add insn-constants.h.
24004         * configure: Regenerate.
24005         * Makefile.in (GTM_H): Move insn-constants.h here from...
24006         (TM_H): ...here.
24007         * mkconfig.sh: Remove special handling for insn-constants.h.
24008
24009 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24010
24011         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24012         (BUILD_MD): ...this new variable.
24013         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24014         that include the old contents of simple_generated_h and
24015         simple_generated_c.
24016         (simple_generated_h, simple_generated_c): Include them.  Add
24017         insn-constants.h.
24018         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24019         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24020         Remove these dependencies from the main rule and include
24021         insn-conditions.md in the command line only if it appears
24022         in the dependency list.
24023         (insn-constants.h, s-constants): Delete.
24024         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24025         or gensupport.h.
24026         (build/genmddeps.o): Likewise.
24027         (genprogrtl): New variable that contains everything from genprogmd
24028         except mddeps and constants.
24029         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24030         depend on $(BUILD_MD)
24031         (genprog): New variable.  Make these programs depend on
24032         $(BUILD_ERRORS).
24033         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24034         (main): Use read_md_files instead of init_rtx_reader_args.
24035         * genconstants.c: As for genmddeps.c.
24036         * read-md.h (read_skip_construct): Declare.
24037         * read-md.c (read_skip_construct): New function.
24038         (handle_file): Allow a null handle_directive, skipping the
24039         construct if so.
24040         (parse_include): Update the comment accordingly.
24041
24042 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24043
24044         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24045         * genmddeps.c: Include read-md.h.
24046         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24047         * genattr.c (main): Likewise.
24048         * genattrtab.c (main): Likewise.
24049         * genautomata.c (main): Likewise.
24050         * gencodes.c (main): Likewise.
24051         * genconditions.c (main): Likewise.
24052         * genconfig.c (main): Likewise.
24053         * genconstants.c (main): Likewise.
24054         * genemit.c (main): Likewise.
24055         * genextract.c (main): Likewise.
24056         * genflags.c (main): Likewise.
24057         * genopinit.c (main): Likewise.
24058         * genoutput.c (main): Likewise.
24059         * genpeep.c (main): Likewise.
24060         * genrecog.c (main): Likewise.
24061         * genpreds.c (main): Likewise.
24062         * gensupport.h (in_fname): Move to read-md.h.
24063         (init_md_reader_args_cb): Rename to...
24064         (init_rtx_reader_args_cb): ...this and return a bool.
24065         (init_md_reader_args): Rename to...
24066         (init_rtx_reader_args): ...this and return a bool.
24067         (include_callback): Move to read-md.h.
24068         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24069         (file_name_list, first_dir_md_include): Move to read-md.c
24070         (first_bracket_include): Delete unused variable.
24071         (last_dir_md_include): Move to read-md.c.
24072         (process_include): Delete, moving code to read-md.c:handle_include.
24073         (process_rtx): Don't handle INCLUDE.
24074         (save_string): Delete.
24075         (rtx_handle_directive): New function.
24076         (init_md_reader_args_cb): Rename to...
24077         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24078         Use read_md_args.
24079         (init_md_reader_args): Rename to...
24080         (init_rtx_reader_args): ...this and return a boolean success value.
24081         * rtl.def (INCLUDE): Delete.
24082         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24083         argument.
24084         * read-rtl.c (read_conditions): Don't gobble ')' here.
24085         (read_mapping): Likewise.
24086         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24087         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24088         Store the whole queue in *X.  Remove call to init_md_reader.
24089         (read_rtx_1): Rename to...
24090         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24091         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24092         here.
24093         (read_nested_rtx): New function.  Handle (nil) here rather than
24094         in read_rtx_code.
24095         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24096         gobble ')' here.
24097         * read-md.h (directive_handler_t): New type.
24098         (in_fname, include_callback): Moved from read-md.h.
24099         (read_constants, init_md_reader): Delete.
24100         (read_md_files): Declare.
24101         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24102         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24103         from gensupport.c.
24104         (read_constants): Rename to...
24105         (handle_constants): ...this.  Don't gobble ')' here.
24106         (handle_include, handle_file, handle_toplevel_file)
24107         (parse_include): New functions, mostly taken from gensupport.c.
24108         (init_md_reader): Subsume into...
24109         (read_md_files): ...this new function.
24110
24111 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24112
24113         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24114         (unread_char): Decrement read_md_lineno after putting back '\n'.
24115         * read-md.c (fatal_with_file_and_line): Push back any characters
24116         that we decide not to add to the context.
24117         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24118         fatal_expected_char in cases where '/' ends a line (for example).
24119         (read_name): Don't increment read_md_lineno here.
24120         (read_escape): Likewise.
24121         (read_quoted_string): Likewise.
24122         (read_braced_string): Likewise.
24123
24124 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24125
24126         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24127         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24128         * genconstants.c: Include read-md.h.
24129         * read-rtl.c (md_constants): Move to read-md.c.
24130         (md_name): Move to read-md.h.
24131         (initialize_iterators): Use leading_string_hash instead of def_hash
24132         and leading_string_eq_p instead of def_name_eq_p.
24133         (read_name): Move to read-md.c.
24134         (def_hash, def_name_eq_p): Delete.
24135         (read_constants, traverse_md_constants): Move to read-md.c.
24136         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24137         * read-md.h: Include hashtab.h.
24138         (md_name): Moved from read-rtl.c.
24139         (md_constant): Moved from read-md.h.
24140         (leading_string_hash, leading_string_eq_p, read_name)
24141         (read_constants, traverse_md_constants): Declare.
24142         * read-md.c (md_constants): Moved from read-rtl.c.
24143         (leading_string_hash, leading_string_eq_p): New functions.
24144         (read_name, read_constants, traverse_md_constants): Moved from
24145         read-rtl.c.
24146
24147 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24148
24149         * read-rtl.c (md_name): New structure.
24150         (read_name): Take an md_name instead of a buffer pointer.
24151         Use the "string" field instead of strcpy when expanding constants.
24152         (read_constants): Remove the tmp_char argument.  Update the calls
24153         to read_name, using two local name buffers instead of the tmp_char
24154         argument.  Merge the constant-creation code.
24155         (read_conditions): Remove the tmp_char argument.  Update the calls
24156         to read_name, using a local name buffer instead of the tmp_char
24157         argument.
24158         (read_mapping): Replace tmp_char variable with a local name buffer.
24159         Update the calls to read_name.
24160         (read_rtx_1): Likewise.  Update the calls to read_constants and
24161         read_conditions.
24162
24163 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24164
24165         * Makefile.in (build/read-md.o): Depend on errors.h.
24166         * read-md.h (error_with_line): Declare.
24167         * read-md.c: Include errors.h.
24168         (message_with_line_1): New function, extracted from...
24169         (message_with_line): ...here.
24170         (error_with_line): New function.
24171         * genattrtab.c: If a call to message_with_line is followed by
24172         "have_error = 1;", replace both statements with a call to
24173         error_with_line.
24174         * genoutput.c: Likewise.
24175         * genpreds.c: Likewise.
24176         * genrecog.c: If a call to message_with_line is followed by
24177         "error_count++;", replace both statements with a call to
24178         error_with_line.
24179         (errorcount): Delete.
24180         (main): Don't check it.
24181         * gensupport.c: If a call to message_with_line is followed by
24182         "errors = 1;", replace both statements with a call to error_with_line.
24183         (errors): Delete.
24184         (process_define_cond_exec): Check have_error instead of errors.
24185         (init_md_reader_args_cb): Likewise.  Don't set errors.
24186
24187 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24188
24189         * read-md.h (read_md_file): Declare.
24190         (read_char, unread_char): New functions.
24191         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24192         (read_quoted_string, read_string): Remove FILE * argument.
24193         * read-md.c (read_md_file): New variable.
24194         (read_md_filename, read_md_lineno): Update comments and remove
24195         unnecessary initialization.
24196         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24197         (read_escape, read_quoted_string, read_braced_string, read_string):
24198         Remove FILE * argument.  Update calls accordingly, using read_char
24199         and unread_char instead of getc and ungetc.
24200         * rtl.h (read_rtx): Remove FILE * argument.
24201         * read-rtl.c (iterator_group): Remove FILE * argument from
24202         "find_builtin".
24203         (iterator_traverse_data): Remove "infile" field.
24204         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
24205         (add_mapping, read_name, read_constants, read_conditions)
24206         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
24207         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
24208         Remove file arguments from all calls, using read_char and unread_char
24209         instead of getc and ungetc.
24210         * gensupport.c (process_include): Preserve read_md_file around
24211         the include.  Set read_md_file to the handle of the included file.
24212         Update call to read_rtx.
24213         (init_md_reader_args_cb): Set read_md_file to the handle of the file
24214         and remove local FILE *.  Update calls to read_rtx.
24215
24216 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24217
24218         * read-md.h (read_rtx_lineno): Rename to...
24219         (read_md_lineno): ...this.
24220         (read_rtx_filename): Rename to...
24221         (read_md_filename): ...this.
24222         (copy_rtx_ptr_loc): Rename to...
24223         (copy_md_ptr_loc): ...this.
24224         (print_rtx_ptr_loc): Rename to...
24225         (print_md_ptr_loc): ...this.
24226         * read-md.c: Likewise.  Update references after renaming.
24227         (string_obstack): Replace RTL with MD in comment.
24228         (set_rtx_ptr_loc): Rename to...
24229         (set_md_ptr_loc): ...this.
24230         (get_rtx_ptr_loc): Rename to...
24231         (get_md_ptr_loc): ...this.
24232         * genconditions.c: Update references after renaming.
24233         * genemit.c: Likewise.
24234         * genoutput.c: Likewise.
24235         * genpreds.c: Likewise.
24236         * gensupport.c: Likewise.
24237         * read-rtl.c: Likewise.
24238
24239 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24240
24241         * Makefile.in (READ_MD_H): New variable.
24242         (BUILD_RTL): Add build/read-md.o.
24243         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
24244         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
24245         (build/genattrtab.o, build/genconditions.o build/genemit.o)
24246         (build/genextract.o, build/genflags.o, build/genoutput.o)
24247         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
24248         (build/read-md.o): New rule.
24249         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
24250         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
24251         * coretypes.h: ...here.
24252         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
24253         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
24254         * genattr.c: Include read-md.h.
24255         * genattrtab.c: Likewise.
24256         * genconditions.c: Likewise.
24257         * genemit.c: Likewise.
24258         * genextract.c: Likewise.
24259         * genflags.c: Likewise.
24260         * genoutput.c: Likewise.
24261         * genpreds.c: Likewise.
24262         * genrecog.c: Likewise.
24263         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
24264         (join_c_conditions, print_c_condition, read_rtx_filename)
24265         (read_rtx_lineno): Move to read-md.h.
24266         * read-rtl.c: Include read-md.h.
24267         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
24268         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
24269         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
24270         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
24271         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
24272         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
24273         (read_braced_string, read_string): Move to read-md.c.
24274         (read_rtx): Move some initialization to init_md_reader and call
24275         init_md_reader here.
24276         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
24277         Move to read-md.h.
24278         * gensupport.c: Include read-md.h.
24279         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
24280         * read-md.h, read-md.c: New files.
24281
24282 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
24283
24284         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24285         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24286         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
24287         * config/moxie/moxie.c (moxie_function_value): Make static.
24288         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
24289         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24290
24291 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24292
24293         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
24294         * dbgcnt.def (tree_sra): New counter.
24295         * tree-sra.c: Include dbgcnt.h.
24296         (gate_intra_sra): Check tree_sra debug counter.
24297
24298 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24299
24300         PR tree-optimization/44258
24301         * tree-sra.c (build_access_subtree): Return false iff there is a
24302         partial overlap.
24303         (build_access_trees): Likewise.
24304         (analyze_all_variable_accesses): Disqualify candidates if
24305         build_access_trees returns true for them.
24306
24307 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
24308
24309         PR debug/41371
24310         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
24311         tail-recurse into canonical node.  Fast-forward over
24312         non-canonical VALUEs.
24313
24314 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
24315
24316         PR boostrap/44470
24317         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
24318         (*addsi_1_zext) <TYPE_LEA>: Likewise.
24319         (add lea splitter): Likewise.
24320         (add_zext lea splitter): Likewise.
24321
24322 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
24323
24324         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
24325
24326 2010-06-10  Jan Hubicka  <jh@suse.cz>
24327
24328         * df-problems.c (df_live_problem_data): Add live_bitmaps.
24329         (df_live_alloc): Initialize problem data and live_osbtacks.
24330         (df_live_finalize): Remove obstack, problem data; do not
24331         clear all bitmaps.
24332         (df_live_top_dump, df_live_bottom_dump): Do not dump old
24333         data when not allocated.
24334         (df_live_verify_solution_start): Do not allocate problem data.
24335         (df_live_verify_solution_end): Check if out is allocated.
24336         (struct df_md_problem_data): New structure.
24337         (df_md_alloc): Allocate problem data.
24338         (df_md_free): Free problem data; do not clear bitmaps.
24339
24340 2010-06-10  Jan Beulich  <jbeulich@novell.com>
24341
24342         PR bootstrap/37304
24343         * configure.ac: Replace $() with ${} when intending to expand
24344         variables rather than invoking commands.
24345         * configure: Re-generate.
24346
24347 2010-06-10  Jan Hubicka  <jh@suse.cz>
24348
24349         PR rtl-optimization/44460
24350         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
24351         TYPE_NEEDS_CONSTRUCTING sanity check.
24352
24353 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
24354
24355         * doc/include/fdl.texi: Move to GFDL version 1.3.
24356
24357         * doc/cpp.texi: Move to GFDL version 1.3.
24358         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
24359         * doc/gccint.texi: Move to GFDL version 1.3.
24360         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
24361         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
24362         * doc/invoke.texi: Move to GFDL version 1.3.
24363
24364 2010-06-09  Jan Hubicka  <jh@suse.cz>
24365
24366         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
24367         Break out from ...
24368         (propagate) ... here; swap the order.
24369
24370 2010-06-09  Jan Hubicka  <jh@suse.cz>
24371
24372         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24373         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24374         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24375         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24376
24377 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24378
24379         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24380         Do not the gather memory reference in the outer loop if the step
24381         is not a constant.
24382
24383 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24384
24385         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24386         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24387         8 to 4.  Minor change of the related comments.
24388
24389 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24390
24391         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24392         the scev analysis when the variable is not used outside the loop
24393         in a close phi node: call compute_overall_effect_of_inner_loop.
24394
24395 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24396
24397         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24398         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24399         (build_sese_conditions_before): Renamed call to single_pred_cond.
24400         (build_sese_conditions_after): Same.
24401
24402 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24403
24404         * graphite-poly.h: Fix comments and indentation.
24405         * graphite-sese-to-poly.c: Same.
24406         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24407         * tree-chrec.c: Fix comments and indentation.
24408         (tree-ssa-loop-niter.c): Same.
24409
24410 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24411
24412         PR rtl-optimization/42461
24413         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24414         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24415
24416 2010-06-09  Jan Hubicka  <jh@suse.cz>
24417
24418         * bitmap.c (bitmap_and): Walk array forward.
24419         (bitmap_and_compl_into): Likewise.
24420         (bitmap_xor): Likewise.
24421         (bitmap_xor_into):  Likewise.
24422         (bitmap_equal_p): Likewise.
24423         (bitmap_intersect_p): Likewise.
24424         (bitmap_intersect_compl_p): Likewise.
24425         (bitmap_ior_and_into): Likewise.
24426         (bitmap_elt_copy): Likewise.
24427         (bitmap_and_compl): Likewise.
24428         (bitmap_elt_ior): Likewise.
24429
24430 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24431
24432         * opts-common.c (prune_options): Ensure replacement argv array
24433         is correctly terminated by a NULL entry.
24434
24435 2010-06-09  Jan Hubicka  <jh@suse.cz>
24436
24437         * cgraph.h (varpool_first_static_initializer,
24438         varpool_next_static_initializer): Make checking only when
24439         checking enabled.
24440         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24441         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24442         gcc_assert to gcc_checking_assert.
24443         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24444         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24445         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24446         op_iter_init_phiuse, op_iter_init_phidef,
24447         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24448         gcc_checking_assert.
24449         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24450         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24451         partition_is_global, live_on_entry, live_on_exit,
24452         live_merge_and_clear): Likewise.
24453         * system.h (gcc_checking_assert): New macro.
24454         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24455
24456 2010-06-09  Jason Merrill  <jason@redhat.com>
24457
24458         * Makefile.in (TAGS): Collect tags info from c-family.
24459
24460 2010-06-09  Jan Hubicka  <jh@suse.cz>
24461
24462         * gimple.h (gcc_gimple_checking_assert): New macro.
24463         (gimple_set_def_ops, gimple_set_use_ops,
24464         gimple_set_vuse, gimple_set_vdef,
24465         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24466         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24467         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24468         gimple_asm_output_op, gimple_asm_output_op_ptr,
24469         gimple_asm_set_output_op, gimple_asm_clobber_op,
24470         gimple_asm_set_clobber_op, gimple_asm_label_op,
24471         gimple_asm_set_label_op, gimple_try_set_kind,
24472         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24473         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24474         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24475         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24476         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24477         gimple_omp_for_set_initial, gimple_omp_for_final,
24478         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24479         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24480         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24481         conditional with ENABLE_GIMPLE_CHECKING.
24482         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24483
24484 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24485
24486         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24487         (get_computation_cost_at): Use it.
24488         (determine_use_iv_cost_condition): Likewise.
24489         (determine_iv_cost): Likewise.
24490
24491 2010-06-09  Richard Guenther  <rguenther@suse.de>
24492
24493         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24494         replace constants.
24495
24496 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24497
24498         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24499
24500 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24501
24502         PR tree-optimization/44423
24503         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24504         (analyze_access_subtree): Pass negative allow_replacements to children
24505         if the current type is scalar.
24506
24507 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24508
24509         PR testsuite/42843
24510         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24511         * doc/plugins.texi (Plugin license check): Update information
24512         on type of plugin_is_GPL_compatible.
24513         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24514         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24515
24516 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24517
24518         * config/arm/arm.c (thumb2_reorg): New function.
24519         (arm_reorg): Call it.
24520         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24521         arithmetic operations): Delete.
24522
24523 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24524
24525         PR target/44067
24526         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24527         e500v2 target.
24528
24529 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24530
24531         PR plugins/44459
24532         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24533
24534 2010-06-08  Jan Hubicka  <jh@suse.cz>
24535
24536         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24537         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24538
24539 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24540
24541         PR tree-optimization/39874
24542         PR middle-end/28685
24543         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24544         Declare.
24545         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24546         same_bool_result_p): New.
24547         (and_var_with_comparison, and_var_with_comparison_1,
24548         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24549         (or_var_with_comparison, or_var_with_comparison_1,
24550         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24551         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24552         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24553         of combine_comparisons.
24554         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24555
24556 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24557
24558         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24559         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24560         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24561         pdp11_function_value_regno_p): New functions.
24562         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24563         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24564
24565 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24566
24567         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24568         Thumb-2 in the MINUS case.
24569
24570 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24571
24572         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24573
24574         * doc/gty.texi (GTY Options): Document typed GC allocation and
24575         variable_size GTY option.
24576
24577         * ggc-internal.h: New.
24578
24579         * ggc.h: Update copyright year.
24580         (digit_string): Move to stringpool.c.
24581         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24582         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24583         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24584         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24585         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24586         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24587         (ggc_force_collect, ggc_get_size, ggc_statistics)
24588         (ggc_print_common_statistics): Move to ggc-internal.h.
24589         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24590         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24591         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24592         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24593         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24594         (ggc_alloc_zone_pass_stat): Remove.
24595         (ggc_internal_alloc_stat, ggc_internal_alloc)
24596         (ggc_internal_cleared_alloc_stat): New.
24597         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24598         (ggc_internal_vec_alloc_stat)
24599         (ggc_internal_cleared_vec_alloc_stat)
24600         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24601         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24602         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24603         (ggc_cleared_alloc_ptr_array_two_args): New.
24604         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24605         (ggc_splay_alloc): Change the type of the first argument to
24606         enum gt_types_enum.
24607         (ggc_alloc_string): Make macro.
24608         (ggc_alloc_string_stat): New.
24609         (ggc_strdup): Redefine.
24610         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24611         (ggc_alloc_rtvec_sized): New.
24612         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24613         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24614         (ggc_internal_cleared_alloc_zone_stat)
24615         (ggc_internal_zone_alloc_stat)
24616         (ggc_internal_zone_cleared_alloc_stat)
24617         (ggc_internal_zone_vec_alloc_stat)
24618         (ggc_alloc_zone_rtx_def_stat)
24619         (ggc_alloc_zone_tree_node_stat)
24620         (ggc_alloc_zone_cleared_tree_node_stat)
24621         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24622
24623         * ggc-common.c: Include ggc-internal.h.
24624         (ggc_internal_cleared_alloc_stat): Rename from
24625         ggc_alloc_cleared_stat.
24626         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24627         (ggc_calloc): Remove.
24628         (ggc_cleared_alloc_htab_ignore_args): New.
24629         (ggc_cleared_alloc_ptr_array_two_args): New.
24630         (ggc_splay_alloc): Add obj_type parameter.
24631         (init_ggc_heuristics): Formatting fixes.
24632
24633         * ggc-none.c: Update copyright year.
24634         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24635         (ggc_alloc_cleared_stat): Rename to
24636         ggc_internal_cleared_alloc_stat.
24637         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24638
24639         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24640         Remove references to ggc_alloc in comments.
24641         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24642         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24643         (new_ggc_zone, destroy_ggc_zone): Remove.
24644         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24645
24646         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24647         ggc_alloc in comments.
24648         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24649         (ggc_internal_alloc_zone_pass_stat): New.
24650         (ggc_internal_cleared_alloc_zone_stat): New.
24651         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24652         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24653         (new_ggc_zone, destroy_ggc_zone): Remove.
24654
24655         * stringpool.c: Update copyright year.  Include ggc-internal.h
24656         (digit_vector): Make static.
24657         (digit_string): Moved from ggc.h.
24658         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24659         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24660
24661         * Makefile.in (GGC_INTERNAL_H): New.
24662         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24663         $(GGC_INTERNAL_H) to dependencies.
24664
24665         * gengtype.c: Update copyright year.
24666         (walk_type): Accept variable_size GTY option.
24667         (USED_BY_TYPED_GC_P): New macro.
24668         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24669         whitespace at the end of strings.
24670         (get_type_specifier, variable_size_p): New functions.
24671         (alloc_quantity, alloc_zone): New enums.
24672         (write_typed_alloc_def): New function.
24673         (write_typed_struct_alloc_def): Likewise.
24674         (write_typed_typed_typedef_alloc_def): Likewise.
24675         (write_typed_alloc_defns): Likewise.
24676         (output_typename, write_splay_tree_allocator_def): Likewise.
24677         (write_splay_tree_allocators): Likewise.
24678         (main): Call write_typed_alloc_defns and
24679         write_splay_tree_allocators.
24680
24681         * lto-streamer.h (lto_file_decl_data_ptr): New.
24682
24683         * passes.c (order): Define using cgraph_node_ptr.
24684
24685         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24686         ht_identifier_ptr.
24687
24688         * gimple.h (union gimple_statement_d): Likewise.
24689
24690         * rtl.h (struct rtx_def): Likewise.
24691         (struct rtvec_def): Likewise.
24692
24693         * tree.h (union tree_node): Likewise.
24694
24695         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24696
24697         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24698
24699         * tree-scalar-evolution.c (scev_initialize): Likewise.
24700
24701         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24702
24703         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24704
24705         * omp-low.c (lower_omp_critical): Likewise.
24706
24707         * bitmap.h (struct bitmap_head_def): Update comment to not
24708         reference ggc_alloc.
24709
24710         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24711
24712         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24713
24714         * ipa-prop.c (duplicate_ggc_array): Rename to
24715         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24716         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24717
24718         * gimple.c (gimple_alloc_stat): Use
24719         ggc_alloc_cleared_gimple_statement_d_stat.
24720
24721         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24722
24723         * tree.c (make_node_stat): Use
24724         ggc_alloc_zone_cleared_tree_node_stat.
24725         (make_tree_vec_stat): Likewise.
24726         (build_vl_exp_stat): Likewise.
24727         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24728         (make_tree_binfo_stat): Likewise.
24729         (tree_cons_stat): Likewise.
24730
24731         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24732         (shallow_copy_rtx_stat): Likewise.
24733         (make_node_stat): Likewise.
24734
24735         * lto-symtab.c: Fix comment.
24736
24737         * tree-cfg.c (create_bb): Update comment to not reference
24738         ggc_alloc_cleared.
24739         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24740
24741         * varpool.c (varpool_node): Use typed GC allocation.
24742         (varpool_extra_name_alias): Likewise.
24743
24744         * varasm.c (emutls_decl): Likewise.
24745         (get_unnamed_section): Likewise.
24746         (get_noswitch_section): Likewise.
24747         (get_section): Likewise.
24748         (get_block_for_section): Likewise.
24749         (build_constant_desc): Likewise.
24750         (create_constant_pool): Likewise.
24751         (force_const_mem): Likewise.
24752
24753         * tree.c (build_vl_exp_stat): Likewise.
24754         (build_real): Likewise.
24755         (build_string): Likewise.
24756         (decl_debug_expr_insert): Likewise.
24757         (decl_value_expr_insert): Likewise.
24758         (type_hash_add): Likewise.
24759         (build_omp_clause): Likewise.
24760
24761         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24762
24763         * tree-ssa.c (init_tree_ssa): Likewise.
24764
24765         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24766
24767         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24768
24769         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24770
24771         * tree-ssa-alias.c (get_ptr_info): Likewise.
24772
24773         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24774
24775         * tree-phinodes.c (allocate_phi_node): Likewise.
24776
24777         * tree-iterator.c (tsi_link_before): Likewise.
24778         (tsi_link_after): Likewise.
24779
24780         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24781
24782         * tree-dfa.c (create_var_ann): Likewise.
24783
24784         * tree-cfg.c (create_bb): Likewise.
24785
24786         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24787         (general_init): Likewise.
24788
24789         * stringpool.c (stringpool_ggc_alloc): Likewise.
24790         (gt_pch_save_stringpool): Likewise.
24791
24792         * sese.c (if_region_set_false_region): Likewise.
24793
24794         * passes.c (do_per_function_toporder): Likewise.
24795
24796         * optabs.c (set_optab_libfunc): Likewise.
24797         (set_conv_libfunc): Likewise.
24798
24799         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24800
24801         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24802         (input_eh_region): Likewise.
24803         (input_eh_lp): Likewise.
24804         (make_new_block): Likewise.
24805         (unpack_ts_real_cst_value_fields): Likewise.
24806
24807         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24808
24809         * lto-cgraph.c (input_node_opt_summary): Likewise.
24810
24811         * loop-init.c (loop_optimizer_init): Likewise.
24812
24813         * lambda.h (lambda_vector_new): Likewise.
24814
24815         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24816
24817         * ira.c (update_equiv_regs): Likewise.
24818
24819         * ipa.c (cgraph_node_set_new): Likewise.
24820         (cgraph_node_set_add): Likewise.
24821         (varpool_node_set_new): Likewise.
24822         (varpool_node_set_add): Likewise.
24823
24824         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24825         (duplicate_ipa_jump_func_array): Likewise.
24826         (ipa_read_node_info): Likewise.
24827
24828         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24829
24830         * integrate.c (get_hard_reg_initial_val): Likewise.
24831
24832         * gimple.c (gimple_alloc_stat): Likewise.
24833         (gimple_build_omp_for): Likewise.
24834         (gimple_seq_alloc): Likewise.
24835         (gimple_copy): Likewise.
24836
24837         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24838         (gsi_insert_after_without_update): Likewise.
24839
24840         * function.c (add_frame_space): Likewise.
24841         (insert_temp_slot_address): Likewise.
24842         (assign_stack_temp_for_type): Likewise.
24843         (allocate_struct_function): Likewise.
24844         (types_used_by_var_decl_insert): Likewise.
24845
24846         * except.c (init_eh_for_function): Likewise.
24847         (gen_eh_region): Likewise.
24848         (gen_eh_region_catch): Likewise.
24849         (gen_eh_landing_pad): Likewise.
24850         (add_call_site): Likewise.
24851
24852         * emit-rtl.c (get_mem_attrs): Likewise.
24853         (get_reg_attrs): Likewise.
24854         (start_sequence): Likewise.
24855         (init_emit): Likewise.
24856
24857         * dwarf2out.c (new_cfi): Likewise.
24858         (queue_reg_save): Likewise.
24859         (dwarf2out_frame_init): Likewise.
24860         (new_loc_descr): Likewise.
24861         (find_AT_string): Likewise.
24862         (new_die): Likewise.
24863         (add_var_loc_to_decl): Likewise.
24864         (clone_die): Likewise.
24865         (clone_as_declaration): Likewise.
24866         (break_out_comdat_types): Likewise.
24867         (new_loc_list): Likewise.
24868         (loc_descriptor): Likewise.
24869         (add_loc_descr_to_each): Likewise.
24870         (add_const_value_attribute): Likewise.
24871         (tree_add_const_value_attribute): Likewise.
24872         (add_comp_dir_attribute): Likewise.
24873         (add_name_and_src_coords_attributes): Likewise.
24874         (lookup_filename): Likewise.
24875         (store_vcall_insn): Likewise.
24876         (dwarf2out_init): Likewise.
24877
24878         * dbxout.c (dbxout_init): Likewise.
24879
24880         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24881
24882         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24883
24884         * config/score/score7.c (score7_output_external): Likewise.
24885
24886         * config/score/score3.c (score3_output_external): Likewise.
24887
24888         * config/s390/s390.c (s390_init_machine_status): Likewise.
24889
24890         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24891         (rs6000_init_machine_status): Likewise.
24892         (output_toc): Likewise.
24893
24894         * config/pa/pa.c (pa_init_machine_status): Likewise.
24895         (get_deferred_plabel): Likewise.
24896
24897         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24898
24899         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24900
24901         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24902
24903         * config/mep/mep.c (mep_init_machine_status): Likewise.
24904         (mep_note_pragma_flag): Likewise.
24905
24906         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24907
24908         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24909
24910         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24911
24912         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24913         (i386_pe_maybe_record_exported_symbol): Likewise.
24914
24915         * config/i386/i386.c (get_dllimport_decl): Likewise.
24916         (ix86_init_machine_status): Likewise.
24917         (assign_386_stack_local): Likewise.
24918
24919         * config/frv/frv.c (frv_init_machine_status): Likewise.
24920
24921         * config/darwin.c (machopic_indirection_name): Likewise.
24922
24923         * config/cris/cris.c (cris_init_machine_status): Likewise.
24924
24925         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24926
24927         * config/avr/avr.c (avr_init_machine_status): Likewise.
24928
24929         * config/arm/arm.c (arm_init_machine_status): Likewise.
24930
24931         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24932         (alpha_need_linkage): Likewise.
24933         (alpha_use_linkage): Likewise.
24934
24935         * cgraph.c (cgraph_allocate_node): Likewise.
24936         (cgraph_create_edge_1): Likewise.
24937         (cgraph_create_indirect_edge): Likewise.
24938         (cgraph_add_asm_node): Likewise.
24939
24940         * cfgrtl.c (init_rtl_bb_info): Likewise.
24941
24942         * cfgloop.c (alloc_loop): Likewise.
24943         (rescan_loop_exit): Likewise.
24944
24945         * cfg.c (init_flow): Likewise.
24946         (alloc_block): Likewise.
24947         (unchecked_make_edge): Likewise.
24948
24949         * c-parser.c (c_parse_init): Likewise.
24950         (c_parse_file): Likewise.
24951
24952         * c-decl.c (bind): Likewise.
24953         (record_inline_static): Likewise.
24954         (push_scope): Likewise.
24955         (make_label): Likewise.
24956         (lookup_label_for_goto): Likewise.
24957         (finish_struct): Likewise.
24958         (finish_enum): Likewise.
24959         (c_push_function_context): Likewise.
24960
24961         * bitmap.c (bitmap_element_allocate): Likewise.
24962         (bitmap_gc_alloc_stat): Likewise.
24963
24964         * alias.c (record_alias_subset): Likewise.
24965         (init_alias_analysis): Likewise.
24966
24967 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
24968
24969         * fold-const.c (fold_comparison): Remove redundant parenthesis.
24970         * tree-inline.c (expand_call_inline): Pass translated return value of
24971         cgraph_inline_failed_string to diagnostic function.
24972
24973 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
24974             Shujing Zhao  <pearly.zhao@oracle.com>
24975
24976         PR c/37724
24977         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
24978         implicit bad conversions is initialization.
24979         (error_init): Use gmsgid instead of msgid for argument name and change
24980         the call for error.
24981         (pedwarn_init): Use gmsgid instead of msgid for argument name and
24982         change the call for pedwarn.
24983         (warning_init): Use gmsgid instead of msgid for argument name and
24984         change the call for warning.
24985
24986 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
24987
24988         * config/mips/mips-protos.h (mips_print_operand): Delete.
24989         (mips_print_operand_address): Delete.
24990         * config/mips/mips.h (mips_print_operand_punct): Delete.
24991         (PRINT_OPERAND): Delete.
24992         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24993         (PRINT_OPERAND_ADDRESS): Delete.
24994         * config/mips/mips.c (mips_print_operand_punct): Make static.
24995         (mips_print_operand_address): Make static.
24996         (mips_print_operand): Make static.  Call
24997         mips_print_operand_punct_valid_p.
24998         (mips_print_operand_punct_valid_p): New function.
24999         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25000         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25001
25002 2010-06-07  Jan Hubicka  <jh@suse.cz>
25003
25004         PR middle-end/44454
25005         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25006         are allocated.
25007
25008 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25009
25010         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25011         name of RECORD.
25012
25013 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25014
25015         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25016         attributes): Document gas.
25017
25018 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25019
25020         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25021         <TYPE_LEA>: Split instruction.
25022         <default>: Remove alternative 2 handling.
25023         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25024         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25025         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25026
25027         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25028         (ashift_zext lea splitter): Use DImode for multiplication.
25029
25030         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25031         to generate addition.
25032
25033 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25034
25035         * common.opt (fira-verbose): Use Var.
25036         (fpcc-struct-return): Use Init instead of VarExists.
25037         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25038         toplev.c.
25039         * flags.h (flag_signed_char, flag_short_enums,
25040         flag_pcc_struct_return, flag_ira_verbose,
25041         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25042         * toplev.c (flag_detailed_statistics, flag_signed_char,
25043         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25044         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25045         * toplev.h (flag_crossjumping, flag_if_conversion,
25046         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25047         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25048         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25049         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25050         flag_ira_coalesce, flag_ira_move_spills,
25051         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25052
25053 2010-06-07  Jan Hubicka  <jh@suse.cz>
25054
25055         * df-core.c (df_analyze_problem): Do verification after allocation.
25056
25057         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25058         (df_lr_alloc): Initialize problem data; move bitmaps to
25059         lr_bitmaps obstack.
25060         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25061         (df_lr_verify_solution_start): Do not initialize problem data;
25062         allocate bitmaps in lr_bitmaps.
25063         (df_lr_verify_solution_end): Do not free problem data.
25064
25065 2010-06-07  Jan Hubicka  <jh@suse.cz>
25066
25067         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25068         if caller is noreturn.
25069         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25070         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25071         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25072         * ipa-pure-const.c (check_decl): Add IPA parameter.
25073         (state_from_flags): New function.
25074         (better_state, worse_state): New functions.
25075         (check_call): When in IPA mode, do not care about callees.
25076         (check_load, check_store): Update.
25077         (check_ipa_load, check_ipa_store): New.
25078         (check_stmt): When in IPA mode, use IPA checkers.
25079         (analyze_function): Use state_from_flags.
25080         (propagate): Check indirect edges and references.
25081
25082 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25083
25084         PR rtl-optimization/44404
25085         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25086         of count_occurrences to see if it's safe to modify mem_insn.
25087
25088 2010-06-07  Richard Guenther  <rguenther@suse.de>
25089
25090         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25091         and EH-only cleanup drop the cleanup instead of inserting it
25092         unconditionally.
25093
25094 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25095
25096         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25097         documentation.
25098         * targhooks.c (default_builtin_vectorization_cost): New function.
25099         * targhooks.h (default_builtin_vectorization_cost): Declare.
25100         * target.h (enum vect_cost_for_stmt): Define.
25101         (builtin_vectorization_cost): Change argument and comment.
25102         * tree-vectorizer.h: Remove cost model macros.
25103         * tree-vect-loop.c: Include target.h.
25104         (vect_get_cost): New function.
25105         (vect_estimate_min_profitable_iters): Replace cost model macros with
25106         calls to vect_get_cost.
25107         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25108         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25109         default implementation.
25110         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25111         calls to target hook builtin_vectorization_cost.
25112         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25113         Likewise.
25114         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25115         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25116         implementation to return costs.
25117         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25118         * config/spu/spu.h: Remove vectorizer cost model macros.
25119         * config/i386/i386.h: Likewise.
25120         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25121         a call to target hook builtin_vectorization_cost.
25122
25123 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25124
25125         PR target/44319
25126         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25127         and above and defer till target is known.
25128         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25129         turn off otherwise.
25130
25131 2010-05-25  Jan Hubicka  <jh@suse.cz>
25132
25133         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25134         (df_compact_blocks): Likewise.
25135         * df.h (struct df): Turn hardware_regs_used,
25136         regular_block_artificial_uses, eh_block_artificial_uses,
25137         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25138         bitmap_head.
25139         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25140         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25141         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25142         df_scan_blocks, df_insn_delete, df_insn_rescan,
25143         df_insn_rescan_debug_internal, df_insn_rescan_all,
25144         df_process_deferred_rescans, df_process_deferred_rescans,
25145         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25146         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25147         df_record_entry_block_defs, df_record_exit_block_uses,
25148         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25149         df_scan_verify): Update.
25150
25151 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25152
25153         PR c++/44188
25154         * c-common.c (is_typedef_decl): Move this definition ...
25155         * tree.c (is_typedef_decl): ... here.
25156         (typdef_variant_p): Move definition here from cp/tree.c.
25157         * c-common.h (is_typedef_decl): Move this declaration ...
25158         * tree.h (is_typedef_decl): ... here.
25159         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25160         * dwarf2out.c (is_naming_typedef_decl): New function.
25161         (gen_tagged_type_die): Split out of ...
25162         (gen_type_die_with_usage): ... this function. When an anonymous
25163         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25164         is emitted for the typedef.
25165         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25166         anonymous tagged types.
25167
25168 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25169
25170         PR c/20000
25171         * c-decl.c (grokdeclarator): Delete warning.
25172
25173 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25174
25175         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25176         newly built CALL_EXPR.
25177         * tree-profile.c (tree_profiling): Don't profile functions produced
25178         for built-in stuff.
25179
25180 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25181
25182         PR bootstrap/44427
25183         PR bootstrap/44428
25184         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25185         endianness-independent.
25186
25187 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25188
25189         * c-common.c: Move to c-family/.
25190         * c-common.def: Likewise.
25191         * c-common.h: Likewise.
25192         * c-cppbuiltin.c: Likewise.
25193         * c-dump.c: Likewise.
25194         * c-format.c: Likewise.
25195         * c-format.h : Likewise.
25196         * c-gimplify.c: Likewise.
25197         * c-lex.c: Likewise.
25198         * c-omp.c: Likewise.
25199         * c.opt: Likewise.
25200         * c-opts.c: Likewise.
25201         * c-pch.c: Likewise.
25202         * c-ppoutput.c: Likewise.
25203         * c-pragma.c: Likewise.
25204         * c-pragma.h: Likewise.
25205         * c-pretty-print.c: Likewise.
25206         * c-pretty-print.h: Likewise.
25207         * c-semantics.c: Likewise.
25208         * stub-objc.c: Likewise.
25209
25210         * gengtype.c (get_file_langdir): Special-case files in c-family/.
25211         (get_output_file_with_visibility): Fix name for c-common.h.
25212         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
25213
25214         * c-tree.h: Update include path for moved files.
25215         * c-lang.c: Likewise.
25216         * c-lang.h: Likewise.
25217         * c-parser.c: Likewise.
25218         * c-convert.c: Likewise.
25219         * c-decl.c: Likewise.
25220         * c-objc-common.c: Likewise.
25221         * configure.ac: Make sure c-family/ exists in the build directory.
25222         * configure: Regenerate.
25223         * Makefile.in: Update paths for moved files.  Regroup files per
25224         location and update dependencies.  Move generated_files down after
25225         ALL_GTFILES_H.
25226
25227         * config/spu/spu-c.c: Update paths for moved files.
25228         * config/mep/mep-pragma.c: Likewise.
25229         * config/darwin-c.c: Likewise.
25230         * config/i386/msformat-c.c: Likewise.
25231         * config/i386/i386-c.c: Likewise.
25232         * config/avr/avr-c.c: Likewise.
25233         * config/sol2-c.c: Likewise.
25234         * config/ia64/ia64-c.c: Likewise.
25235         * config/rs6000/rs6000-c.c: Likewise.
25236         * config/arm/arm.c: Likewise.
25237         * config/arm/arm-c.c: Likewise.
25238         * config/h8300/h8300.c: Likewise.
25239         * config/v850/v850-c.c: Likewise.
25240
25241         * config/t-darwin: Fix dependencies for moved files.
25242         * config/t-sol2: Fix dependencies for moved files.
25243         * config/mep/t-mep: Fix dependencies for moved files.
25244         * config/ia64/t-ia64: Fix dependencies for moved files.
25245         * config/rs6000/t-rs6000: Fix dependencies for moved files.
25246         * config/v850/t-v850: Fix dependencies for moved files.
25247         * config/v850/t-v850e: Fix dependencies for moved files.
25248
25249         * config/m32c/m32c-pragma.c
25250
25251         * po/exgettext: Look in c-family/ also.
25252
25253 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
25254
25255         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
25256         (mark_control_dependent_edges_necessary): Call it instead of marking
25257         the last statement manually.
25258         (propagate_necessity): Likewise.
25259
25260 2010-06-05  Jan Hubicka  <jh@suse.cz>
25261
25262         * basic-block.h (compute_dominance_frontiers): Updated.
25263         (compute_idf): Likewise.
25264
25265         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
25266         for dominance frontiers.
25267         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
25268         (insert_updated_phi_nodes_for): Likewise.
25269         (update_ssa): Likewise.
25270         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25271         (compute_dominance_frontiers): Likewise.
25272         (compute_idf): Likewise.
25273         * df-problems.c (df_md_local_compute): Likewise.
25274
25275 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
25276
25277         * target.h (struct gcc_target): Add memory_move_cost field.
25278         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
25279         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
25280         * targhooks.c (default_memory_move_cost): New function.
25281         * targhooks.h (default_memory_move_cost): Declare function.
25282         * reload.h (memory_move_cost): Declare.
25283         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25284         * reginfo.c (memory_move_cost): New function.
25285         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25286         * ira.h (ira_memory_move_cost): Update comment.
25287         * ira.c (ira_memory_move_cost): Update comment.
25288         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
25289         with memory_move_cost.
25290         * postreload.c (reload_cse_simplify_set): (Ditto.).
25291         * reload1.c (choose_reload_regs): (Ditto.).
25292         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
25293         (MEMORY_MOVE_COST):  Revise documentation.
25294
25295         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
25296         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
25297         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
25298         type of 'in' argument to bool.
25299         (TARGET_MEMORY_MOVE_COST): Define.
25300
25301 2010-06-05  Jan Hubicka  <jh@suse.cz>
25302
25303         * ipa-pure-const.c (propagate): Fix typo in handling of functions
25304         that cannot return.  Be more careful when merging the results with
25305         previously known ones.
25306
25307 2010-06-05  Matthias Klose  <doko@ubuntu.com>
25308
25309         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
25310         function to add the -iplugindir option.
25311         (find_plugindir_spec_function): Add new declaration and function.
25312         (static_spec_func): Use it for "find-plugindir".
25313
25314 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
25315
25316         PR c++/44361
25317         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
25318         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
25319         statement expression.
25320
25321 2010-06-05  Jan Hubicka  <jh@suse.cz>
25322
25323         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
25324         (df_rd_problem_data): Convert sparse_invalidated_by_call,
25325         dense_invalidated_by_call to bitmap head.
25326         (df_rd_alloc, df_rd_bb_local_compute_process_def,
25327         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
25328         df_rd_start_dump, df_lr_verify_transfer_functions,
25329         df_live_verify_transfer_functions, df_chain_create_bb,
25330         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
25331         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
25332         df_simulate_one_insn_forwards, df_md_alloc,
25333         df_md_bb_local_compute_process_def,
25334         df_md_bb_local_compute_process_def, df_md_local_compute,
25335         df_md_transfer_function df_md_free): Update.
25336
25337 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
25338
25339         PR c/44322
25340         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
25341         target type for ADDR_EXPR; require no changes to qualifiers except
25342         for function types.
25343         * c-tree.h (c_build_type_variant): Remove.
25344
25345 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25346
25347         * genautomata.c (get_excl_set): Do work per element, not per char.
25348         (check_presence_pattern_sets): Similar.
25349         (check_absence_pattern_sets): Similar.
25350
25351 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25352
25353         * genautomata.c (curr_state_pass_num): Delete.
25354         (min_issue_delay_pass_states): Delete.
25355         (min_issue_delay): Delete.
25356         (initiate_min_issue_delay_pass_states): Delete.
25357         (output_min_issue_delay_table): Compute min_issue_delay_vect
25358         using a breadth-first search variant.
25359         (output_tables): Don't call initiate_min_issue_delay_pass_states.
25360
25361 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
25362
25363         PR boostrap/44421
25364         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
25365         (df_byte_lr_bb_local_compute): Likewise.
25366
25367 2010-06-03  Jason Merrill  <jason@redhat.com>
25368
25369         Implement noexcept operator (5.3.7)
25370         * c-common.c (c_common_reswords): Add noexcept.
25371         * c-common.h (enum rid): Add RID_NOEXCEPT.
25372
25373 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25374
25375         * config/darwin-driver.c (darwin_default_min_version): Use
25376         GCC-specific formats in diagnostics.
25377         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25378         diagnostics.
25379         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25380         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25381         eval_spec_function, handle_braces, process_brace_body, main,
25382         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25383         getenv_spec_function, compare_version_strings,
25384         version_compare_spec_function): Use GCC-specific formats in
25385         diagnostics.
25386
25387 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25388
25389         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25390         that operand 0 and operand 1 are equal.
25391         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25392         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25393         and operand 1 are equal.
25394         <default>: Ditto.  Remove ??? comment.
25395         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25396         and operand 1 are equal.
25397         <default>: Ditto.  Remove ??? comment.
25398         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25399         are equal.
25400         (*add<mode>_4) <default>: Ditto.
25401         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25402
25403 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25404
25405         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25406         * config/i386/i386.c (ix86_print_operand): Make non-static.
25407         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25408         * output.h (output_operand): Declare.
25409         * final.c (output_operand): Make non-static.
25410
25411 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25412
25413         PR rtl-optimization/44013
25414         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25415         when processing debug insns.
25416
25417         PR debug/41371
25418         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25419         recursing.  Check that recursion is bounded.  Rename inner var
25420         to avoid hiding incoming argument.
25421
25422 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25423
25424         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25425         operands[2] == 255.
25426         (*addqi_3): Ditto.
25427         (*addqi_4): Ditto.
25428         (*addqi_5): Ditto.
25429         (*addqi_ext_1_rex64): Ditto.
25430         (*addqi_ext_1): Ditto.
25431
25432         (*addqi_4): Check for incdec_operand in QImode.
25433
25434         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25435         using SWI mode iterator.
25436         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25437         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25438         mode iterator.
25439         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25440         using SWI mode iterator.
25441
25442 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25443
25444         PR c/25880
25445         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25446         * c-format.c (gcc_diag_flag_specs): Add hash.
25447         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25448         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25449         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25450         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25451         (pp_c_type_qualifier_list): Call the function above.
25452         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25453         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25454         (WARN_FOR_QUALIFIERS): New macro.
25455         (convert_for_assignment): Use it.
25456
25457 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25458
25459         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25460
25461 2010-06-04  Jan Hubicka  <jh@suse.cz>
25462
25463         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25464         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25465         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25466         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25467         * fwprop.c (single_def_use_enter_block): Likewise.
25468         * ddg.c (create_ddg_dep_from_intra_loop_link,
25469         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25470         * loop-iv.c (latch_dominating_def): Likewise.
25471         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25472         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25473         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25474         df_rd_transfer_function, df_rd_top_dump,
25475         df_rd_bottom_dump): Update.
25476         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25477         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25478         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25479         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25480         df_lr_verify_solution_start, df_lr_verify_solution_end,
25481         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25482         df_live_free_bb_info, df_live_alloc, df_live_reset,
25483         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25484         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25485         df_live_verify_solution_start, df_live_verify_solution_end,
25486         df_live_verify_transfer_functions, df_chain_create_bb,
25487         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25488         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25489         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25490         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25491         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25492         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25493         df_byte_lr_bottom_dump, df_create_unused_note,
25494         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25495         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25496         df_md_transfer_function, df_md_init, df_md_confluence_0,
25497         df_md_confluence_n,
25498         df_md_top_dump, df_md_bottom_dump): Update.
25499         (struct df_lr_problem_data): Embedd bitmap headers.
25500
25501 2010-06-04  Jan Hubicka  <jh@suse.cz>
25502
25503         * dce.c (dce_process_block): Do not re-scan already marked
25504         instructions.
25505
25506 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25507
25508         PR rtl-optimization/39871
25509         PR rtl-optimization/40615
25510         PR rtl-optimization/42500
25511         PR rtl-optimization/42502
25512         * ira.c (init_reg_equiv_memory_loc: New function.
25513         (ira): Call it twice.
25514         * reload.h (calculate_elim_costs_all_insns): Declare.
25515         * ira-costs.c: Include "reload.h".
25516         (regno_equiv_gains): New static variable.
25517         (init_costs): Allocate it.
25518         (finish_costs): Free it.
25519         (ira_costs): Call calculate_elim_costs_all_insns.
25520         (find_costs_and_classes): Take estimated elimination costs
25521         into account.
25522         (ira_adjust_equiv_reg_cost): New function.
25523         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25524         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25525         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25526         (elim_bb): New static variable.
25527         (reload): Move code out of here into init_eliminable_invariants and
25528         free_reg_equiv.  Call them.
25529         (calculate_elim_costs_all_insns): New function.
25530         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25531         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25532         but call note_reg_elim_costly if we turned a valid memory address
25533         into an invalid one.
25534         * Makefile.in (ira-costs.o): Depend on reload.h.
25535
25536 2010-06-04  Julian Brown  <julian@codesourcery.com>
25537
25538         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25539         for pool ranges.
25540
25541 2010-06-04  Richard Guenther  <rguenther@suse.de>
25542
25543         PR lto/41584
25544         * cgraph.h (struct varpool_node): Add lto_file_data field.
25545         * lto-cgraph.c (input_varpool_node): Initialize it.
25546
25547 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25548
25549         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25550         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25551         predicate in "type" attribute calculation.
25552         (*addsi_1_zext): Ditto.
25553         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25554         (*addsi_2_zext): Ditto.
25555         (*add<mode>_3): Ditto.
25556         (*addsi_3_zext): Ditto.
25557         (*add<mode>_5): Ditto.
25558
25559 2010-06-03  Jan Hubicka  <jh@suse.cz>
25560
25561         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25562         of bitmap_bit_p.
25563         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25564
25565 2010-06-03  Jan Hubicka  <jh@suse.cz>
25566
25567         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25568         micro-optimize the checks when to add new note.
25569
25570 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25571
25572         * final.c (output_asm_insn): Call
25573         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25574         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25575         (output_address): Call targetm.asm_out.print_operand_address.
25576         Update comments.
25577         * target.h (struct gcc_target): Add print_operand,
25578         print_operand_address, and print_operand_punct_valid_p fields.
25579         * targhooks.h (default_print_operand): Declare.
25580         (default_print_operand_address): Declare.
25581         (default_print_operand_punct_valid_p): Declare.
25582         * targhooks.c (default_print_operand): Define.
25583         (default_print_operand_address): Define.
25584         (default_print_operand_punct_valid_p): Define.
25585         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25586         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25587         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25588         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25589         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25590         * vmsdbgout.c (addr_const_to_string): Update comment.
25591         * config/i386/i386.c (print_operand): Rename to...
25592         (ix86_print_operand): ...this.  Make static.
25593         (print_operand_address): Rename to...
25594         (ix86_print_operand_address): ...this.  Make static.  Call
25595         ix86_print_operand instead of PRINT_OPERAND.
25596         (ix86_print_operand_punct_valid_p): New function.
25597         (TARGET_PRINT_OPERAND): Define.
25598         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25599         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25600         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25601         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25602         (PRINT_OPERAND): Delete.
25603         (PRINT_OPERAND_ADDRESS): Delete.
25604         * config/i386/i386-protos.h (print_operand): Delete prototype.
25605         (print_operand_address): Delete prototype.
25606
25607 2010-06-03  Richard Guenther  <rguenther@suse.de>
25608
25609         PR tree-optimization/44403
25610         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25611         Preserve pointer qualifiers.
25612         (vect_create_data_ref_ptr): Likewise.
25613
25614 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25615
25616         PR c++/44294
25617         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25618
25619         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25620
25621 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25622
25623         PR debug/44375
25624         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25625         return false if merging the bbs would lead to goto_locus
25626         location being lost from the IL.
25627
25628 2010-06-03  Jan Hubicka  <jh@suse.cz>
25629             Jakub Jelinek  <jakub@redhat.com>
25630
25631         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25632         set->regs[i] is NULL or has just one entry.
25633
25634 2010-06-03  Jan Hubicka  <jh@suse.cz>
25635
25636         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25637         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25638
25639 2010-06-03  Paul Brook  <paul@codesourcery.com>
25640
25641         * config/arm/arm.c (FL_TUNE): Define.
25642         (arm_default_cpu, arm_cpu_select): Remove.
25643         (all_cores): Populate core field.
25644         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25645         (arm_find_cpu): New function.
25646         (arm_handle_option): Lookup cpu/architecture names.
25647         (arm_override_options): Cleanup mcpu/march/mtune handling.
25648         (arm_file_start): Ditto.
25649
25650 2010-06-03  Alan Modra  <amodra@gmail.com>
25651
25652         PR target/44169
25653         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25654         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25655         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25656         (rs6000_emit_load_toc_table): Likewise.
25657
25658 2010-06-02  Jan Hubicka  <jh@suse.cz>
25659
25660         * passes.c (init_optimization_passes): Put ipa reference
25661         after ipa pure-const.
25662
25663 2010-06-02  Jan Hubicka  <jh@suse.cz>
25664
25665         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25666         calls_read_all and calls_write_all.
25667         (get_reference_optimization_summary): Fix formatting.
25668         (is_proper_for_analysis): Check that decl is not readonly.
25669         (propagate_bits): Check CONST/PURE/noreturn flags.
25670         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25671         (analyze_function): Ignore indirect edges.
25672         (copy_global_bitmap): For all module statics, do nothing.
25673         (generate_summary): Do not print calls_read_all/calls_write_all.
25674         (read_write_all_from_decl): Take node as argument; check
25675         cgraph_node_cannot_return.
25676         (propagate): Reorganize read_all/write_all computation;
25677         check indirect edges; check ecf flags; use all_module_statics
25678         in the results; do not free all_module_statics.
25679         (stream_out_bitmap): Handle all_module_statics.
25680         (ipa_reference_write_optimization_summary): Likewise; use
25681         varpool/cgraph encoders to get boundaries.
25682         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25683         use it when possible.
25684
25685 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25686
25687         PR target/44218
25688         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25689         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25690
25691         * doc/extend.texi (powerpc builtins): Document vec_recip,
25692         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25693
25694         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25695         (rs6000_emit_swrsqrt): Ditto.
25696         (rs6000_emit_swdivsf): Delete.
25697         (rs6000_emit_swdivdf): Ditto.
25698         (rs6000_emit_swrsqrtsf): Ditto.
25699
25700         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25701         describe the reciprocal estimate support for each type.
25702         (recip_options): Map -mrecip=<opt> into option bits.
25703         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25704         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25705         reciprocal estimate instructions.
25706         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25707         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25708         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25709         cost information if -mdebug=cost or -mdebug=reg.
25710         (rs6000_override_options): Set -mrecip-precision for power6, and
25711         power7 machines.  If -mvsx or -mdfp, enable various options that
25712         came in previous instruction set ISAs, unless the option was
25713         explicitly disabled by the command line option.  Parse
25714         -mrecip=<opt> options.
25715         (rs6000_builtin_vectorized_function): Add support for vectorizing
25716         the reciprocal estimate builtins and expansions.
25717         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25718         (bdesc_2arg): Add reciprocal estimate builtins.
25719         (bdesc_1arg): Add reciprocal square root estimate builtins.
25720         (rs6000_expand_builtin): Rewrite to use a switch statement,
25721         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25722         (rs6000_init_builtins): Create declarations for reciprocal
25723         estimate builtins.
25724         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25725         sized, prefer traditional floating point registers, if integer
25726         vector types, prefer altivec registers.  Don't actually look at
25727         the memory address any more.
25728         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25729         builtins.
25730         (rs6000_load_constant_and_splat): New helper function to load up
25731         the constant for reciprocal estimate instructions.
25732         (rs6000_emit_madd): New helper function for generating
25733         multiply/add type instructions, based on the current switches.
25734         (rs6000_emit_msub): Ditto.
25735         (rs6000_emit_mnsub): Ditto.
25736         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25737         replace a divide with a reciprocal estimate and fixup, adding
25738         support for machines with high precision and vectors.
25739         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25740         low precision machines.
25741         (rs6000_emit_swdiv): New common function to be called to replace a
25742         division with reciprocal estimate and fixup.
25743         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25744         for double and vector types.  Add support for high precision machines.
25745
25746         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25747         the reciprocal estimate instructions can be generated.
25748         (TARGET_FRE): Ditto.
25749         (TARGET_FRSQRTES): Ditto.
25750         (TARGET_FRSQRTE): Ditto.
25751         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25752
25753         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25754         square root estimate on vectors.
25755         (re<mode>2): New insn for reciprocal division estimate on vectors.
25756
25757         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25758         New builtin.
25759         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25760         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25761         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25762         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25763         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25764         (RS6000_BUILTIN_RSQRT): Ditto.
25765         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25766         floating point builtin.
25767
25768         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25769         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25770         __RECIP_PRECISION__ based on the command line switches.
25771         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25772
25773         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25774         replacing division instructions with reciprocal estimate and fixup.
25775         (-mrecip=<opt>): New option.
25776         (-mrecip-precision): Ditto.
25777
25778         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25779         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25780         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25781         precision scalar.
25782
25783         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25784         (UNSPEC_VREFP): Ditto.
25785         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25786         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25787         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25788         reciprocal estimate instructions to be generated.
25789         (altivec_vrefp): Ditto.
25790
25791         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25792         estimate support.
25793         (rreg): New mode attribute for reciprocal estimate support.
25794         (recip<mode>3): New insn for division using reciprocal estimate
25795         and fixup builtins.
25796         (divide define_split): New define_split to convert floating point
25797         division to use reciprocal estimate if the user used the
25798         appropriate options and the split is run when we can add new
25799         pseudo registers for the fixup.
25800         (rsqrt<mode>2): New insn for reciprocal square root support.
25801         (recipsf3): Move into recip<mode>3.
25802         (recipdf3): Ditto.
25803         (fres): Use TARGET_FRES.
25804         (rsqrtsf2): Move into rsqrt<mode>2.
25805         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25806         (copysignsf3): Add support for VSX.
25807         (fred): Use TARGET_FRE.
25808         (fred_fpr): Ditto.
25809         (rsqrtdf_internal1): New function for frsqrte instruciton.
25810
25811         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25812         (vec_rsqrt): Ditto.
25813
25814 2010-06-03  Richard Guenther  <rguenther@suse.de>
25815
25816         PR middle-end/44291
25817         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25818         (set_user_assembler_libfunc): Likewise.
25819
25820 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25821
25822         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25823         defaults.h.
25824         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25825         to defaults.h
25826         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25827         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25828         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25829         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25830         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25831         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25832         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25833         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25834         * defaults.h: Updated for above mentioned changes.
25835
25836 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25837
25838         * c-common.c: Remove header include of tm_p.h.
25839         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25840
25841 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25842
25843         * tree.h (struct tree_decl_map): New type.
25844         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25845         (tree_decl_map_hash): New prototype.
25846         (debug_expr_for_decl, value_expr_for_decl): Change into
25847         tree_decl_map hashtab from tree_map.
25848         (init_ttree): Adjust initialization.
25849         (tree_decl_map_hash): New function.
25850         (decl_debug_expr_lookup, decl_debug_expr_insert,
25851         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
25852
25853 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25854
25855         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
25856         linker emulations.
25857         * configure: Regenerate.
25858         * config.in: Regenerate.
25859
25860         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
25861         (X86_64_EMULATION): Define.
25862         (TARGET_LD_EMULATION): Use them.
25863
25864         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
25865         (SPARC64_EMULATION): Define.
25866         (LINK_ARCH_SPEC): Use them.
25867
25868 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25869
25870         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
25871         smallest_mode_for_size for computing the precision types of new
25872         graphite IVs.  Do not call lang_hooks.types.type_for_size.
25873
25874 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25875
25876         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
25877         information.
25878         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
25879
25880 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25881
25882         PR middle-end/44363
25883         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
25884         return false instead.
25885
25886 2010-06-02  Jan Hubicka  <jh@suse.cz>
25887
25888         PR middle-end/44295
25889         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
25890         create new cgraph node to check callee.
25891
25892 2010-06-02  Richard Guenther  <rguenther@suse.de>
25893
25894         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
25895
25896 2010-06-02  Richard Guenther  <rguenther@suse.de>
25897
25898         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
25899         (lto_wrapper_cleanup): ... this.  Do not exit.
25900         (fatal): Adjust.  Exit here.
25901         (fatal_perror): Likewise.
25902         (fatal_signal): New function.
25903         (main): Set up signal handlers to cleanup temporary files.
25904         * Makefile.in (lto-wrapper.o): Adjust dependencies.
25905
25906 2010-06-02  Richard Guenther  <rguenther@suse.de>
25907
25908         PR tree-optimization/44377
25909         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
25910
25911 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25912
25913         * config/s390/2097.md (z10_fhex): Remove insn reservation.
25914         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
25915         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
25916         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
25917         instruction.
25918         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
25919
25920 2010-06-02  Jan Hubicka  <jh@suse.cz>
25921
25922         * bitmap.c (bitmap_descriptor): Add search_iter.
25923         (bitmap_find_bit): Increment it.
25924         (print_statistics): Print it.
25925
25926 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
25927
25928         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
25929         instead of gimple_build_call_vec.  Delete unnecessary local variable.
25930
25931 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25932
25933         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
25934         change from yesterday.
25935
25936 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25937
25938         * c-ada-spec.c: Clean up redundant includes.
25939
25940 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
25941
25942         * gimplify.c: Do not include except.h and optabs.h.
25943         (gimplify_body): Do not initialize RTL profiling.
25944         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
25945         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
25946         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
25947         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
25948         langhooks.h.
25949
25950         * tree-pretty-print.h: Include pretty-print.h.
25951         * gimple-pretty-print.h: Include pretty-print.h.
25952
25953         * tree-pretty-print.c: Do not include diagnostic.h.
25954         * tree-vrp.c: Likewise.
25955         * tree-tailcall.c: Likewise
25956         * tree-scalar-evolution.c: Likewise
25957         * tree-ssa-dse.c: Likewise
25958         * tree-chrec.c: Likewise
25959         * tree-ssa-sccvn.c: Likewise
25960         * tree-ssa-copyrename.c: Likewise
25961         * tree-nomudflap.c: Likewise
25962         * tree-call-cdce.c: Likewise
25963         * tree-stdarg.c: Likewise
25964         * tree-ssa-math-opts.c: Likewise
25965         * tree-nrv.c: Likewise
25966         * tree-ssa-sink.c: Likewise
25967         * tree-browser.c: Likewise
25968         * tree-ssa-loop-ivcanon.c: Likewise
25969         * tree-ssa-loop.c: Likewise
25970         * tree-parloops.c: Likewise
25971         * tree-ssa-address.c: Likewise
25972         * tree-ssa-ifcombine.c: Likewise
25973         * tree-if-conv.c: Likewise
25974         * tree-data-ref.c: Likewise
25975         * tree-affine.c: Likewise
25976         * tree-ssa-phiopt.c: Likewise
25977         * tree-ssa-coalesce.c: Likewise
25978         * tree-ssa-pre.c: Likewise
25979         * tree-ssa-live.c: Likewise
25980         * tree-predcom.c: Likewise
25981         * tree-ssa-forwprop.c: Likewise
25982         * tree-ssa-dce.c: Likewise
25983         * tree-ssa-ter.c: Likewise
25984         * tree-ssa-loop-prefetch.c: Likewise
25985         * tree-optimize.c: Likewise
25986         * tree-ssa-phiprop.c: Likewise
25987         * tree-object-size.c: Likewise
25988         * tree-outof-ssa.c: Likewise
25989         * tree-ssa-structalias.c: Likewise
25990         * tree-switch-conversion.c: Likewise
25991         * tree-ssa-reassoc.c: Likewise
25992         * tree-ssa-operands.c: Likewise
25993         * tree-vectorizer.c: Likewise
25994         * tree-vect-data-refs.c: Likewise
25995         * tree-vect-generic.c: Likewise
25996         * tree-vect-stmts.c: Likewise
25997         * tree-vect-patterns.c: Likewise
25998         * tree-vect-slp.c: Likewise
25999         * tree-vect-loop.c: Likewise
26000         * tree-ssa-loop-ivopts.c: Likewise
26001         * tree-ssa-loop-im.c: Likewise
26002         * tree-ssa-loop-niter.c: Likewise
26003         * tree-ssa-loop-unswitch.c: Likewise
26004         * tree-ssa-loop-manip.c: Likewise
26005         * tree-ssa-loop-ch.c: Likewise
26006         * tree-dump.c: Likewise
26007         * tree-complex.c: Likewise
26008
26009         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26010         * tree-ssa-uninit.c: Likewise
26011         * tree-ssa-threadupdate.c: Likewise
26012         * tree-ssa-uncprop.c: Likewise
26013         * tree-ssa-ccp.c: Likewise
26014         * tree-ssa-dom.c: Likewise
26015         * tree-ssa-propagate.c: Likewise
26016         * tree-ssa-alias.c: Likewise
26017         * tree-dfa.c: Likewise
26018         * tree-cfgcleanup.c: Likewise
26019         * tree-sra.c: Likewise
26020         * tree-ssa-copy.c: Likewise
26021         * tree-ssa.c: Likewise
26022         * tree-profile.c: Likewise
26023         * tree-cfg.c: Likewise
26024         * tree-ssa-threadedge.c: Likewise
26025         * tree-vect-loop-manip.c: Likewise
26026
26027         * tree-inline.c: Do not include diagnostic.h and expr.h.
26028         Include rtl.h.
26029         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26030
26031         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26032         * tree-loop-distribution.c: Likewise.
26033
26034 2010-06-01  Jan Hubicka  <jh@suse.cz>
26035
26036         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26037
26038 2010-06-01  Jan Hubicka  <jh@suse.cz>
26039
26040         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26041         remove return value.
26042         (split_bbs_on_noreturn_calls) .... here.
26043         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26044         * tree-flow.h (fixup_noreturn_call): New.
26045
26046 2010-06-01  Jan Hubicka  <jh@suse.cz>
26047
26048         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26049
26050 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26051
26052         * tree.h (build_nt_call_list): Delete.
26053         * tree.c (build_nt_call_list): Delete.
26054
26055 2010-06-01  Jan Hubicka  <jh@suse.cz>
26056
26057         * fwprop.c: Make emit-rtl.h include last.
26058         * rtlanal.c: Include emit-rtl.h.
26059         * genautomata.c: Output emit-rtl include into insn-automata.c
26060         * df-scan.c: Include emit-rtl.h.
26061         * haifa-sched.c: Indlude emit-rtl.h.
26062         * mode-switching.c: Indlude emit-rtl.h.
26063         * graph.c: Indlude emit-rtl.h.
26064         * sel-sched.c: Include emit-rtl.h.
26065         * sel-sched-ir.c: Include emit-rtl.h.
26066         * ira-build.c: Include emit-rtl.h.
26067         * emit-rtl.c (first_insn, last_insn): Remove defines.
26068         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26069         Move to emit-rtl.h.
26070         (set_new_first_and_last_insn, get_last_insn_anywhere,
26071         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26072         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26073         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26074         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26075         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26076         Use accessor functions.
26077         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26078          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26079         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26080         mem_expr_equal_p): Move here from rtl.h.
26081         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26082         Move here from emit-rtl.c; make inline.
26083         * cfglayout.h: Include emit-rtl.h.
26084         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26085          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26086         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26087         mem_expr_equal_p, get_insns, set_first-insn,
26088         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26089         * reg-stack.c: Include emit-rtl.h.
26090         * dce.c: Likewise.
26091
26092 2010-06-01  Jan Hubicka  <jh@suse.cz>
26093
26094         * cgraph.h (tree_function_versioning): Update prototype.
26095         (cgraph_function_versioning): Update prototype.
26096         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26097         bitmap.
26098         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26099         (cgraph_materialize_clone, save_inline_function_body): Update use of
26100         tree_function_versioning.
26101         * tree-inline.c (copy_bb): Look for previous copied block to link
26102         after; fix debug output.
26103         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26104         (copy_body): Likewise.
26105         (expand_call_inline): Update use of copy_body.
26106         (tree_function_versioning): Update use of copy body; accept
26107         blocks_to_copy and new_entry.
26108
26109 2010-06-01  Jan Hubicka  <jh@suse.cz>
26110
26111         * gegenrtl.c: Remove unnecesary prototypes.
26112         (gendecl): Remove.
26113         (gendef): Produce static inline.
26114         (gencode): Remove.
26115         (main): Do not decode parameters; generate header only.
26116         * Makefile.in (genrtl.c): Remove.
26117
26118 2010-06-01  Jan Hubicka  <jh@suse.cz>
26119
26120         * tree-switch-conversion.c (build_one_array): Make it readonly.
26121
26122 2010-06-01  Richard Guenther  <rguenther@suse.de>
26123
26124         * optabs.c (init_optabs): Guard all accesses to reinit.
26125         * ipa-pure-const.c (propagate): Fix another typo.
26126         * opts.c (common_handle_option): Split assignment to bool.
26127         * c-opts.c (c_common_handle_option): Likewise.
26128
26129 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26130             Matthew Gingell  <gingell@adacore.com>
26131
26132         * doc/invoke.texi: Mention -fdump-ada-spec.
26133         * tree-dump.c (dump_files): Add ada-spec.
26134         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26135         * tree-pass.h (tree_dump_index): Add TDI_ada.
26136         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26137         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26138         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26139         * c-decl.c: Include c-ada-spec.h.
26140         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26141         functions.
26142         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26143         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26144         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26145         * c-ada-spec.h, c-ada-spec.c: New files.
26146
26147 2010-06-01  Richard Guenther  <rguenther@suse.de>
26148
26149         PR lto/43853
26150         * ipa-pure-const.c (get_function_state): Hand back varying state
26151         if we do not have one.
26152         (has_function_state): New function.
26153         (duplicate_node_data): Adjust.
26154         (remove_node_data): Likewise.
26155         (pure_const_write_summary): Likewise.
26156         (propagate): Likewise.  Fix typo.
26157
26158 2010-06-01  Jan Hubicka  <jh@suse.cz>
26159
26160         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26161         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26162         (execute_all_ipa_transforms): Do not play with the states.
26163
26164 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26165
26166         * config/arm/t-linux-androideabi: New.
26167         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26168
26169 2010-06-01  Jan Hubicka  <jh@suse.cz>
26170
26171         * tree-inline.c (estimate_num_insns): For stdarg functions look
26172         into call statement to count cost of argument passing.
26173
26174 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26175
26176         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26177         argument for fprintf.
26178         (ix86_output_addr_diff_elt): Likewise.
26179         (x86_function_profiler): Likewise.
26180         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26181         (LPREFIX): Likewise.
26182         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26183
26184 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26185
26186         PR target/44338
26187         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26188         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26189         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26190         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26191         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26192         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26193         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26194         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26195         TARGET_FUSED_MADD.
26196
26197 2010-05-31  Jan Hubicka  <jh@suse.cz>
26198
26199         * tree.h (tree_range_check_failed): Declare noreturn.
26200
26201 2010-05-31  Jan Hubicka  <jh@suse.cz>
26202
26203         * gimple.c (gimple_call_builtin_p): New function.
26204         * gimple.h (gimple_call_builtin_p): Declare.
26205         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
26206         to exit.
26207         (execute_warn_function_return): BUILT_IN_RETURN is return.
26208         (split_critical_edges): Return edges are not critical.
26209         (is_ctrl_altering_stmt): Builtin_in_return is altering.
26210         (gimple_verify_flow_info): Handle built_in_return.
26211         (execute_warn_function_return): Handle built_in_return.
26212         * ipa-pure-const.c (check_call): Ignore builtin_return.
26213
26214 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26215
26216         PR middle-end/44337
26217         * expr.c (expand_assignment): Don't store anything for out-of-bounds
26218         array accesses with non-MEM.
26219
26220         PR tree-optimization/44182
26221         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
26222         newly needs to end a bb is followed by debug stmts, instead return
26223         true from the function at the end.
26224         (maybe_move_debug_stmts_to_successors): New function.
26225         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
26226
26227 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
26228
26229         PR target/44161
26230         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
26231
26232 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
26233
26234         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
26235         for nested functions in non-optimized compilation.
26236
26237 2010-05-31  Richard Guenther  <rguenther@suse.de>
26238
26239         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
26240
26241 2010-05-30  Jan Hubicka  <jh@suse.cz>
26242
26243         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
26244
26245 2010-05-30  Richard Guenther  <rguenther@suse.de>
26246
26247         PR lto/42975
26248         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
26249         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
26250         no longer needed.
26251
26252 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
26253
26254         * config/darwin.c (output_objc_section_asm_op): Add comment.
26255         (name_needs_quotes): Add '_' to list of valid comment chars.
26256         (machopic_output_function_base_name): Remove unneeded quotes.
26257         (darwin_encode_section_info): Adjust asm whitespace.
26258         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
26259         (ASM_OUTPUT_LOCAL): Ditto.
26260         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
26261         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
26262         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
26263
26264 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
26265
26266         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
26267         RS6000_OUTPUT_BASENAME unconditionally.
26268         (rs6000_output_function_epilogue): Likewise.
26269
26270 2010-05-30  Jan Hubicka  <jh@suse.cz>
26271
26272         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
26273         nodes.
26274
26275 2010-05-30  Richard Guenther  <rguenther@suse.de>
26276
26277         * tree-cfg.c (verify_gimple_assign_single): Implement
26278         verification for COND_EXPR rhs.
26279
26280 2010-05-30  Jan Hubicka  <jh@suse.cz>
26281
26282         * cgraph.h (cgraph_dump_file): Declare.
26283         * cgraphunit.c (cgraph_dump_file): Export.
26284         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
26285
26286 2010-05-30  Jan Hubicka  <jh@suse.cz>
26287
26288         * dwarf2out.c (reference_to_unused,
26289         premark_types_used_by_global_vars_helper): Avoid creation of new
26290         varpool nodes.
26291
26292 2010-05-30  Jan Hubicka  <jh@suse.cz>
26293
26294         * cgraph.h (cgraph_node_cannot_return,
26295         cgraph_edge_cannot_lead_to_return): New functions.
26296         * cgraph.c (cgraph_node_cannot_return,
26297         cgraph_edge_cannot_lead_to_return): Use them.
26298         * ipa-pure-const.c (pure_const_names): New static var.
26299         (check_call): Handle calls not leading to return.
26300         (pure_const_read_summary): Dump info read.
26301         (propagate): Dump info about propagation process; ignore side effects
26302         of functions not leading to exit; fix handling of pure functions.
26303
26304 2010-05-30  Jan Hubicka  <jh@suse.cz>
26305
26306         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
26307         for tail call epilogues.
26308
26309 2010-05-30  Jan Hubicka  <jh@suse.cz>
26310
26311         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
26312         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
26313         dump files.
26314
26315 2010-05-29  Jan Hubicka  <jh@suse.cz>
26316
26317         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
26318         node; remove references in node we no longer keep in cgrpah but need
26319         body of.
26320
26321 2010-05-29  Jan Hubicka  <jh@suse.cz>
26322
26323         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
26324
26325 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26326
26327         PR target/44165
26328         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
26329
26330 2010-05-29  Jan Hubicka  <jh@suse.cz>
26331
26332         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
26333         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
26334         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
26335         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
26336         debug_names_replaced_by, debug_update_ssa): Likewise.
26337         * sbitmap.c (debug_sbitmap): Likewise.
26338         * genrecog.c (debug_decision, debug_decision_list): Likewise.
26339         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26340         debug_tree_chain): Likewise.
26341         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
26342         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
26343         * optabs.c (debug_optab_libfuncs): Likewise.
26344         (verify_loop_closed_ssa): Likewise.
26345         * value-prof.c (verify_histograms): Likewise.
26346         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
26347         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
26348         * cfghooks.c (verify_flow_info): Likewise.
26349         * fold-const.c (debug_fold_checksum): Likewise.
26350         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
26351         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
26352         Likewise.
26353         * omega.c (debug_omega_problem): Likewise.
26354         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
26355         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
26356         * dominance.c (verify_dominators, debug_dominance_info,
26357         debug_dominance_tree): Likewise.
26358         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
26359         * df_regno_debug, df_ref_debug,
26360         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
26361         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
26362         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
26363         * sel-sched.c (debug_state): Likewise.
26364         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
26365         Likewise.
26366         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
26367         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
26368         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
26369         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
26370         Likewise.
26371         * c-pretty-print.c (debug_c_tree): Likewise.
26372         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26373         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26374         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26375         * ebitmap.c (debug_ebitmap): Likewise.
26376         * function.c (debug_find_var_in_block_tree): Likewise.
26377         * print-rtl.c (debug_rtx): Likewise.
26378         (debug_rtx_count): Likewise.
26379         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26380         * stor-layout.c (debug_rli): Likewise.
26381         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26382         * tree-data-ref.c (debug_data_references,
26383         debug_data_dependence_relations, debug_data_reference,
26384         debug_data_dependence_relation, debug_rdg_vertex,
26385         debug_rdg_component, debug_rdg): Likewise.
26386         * tree-affine.c (debug_aff): Likewise.
26387         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26388         Likewise.
26389         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26390         * emit-rtl.c (verify_rtl_sharing): Likewise.
26391         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26392         debug_value_expressions): Likewise.
26393         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26394         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26395         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26396         * cfglayout.c (verify_insn_chain): Likewise.
26397         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26398         debug_clast_stmt, debug_generated_program): Likewise.
26399         * ggc-page.c (debug_print_page_list): Likewise.
26400         * tree-ssa-ter.c (debug_ter): Likewise.
26401         * graphite-dependences.c (debug_pddr): Likewise.
26402         * sched-deps.c (debug_ds): Likewise.
26403         * tree-ssa.c (verify_ssa): Likewise.
26404         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26405         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26406         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26407         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26408         * tree-inline.c (debug_find_tree): Likewise.
26409         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26410         debug_ppl_powerset_matrix): Likewise.
26411         * var-tracking.c (debug_dv): Likewise.
26412         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26413         * cfgloop.c (verify_loop_structure): Likewise.
26414         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26415         * c-common.c (verify_sequence_points): Likewise.
26416         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26417         debug_candidates, debug_rgn_dependencies): Likewise.
26418         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26419         * debug_constraint_graph, debug_solution_for_var,
26420         debug_sa_points_to_info): Likewise.
26421         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26422         Likewie.
26423         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26424         debug_loops, debug_loop, debug_loop_num): Likewise.
26425         * passes.c (debug_pass): Likewise.
26426         (dump_properties): Likewise; add cfglayout property.
26427         (debug_properties): Likewise.
26428         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26429         * varpool.c (debug_varpool): Likewise.
26430         * regcprop.c (debug_value_data): Likewise.
26431         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26432         debug_immediate_uses_for): Likewise.
26433
26434 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26435
26436         PR bootstrap/44315
26437         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26438         Filter out insn-flags.h.
26439
26440 2010-05-29  Jan Hubicka  <jh@suse.cz>
26441
26442         * cgraph.h (struct varpool_node_set_def,
26443         struct cgraph_node_set_def): Remove unused AUX pointer.
26444         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26445         VEC_empty macro.
26446
26447 2010-05-29  Jan Hubicka  <jh@suse.cz>
26448
26449         PR middle-end/44324
26450         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26451
26452 2010-05-29  Richard Guenther  <rguenther@suse.de>
26453
26454         * lto-streamer.c (cached_bp): New global variable.
26455         (bitpack_create): Return the cached bitpack, if available.
26456         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26457         (bp_pack_value): Remove redundant asserts.
26458
26459 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26460
26461         PR middle-end/44306
26462         * tree-if-conv.c (is_true_predicate): New.
26463         (is_predicated): Use is_true_predicate.
26464         (add_to_predicate_list): Same.  Do not use unshare_expr.
26465         (add_to_dst_predicate_list): Same.
26466
26467 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26468
26469         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26470         field on edges.
26471         (predicate_bbs): Same.
26472         (clean_predicate_lists): Same.
26473         (find_phi_replacement_condition): Do not AND the predicate from
26474         edge->aux.
26475
26476 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26477
26478         PR bootstrap/44315
26479         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26480
26481 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26482
26483         PR target/44261
26484         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26485         (negdf2): Adjust expander pattern and use negdf2_slow.
26486         (negsf2): Likewise.
26487
26488 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26489
26490         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26491         up.
26492         * df.h (struct df_base_ref): Move regno field up.
26493         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26494         * expr.h (struct separate_ops): Move location field up.
26495         * optabs.h (struct optab_d): Move libcall_basename field down.
26496         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26497         * config/i386/i386.h (struct machine_function): Convert call_abi field
26498         into a bitfield.  Move cfa field to the end of the structure.
26499
26500 2010-05-29  Jan Hubicka  <jh@suse.cz>
26501
26502         * varpool.c (varpool_get_node): Fix lookup.
26503
26504 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26505
26506         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26507         RTL specific prototypes with #ifdef RTX_CODE.
26508         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26509         * config/spu/t-spu-elf: Fix dependencies.
26510
26511         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26512
26513 2010-05-29  Mike Stump  <mikestump@comcast.net>
26514
26515         PR bootstrap/44315
26516         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26517         TM_H when building to avoid dependency loops.
26518
26519 2010-05-29  Jan Hubicka  <jh@suse.cz>
26520
26521         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26522         refs and body; not the whole node for masters of materialized clones.
26523
26524 2010-05-29  Mike Stump  <mikestump@comcast.net>
26525
26526         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26527
26528 2010-05-29  Jan Hubicka  <jh@suse.cz>
26529
26530         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26531         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26532         use of clone_function_name.
26533         * cgraph.h (cgraph_create_virtual_clone,
26534         cgraph_function_versioning): update prototypes.
26535         (clone_function_name): Declare.
26536         * ipa-cp.c (ipcp_insert_stage): Update call of
26537         cgraph_create_virtual_clone.
26538         * omp-low.c (create_omp_child_function_name): Use
26539         cgraph_create_virtual_clone.
26540         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26541         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26542         and make decl local.
26543
26544 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26545
26546         * vec.h: Include statistics.h
26547         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26548         with VEC_H.
26549
26550 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26551
26552         * c-lex.c: Do not include c-tree.h.
26553         * c-pretty-print.c: Likewise.
26554         * c-opts.c: Likewise.
26555         * c-gimplify.c: Likewise.
26556         * c-common.c: Likewise.
26557         * c-dump.c: Likewise.  Include c-common.h.
26558
26559 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26560
26561         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26562         before including diagnostic-core.h.
26563         (c_cpp_error): New prototype moved from c-tree.h.
26564         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26565         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26566         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26567         (c_cpp_error): Prototype moved to c-common.h.
26568         * Makefile.in: Update dependency for C_COMMON_H.
26569
26570 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26571
26572         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26573         * c-common.c (c_register_addr_space): Remove here.
26574         * c-decl.c (c_register_addr_space): Re-add here.
26575
26576 2010-05-28  Mike Stump  <mikestump@comcast.net>
26577
26578         * config/darwin-c.c: Remove c-tree.h include.
26579
26580 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26581
26582         * gcc.c: Include diagnostic.h.
26583         (error_count): Remove.  All users changed to use errorcount.
26584         (programname): Remove.  All users changed to use progname.
26585         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26586         fnotice): Remove.
26587         (execute): Don't include "Internal error" and bug reporting
26588         information in argument of internal_error call.
26589         (process_command): Don't increment error_count after calling
26590         perror_with_name.
26591         (input_filename): Rename to gcc_input_filename.  All users
26592         changed.
26593         (main): Call diagnostic_initialize.  Register delete_temp_files
26594         with atexit.  Use seen_error to test for errors.
26595         * gcc.h: Include diagnostic-core.h.
26596         (fatal_error, error, warning): Remove.
26597         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26598         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26599         (gcc.o): Update dependencies.
26600
26601 2010-05-28  Jeff Law  <law@redhat.com>
26602
26603         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26604         functions.
26605         * ira.h (ira_bad_reload_regno): Declare
26606         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26607
26608         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26609         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26610         (allocno_reload_assign): Likewise.
26611
26612 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26613
26614         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26615         build1_stat.
26616
26617 2010-05-28  Richard Guenther  <rguenther@suse.de>
26618
26619         PR lto/44312
26620         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26621         Stream fixed-point constants mode.
26622         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26623         and TYPE_PRECISION.
26624         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26625         Stream fixed-point constants mode.
26626         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26627         and TYPE_PRECISION.
26628
26629 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26630
26631         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26632         only place it was called from.
26633         (number_of_latch_executions): Do not return chrec_dont_know when the
26634         may_be_zero is a runtime condition: instead, return a COND_EXPR
26635         including the may_be_zero condition.
26636         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26637         of nb_iterations.
26638         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26639         COND_EXPRs.
26640
26641 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26642
26643         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26644         generate COND_EXPRs for degenerate_phi_result.
26645
26646 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26647
26648         PR middle-end/44293
26649         * tree-if-conv.c (if_convertible_loop_p): Check the
26650         if-convertibility of phi nodes in non predicated BBs.
26651
26652 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26653
26654         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26655
26656 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26657
26658         PR driver/15303
26659         * gcc.c (inform, warning, inform): New functions.
26660         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26661         gmsgid.  All callers changed.
26662         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26663         (fatal_error): Rename to fatal_signal.  All users changed.
26664         (fatal): Rename to fatal_error; change cmsgid parameter to
26665         gmsgid.  All callers changed.
26666         (process_command): Use warning instead of error for warnings.
26667         (end_going_arg): Don't use _() around argument of error.
26668         (do_spec_1): Use inform for message from %n specs.  Use warning
26669         instead of error for warnings.
26670         (main): Use inform for comparison messages.  Use warning for
26671         message about unused linker input.
26672         (error): Increment error_count.  Print "error: ".
26673         * gcc.h (fatal): Change to fatal_error.
26674         (warning): Declare.
26675         * config/darwin-driver.c (darwin_default_min_version): Use warning
26676         instead of fprintf for warnings.
26677         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26678
26679 2010-05-28  Julian Brown  <julian@codesourcery.com>
26680
26681         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26682         (*thumb2_addsi3_compare0_scratch): New.
26683         * config/arm/constraints.md (Pv): New.
26684         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26685         for ARM mode only.
26686         (*addsi3_compare0_scratch): Likewise.
26687
26688 2010-05-28  Jan Hubicka  <jh@suse.cz>
26689
26690         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26691         check.
26692         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26693         only on local statics.
26694
26695 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26696
26697         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26698
26699 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26700
26701         PR bootstrap/44314
26702         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26703         (OPTION_GLIBC): Define.
26704
26705 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26706
26707         PR debug/41048
26708         * dwarf2out.c (double_int_type_size_in_bits): New function.
26709         (round_up_to_align): Change first argument and return value to
26710         double_int.
26711         (field_byte_offset): Work internally on double_ints.
26712
26713         PR target/43636
26714         * builtins.c (expand_movstr): Use a temporary pseudo instead
26715         of target even when target is not NULL and not const0_rtx, but
26716         fails movstr predicate.
26717         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26718
26719 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26720
26721         * final.c (rest_of_clean_state): Use %m in errors instead of
26722         strerror (errno).
26723         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26724         instead of strerror.
26725         * toplev.c (process_options): Use %m in errors instead of strerror
26726         (errno).
26727         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26728         (errno).
26729
26730 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26731
26732         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26733         (ix86_canonical_va_list_type): Make static.  Add declaration.
26734         (ix86_enum_va_list): Make static.  Reindent.
26735         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26736         (ix86_canonical_va_list_type): Ditto.
26737         (ix86_enum_va_list): Ditto.
26738
26739 2010-05-28  Richard Guenther  <rguenther@suse.de>
26740
26741         * lto-wrapper.c (run_gcc): With -save-temps generate a
26742         user-visible ltrans filename.  Fixup ltrans unit numbering.
26743
26744 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26745
26746         * c-common.c (c_common_nodes_and_builtins): Replace use
26747         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26748         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26749         to ix86_enum_va_list.
26750         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26751         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26752         (TARGET_ENUM_VA_LIST_P): Add hook description.
26753         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26754         * target.h (gcc_target): Add enum_va_list hook.
26755
26756         PR bootstrap/44299
26757         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26758         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26759         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26760
26761 2010-05-28  Alan Modra  <amodra@gmail.com>
26762
26763         PR target/44266
26764         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26765         emit_library_call machinery to set up __tls_get_addr calls.
26766
26767 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26768
26769         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26770
26771 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26772
26773         Revert fix for PR c++/44188
26774         * c-common.c (is_typedef_decl): Revert the moving of  this
26775         definition ...
26776         * tree.c (is_typedef_decl): ... here.
26777         (typdef_variant_p): Revert the moving of this  definition
26778         here from cp/tree.c.
26779         * c-common.h (is_typedef_decl): Revert the moving of this
26780         declaration ...
26781         * tree.h (is_typedef_decl): ... here.
26782         (typedef_variant_p): Revert the moving of this  declaration here
26783         from cp/cp-tree.h
26784         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26785         (gen_tagged_type_die): Revert the splitting out of ...
26786         (gen_type_die_with_usage): ... this function. Revert the anonymous
26787         tagged type handling.
26788         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26789         typedefs naming anonymous tagged types.
26790
26791 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26792
26793         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26794
26795 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26796
26797         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26798         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26799         throughout.
26800         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26801         "xer" to "ca".
26802         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26803         XER_REGS to CA_REGS throughout.
26804         * config/rs6000/rs6000.h: Same.
26805         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26806         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26807         that mode_iterator "P" is the size for arithmetic carries as well.
26808         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26809
26810 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26811
26812         PR bootstrap/44255
26813         * combine.c (struct rtx_subst_pair): Define unconditionally.
26814         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26815         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26816         Call make_compound_operation on pair->to.
26817         (propagate_for_debug): Don't call make_compound_operation here.
26818         Always use simplify_replace_fn_rtx.
26819
26820 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26821
26822         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26823         * config/xtensa/xtensa.c (override_options): Check
26824           TARGET_FORCE_NO_PIC and set flag_pic.
26825         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26826
26827 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26828
26829         PR bootstrap/44299
26830         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26831         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26832
26833 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26834
26835         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26836         toplev.h.
26837         * diagnostic.c: Don't include toplev.h.
26838         (progname): Define.  Moved from toplev.c.
26839         (seen_error): New function.
26840         * diagnostic.h: Include diagnostic-core.h.
26841         (diagnostic_t, emit_diagnostic): Don't declare here.
26842         * toplev.c (progname): Move to toplev.c.
26843         (emit_debug_global_declarations, compile_file, finalize,
26844         do_compile, toplev_main): Use seen_error.
26845         * toplev.h: Include diagnostic-core.h.
26846         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26847         internal_error, warning, warning_at, error, error_n, error_at,
26848         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26849         verbatim, fnotice, progname): Move to diagnostic-core.h.
26850         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
26851         (expand_builtin_expect): Use seen_error.
26852         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
26853         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
26854         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
26855         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
26856         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
26857         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
26858         errorcount for errors.
26859         * c-opts.c (c_common_finish): Use seen_error.
26860         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26861         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
26862         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
26863         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
26864         (get_coverage_counts): Use seen_error.
26865         * dwarf2out.c (dwarf2out_finish): Use seen_error.
26866         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
26867         gimplify_body): Use seen_error.
26868         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
26869         * ipa-pure-const.c (gate_pure_const): Use seen_error.
26870         * ipa-reference.c (gate_reference): Use seen_error.
26871         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
26872         * lambda-code.c: Include diagnostic-core.h instead of
26873         diagnostic.h.
26874         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26875         * lto-compress.c: Include diagnostic-core.h instead of
26876         diagnostic.h.
26877         * lto-section-in.c: Include diagnostic-core.h instead of
26878         diagnostic.h.
26879         * lto-streamer-out.c: Include diagnostic-core.h instead of
26880         diagnostic.h.
26881         * lto-streamer.c: Include diagnostic-core.h instead of
26882         diagnostic.h.
26883         (gate_lto_out): Use seen_error.
26884         * matrix-reorg.c: Include diagnostic-core.h instead of
26885         diagnostic.h.
26886         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
26887         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
26888         (gate_expand_omp, lower_omp_1): Use seen_error.
26889         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
26890         (rest_of_decl_compilation, rest_of_type_compilation,
26891         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
26892         * tree-cfg.c (label_to_block_fn): Use seen_error.
26893         * tree-inline.c (optimize_inline_calls): Use seen_error.
26894         * tree-mudflap.c (mudflap_finish_file): Use
26895         seen_error.
26896         * tree-optimize.c (gate_all_optimizations,
26897         gate_all_early_local_passes, gate_all_early_optimizations): Use
26898         seen_error.
26899         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
26900         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
26901         (varpool_remove_unreferenced_decls,
26902         varpool_assemble_pending_decls): Use seen_error.
26903         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
26904         (TOPLEV_H, DIAGNOSTIC_H): Update.
26905         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
26906         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
26907         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
26908         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
26909         coverage.o, lambda-code.o): Update dependencies.
26910
26911 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26912
26913         PR c++/44188
26914         * c-common.c (is_typedef_decl): Move this definition ...
26915         * tree.c (is_typedef_decl): ... here.
26916         (typdef_variant_p): Move definition here from cp/tree.c.
26917         * c-common.h (is_typedef_decl): Move this declaration ...
26918         * tree.h (is_typedef_decl): ... here.
26919         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26920         * dwarf2out.c (is_naming_typedef_decl): New function.
26921         (gen_tagged_type_die): Split out of ...
26922         (gen_type_die_with_usage): ... this function. When an anonymous
26923         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26924         is emitted for the typedef.
26925         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26926         anonymous tagged types.
26927
26928 2010-05-27  Jason Merrill  <jason@redhat.com>
26929
26930         * print-tree.c (debug_vec_tree): New fn.
26931         (print_vec_tree): New fn.
26932         * tree.h: Declare them.
26933         * gdbinit.in (pvt): New command.
26934
26935         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
26936
26937         * gdbinit.in (pdd): New command.
26938
26939 2010-05-27  Jan Hubicka  <jh@suse.cz>
26940
26941         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
26942         (update_caller_keys): Return early if there are no callers;
26943         only update fibheap when decresing the key.
26944         (update_callee_keys): Avoid recursion.
26945         (decide_inlining_of_small_functions): When badness does not match;
26946         re-insert into fibheap.
26947
26948 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
26949
26950         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
26951         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
26952         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
26953         (ALL_HOST_OBJS): Now a union of the above two.
26954         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
26955         all files in ALL_HOST_FRONTEND_OBJS.
26956         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
26957
26958         * c-common.c: Pretend to be a backend file by undefining
26959         IN_GCC_FRONTEND (still need rtl.h here).
26960
26961 2010-05-27  Jan Hubicka  <jh@suse.cz>
26962
26963         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
26964         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
26965
26966 2010-05-27  Jan Hubicka  <jh@suse.cz>
26967
26968         * sched-ebb.c: Rename struct deps to struct deps_desc.
26969         * ddg.c: Likewise.
26970         * sel-sched-ir.c: Likewise.
26971         * sched-deps.c: Likewise.
26972         * sched-int.h: Likewise.
26973         * sched-rgn.c: Likewise.
26974
26975 2010-05-27  Jon Beniston  <jon@beniston.com>
26976
26977         PR 43726
26978         * config/lm32/lm32.h: Remove definition of
26979         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
26980
26981 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
26982
26983         PR lto/44230
26984         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
26985
26986 2010-05-27  Richard Guenther  <rguenther@suse.de>
26987
26988         PR tree-optimization/44284
26989         * tree-vect-stmts.c (vectorizable_assignment): Handle
26990         sign-changing conversions as simple copy.
26991
26992 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26993
26994         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
26995         Bionic C library.
26996         (__gthread_active_p): Check for pthread_create if compiling against
26997         Bionic C library.
26998
26999 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27000
27001         Support compilation for Android platform.  Reimplement -mandroid.
27002
27003         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27004         (*android*): Set ANDROID_DEFAULT.
27005         (arm*-*-linux*): Include linux-android.h.
27006         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27007         * config/arm/eabi.h: Remove, move Android-specific parts ...
27008         * config/linux-android.h: ... here.  New file.
27009         * config/arm/eabi.opt: Rename to ...
27010         * config/linux-android.opt: ... this.
27011         (mandroid): Allow -mno-android option.  Initialize based on
27012         ANDROID_DEFAULT.
27013         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27014         Move logic to corresponding LINUX_TARGET_* macros.
27015         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27016         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27017         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27018         Android definitions.
27019         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27020         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27021         Document.
27022
27023 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27024
27025         Add support for Bionic C library
27026
27027         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27028         macro.
27029         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27030         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27031
27032         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27033         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27034         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27035         to support multiple C libraries.  Handle Bionic.
27036         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27037         (BIONIC_DYNAMIC_LINKER64): Define.
27038         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27039         Update.
27040         (TARGET_HAS_SINCOS): Enable for Bionic.
27041
27042         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27043         the last option specified on command line take effect.
27044         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27045         (mbionic): New.
27046         (mglibc, muclibc): Update.
27047
27048         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27049         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27050         DEFAULT_LIBC.
27051
27052         * doc/invoke.texi (-mglibc, -muclibc): Update.
27053         (-mbionic): Document.
27054
27055 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27056
27057         * c-common.h (c_register_addr_space): Add prototype.
27058         (ADDR_SPACE_KEYWORD): Remove.
27059         * c-common.c (c_register_addr_space): New function.
27060         (c_addr_space_name): Reimplement.
27061         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27062
27063         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27064         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27065
27066         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27067         Remove TARGET_ADDR_SPACE_KEYWORDS.
27068
27069 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27070
27071         * input.c: New file.
27072         * input.h (main_input_filename): Move declaration to toplev.h.
27073         * toplev.c (input_location, line_table): Move to input.c
27074         * toplev.h (main_input_filename): Move declaration from input.h.
27075         * tree.c (expand_location): Move to input.c.
27076         * Makefile.in (OBJS-common): Add input.o.
27077         (input.o): Add dependencies.
27078
27079 2010-05-27  Richard Guenther  <rguenther@suse.de>
27080
27081         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27082         for non-existant files.
27083         (fork_execute): Mark args_name file as deleted.
27084
27085 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27086
27087         PR bootstrp/44287
27088         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27089         (narrow_signed_type): Likewise.
27090
27091 2010-05-26  Jan Hubicka  <jh@suse.cz>
27092
27093         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27094         edge only when checking is enabled; check using former_clone_of;
27095         check inline clones too.
27096         (cgraph_materialize_clone): Record former_clone_of pointer.
27097         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27098         combining redirections; dump args_to_skip bitmap
27099         (cgraph_materialize_all_clones): Do no redirection here.
27100         * ipa-inline.c (inline_transform): Do redirection here.
27101         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27102         cheking only).
27103
27104 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27105
27106         * config/avr/avr-c.c: Do not include regs.h.
27107         Include cpplib.h for cpp_define and tree.h for c-common.h.
27108         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27109         * config/avr/t-avr: Fix dependencies for avr-c.o.
27110
27111 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27112
27113         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27114         string instead of SYMBOL_REF rtx.
27115         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27116         * libfuncs.h: ...to here.  Adjust for explow.c change.
27117
27118 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27119
27120         * pretty-print.c: Don't include ggc.h.
27121         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27122         (identifier_to_locale): Use them for allocation.
27123         * pretty-print.h (identifier_to_locale_alloc,
27124         identifier_to_locale_free): Declare.
27125         * toplev.c (alloc_for_identifier_to_locale): New.
27126         (general_init): Set identifier_to_locale_alloc and
27127         identifier_to_locale_free.
27128         * Makefile.in (pretty-print.o): Update dependencies.
27129
27130 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27131
27132         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27133         pointer types if they have different alignment or mode.
27134
27135 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27136
27137         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27138         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27139         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27140         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27141         sparc_function_value_regno_p): New functions.
27142         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27143         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27144         (function_value): Rename to...
27145         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27146         argument to 'outgoing'.
27147         (function_arg_record_value, function_arg_union_value,
27148         function_arg_vector_value): Update comment.
27149
27150 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27151
27152         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27153         (fde_needed_for_eh_p): New predicate.
27154         (output_call_frame_info): Use it throughout to decide whether FDEs
27155         are needed for EH purpose.
27156         (dwarf2out_begin_prologue): Reorder assignments.
27157
27158 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27159
27160         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27161         special case loop->header.
27162         (is_predicated): New.
27163         (if_convertible_loop_p): Call it.
27164
27165 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27166
27167         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27168         iterator in parameter.  Do not generate code during the analysis.
27169         (tree_if_convert_cond_stmt): Removed.
27170         (tree_if_convert_stmt): Removed.
27171         (predicate_bbs): New.
27172         (if_convertible_loop_p): Call predicate_bbs.
27173         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27174         now contains all the analysis part.
27175
27176 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27177
27178         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27179         statements in the analysis part.
27180         (tree_if_convert_stmt): Update comment.
27181         (remove_conditions_and_labels): New.
27182         (combine_blocks): Call remove_conditions_and_labels.
27183         (tree_if_conversion): Update comment.
27184
27185 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27186
27187         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27188         than 2 predecessors or more than 2 successors.
27189
27190 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27191
27192         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27193         of loops in which the data dependence analysis fails.
27194
27195 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27196
27197         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27198         CDI_POST_DOMINATORS.
27199         (tree_if_conversion): Same.
27200
27201 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27202
27203         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
27204
27205 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27206
27207         * tree-if-conv.c: Update copyright years.  Fix comments.
27208         Fix indentation.
27209
27210 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
27211
27212         * builtin-types.def (BT_INT128): New primitive type.
27213         (BT_UINT128): Likewise.
27214         * c-common.c (c_common_r): Add __int128 keyword.
27215         (c_common_type_for_size): Handle __int128.
27216         (c_common_type_for_mode): Likewise.
27217         (c_common_signed_or_unsigned_type): Likewise.
27218         (c_common_nodes_and_builtins): Add builtin type
27219         if target supports 128-bit integer scalar.
27220         * c-common.h (enum rid): Add RID_INT128.
27221         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
27222         if target supports 128-bit integer scalar.
27223         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
27224         (finish_declspecs): Likewise.
27225         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
27226         (c_token_starts_declspecs): Likewise.
27227         (c_parser_declspecs): Likewise.
27228         (c_parser_attributes): Likewise.
27229         (c_parser_objc_selector): Likewise.
27230         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
27231         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
27232         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
27233         * tree.c (make_or_reuse_type): Likewise.
27234         (make_unsigned_type): Likewise.
27235         (build_common_tree_nodes_2): Likewise.
27236         * tree.h (enum integer_type_kind): Add itk_int128 and
27237         itk_unsigned_int128.
27238         (int128_integer_type_node): New define.
27239         (int128_unsigned_type_node): New define.
27240         * doc/extend.texi: Add documentation about __int128 type.
27241
27242 2010-05-26  Richard Guenther  <rguenther@suse.de>
27243
27244         * tree-ssa-sccvn.c (copy_nary): Adjust.
27245         (copy_phis): Rename to ...
27246         (copy_phi): ... this.  Adjust.
27247         (copy_references): Rename to ...
27248         (copy_reference): ... this.  Adjust.
27249         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
27250         result into the valid table.
27251
27252 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27253
27254         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
27255         insn-config.h, insn-codes.h, recog.h, and optabs.h.
27256
27257 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27258
27259         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
27260
27261 2010-05-26  Richard Guenther  <rguenther@suse.de>
27262
27263         * opts.c (common_handle_option): Handle OPT_Ofast.
27264
27265 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27266
27267         * diagnostic.c: Don't include opts.h.
27268         (permissive_error_option): Define.
27269         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
27270         for classify_diagnostic.  Don't use memset for
27271         classify_diagnostic.  Initialize new and recently added fields.
27272         (diagnostic_classify_diagnostic): Use context->n_opts instead of
27273         N_OPTS.
27274         (diagnostic_report_diagnostic): Pass context parameter to
27275         diagnostic_report_warnings_p.  Use option_enabled and option_name
27276         hooks from context.
27277         (emit_diagnostic): Use permissive_error_option.
27278         (permerror): Likewise.
27279         * diagnostic.h: Don't include options.h.
27280         (struct diagnostic_context): Add n_opts, opt_permissive,
27281         inhibit_warnings, warn_system_headers, option_enabled and
27282         option_name fields.  Change classify_diagnostic to a pointer.
27283         * opts-diagnostic.h: New file.
27284         * opts.c: Include opts-diagnostic.h.
27285         (common_handle_option): Set global_dc fields for -Wfatal-errors,
27286         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
27287         (option_name): New function.
27288         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
27289         (c_common_handle_option): Set global_dc->permissive for
27290         -fpermissive.
27291         * c-common.c (c_cpp_error): Save and restore
27292         global_dc->warn_system_headers, not variable warn_system_headers.
27293         * toplev.c: Include opts-diagnostic.h.
27294         (general_init): Update call to diagnostic_initialize.  Set
27295         global_dc->show_column, global_dc->option_enabled and
27296         global_dc->option_name.
27297         (process_options): Don't set global_dc fields here.
27298         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
27299         (diagnostic.o, opts.o, toplev.o): Update dependencies.
27300
27301 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27302
27303         * config/picochip/picochip.md (movsi): Split a movsi from a
27304         const after reload.
27305
27306 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27307
27308         * ggc-zone.c: Update copyright year.
27309         (poison_region): Mark memory for Valgrind as undefined before
27310         memset () call and inaccessible afterwards.
27311         (ggc_pch_total_size): Change type of i to int.
27312
27313 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27314
27315         * ggc-common.c (ggc_free_overhead): Allow empty slot.
27316
27317 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27318
27319         * ggc-common.c: Update copyright year.
27320         (ggc_rlimit_bound): Remove prototype.  Compile only if
27321         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
27322         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
27323         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
27324         (ggc_min_heapsize_heuristic): Likewise.
27325
27326 2010-05-26  Richard Guenther  <rguenther@suse.de>
27327
27328         PR rtl-optimization/44164
27329         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
27330         no-common access-path disambiguation.
27331         (indirect_ref_may_alias_decl_p): Adjust.
27332         (indirect_refs_may_alias_p): Likewise.
27333         (refs_may_alias_p_1): Likewise.
27334
27335 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27336
27337         * c-typeck.c: Do not include expr.h.
27338
27339 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27340
27341         * rtl.h (decl_default_tls_model): Move prototype from here...
27342         * output.h: ...to here.
27343         * c-decl.c: Do not include rtl.h.
27344         * c-pragma.c: Likewise.
27345         * c-parser.c: Likewise.
27346         * c-gimplify.c: Likewise.  And also not hard-reg-set.
27347         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
27348         FIXME note for it.  Add a FIXME note for expr.h.
27349         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
27350         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
27351         defined.
27352
27353 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
27354
27355         PR target/44199
27356         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
27357         or total_size is larger than red zone size for non-V4 ABI, emit a
27358         stack_tie resp. frame_tie insn before stack pointer restore.
27359         * config/rs6000/rs6000.md (frame_tie): New insn.
27360
27361 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
27362
27363         * function.h (struct function): Add can_throw_non_call_exceptions bit.
27364         * lto-streamer-in.c (input_function): Stream it in.
27365         * lto-streamer-out.c (output_function): Stream it out.
27366         * function.c (allocate_struct_function): Set it.
27367         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
27368         for flag_non_call_exceptions.
27369         * cfgbuild.c (control_flow_insn_p): Likewise.
27370         (make_edges): Likewise.
27371         * cfgexpand.c (expand_stack_alignment): Likewise.
27372         * combine.c (distribute_notes): Likewise.
27373         * cse.c (cse_extended_basic_block): Likewise.
27374         * except.c (insn_could_throw_p): Likewise.
27375         * gcse.c (simple_mem): Likewise.
27376         * ipa-pure-const.c (check_call): Likewise.
27377         (check_stmt ): Likewise.
27378         * lower-subreg.c (lower-subreg.c): Likewise.
27379         * optabs.c (emit_libcall_block): Likewise.
27380         (prepare_cmp_insn): Likewise.
27381         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27382         * postreload.c (rest_of_handle_postreload): Likewise.
27383         * reload1.c (reload_as_needed): Likewise.
27384         (emit_input_reload_insns): Likewise.
27385         (emit_output_reload_insns): Likewise.
27386         (fixup_abnormal_edges): Likewise.
27387         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27388         * store-motion.c (find_moveable_store): Likewise.
27389         * tree-eh.c (stmt_could_throw_p): Likewise.
27390         (tree_could_throw_p): Likewise.
27391         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27392         * config/arm/arm.c (arm_expand_prologue): Likewise.
27393         (thumb1_expand_prologue): Likewise.
27394         * config/rx/rx.md (cbranchsf4): Likewise.
27395         (cmpsf): Likewise.
27396         * config/s390/s390.c (s390_emit_prologue): Likewise.
27397         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27398         (inline_forbidden_into_p): New predicate.
27399         (expand_call_inline): Use it to forbid inlining.
27400         (tree_can_inline_p): Likewise.
27401
27402 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27403
27404         * config/i386/i386-c.c: Do not include rtl.h.
27405         * config/i386/t-i386: Update dependencies.
27406
27407 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27408
27409         * attribs.c: Do not include rtl.h.
27410         * Makefile.in: Update dependencies.
27411
27412 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27413
27414         * double-int.h (double_int_and): New.
27415         * combine.c (try_combine): Clean up, use double_int_* and
27416         immed_double_int_const functions.
27417
27418 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27419
27420         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27421         stderr to /dev/null instead of grep -q.
27422         * configure: Regenerate.
27423
27424 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27425
27426         * Makefile.in (EXCEPT_H): Fix typo.
27427
27428 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27429
27430         * ira-build.c (update_conflict_hard_reg_costs): New.
27431         (ira_build): Call update_conflict_hard_reg_costs.
27432
27433 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27434
27435         PR debug/41371
27436         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27437         ENABLE_CHECKING.
27438         (intersect_loc_chains): Walk the s2var's loc_chain together
27439         with s1node chain as long as the locations are equal, don't
27440         call find_loc_in_1pdv in that case.
27441
27442         PR debug/42801
27443         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27444         (copy_bind_expr): ... instead of here.
27445         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27446         if the block hasn't been remapped.
27447         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27448         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27449
27450 2010-05-25  Richard Guenther  <rguenther@suse.de>
27451
27452         PR middle-end/44069
27453         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27454         out-of-bounds array accesses.
27455
27456 2010-05-25  Richard Guenther  <rguenther@suse.de>
27457
27458         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27459         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27460         (run_gcc): Re-organize to make cleanup easier.
27461
27462 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27463
27464         * config/s390/s390.c (optimization_options): Fix and move the
27465         flag_prefetch_loop_arrays override ...
27466         (override_options): ... here.
27467
27468 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27469
27470         * diagnostic.c: Don't include plugin.h.
27471         (diagnostic_report_diagnostic): Don't handle plugins specially
27472         here.  Pass context to internal_error callback.
27473         * diagnostic.h (struct diagnostic_context): Add context parameter
27474         to internal_error callback.
27475         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27476         * plugin.h (struct diagnostic_context): Declare.
27477         (warn_if_plugins, plugins_internal_error_function): Declare.
27478         * toplev.c (general_init): Set global_dc->internal_error.
27479         * Makefile.in (diagnostic.o): Update dependencies.
27480
27481 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27482
27483         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27484         * config/rs6000/t-darwin64: New.
27485         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27486         build crt2.
27487
27488 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27489
27490         PR 44203
27491         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27492         match the original (and intended) behaviour before r159557.  This
27493         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27494         in two ways.
27495
27496 2010-05-25  Richard Guenther  <rguenther@suse.de>
27497
27498         * doc/invoke.texi: Document -Ofast.
27499         * target.h (struct gcc_target): Add handle_ofast.
27500         * target-def.h (TARGET_HANDLE_OFAST): Add.
27501         (TARGET_INITIALIZER): Adjust.
27502         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27503         * common.opt (Ofast): Add.
27504
27505 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27506
27507         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27508         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27509
27510 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27511
27512         PR target/43610
27513         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27514         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27515         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27516         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27517
27518 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27519
27520         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27521         DW_OP_minus with negated offset instead of DW_OP_plus.
27522         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27523
27524 2010-05-25  Wei Guozhi  <carrot@google.com>
27525
27526         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27527         tst instruction and a new alternative.
27528         * config/arm/constraints.md (Pu): New constraint.
27529
27530 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27531
27532         * function.c (assign_stack_local_1): Initialize variable
27533         to avoid warning when bootstrapping at -O3.
27534
27535 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27536
27537         * configure.ac (all_lang_makefiles): Remove everything related to it.
27538         * configure: Regenerate.
27539         * Makefile.in: Fix reference to ada Make-lang.in.
27540         Remove support for LANG_MAKEFILES.
27541
27542 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27543             Sandra Loosemore  <sandra@codesourcery.com>
27544
27545         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27546         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27547         description.  Add arm_neon_fp16_ok.
27548         (Add Options): Add arm_neon and arm_neon_fp16.
27549
27550 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27551
27552         * diagnostic.c: Don't include flags.h.
27553         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27554         context parameters.  Check flags in the context passed as a parameter.
27555         (diagnostic_build_prefix): Add context parameter.  Check
27556         show_column flag in context.
27557         (diagnostic_action_after_output): Check fatal_errors flag in context.
27558         (diagnostic_report_current_module): Check show_column flag in context.
27559         (default_diagnostic_starter): Update call to
27560         diagnostic_build_prefix.
27561         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27562         (emit_diagnostic): Pass context to permissive_error_kind.
27563         (permerror): Pass context to permissive_error_kind.
27564         * diagnostic.h (struct diagnostic_context): Add show_column,
27565         pedantic_errors, permissive and fatal_errors fields.
27566         (diagnostic_build_prefix): Update prototype.
27567         * langhooks.c
27568         * toplev.c (process_options): Set flags in global_dc from
27569         flag_show_column, flag_pedantic_errors, flag_permissive,
27570         flag_fatal_errors.
27571         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27572         to diagnostic_build_prefix.
27573         * Makefile.in (diagnostic.o): Update dependencies.
27574
27575 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27576
27577         * config/i386/ia32intrin.h (__crc32q): Define only if
27578         __SSE4_2__ is defined.
27579
27580 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27581
27582         PR target/44132
27583         PR middle-end/43602
27584         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27585         DECL_VISIBILITY_SPECIFIED.
27586         (emutls_decl): Set DECL_PRESERVE_P and copy
27587         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27588         (emutls_finalize_control_var): New callback.
27589         (emutls_finish): Finalize emutls control variables.
27590         * toplev.c (compile_file): Move the call to emutls_finish ()
27591         before varpool_assemble_pending_decls ().
27592
27593 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27594
27595         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27596         added to the preprocessor condition.
27597
27598 2010-05-24  Paul Brook  <paul@codesourcery.com>
27599
27600         * gengtype-lex.l: Add HARD_REG_SET.
27601         * expr.c (expand_expr_real_1): Record writes to hard registers.
27602         * function.c (rtl_data): Add asm_clobbers.
27603         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27604         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27605         Use crtl->asm_clobbers.
27606
27607 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27608
27609         * doc/makefile.texi (Makefile): Mention stages 'profile'
27610         and 'feedback' for profiledbootstrap.
27611
27612 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27613
27614         PR target/44245
27615         * config/i386/i386.c (def_builtin): Properly check
27616         OPTION_MASK_ISA_64BIT.
27617
27618 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27619
27620         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27621         typedefs with different but compatible types.  Allow duplicate
27622         typedefs with the same type except for pedantic non-C1X, but give
27623         warning for variably modified types.
27624         * c-typeck.c (tagged_types_tu_compatible_p,
27625         function_types_compatible_p, type_lists_compatible_p,
27626         comptypes_internal): Add parameter different_types_p; set
27627         *different_types_p for different but compatible types.  All
27628         callers changed.
27629         (comptypes_check_different_types): New.
27630         * c-tree.h (comptypes_check_different_types): Declare.
27631
27632 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27633
27634         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27635         * jump.c: Include basic-block.h.
27636         * profile.c: Likewise.
27637         * tree-profile.c: Likewise.
27638         * coverage.c: Likewise.
27639         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27640         (optimize_function_for_speed_p): Likewise.
27641         * function.h (optimize_function_for_size_p,
27642         optimize_function_for_speed_p): Moved here from basic-block.h.
27643         * Makefile.in: Update dependencies.
27644
27645 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27646
27647         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27648         before calling make; allow override through $MAKE.
27649         * doc/invoke.texi (Optimize Options): Document override.
27650
27651 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27652
27653         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27654         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27655         (rs6000_mode_dependent_address_ptr): Make static.
27656         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27657         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27658         Remove.
27659
27660 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27661
27662         PR target/43869
27663         * config/i386/i386.c: Make sure that the correct regparm is passed.
27664
27665 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27666
27667         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27668         * sbitmap.c: ...to here to internalize sbitmap element access.
27669         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27670         Explain why basic-block.h is included.
27671         * function.h: Include tm.h for CUMULATIVE_ARGS.
27672         * Makefile.in: Update dependencies.
27673
27674 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27675
27676         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27677         New core types.
27678         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27679         * sbitmap.c: Include sbitmap.h.
27680         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27681         hard-reg-set.h.  Split everything related to regsets out from here...
27682         * regset.h: ...to here.  New file.
27683         * df.h: Include regset.h and sbitmap.h.
27684         * tree-flow.h: Likewise.
27685         * cfgloop.h: Likewise.
27686         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27687         * cgraph.h: Include vec.h and function.h.
27688         * reload.h (struct insn_chain): Change types of live_throughout
27689         and dead_or_set from regset_head to bitmap_head.
27690         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27691         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27692         spilled_regs from regset_head to bitmap_head to avoid dependency
27693         in regset.h.
27694         * sel-sched-ir.h: Include regset.h.
27695         * reload.c: Include df.h before reload.h.
27696         * caller-save.c: Likewise.
27697         * reload1.c: Likewise.
27698         * ira.c: Likewise.
27699         (mark_elimination): Update type of r to bitmap, consistent with
27700         DF_LR_IN.
27701         * dominance.c: Include bitmap.h.
27702         * modulo-sched.c: Include df.h.
27703         * cfganal.c: Include bitmap.h and sbitmap.h.
27704         * cfgbuild.c: Include sbitmap.h.
27705         * lcm.c: Include sbitmap.h.
27706         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27707         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27708         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27709         * cselib.c: Include bitmap.h.
27710         * tree-optimize.c: Include regset.h.
27711         * stmt.c: Include bitmap.h.
27712         * Makefile.in: Update dependencies.
27713
27714 2010-05-22  Jan Hubicka  <jh@suse.cz>
27715
27716         * cgraph.h (struct varpool_node): Add same_comdat_group.
27717         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27718         pointer.
27719         (output_varpool): Update call of lto_output_varpool_node.
27720         (input_varpool): Read same_comdat_group pointer.
27721         (input_varpool_1): Fixup same_comdat_group pointer.
27722         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27723         group is needed, all are.
27724         * varpool.c (varpool_remove_node): Remove node from same comdat group
27725         linklist too.
27726         (varpool_analyze_pending_decls): Walk same comdat groups.
27727
27728 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27729
27730         * rtl.h (union rtunion_def): Remove rt_bit member.
27731         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27732         * print-rtl (print_rtx): Do not print the member.
27733         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27734         * gengenrtl.c (type_from_format): Likewise.
27735         (accessor_from_format): Likewise.
27736
27737 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27738
27739         * dbgcnt.c: Include toplev.h instead of errors.h.
27740         * ira-emit.c: Don't include errors.h.
27741         * ira.c: Include toplev.h instead of errors.h.
27742         * lto-compress.c: Include toplev.h instead of errors.h.
27743         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27744         ira.o, dbgcnt.o): Update dependencies.
27745
27746 2010-05-22  Richard Guenther  <rguenther@suse.de>
27747
27748         * gimple.c (gimple_types_compatible_p): Check type qualifications
27749         before merging pointer to complete and pointer to incomplete type.
27750         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27751         we use our own resolution algorithm.  The gold linker plugin
27752         doesn't do the job we want it to do here.
27753
27754 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27755
27756         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27757         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27758         (sparc_mode_dependent_address_p): New function.
27759
27760 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27761
27762         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27763
27764         * timevar.c: Do not include any core headers.
27765         (timevar_print): De-i18n-ize.
27766         (print_time): Likewise.
27767         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27768
27769 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27770
27771         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27772         langhooks-def.h.
27773         (diagnostic_initialize): Initialize x_data not last_function.
27774         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27775         (default_diagnostic_starter): Call
27776         diagnostic_report_current_module not
27777         diagnostic_report_current_function.
27778         (diagnostic_report_diagnostic): Initialize x_data not
27779         abstract_origin.
27780         (verbatim): Likewise.
27781         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27782         x_data.
27783         (struct diagnostic_context): Change last_function to x_data.
27784         (diagnostic_auxiliary_data): Replace with
27785         diagnostic_context_auxiliary_data and
27786         diagnostic_info_auxiliary_data.
27787         (diagnostic_last_function_changed, diagnostic_set_last_function,
27788         diagnostic_report_current_function): Move to tree-diagnostic.h.
27789         (print_declaration, dump_generic_node, print_generic_stmt,
27790         print_generic_stmt_indented, print_generic_expr,
27791         print_generic_decl, debug_c_tree, dump_omp_clauses,
27792         print_call_name, debug_generic_expr, debug_generic_stmt,
27793         debug_tree_chain, default_tree_printer): Move to
27794         tree-pretty-print.h.
27795         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27796         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27797         gimple-pretty-print.h.
27798         * pretty-print.c: Don't include tree.h
27799         (pp_base_format): Don't handle %K here.
27800         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27801         * pretty-print.h (text_info): Change abstract_origin to x_data.
27802         (pp_tree_identifier, pp_unsupported_tree,
27803         pp_base_tree_identifier): Move to tree-pretty-print.h.
27804         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27805         tree-pretty-print.h: New files.
27806         * tree-pretty-print.c: Include tree-pretty-print.h.
27807         (percent_K_format): New.  Moved from pretty-print.c.
27808         (pp_base_tree_identifier): Move from pretty-print.c.
27809         * c-objc-common.c: Include tree-pretty-print.h.
27810         (c_tree_printer): Handle %K here.
27811         * langhooks.c: Include tree-diagnostic.h.
27812         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27813         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27814         (default_tree_printer): Handle %K using percent_K_format.
27815         (general_init): Use default_tree_diagnostic_starter.
27816         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27817         (free_lang_data): Use default_tree_diagnostic_starter.
27818         * c-pretty-print.c: Include tree-pretty-print.h.
27819         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27820         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27821         * dwarf2out.c: Include tree-pretty-print.h.
27822         * except.c: Include tree-pretty-print.h.
27823         * gimple-pretty-print.c: Include tree-pretty-print.h and
27824         gimple-pretty-print.h.
27825         * gimplify.c: Include tree-pretty-print.h.
27826         * graphite-poly.c: Include tree-pretty-print.h and
27827         gimple-pretty-print.h.
27828         * ipa-cp.c: Include tree-pretty-print.h.
27829         * ipa-inline.c: Include gimple-pretty-print.h.
27830         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27831         * ipa-pure-const.c: Include gimple-pretty-print.h.
27832         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27833         gimple-pretty-print.h.
27834         * ipa-type-escape.c: Include tree-pretty-print.h.
27835         * print-rtl.c: Include tree-pretty-print.h.
27836         * print-tree.c: Include gimple-pretty-print.h.
27837         * sese.c: Include tree-pretty-print.h.
27838         * tree-affine.c: Include tree-pretty-print.h.
27839         * tree-browser.c: Include tree-pretty-print.h.
27840         * tree-call-cdce.c: Include gimple-pretty-print.h.
27841         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27842         * tree-chrec.c: Include tree-pretty-print.h.
27843         * tree-data-ref.c: Include tree-pretty-print.h and
27844         gimple-pretty-print.h.
27845         * tree-dfa.c: Include tree-pretty-print.h.
27846         * tree-if-conv.c: Include tree-pretty-print.h and
27847         gimple-pretty-print.h.
27848         * tree-inline.c: Include tree-pretty-print.h.
27849         * tree-into-ssa.c: Include tree-pretty-print.h and
27850         gimple-pretty-print.h.
27851         * tree-nrv.c: Include tree-pretty-print.h.
27852         * tree-object-size.c: Include tree-pretty-print.h and
27853         gimple-pretty-print.h.
27854         * tree-outof-ssa.c: Include tree-pretty-print.h and
27855         gimple-pretty-print.h.
27856         * tree-parloops.c: Include tree-pretty-print.h and
27857         gimple-pretty-print.h.
27858         * tree-predcom.c: Include tree-pretty-print.h and
27859         gimple-pretty-print.h.
27860         * tree-scalar-evolution.c: Include tree-pretty-print.h and
27861         gimple-pretty-print.h.
27862         * tree-sra.c: Include tree-pretty-print.h.
27863         * tree-ssa-address.c: Include tree-pretty-print.h.
27864         * tree-ssa-alias.c: Include tree-pretty-print.h.
27865         * tree-ssa-ccp.c: Include tree-pretty-print.h and
27866         gimple-pretty-print.h.
27867         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
27868         * tree-ssa-copy.c: Include tree-pretty-print.h and
27869         gimple-pretty-print.h.
27870         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
27871         * tree-ssa-dce.c: Include tree-pretty-print.h and
27872         gimple-pretty-print.h.
27873         * tree-ssa-dom.c: Include tree-pretty-print.h and
27874         gimple-pretty-print.h.
27875         * tree-ssa-dse.c: Include gimple-pretty-print.h.
27876         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
27877         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
27878         * tree-ssa-live.c: Include tree-pretty-print.h and
27879         gimple-pretty-print.h.
27880         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
27881         gimple-pretty-print.h.
27882         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
27883         gimple-pretty-print.h.
27884         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
27885         gimple-pretty-print.h.
27886         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
27887         gimple-pretty-print.h.
27888         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
27889         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
27890         * tree-ssa-operands.c: Include tree-pretty-print.h and
27891         gimple-pretty-print.h.
27892         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
27893         gimple-pretty-print.h.
27894         * tree-ssa-pre.c: Include tree-pretty-print.h and
27895         gimple-pretty-print.h.
27896         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
27897         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
27898         gimple-pretty-print.h.
27899         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
27900         gimple-pretty-print.h.
27901         * tree-ssa-sink.c: Include gimple-pretty-print.h.
27902         * tree-ssa-ter.c: Include tree-pretty-print.h and
27903         gimple-pretty-print.h.
27904         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
27905         * tree-ssa.c: Include tree-pretty-print.h and
27906         gimple-pretty-print.h.
27907         * tree-stdarg.c: Include gimple-pretty-print.h.
27908         * tree-switch-conversion.c: Include gimple-pretty-print.h.
27909         * tree-tailcall.c: Include tree-pretty-print.h and
27910         gimple-pretty-print.h.
27911         * tree-vect-data-refs.c: Include tree-pretty-print.h and
27912         gimple-pretty-print.h.
27913         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
27914         gimple-pretty-print.h.
27915         * tree-vect-loop.c: Include tree-pretty-print.h and
27916         gimple-pretty-print.h.
27917         * tree-vect-patterns.c: Include gimple-pretty-print.h.
27918         * tree-vect-slp.c: Include tree-pretty-print.h and
27919         gimple-pretty-print.h.
27920         * tree-vect-stmts.c: Include tree-pretty-print.h and
27921         gimple-pretty-print.h.
27922         * tree-vectorizer.c: Include tree-pretty-print.h.
27923         * tree-vrp.c: Include tree-pretty-print.h and
27924         gimple-pretty-print.h.
27925         * value-prof.c: Include tree-pretty-print.h and
27926         gimple-pretty-print.h.
27927         * var-tracking.c: Include tree-pretty-print.h.
27928         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
27929         (tree-diagnostic.o): New dependencies.
27930         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
27931         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
27932         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
27933         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
27934         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
27935         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
27936         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
27937         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
27938         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
27939         tree-ssa-address.o, tree-ssa-loop-niter.o,
27940         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
27941         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
27942         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
27943         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
27944         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
27945         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
27946         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
27947         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
27948         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
27949         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
27950         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
27951         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
27952         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
27953         tree-switch-conversion.o, var-tracking.o, value-prof.o,
27954         cfgexpand.o, pretty-print.o): Update dependencies.
27955
27956 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
27957
27958         * tree-ssa-structalias.c: Remove tm_p.h from include.
27959
27960 2010-05-21  Jeff Law  <law@redhat.com>
27961
27962         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
27963
27964 2010-05-21  Jason Merrill  <jason@redhat.com>
27965
27966         * tree-eh.c (cleanup_is_dead_in): New.
27967         (lower_try_finally): Don't generate a dead cleanup region.
27968         (lower_cleanup): Likewise.
27969
27970 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
27971
27972         PR debug/44223
27973         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
27974         unchain each use from the cyclic next_regno_use chain first.
27975
27976 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27977
27978         * real: Do not include gmp.h, mpfr.h, and mpc.h.
27979         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
27980         (real_value_negate, real_value_abs): New prototypes.
27981         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
27982         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
27983         new include file for interface between MPFR and REAL_VALUE_TYPE.
27984         * real.c: Include realmpfr.h.
27985         (real_arithmetic2): Remove legacy function.
27986         (real_value_negate): New.
27987         (real_value_abs): New.
27988         (mfpr_from_real, real_from_mpfr): Move from here...
27989         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
27990         * builtins.c: Include realmpfr.h.
27991         * fold-const.c: Include realmpfr.h.
27992         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
27993         (fold_negate_const): Likewise.
27994         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
27995         * toplev.c: Include realmpfr.h.
27996         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
27997         and real_value_negate.
27998         * fixed-value.c (check_real_for_fixed_mode): Likewise.
27999         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28000         (vfp3_const_double_index): Likewise.
28001         (arm_print_operand): Likewise.
28002         * Makefile.in: Update dependencies.
28003
28004 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28005
28006         * config/s390/s390.c (override_options): Increase the default
28007         of max-completely-peel-times.
28008
28009 2010-05-21  Julian Brown  <julian@codesourcery.com>
28010             Mark Mitchell  <mark@codesourcery.com>
28011
28012         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28013         sibling calls for Thumb-1.
28014         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28015         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28016         Thumb-2.
28017         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28018         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28019         for Thumb-2.
28020         (return): New expander.
28021         (*arm_return): New name for ARM return insn.
28022         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28023
28024 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28025
28026         * config.gcc (sparc64-*-rtems*): New target.
28027
28028 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28029
28030         * tree.c (build_function_decl_skip_args): Fix grammar.
28031         (build_function_type_list_1): Fix typos, adjust formatting.
28032
28033 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28034
28035         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28036         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28037         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28038         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28039         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28040         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28041         tree-pretty-print.c, tree-loop-distribution.c,
28042         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28043         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28044         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28045         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28046         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28047         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28048         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28049         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28050         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28051         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28052         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28053         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28054         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28055         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28056         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28057         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28058         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28059         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28060         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28061         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28062         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28063         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28064         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28065         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28066         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28067         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28068         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28069         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28070         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28071         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28072         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28073         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28074         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28075         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28076         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28077         config/bfin/bfin.c: Clean up redundant includes.
28078         * Makefile.in: Update accordingly.
28079
28080 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28081
28082         PR middle-end/44204
28083         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28084         statement has no arguments.
28085
28086 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28087
28088         PR/44139
28089         * varasm.c (emutls_decl): Merge attributes to new decl.
28090
28091 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28092
28093         PR middle-end/44101
28094         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28095         around the uniquized constructor if its type requires a conversion.
28096
28097 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28098
28099         PR debug/44205
28100         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28101         at -O0 goto_locus of any of the incoming edges differs from
28102         goto_locus of outgoing edge, or gimple_location of any of the
28103         labels differs.
28104
28105 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28106
28107         * ira.c (ira_non_ordered_class_hard_regs): Define.
28108         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28109         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28110         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28111         cost of unaligned hard regs when allocating multi-reg pseudos.
28112
28113 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28114
28115         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28116         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28117         for TARGET_NO_FLOAT.
28118         * config/mips/mips.c (mips_file_start): Expand conditional expression
28119         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28120         (mips_override_options): Move -mno-float override -msoft-float and
28121         -mhard-float.
28122         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28123         Condition(TARGET_SUPPORTS_NO_FLOAT).
28124         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28125         __mips_no_float here.
28126         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28127         (TARGET_SUPPORTS_NO_FLOAT): Define.
28128         * config/mips/sdemtk.opt: Delete.
28129
28130 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28131
28132         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28133
28134 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28135
28136         PR target/43733
28137         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28138         * configure: Regenerate.
28139         * config.in: Regenerate.
28140         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28141         instead of sahf only for 64bit targets.
28142
28143 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28144
28145         PR debug/44178
28146         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28147         setup_ref_regs for DEBUG_INSNs.
28148
28149 2010-05-20  Jan Hubicka  <jh@suse.cz>
28150
28151         PR middle-end/44197
28152         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28153
28154 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28155
28156         PR bootstrap/43870
28157         * df-scan.c (df_ref_compare): Stabilize sort.
28158
28159 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28160
28161         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28162         argument.  Don't use DW_OP_piece if offset is non-zero,
28163         put offset into second DW_OP_bit_piece argument.
28164         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28165         compute offset.
28166
28167 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28168
28169         PR target/44202
28170         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28171         settings for 16-bit-constant "addo" alternative.
28172
28173 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28174
28175         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28176         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28177
28178         PR target/43764
28179         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28180         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28181         Use it.
28182
28183 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28184
28185         * diagnostic.c (FLOAT, FFS): Don't undefine.
28186         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28187         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28188         include ordering.
28189
28190 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28191
28192         * combine.c (propagate_for_debug): Call make_compound_operation
28193         on the source value.
28194         (try_combine): When implementing a split chosen by find_split_point,
28195         either copy i2src or set it to null.  Assert that i2src is not null
28196         before substituting into CALL_INSN_FUNCTION_USAGE.
28197
28198 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28199
28200         * double-int.h (double_int_ior): New function.
28201         * tree.h (build_int_cst_wide_type): Remove.
28202         * tree.c (build_int_cst_wide_type): Remove.
28203         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
28204         of build_int_cst_wide_type.
28205         * stor-layout.c (set_sizetype): (Ditto.).
28206         * dojump.c (do_jump): Use build_int_cstu instead of
28207         build_int_cst_wide_type.
28208
28209 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28210
28211         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
28212         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
28213         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
28214         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
28215         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
28216         propagate the 'data' argument to copy_tree_r.
28217         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
28218         Propagate 'data' argument to walk_tree.
28219         (copy_if_shared): New function.
28220         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
28221         (unmark_visited): New function.
28222         (unshare_body): Call copy_if_shared instead of doing it manually.
28223         (unvisit_body): Call unmark_visited instead of doing it manually.
28224
28225 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
28226
28227         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
28228         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
28229         * hooks.c: Likewise.
28230         * target-def.h (TARGET_FOLD_BUILTIN): Define to
28231         hook_tree_tree_int_treep_bool_null.
28232         * target.h (struct gcc_target): Update signature of fold_builtin
28233         field.
28234         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
28235         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
28236         instead of the call expression.
28237         (fold_builtin_call_array): Pass n and argarray directly.
28238         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
28239         consing a list.
28240         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
28241         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
28242         `i' and use it in place of `arity'.
28243         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
28244         Dereference `args' directly.
28245         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
28246
28247 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28248
28249         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28250         3dnow, sse3, sse2.
28251         (Directives): Document optional dg-require-effective-target
28252         selector.
28253
28254 2010-05-19  Richard Guenther  <rguenther@suse.de>
28255
28256         PR lto/44196
28257         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
28258
28259 2010-05-19  Richard Guenther  <rguenther@suse.de>
28260
28261         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
28262         * common.opt (fwhopr=): New.
28263         * opts.c (common_handle_option): Handle OPT_fwhopr.
28264         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
28265         * collect2.c (main): Match -fwhopr*.
28266         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
28267         Execute ltrans stage in parallel when jobs is bigger than 1.
28268
28269 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28270
28271         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
28272         pentiumpro on Solaris 8/x86 with Sun as.
28273         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
28274         hidden alias bug.
28275         (gcc_cv_as_ix86_quad): Check for .quad directive.
28276         * configure: Regenerate.
28277         * config.in: Regenerate.
28278         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
28279
28280 2010-05-19  Martin Jambor  <mjambor@suse.cz>
28281
28282         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
28283         also for indirect edges.  Actual printing moved...
28284         (ipa_print_node_jump_functions_for_edge): ...here.
28285         (ipa_compute_jump_functions): Renamed to
28286         ipa_compute_jump_functions_for_edge and made static.
28287         (ipa_compute_jump_functions): New function.
28288         (make_edge_direct_to_target): Check if the number of arguments on
28289         the newly direct edge is the same as the number of parametrs of
28290         the callee.
28291         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
28292         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
28293         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
28294         analysis functions unconditionally, call the new
28295         ipa_analyze_params_uses on the node instead of every edge.
28296
28297 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
28298
28299         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
28300         to tree.
28301         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
28302         also checks for a constant int vs.  non-constant but
28303         loop-invariant steps.
28304         (find_or_create_group): Change the sort algorithm to only consider
28305         steps that are constant ints.
28306         (idx_analyze_ref): Adopt code to handle a tree instead of a
28307         HOST_WIDE_INT for step.
28308         (gather_memory_references_ref): Handle tree instead of int and be
28309         prepared to see a NULL_TREE.
28310         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
28311         prefetches if the step cannot be calculated at compile time.
28312         (issue_prefetch_ref): Issue prefetches for non-constant but
28313         loop-invariant steps.
28314
28315 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28316
28317         Revert:
28318         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28319
28320         * tree.h (build_call_list): Remove.
28321         * tree.c (build_call_list): Remove.
28322
28323 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28324
28325         * tree.h (build_call_list): Remove.
28326         * tree.c (build_call_list): Remove.
28327
28328 2010-05-18  Jan Hubicka  <jh@suse.cz>
28329
28330         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
28331
28332 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
28333
28334         PR rtl-optimization/43332
28335         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
28336
28337 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
28338
28339         * tree.h (build_int_cstu): Implement as static inline.
28340         * tree.c (build_int_cstu): Remove function.
28341         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
28342         sign extended.
28343
28344 2010-05-18  Richard Guenther  <rguenther@suse.de>
28345
28346         PR lto/44143
28347         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
28348         (debug): Initialize from -save-temps.
28349         (collect_execute): Print command-line when verbose.
28350         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
28351         for ltrans invocation.  Produce -dumpbase flag again.
28352         (process_args): Remove.
28353         (main): Simplify.
28354         * collect2.c (maybe_run_lto_and_relink): Only pass object
28355         files to lto-wrapper.
28356         * gcc.c (LINK_COMMAND_SPEC): Likewise.
28357
28358 2010-05-18  Jan Hubicka  <jh@suse.cz>
28359
28360         * opts.c (decode_options): Do not disable whopr at ipa_cp.
28361         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
28362
28363 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28364
28365         PR lto/44184
28366         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
28367         in a GIMPLE_ASM.
28368         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
28369         in a GIMPLE_ASM.
28370
28371 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28372
28373         PR debug/41371
28374         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28375         rtx_equal_p inline.
28376
28377 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28378
28379         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28380         lto-macho as lto_binary_reader.
28381
28382         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28383         after .section directive; just print it before the directive instead.
28384
28385 2010-05-17  Jan Hubicka  <jh@suse.cz>
28386
28387         * cgraph.c (cgraph_create_virtual_clone): Only check
28388         versionable_function_p when not in wpa and checking is enabled.
28389         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28390         there are no more functions to materialize.
28391
28392 2010-05-17  Jan Hubicka  <jh@suse.cz>
28393
28394         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28395         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28396         New functions.
28397         (output_cgraph): Call output_cgraph_opt_summary.
28398         (input_cgrpah): Call input_cgraph_opt_summary.
28399         (output_cgraph_opt_summary_p, output_node_opt_summary,
28400         input_node_opt_summary, input_cgraph_opt_section): New functions.
28401         * lto-section-in.c (lto_section_name): Add cgraphopt.
28402         * tree-inline.c (tree_function_versioning): Handle parm_num.
28403         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28404         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28405
28406 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28407
28408         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28409         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28410         the insn to prefetch ratio heuristic to loops with known trip count.
28411
28412 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28413
28414         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28415         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28416         is far from what is required by the prefetch.
28417
28418 2010-05-17  Jan Hubicka  <jh@suse.cz>
28419
28420         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28421         (ipcp_estimate_growth): Likewise.
28422         (ipcp_const_param_count): Likewise.
28423         (ipcp_insert_stage): Likewise.
28424         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28425         (visit_store_addr_for_mod_analysis): Set used flag.
28426         (ipa_detect_param_modifications): Set used flag for SSE params;
28427         update use of walk_stmt_load_store_addr_ops.
28428         (ipa_print_node_params): Print used flag.
28429         (ipa_write_node_info): Stream used flag.
28430         (ipa_read_node_info): Likewise.
28431         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28432         (ipa_is_param_used): New function.
28433         (lto_ipa_fixup_call_notes): Remove unused declaration.
28434
28435 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28436
28437         PR target/44074
28438         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28439         * configure: Regenerate.
28440         * config.in: Regenerate.
28441         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28442         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28443         Don't emit whitespace.
28444         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28445         (*rep_movsi): Likewise.
28446         (*rep_movsi_rex64): Likewise.
28447         (*rep_movqi): Likewise.
28448         (*rep_movqi_rex64): Likewise.
28449         (*rep_stosdi_rex64): Likewise.
28450         (*rep_stossi): Likewise.
28451         (*rep_stossi_rex64): Likewise.
28452         (*rep_stosqi): Likewise.
28453         (*rep_stosqi_rex64): Likewise.
28454         (*cmpstrnqi_nz_1): Use {%;} after repz.
28455         (*cmpstrnqi_nz_rex_1): Likewise.
28456         (*cmpstrnqi_1): Likewise.
28457         (*cmpstrnqi_rex_1): Likewise.
28458         (*strlenqi_1): Use {%;} after repnz.
28459         (*strlenqi_rex_1): Likewise.
28460         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28461         (*sync_compare_and_swap<mode>): Likewise.
28462         (sync_double_compare_and_swap<mode>): Likewise.
28463         (*sync_double_compare_and_swapdi_pic): Likewise.
28464         (sync_old_add<mode>): Likewise.
28465         (sync_add<mode>): Likewise.
28466         (sync_sub<mode>): Likewise.
28467         (sync_<code><mode>): Likewise.
28468
28469 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28470
28471         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28472         otr_token and polymorphic.
28473         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28474         (cgraph_clone_edge): Copy the above fields.
28475         * tree.c (get_binfo_at_offset): New function.
28476         * tree.h (get_binfo_at_offset): Declare.
28477         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28478         type, reordered items, updated comments.
28479         (union jump_func_value): Added base_type field, reordered fields.
28480         (enum ipa_lattice_type): Moved down in the file.
28481         (struct ipa_param_descriptor): New field polymorphic.
28482         (ipa_is_param_polymorphic): New function.
28483         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28484         (ipa_print_node_jump_functions): Print known type jump functions.
28485         (compute_complex_pass_through): Renamed to...
28486         (compute_complex_assign_jump_func): this.
28487         (compute_complex_ancestor_jump_func): New function.
28488         (compute_known_type_jump_func): Likewise.
28489         (compute_scalar_jump_functions): Create known type and complex ancestor
28490         jump functions.
28491         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28492         flag in the call note accordingly.
28493         (ipa_analyze_call_uses): Renamed to...
28494         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28495         variable var only in the block where it is used.
28496         (ipa_analyze_virtual_call_uses): New function.
28497         (ipa_analyze_call_uses): Likewise.
28498         (combine_known_type_and_ancestor_jfs): Likewise.
28499         (update_jump_functions_after_inlining): Implemented handling of a
28500         number of new jump function types combination.
28501         (print_edge_addition_message): Removed.
28502         (make_edge_direct_to_target): New function.
28503         (try_make_edge_direct_simple_call): Likewise.
28504         (try_make_edge_direct_virtual_call): Likewise.
28505         (update_call_notes_after_inlining): Renamed to...
28506         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28507         indirect calls to try_make_edge_direct_simple_call, also calls
28508         try_make_edge_direct_virtual_call for virtual calls.
28509         (ipa_print_node_params): Changed the header message.
28510         (ipa_write_jump_function): Stream also known type jump functions.
28511         (ipa_read_jump_function): Likewise.
28512         (ipa_write_indirect_edge_info): Stream new fields in
28513         cgraph_indirect_call_info.
28514         (ipa_read_indirect_edge_info): Likewise.
28515         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28516         GIMPLE_FOLD_H.
28517
28518 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28519
28520         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28521
28522 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28523
28524         * tree.h (CALL_EXPR_ARGS): Delete.
28525         (call_expr_arglist): Delete.
28526         * tree.c (call_expr_arglist): Delete.
28527         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28528         targetm.fold_builtin.
28529         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28530         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28531         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28532         arglist parameter.  Use CALL_EXPR_ARG.
28533         (picochip_expand_builtin_3op): Likewise.
28534         (picochip_expand_builtin_2opvoid): Likewise.
28535         (picochip_expand_array_get): Likewise.
28536         (picochip_expand_array_put): Likewise.
28537         (picochip_expand_array_testport): Likewise.
28538         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28539         rather than arglist.
28540         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28541         CALL_EXPR_ARGS.
28542         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28543         than TREE_VALUE and TREE_CHAIN.
28544         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28545         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28546         the arglist.
28547
28548 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28549
28550         PR bootstrap/42347
28551         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28552         to have no fallthru edge.
28553
28554         PR middle-end/44102
28555         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28556         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28557         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28558         add BARRIER after previous bb if needed.
28559
28560 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28561
28562         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28563
28564 2010-05-17  Alan Modra  <amodra@gmail.com>
28565
28566         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28567         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28568         with copy_reg rtx param.
28569         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28570         Correct cases where code for ABI_V4 did not initialise the reg
28571         used to access frame.  Also leave frame_reg_rtx as sp for large
28572         frames that save no regs.
28573
28574 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28575
28576         PR middle-end/44133
28577         * tree-sra.c (create_access_replacement): New parameter rename, mark
28578         the replaement for renaming only when it is true.
28579         (get_access_replacement): Pass true in the rename parameter of
28580         create_access_replacement.
28581         (get_unrenamed_access_replacement): New function.
28582         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28583         replacement declaration from it.
28584
28585 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28586
28587         * function.c (try_fit_stack_local, add_frame_space): New static
28588         functions.
28589         (assign_stack_local_1): Use them.  Look for opportunities to use
28590         space previously wasted on alignment.
28591         * function.h (struct frame_space): New.
28592         (struct rtl_data): Add FRAME_SPACE_LIST member.
28593         * reload1.c (something_was_spilled): New static variable.
28594         (alter_reg): Set it.
28595         (reload): Test it in addition to testing if the frame size changed.
28596
28597 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28598
28599         * config/s390/s390.c: Define sane prefetch settings and activate
28600         flag_prefetch_loop_arrays on -O3.
28601         * config/s390/s390.h: Declare that read can use write prefetch.
28602
28603 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28604
28605         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28606         build.
28607
28608 2010-05-16  Jan Hubicka  <jh@suse.cz>
28609
28610         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28611         function body; do not check stdarg field of struct function.
28612
28613 2010-05-16  Jan Hubicka  <jh@suse.cz>
28614
28615         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28616         * cgraph.h (cgraph_local_info): Add versionable flag.
28617         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28618         (ipcp_versionable_function_p): Use it.
28619         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28620         versionable flag.
28621
28622 2010-05-16  Jan Hubicka  <jh@suse.cz>
28623
28624         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28625         clone into hash when it is different from orig.
28626         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28627         * cgraph.h (cgraph_clone_node): Update prototype.
28628         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28629         (lto_cgraph_encoder_delete): Delete body map.
28630         (lto_cgraph_encoder_size): Move to header.
28631         (lto_cgraph_encoder_encode_body_p,
28632         lto_set_cgraph_encoder_encode_body): New.
28633         (lto_output_node): Do not take written_decls argument; output clone_of
28634         pointer.
28635         (add_node_to): Add include_body_argument; call
28636         lto_set_cgraph_encoder_encode_body on master of the clone.
28637         (add_references): Update use of add_node_to.
28638         (compute_ltrans_boundary): Likewise.
28639         (output_cgraph): Do not create written_decls bitmap.
28640         (input_node): Take nodes argument; stream in clone_of correctly.
28641         (input_cgraph_1): Update use of input_node.
28642         * lto-streamer-out.c (lto_output): Use encoder info to decide
28643         what bodies to output.
28644         * ipa-inline.c (cgraph_clone_inlined_nodes,
28645         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28646         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28647         (lto_cgraph_encoder_size): Define here.
28648         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28649         Declare.
28650
28651 2010-05-16  Richard Guenther  <rguenther@suse.de>
28652
28653         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28654         -fipa-type-escape.
28655         * ipa-type-escape.c (gate_type_escape_vars): Run when
28656         -fipa-struct-reorg runs.
28657         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28658         * common.opt (fipa-type-escape): Remove.
28659
28660 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28661
28662         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28663         (decode_options): Likewise.
28664         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28665
28666 2010-05-16  Jan Hubicka  <jh@suse.cz>
28667
28668         * ipa.c (function_and_variable_visibility): Also bring local all
28669         aliases.
28670
28671 2010-05-16  Richard Guenther  <rguenther@suse.de>
28672
28673         * alias.c (nonoverlapping_memrefs_p): Remove use of
28674         IPA type-escape information.
28675
28676 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28677
28678         * c-common.c (c_common_reswords): Add _Static_assert for C.
28679         * c-parser.c (c_token_starts_declaration,
28680         c_parser_next_token_starts_declaration,
28681         c_parser_static_assert_declaration_no_semi,
28682         c_parser_static_assert_declaration): New.
28683         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28684         Handle static assertions if static_assert_ok.
28685         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28686         c_parser_compound_statement_nostart, c_parser_label,
28687         c_parser_for_statement, c_parser_objc_methodprotolist,
28688         c_parser_omp_for_loop): All callers of
28689         c_parser_declaration_or_fndef changed.
28690         (c_parser_struct_declaration): Handle static assertions.
28691         (c_parser_compound_statement_nostart): Use
28692         c_parser_next_token_starts_declaration and
28693         c_token_starts_declaration to detect start of declarations.
28694         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28695         Likewise.
28696
28697 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28698
28699         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28700         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28701         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28702         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28703         (mmix_function_outgoing_value): Rename to...
28704         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28705         (mmix_function_value_regno_p): Make static.
28706         (mmix_libcall_value): New function.
28707         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28708         mmix_function_value_regno_p): Remove declaration.
28709
28710 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28711
28712         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28713         BUILT_IN_ALLOCA if stack checking is enabled.
28714
28715 2010-05-16  Richard Guenther  <rguenther@suse.de>
28716
28717         * var-tracking.c (vars_copy_1): Inline ...
28718         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28719         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28720         (variable_merge_over_cur): Adjust.  Merge asserts.
28721         (variable_merge_over_src): Likewise.
28722         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28723         (variable_post_merge_new_vals): Merge asserts.
28724         (variable_post_merge_perm_vals): Likewise.
28725         (find_mem_expr_in_1pdv): Likewise.
28726         (dataflow_set_different_value): Remove.
28727         (onepart_variable_different_p): Merge asserts.
28728         (variable_different_p): Likewise.
28729         (dataflow_set_different_1): Inline ...
28730         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28731         (emit_notes_for_differences_1): Merge asserts.
28732
28733 2010-05-16  Richard Guenther  <rguenther@suse.de>
28734
28735         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28736         * optabs.c (libfunc_decl_hash): Likewise.
28737         * varasm.c (emutls_decl): Likewise.
28738
28739 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28740
28741         * c-decl.c: Don't include gimple.h.
28742         (merge_decls): Do not copy gimple_body.
28743
28744 2010-05-15  Jason Merrill  <jason@redhat.com>
28745
28746         * c.opt: Add -fnothrow-opt.
28747
28748 2010-05-15  Jan Hubicka  <jh@suse.cz>
28749
28750         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28751         analyzed.
28752         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28753
28754 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28755
28756         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28757         * Makefile.in: Add it.
28758         Fix all other Makefile dependencies for changes below.
28759         * tree.h: Include it instead of defining VEC primitives here.
28760         * gimple.h: Likewise.
28761         * rtl.h: Likewise.
28762         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28763         * except.h: Include vecir.h, break dependence on tree.h.
28764
28765         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28766         Move from here...
28767         * tree-iterator.c: ...to here.
28768         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28769
28770         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28771         tm_p.h.
28772         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28773         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28774         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28775         tree-mudflap.h, and target.h.
28776         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28777         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28778         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28779         Add FIXME for why gimple.h is still included (should be unnecessary
28780         since GCC 4.5 gimplification unit-at-a-time).
28781         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28782         * c-pragma.c: Add FIXME for why function.h needs to be included just
28783         for cfun, at front-end level.
28784         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28785         Do not include ggc.h, but include vecprim.h for VEC(char).
28786         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28787         Explain why target.h is included.
28788         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28789         Explain why gimple.h is included.
28790         * c-ppoutput.c: Do not include tm.h.
28791         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28792         * c-parses.c: Explain why rtl.h is included, and that this (and only
28793         this) is also why tm.h must be included.
28794         Do not include except.h.
28795         * c-lang.c: Do not include ggc.h.
28796
28797 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28798
28799         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28800
28801 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28802
28803         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28804         unions by default if those structs and unions have no tags.  Do
28805         not condition anonymous struct and unions handling on flag_iso.
28806         Allow anonymous structs and unions for C1X.
28807         (finish_struct): Do not diagnose lack of named fields when
28808         anonymous structs and unions present for C1X.  Accept flexible
28809         array members in structure with anonymous structs or unions but no
28810         directly named fields.
28811         * doc/extend.texi (Unnamed Fields): Update.
28812
28813 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28814
28815         * gimple.h (compare_field_offset): Rename into...
28816         (gimple_compare_field_offset): ...this.
28817         * gimple.c (compare_field_offset): Rename into...
28818         (gimple_compare_field_offset): ...this.  Compare the full access if
28819         the offset is self-referential.
28820         (gimple_types_compatible_p): Adjust for above renaming.
28821         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28822         DECL_NONADDRESSABLE_P flag of fields before merging them.
28823
28824 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28825
28826         * tree.h (ctor_to_list): Delete.
28827         * tree.c (ctor_to_list): Delete.
28828
28829 2010-05-15  Jan Hubicka  <jh@suse.cz>
28830
28831         * ipa-reference.c: Include toplev.h
28832         (is_proper_for_analysis): Only add to all_module_statics
28833         if it is allocated.
28834         (write_node_summary_p, stream_out_bitmap,
28835         ipa_reference_write_optimization_summary,
28836         ipa_reference_read_optimization_summary): New.
28837         (struct ipa_opt_pass_d pass_ipa_reference): Add
28838         optimization summary streaming.
28839         * lto-cgraph.c (referenced_from_this_partition_p,
28840         reachable_from_this_partition_p): New functions.
28841         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28842         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28843         * opts.c (decode_options): Enable ipa_reference.
28844         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28845         * lto-streamer.h (referenced_from_this_partition_p,
28846         reachable_from_this_partition_p): Declare.
28847
28848 2010-05-15  Richard Guenther  <rguenther@suse.de>
28849
28850         PR tree-optimization/44038
28851         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
28852         taking the address of a V_C_E of a constant.
28853
28854 2010-05-14  Jan Hubicka  <jh@suse.cz>
28855
28856         * tree.h (memory_identifier_string): Remove.
28857         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
28858         (ipa_reference_global_vars_info_d): Remove statics_not_read and
28859         statics_not_written.
28860         (ipa_reference_optimization_summary_d): New structure.
28861         (ipa_reference_optimization_summary_t): New type and vector.
28862         (ipa_reference_vars_info_d): Embedd structures instead of using
28863         pointers.
28864         (reference_vars_to_consider): Remove out of GGC space.
28865         (module_statics_escape): Remove.
28866         (global_info_obstack): Rename to ...
28867         (optimization_summary_obstack): ... this one.
28868         (initialization_status_t): Remove.
28869         (memory_identifier_string): Remove.
28870         (get_reference_vars_info): Fix indenting.
28871         (set_reference_vars_info): Likewise.
28872         (get_reference_optimization_summary): New.
28873         (set_reference_optimization_summary): New.
28874         (get_global_reference_vars_info): Remove.
28875         (ipa_reference_get_read_global): Remove.
28876         (ipa_reference_get_written_global): Remove.
28877         (ipa_reference_get_not_read_global): Update.
28878         (ipa_reference_get_not_written_global): Update.
28879         (is_proper_for_analysis): Outlaw addressable.
28880         (propagate_bits): Update for new datastructures.
28881         (analyze_variable): Remove.
28882         (init_function_info): Update for new datastructures.
28883         (clean_function_local_data): Remove.
28884         (clean_function): Remove.
28885         (copy_global_bitmap): Use optimizations_summary_obstack.
28886         (duplicate_node_data): Duplicate optimization summary only.
28887         (remove_node_data): Remove optimization summary only.
28888         (generate_summary): Do not analyze variables; do not compute
28889         module_statics_escape; do not prune solutions by it.
28890         (read_write_all_from_decl): Fix typos in comments.
28891         (propagate): Doscover readonly and nonaddressable first;
28892         update for new datastructures; share global bitmaps.
28893         * ipa-reference.h (ipa_reference_get_read_global,
28894         ipa_reference_get_written_global): Remove.
28895         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
28896         * Makefile.in: Remove ipa-refereference from GT files.
28897
28898 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28899
28900         PR debug/44112
28901         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
28902         for all SYMBOL_REF_DECLs.
28903
28904 2010-05-14  Jan Hubicka  <jh@suse.cz>
28905
28906         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
28907         (varpool_all_refs_explicit_p): New inline function.
28908         * ipa-reference.c: Update comment.
28909         (module_statics_written): Remove.
28910         (get_static_decl): Remove.
28911         (ipa_init): Do not initialize module_statics_written.
28912         (analyze_function): Likewise.
28913         (generate_summary): Likewise; do not compute module_statics_readonly
28914         and do not update variable flags.
28915         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
28916         * ipa.c: Inlucde flags.h
28917         (cgraph_local_node_p): New.
28918         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
28919         promote functions to local.
28920         (ipa_discover_readonly_nonaddressable_vars): New function.
28921         (function_and_variable_visibility): Use cgraph_local_node_p.
28922         * varpool.c (varpool_finalize_decl): Set force_output for
28923         DECL_PRESERVE_P vars.
28924
28925 2010-05-14  Jan Hubicka  <jh@suse.cz>
28926
28927         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
28928
28929 2010-05-14  Richard Guenther  <rguenther@suse.de>
28930
28931         PR tree-optimization/44119
28932         * tree-ssa-pre.c (eliminate): Properly mark replacement of
28933         a PHI node necessary.
28934
28935 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
28936
28937         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
28938
28939 2010-05-14  Jason Merrill  <jason@redhat.com>
28940
28941         PR c++/44127
28942         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
28943         (gimple_call_set_nothrow): New.
28944         * gimple.c (gimple_build_call_from_tree): Call it.
28945         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
28946
28947         PR c++/44127
28948         * gimplify.c (gimplify_seq_add_stmt): No longer static.
28949         * gimple.h: Declare it.
28950         * gimple.c (gimple_build_eh_filter): No ops.
28951
28952 2010-05-14  Jan Hubicka  <jh@suse.cz>
28953
28954         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
28955         nodes already in queue.
28956         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
28957         re-enqueueing node.
28958
28959 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28960
28961         PR debug/44136
28962         * cfgexpand.c (expand_debug_expr): If non-memory op0
28963         has BLKmode, return NULL.
28964
28965 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
28966
28967         * config.gcc: Add support for --with-cpu option for bdver1.
28968         * config/i386/i386.h (TARGET_BDVER1): New macro.
28969         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
28970         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
28971         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
28972         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
28973         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
28974         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
28975         (processor_type): Add PROCESSOR_BDVER1.
28976         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
28977         processor_type in config/i386/i386.h.
28978         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
28979         movaps <reg, reg> instead of movapd <reg, reg> when replacing
28980         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
28981         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
28982         to emit packed xor instead of packed double/packed integer
28983         xor for SSE and AVX when moving a zero value.
28984         * config/i386/sse.md: Add check for
28985         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
28986         movapd/movdqa for SSE and AVX.
28987         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
28988         single logical operations i.e and, or and xor instead of packed double
28989         logical operations for SSE and AVX.
28990         * config/i386/i386-c.c (ix86_target_macros_internal):
28991         Add PROCESSOR_BDVER1.
28992         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
28993         (has_fma4, has_xop): New.
28994         * config/i386/i386.c (bdver1_cost): New variable.
28995         (m_BDVER1): New macro.
28996         (m_AMD_MULTIPLE): Add m_BDVER1.
28997         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
28998         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
28999         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29000         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29001         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29002         x86_tune_sse_partial_reg_dependency,
29003         x86_tune_sse_unaligned_load_optimal,
29004         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29005         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29006         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29007         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29008         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29009         Enable/disable for bdver1.
29010         (processor_target_table): Add bdver1_cost.
29011         (cpu_names): Add bdver1.
29012         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29013          processor_alias_table.
29014         (ix86_expand_vector_move_misalign): Change.
29015         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29016         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29017         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29018         of movupd/movdqu for SSE and AVX.
29019         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29020         (ix86_tune_adjust_cost): Add code for bdver1.
29021         (standard_sse_constant_opcode): Add check for
29022         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29023         of packed double xor for SSE and AVX.
29024
29025 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29026
29027         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29028         result to unsigned.
29029
29030 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29031
29032         * toplev.c (default_debug_hooks): Remove this variable.
29033         (process_options): Remove assignments to default_debug_hooks.
29034
29035 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29036
29037         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29038         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29039         * langhooks.h (struct lang_hooks_for_decls): Removed field
29040         fold_obj_type_ref.
29041         * tree.c (free_lang_data): Remove assignment to
29042         lang_hooks.fold_obj_type_ref.
29043         * tree.def (OBJ_TYPE_REF): Update comment.
29044
29045 2010-05-14  Richard Guenther  <rguenther@suse.de>
29046
29047         PR tree-optimization/44124
29048         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29049
29050 2010-05-14  Alan Modra  <amodra@gmail.com>
29051
29052         PR target/44075
29053         * config/rs6000/rs6000.c (struct machine_function): Reorder
29054         fields for better packing.  Add lr_save_state.
29055         (rs6000_ra_ever_killed): Return lr_save_state if set.
29056         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29057
29058 2010-05-13  Jan Hubicka  <jh@suse.cz>
29059
29060         * varpool.c (decide_is_variable_needed): Drop code checking
29061         TREE_SYMBOL_REFERENCED.
29062
29063 2010-05-13  Jan Hubicka  <jh@suse.cz>
29064
29065         * final.c (output_addr_const): Do not call mark_decl_referenced.
29066         * cgraphunit.c (process_function_and_variable_attributes): Use
29067         mark_needed_node dirrectly.
29068         (assemble_thunk): Do not call mark_decl_referenced.
29069
29070 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29071
29072         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29073
29074 2010-05-13  Jeff Law  <law@redhat.com>
29075
29076         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29077         from...
29078         (print_conflicts): Call print_allocno_conflicts.
29079
29080 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29081
29082         PR debug/44104
29083         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29084         if it is NULL.
29085
29086 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29087
29088         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29089         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29090         * config/i386/t-mingw-w32: New.
29091         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29092
29093 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29094
29095         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29096         gimple-fold.c).
29097         * gimple-fold.c (get_base_binfo_for_type): New function.
29098         (gimple_get_relevant_ref_binfo): Likewise.
29099         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29100         (gimple_fold_obj_type_ref): Likewise.
29101         (fold_gimple_call): Simplify condition for folding virtual calls
29102         and call gimple_fold_obj_type_ref.
29103         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29104         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29105
29106 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29107
29108         * config/rs6000/rs6000-protos.h
29109         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29110         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29111         (rs6000_debug_mode_dependent_address)
29112         (rs6000_mode_dependent_address_ptr): Likewise.
29113
29114 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29115
29116         PR debug/43983
29117         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29118         by SRA.
29119         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29120         * tree-sra.c (create_access_replacement): Call unshare_expr before
29121         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29122         * dwarf2out.c: Include tree-flow.h.
29123         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29124         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29125         Handle DW_OP_bit_piece.
29126         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29127         construct_piece_list, adjust_piece_list): New functions.
29128         (add_var_loc_to_decl): Handle SRA optimized variables.
29129         Adjust for var_loc_note to loc field renaming.
29130         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29131         in VAR_LOCATION note.
29132         (new_loc_descr_op_bit_piece): New function.
29133         (dw_sra_loc_expr): New function.
29134         (dw_loc_list): Use it.  Don't handle the last range after the
29135         loop, handle it inside of the loop.  Adjust for var_loc_note
29136         to loc field renaming.
29137         (add_location_or_const_value_attribute): Only special case
29138         single entry loc lists if loc is NOTE_P.  Adjust for
29139         var_loc_note to loc field renaming.
29140         (dwarf2out_var_location): Don't set newloc->var_loc_note
29141         and newloc->next here.
29142
29143 2010-05-12  Jan Hubicka  <jh@suse.cz>
29144
29145         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29146         flag.
29147         * cgraph.h (cgraph_only_called_directly_p,
29148         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29149         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29150         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29151         (assemble
29152         * ipa.c (cgraph_remove_unreachable_nodes): Use
29153         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29154         flags.
29155         * tree-inline.c (copy_bb): Check address_taken flag.
29156         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29157         externally_visible flag.
29158
29159 2010-05-12  Jason Merrill  <jason@redhat.com>
29160
29161         PR bootstrap/44048
29162         PR target/44099
29163         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29164         * sdbout.c (plain_type_1): Likewise.
29165         * dwarf2out.c (is_base_type): Likewise.
29166         (gen_type_die_with_usage): Likewise.  Generate
29167         DW_TAG_unspecified_type for any LANG_TYPE.
29168
29169 2010-05-12  Jan Hubicka  <jh@suse.cz>
29170
29171         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29172         indrect edges too.
29173         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29174         (cgraph_clone_edge): Update.
29175         (cgraph_node_remove_callees): Remove indirect calls too.
29176         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29177         (cgraph_create_indirect_edge): Update prototype.
29178         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29179         is_proper_for_analysis.
29180         (add_new_function, visited_nodes, function_insertion_hook_holder,
29181         get_local_reference_vars_info, mark_address_taken, mark_address,
29182         mark_load, mark_store, check_asm_memory_clobber, check_call,
29183         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29184         (ipa_init): Do not initialize visited_nodes;
29185         function_insertion_hook_holder.
29186         (analyze_variable): Rewrite.
29187         (analyze_function): Rewrite.
29188         (copy_local_bitmap): Remove.
29189         (duplicate_node_dat): Do not duplicate local info.
29190         (generate_summary): Simplify to only walk cgraph.
29191         (write_node_summary_p, ipa_reference_write_summary,
29192         ipa_reference_read_summary): Remove.
29193         (propagate): Do not remove function insertion;
29194         generate summary.
29195         (pass_ipa_reference): NULLify summary handling fields.
29196         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29197         (input_edge): Input ecf_flags.
29198         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29199         (update_indirect_edges_after_inlining): Ignore edges with unknown
29200         param.
29201
29202 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
29203
29204         * implicit-zee.c: New file.
29205         * tree-pass.h (pass_implicit_zee): Declare.
29206         * passes.c (init_optimization_passes): Add zee pass.
29207         * common.opt (fzee): New flag.
29208         * timevar.def (TV_ZEE): Define.
29209         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
29210         and beyond.
29211         * Makefile.in (implicit-zee.o): Add new build file.
29212
29213 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29214             Nathan Froyd  <froydnj@codesourcery.com>
29215
29216         * c-common.c (sync_resolve_params): Remove write-only variable.
29217
29218 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
29219
29220         * target.h (struct gcc_target): Add mode_dependent_address_p field.
29221         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29222         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
29223         * targhooks.c (default_mode_dependent_address_p): New function.
29224         * targhooks.h (default_mode_dependent_address_p): Declare function.
29225         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29226         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
29227         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
29228         target hook. Change return type to bool.
29229         * recog.h (mode_dependent_address_p): Change return type to bool.
29230
29231 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29232             Nathan Froyd  <froydnj@codesourcery.com>
29233
29234         * tree-mudflap.c (build_function_type_0, build_function_type_1,
29235         build_function_type_2, build_function_type_3): Remove.
29236         (mudflap_init): Use build_function_type_list.
29237
29238 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29239             Nathan Froyd  <froydnj@codesourcery.com>
29240
29241         * coverage.c (build_fn_info_value): Call build_constructor instead of
29242         build_constructor_from_list.
29243         (build_ctr_info_value): Likewise.
29244         (build_gcov_info): Likewise.
29245
29246 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
29247
29248         * tree.c (build_constructor): Compute TREE_CONSTANT for the
29249         resultant constructor.
29250         (build_constructor_single): Don't set TREE_CONSTANT.
29251         (build_constructor_from_list): Don't compute TREE_CONSTANT.
29252
29253 2010-05-12  Jan Hubicka  <jh@suse.cz>
29254
29255         * cgraph.h (struct varpool_node): Add aux.
29256         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
29257         * varpool.c (varpool_remove_node): Do not remove initializer.
29258         (varpool_reset_queue): Export.
29259         (varpool_finalize_decl): Volatile vars are forced to be output.
29260         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
29261         replaced decl.
29262         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
29263         process_references, varpool_can_remove_if_no_refs): New functions.
29264         (cgraph_remove_unreachable_nodes): Handle variables too.
29265
29266 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
29267
29268         PR target/44088
29269         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
29270
29271 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
29272
29273         PR middle-end/44085
29274         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
29275         change value of ORT_TASK.
29276         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
29277         (omp_notice_threadprivate_variable): New function.
29278         (omp_notice_variable): Call it for threadprivate variables.
29279         If enclosing ctx is a task, print enclosing task rather than
29280         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
29281         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
29282         if task has untied clause.
29283
29284         PR debug/42278
29285         * dwarf2out.c (base_type_die): Don't add name attribute here.
29286         (modified_type_die): Instead of sizetype use
29287         its underlying original type.  If a DW_TAG_base_type doesn't
29288         have name added, add __unknown__.
29289         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
29290         always call force_type_die instead.
29291
29292 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
29293
29294         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
29295         for __stack_chk_guard.
29296
29297 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29298
29299         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
29300         don't call start_source_file debug hook here...
29301         (finish_options): ... but here, after outputting predefined and
29302         command line defines and undefs.
29303
29304         PR middle-end/44071
29305         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
29306         no fallthru edge.
29307         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
29308         optimizing away empty bb with no successors, move over its
29309         footer chain to fallthru predecessor.
29310         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
29311         (rtl_split_edge): For asm goto call patch_jump_insn even if
29312         splitting fallthru edge.
29313
29314         PR c++/44059
29315         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
29316         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
29317         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
29318         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
29319         on DW.ref.* decls.
29320
29321         PR c++/44062
29322         * c-parser.c (c_parser_expression): Mark LHS of a comma
29323         expression as read if it is a decl, handled component or
29324         COMPOUND_EXPR with that on the RHS.
29325         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
29326         if it is a decl or handled component.
29327
29328 2010-05-11  Jan Hubicka  <jh@suse.cz>
29329
29330         * lto-symtab.c (lto_symtab_free): New function.
29331         * lto-streamer.h (lto_symtab_free): Declare.
29332
29333 2010-05-11  Jan Hubicka  <jh@suse.cz>
29334
29335         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
29336         that if function is needed it is reachable.
29337         (lto_output_node): See if it the function is reachable or referenced.
29338         (output_cgraph): Update call of lto_output_node.
29339         * lto-streamer.h (reachable_from_other_partition_p): Declare.
29340
29341 2010-05-11  Jan Hubicka  <jh@suse.cz>
29342
29343         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
29344         Mark as used.
29345
29346 2010-05-11  Jan Hubicka  <jh@suse.cz>
29347
29348         PR tree-optimize/44063
29349         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
29350         queue.
29351         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
29352         limits.
29353         (estimate_function_body_sizes): Compute sizes even when disregarding.
29354
29355 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
29356
29357         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
29358
29359 2010-05-11  Jan Hubicka  <jh@suse.cz>
29360
29361         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
29362         into every boundary.
29363
29364 2010-05-11  Jan Hubicka  <jh@suse.cz>
29365
29366         * matrix-reorg.c (matrix_reorg): Rebuild edges.
29367
29368 2010-05-11  Jan Hubicka  <jh@suse.cz>
29369
29370         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29371         lto_streamer_cache_delete): Put nodes into heap.
29372         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29373         heap.
29374
29375 2010-05-11  Jan Hubicka  <jh@suse.cz>
29376
29377         * cgraphbuild.c (cgraph_rebuild_references): New.
29378         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29379         out extern inlines.
29380         * cgraph.h (cgraph_rebuild_references): Declare.
29381         * tree-inline.c (tree_function_versioning): Use it.
29382         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29383
29384 2010-05-11  Jan Hubicka  <jh@suse.cz>
29385
29386         * cgraph.c: Include ipa-utils.h
29387         (cgraph_create_virtual_clone): Update references.
29388         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29389
29390 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29391
29392         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29393         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29394         cache size.
29395
29396 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29397
29398         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29399
29400 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29401
29402         * gcc.c (execute): For -### don't quote arguments that
29403         contain just alphanumerics and _/-. characters.
29404         * doc/invoke.texi: Document that change for -###.
29405
29406         PR debug/44023
29407         * df-problems.c (struct dead_debug): Add to_rescan field.
29408         (dead_debug_init): Clear to_rescan field.
29409         (dead_debug_finish): Rescan all debug insns in to_rescan
29410         bitmap and free the bitmap.
29411         (dead_debug_insert_before): Instead of rescanning debug insns
29412         immediately queue their rescanning until dead_debug_finish.
29413         (df_note_bb_compute): After dead_debug_add do continue instead
29414         of break.
29415
29416 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29417
29418         PR debug/44028
29419         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29420         clear also INSN_REG_USE_LIST.
29421
29422 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29423
29424         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29425
29426 2010-05-10  Jan Hubicka  <jh@suse.cz>
29427
29428         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29429         commited change.
29430
29431 2010-05-10  Jan Hubicka  <jh@suse.cz>
29432
29433         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29434         Allocate encoders.
29435         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29436         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29437         (lto_streamer_cache_create): Init alloc pool.
29438         (lto_streamer_cache_delete): Free alloc pool.
29439         * lto-streamer.h: Include alloc pool.
29440         (lto_streamer_cache_d): Use alloc pool.
29441         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29442
29443 2010-05-10  Jan Hubicka  <jh@suse.cz>
29444
29445         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29446         * cgraphbuild.c: Include except.h
29447         (record_type_list, record_eh_tables): New function.
29448         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29449
29450 2010-05-10  Jan Hubicka  <jh@suse.cz>
29451
29452         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29453         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29454         rather than unused.
29455
29456 2010-05-10  Michael Matz  <matz@suse.de>
29457
29458         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29459         (can_reassociate_p): Use FLOAT_TYPE_P.
29460         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29461         (vect_force_simple_reduction): ... this.
29462         * tree-parloops.c (gather_scalar_reductions): Use
29463         vect_force_simple_reduction.
29464         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29465         vect_is_simple_reduction, add modify argument, if true rewrite
29466         "a-b" into "a+(-b)".
29467         (vect_is_simple_reduction, vect_force_simple_reduction): New
29468         functions.
29469         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29470
29471 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29472             Vladimir Makarov  <vmakarov@redhat.com>
29473
29474         PR rtl-optimization/44012
29475         * ira-build.c (remove_unnecessary_allocnos): Nullify
29476         regno_allocno_map of the removed allocno.
29477
29478 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29479
29480         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29481         to /dev/null.
29482         * configure: Regenerate.
29483
29484 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29485
29486         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29487         unused.
29488         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29489         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29490         support in Sun ld.
29491         * configure: Regenerate.
29492
29493 2010-05-10  Richard Guenther  <rguenther@suse.de>
29494
29495         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29496         marked if the entry identifier is marked.
29497
29498 2010-05-10  Richard Guenther  <rguenther@suse.de>
29499
29500         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29501         (handle_fnspec_attribute): New function.
29502         * gimple.h (gimple_call_return_flags): Declare.
29503         (gimple_call_arg_flags): Likewise.
29504         * gimple.c (gimple_call_arg_flags): New function.
29505         (gimple_call_return_flags): Likewise.
29506         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29507         New argument flags.
29508         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29509         return value flags.
29510         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29511         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29512         main work to ...
29513         (make_heapvar_for): ... this new function.
29514         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29515         (handle_lhs_call): Likewise.
29516         (find_func_aliases): Adjust.
29517
29518 2010-05-10  Richard Guenther  <rguenther@suse.de>
29519
29520         PR tree-optimization/44050
29521         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29522
29523 2010-05-10  Wei Guozhi  <carrot@google.com>
29524
29525         PR target/42879
29526         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29527
29528 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29529
29530         PR c/10676
29531         * c-typeck.c (lookup_field): Take a type directly.  Update
29532         recursive calls.
29533         (build_component_ref): Update call to lookup_field.
29534         (set_init_label): Use lookup_field to find initialized field.
29535         Handle returned list of fields like a sequence of designators.
29536
29537 2010-05-09  Richard Guenther  <rguenther@suse.de>
29538
29539         PR middle-end/44024
29540         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29541         handle &FUNCTION_DECL.
29542
29543 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29544
29545         PR c/4784
29546         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29547         structures and unions recursively.
29548         (detect_field_duplicates): Move duplicate detection with a hash to
29549         detect_field_duplicates_hash.  Always use a hash if anonymous
29550         structures or unions are present.
29551         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29552         give errors.
29553
29554 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29555
29556         PR target/44046
29557         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29558         detect Atom, Core 2 and Core i7.
29559
29560 2010-05-09  Richard Guenther  <rguenther@suse.de>
29561
29562         * gcc.c (store_arg): Handle temporary file deletion for
29563         joined arguments.
29564
29565 2010-05-09  Richard Guenther  <rguenther@suse.de>
29566
29567         PR middle-end/44043
29568         * ipa-inline.c (estimate_function_body_sizes): Return after
29569         disregarding inline limits.
29570
29571 2010-05-09  Richard Guenther  <rguenther@suse.de>
29572
29573         * gcc.c (store_arg): Revert last change.
29574
29575 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29576
29577         PR middle-end/28685
29578         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29579         (optimize_ops_list): Call it.
29580
29581 2010-05-08  Richard Guenther  <rguenther@suse.de>
29582
29583         PR tree-optimization/44030
29584         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29585         NECESSARY flag if we propagate from a inserted expression.
29586
29587 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29588
29589         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29590         domain types as equal if they are both PLACEHOLDER_EXPRs.
29591
29592 2010-05-08  Richard Guenther  <rguenther@suse.de>
29593
29594         * lto-wrapper.c (run_gcc): Remove linker output from
29595         command line for LTRANS invocation.
29596
29597 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29598
29599         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29600         lto-macho as lto_binary_reader.
29601         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29602         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29603         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29604         in lto_start and lto_end calls.
29605         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29606         magic numbers.
29607         (scan_prog_file): Update is_elf_or_coff call.
29608         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29609
29610         * collect2.c (main): Fix enum comparison.
29611
29612         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29613         Add prototypes.
29614         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29615         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29616         and TARGET_ASM_LTO_END.
29617         * darwin.c: Include obstack.h and lto-streamer.h.
29618         (lto_section_names_offset, lto_section_names_obstack,
29619         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29620         global variables.
29621         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29622         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29623         to a temporary file.
29624         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29625         (darwin_asm_named_section): For LTO sections, replace the name with
29626         the offset of the section name in a string table, and build this
29627         table.
29628         (darwin_file_start): Initialize global vars for LTO support.
29629         (darwin_file_end): If output to asm_out_file was redirected, append it
29630         to the proper asm_out_file here.  Add the section names section.
29631
29632 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29633
29634         * c-pragma.c (pending_weak_d, pending_weak): New.
29635         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29636         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29637         handle_pragma_weak): Update the uses of pending_weaks.
29638
29639 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29640
29641         PR documentation/44016
29642         * doc/standards.texi (Standards): Link to unversioned
29643         cxx0x_status.html page.
29644
29645 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29646
29647         PR target/43708
29648         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29649         in addition to TREE_USED, to avoid "set but unused" warnings.
29650
29651 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29652
29653         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29654         (is_loop_prefetching_profitable): Do not insert prefetches
29655         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29656         times the prefetch ahead distance.
29657
29658 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29659
29660         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29661         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29662         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29663         the unroll_factor.
29664
29665 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29666
29667         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29668         a diagnostic info when the insn-to-mem ratio is too small.
29669
29670 2010-05-07  Richard Guenther  <rguenther@suse.de>
29671
29672         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29673         the linker plugin.
29674         (store_arg): Queue temp_filename for deletion instead of
29675         the whole argument.
29676
29677 2010-05-07  Richard Guenther  <rguenther@suse.de>
29678
29679         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29680         (run_gcc): Handle LTRANS phase invocation.
29681         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29682
29683 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29684
29685         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29686         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29687
29688 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29689
29690         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29691
29692 2010-05-07  Richard Guenther  <rguenther@suse.de>
29693
29694         PR tree-optimization/44020
29695         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29696         code when PRE is not yet initialized.
29697
29698 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29699
29700         * config/mips/dbxmdebug.h: Remove.
29701         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29702
29703 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29704
29705         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29706         with null pointer and also warn about ordered comparison of zero with
29707         pointer if -Wextra.
29708
29709 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29710
29711         * graphite-blocking.c
29712         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29713         * graphite-clast-to-gimple.c
29714         (clast_to_gcc_expression): Same.
29715         (precision_for_value): Same.
29716         (precision_for_interval): Same.
29717         (gcc_type_for_interval): Same.
29718         (graphite_create_new_guard): Same.
29719         (compute_bounds_for_level): Same.
29720         (graphite_create_new_loop_guard): Same.
29721         * graphite-interchange.c
29722         (build_linearized_memory_access): Same.
29723         (pdr_stride_in_loop): Same.
29724         (memory_strides_in_loop_1): Same.
29725         (memory_strides_in_loop): Same.
29726         (extend_scattering): Same.
29727         (psct_scattering_dim_for_loop_depth): Same.
29728         (pbb_number_of_iterations): Same.
29729         * graphite-poly.h
29730         (debug_iteration_domains): Same.
29731         * graphite-ppl.c
29732         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29733         (ppl_set_inhomogeneous_gmp): Same.
29734         (ppl_strip_loop): Same.
29735         (ppl_lexico_compare_linear_expressions): Same.
29736         (ppl_read_polyhedron_matrix): Same.
29737         (ppl_max_for_le_pointset): Same.
29738         * graphite-ppl.h
29739         (ppl_read_polyhedron_matrix): Same.
29740         (tree_int_to_gmp): Same.
29741         (gmp_cst_to_tree): Same.
29742         (ppl_set_inhomogeneous): Same.
29743         (ppl_set_inhomogeneous_tree): Same.
29744         (ppl_set_coef): Same.
29745         (ppl_set_coef_tree): Same.
29746         * graphite-sese-to-poly.c
29747         (build_pbb_scattering_polyhedrons): Same.
29748         (build_scop_scattering): Same.
29749         (scan_tree_for_params_right_scev): Same.
29750         (scan_tree_for_params): Same.
29751         (find_params_in_bb): Same.
29752         (find_scop_parameters): Same.
29753         (add_upper_bounds_from_estimated_nit): Same.
29754         (build_loop_iteration_domains): Same.
29755         (add_condition_to_domain): Same.
29756         (pdr_add_memory_accesses): Same.
29757
29758 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29759
29760         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29761         CLooG's value_* macros to their respective mpz_* counterparts.
29762         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29763         (graphite_create_new_loop_guard): Same.
29764         * graphite-interchange.c (build_linearized_memory_access): Same.
29765         (pdr_stride_in_loop): Same.
29766         (memory_strides_in_loop_1): Same.
29767         (1st_interchange_profitable_p): Same.
29768         * graphite-poly.c (extend_scattering): Same.
29769         (psct_scattering_dim_for_loop_depth): Same.
29770         (pbb_number_of_iterations): Same.
29771         (pbb_number_of_iterations_at_time): Same.
29772         * graphite-poly.h (new_1st_loop): Same.
29773         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29774         (oppose_constraint): Same.
29775         (insert_constraint_into_matrix): Same.
29776         (ppl_set_inhomogeneous_gmp): Same.
29777         (ppl_set_coef_gmp): Same.
29778         (ppl_strip_loop): Same.
29779         (ppl_lexico_compare_linear_expressions): Same.
29780         (ppl_max_for_le_pointset): Same.
29781         (ppl_min_for_le_pointset): Same.
29782         (ppl_build_realtion): Same.
29783         * graphite-ppl.h (gmp_cst_to_tree): Same.
29784         (ppl_set_inhomogeneous): Same.
29785         (ppl_set_inhomogeneous_tree): Same.
29786         (ppl_set_coef): Same.
29787         (ppl_set_coef_tree): Same.
29788         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29789         (build_scop_scattering): Same.
29790         (add_value_to_dim): Same.
29791         (scan_tree_for_params_right_scev): Same.
29792         (scan_tree_for_params_int): Same.
29793         (scan_tree_for_params): Same.
29794         (find_params_in_bb): Same.
29795         (find_scop_parameters): Same.
29796         (add_upper_bounds_from_estimated_nit): Same.
29797         (build_loop_iteration_domains): Same.
29798         (create_linear_expr_from_tree): Same.
29799         (add_condition_to_domain): Same.
29800         (pdr_add_memory_accesses): Same.
29801
29802 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29803             Jason Merrill  <jason@redhat.com>
29804
29805         * c-common.c (c_common_reswords): Add nullptr.
29806         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29807         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29808         (gen_type_die_with_usage): Likewise.
29809         * dbxout.c (dbxout_type): Likewise.
29810         * sdbout.c (plain_type_1): Likewise.
29811
29812 2010-05-06  Jason Merrill  <jason@redhat.com>
29813
29814         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29815         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29816         ret appropriately.
29817         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29818
29819         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29820         stripping WITH_SIZE_EXPR.
29821         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29822         change.
29823
29824 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29825
29826         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29827         list of obsolete configurations.
29828         Disabled check for obsolete configurations.
29829         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29830         Removed support for previous versions.
29831         * config/mips/iris.h: Removed.
29832         * config/mips/iris5.h: Removed.
29833         * config/mips/iris6.h: Merged old iris.h contents.
29834         (TARGET_IRIX): Removed.
29835         (DRIVER_SELF_SPECS): Removed mabi=32.
29836         (IDENT_ASM_OP): Removed undef.
29837         (STARTFILE_SPEC): Removed mabi=32.
29838         (ENDFILE_SPEC): Likewise.
29839         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29840         (MACHINE_TYPE): Update for IRIX 6.5.
29841         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29842         TARGET_IRIX by TARGET_IRIX6.
29843         (mips_file_start): Likewise.
29844         (mips_output_external): Remove IRIX 5/6 O32 support.
29845         (mips_output_function_prologue): Likewise.
29846         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29847         TARGET_IRIX6.
29848         (TARGET_CPU_CPP_BUILTINS): Likewise.
29849         (TARGET_IRIX): Removed.
29850         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
29851         (MULTILIB_DIRNAMES): Removed 32.
29852         (MULTILIB_OSDIRNAMES): Removed ../lib.
29853         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
29854         (Specific, mips-sgi-irix5): Document removal.
29855         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
29856         Remove references to older IRIX 6 releases and the O32 ABI.
29857
29858 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
29859
29860         PR bootstrap/43994
29861         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
29862         instead of DF_REF_REAL_REG.
29863
29864 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
29865
29866         PR target/43888
29867         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
29868         handling to still return true for x64 targets.
29869
29870 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29871
29872         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
29873
29874 2010-05-06  Jan Hubicka  <jh@suse.cz>
29875
29876         PR tree-optimization/43791
29877         * ipa-inline.c (update_caller_keys): Remove bogus
29878         disregard_inline_limits check.
29879
29880 2010-05-06  Michael Matz  <matz@suse.de>
29881
29882         PR tree-optimization/43984
29883         * tree-ssa-pre.c (inserted_phi_names): Remove.
29884         (inserted_exprs): Change to bitmap.
29885         (create_expression_by_pieces): Set bits, don't append to vector.
29886         (insert_into_preds_of_block): Don't handle inserted_phi_names.
29887         (eliminate): Don't look at inserted_phi_names, remove deleted
29888         insns from inserted_exprs.
29889         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
29890         (init_pre, fini_pre): Allocate and free bitmaps.
29891         (execute_pre): Insert insns on edges before elimination.
29892
29893 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29894
29895         * tree.c (initializer_zerop): Handle STRING_CST.
29896
29897 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29898
29899         PR 40989
29900         * doc/invoke.texi (Wimplicit): Document as C only.
29901         * opts.c (common_handle_option): Add argument kind.
29902         (handle_option): Rename as read_cmdline_option. Factor out code to...
29903         (handle_option): ... here. New.
29904         (handle_options): Rename as read_cmdline_options.
29905         (decode_options): Update call.
29906         (set_option): Use option index instead of option pointer. Classify
29907         diagnostics correctly.
29908         (enable_warning_as_error): Call handle_option.
29909         * opts.h (set_option): Update declaration.
29910         (handle_option): Declare.
29911         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
29912         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
29913         * c-opts.c (set_Wimplicit): Delete.
29914         (c_family_lang_mask): New static constant.
29915         (c_common_handle_option): Add argument kind. Use handle_option
29916         instead of set_Wimplicit.
29917         (c_common_post_options): warn_implicit and warn_implicit_int
29918         are disabled by default.
29919         * c-common.c (warn_implicit): Do not define here.
29920         * c-common.h (warn_implicit): Do not declare here.
29921         (c_common_handle_option): Update declaration.
29922         * lto-opts.c (lto_reissue_options): Update call to set_option.
29923
29924 2010-05-06  Richard Guenther  <rguenther@suse.de>
29925
29926         PR tree-optimization/43571
29927         * domwalk.c (walk_dominator_tree): Walk the dominator
29928         sons in more optimal order.
29929
29930 2010-05-06  Richard Guenther  <rguenther@suse.de>
29931
29932         PR tree-optimization/43934
29933         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
29934         (stmt_cost): Likewise.
29935         (extract_true_false_args_from_phi): New helper.
29936         (determine_max_movement): For PHI nodes verify we can hoist them
29937         and compute their cost.
29938         (determine_invariantness_stmt): Handle PHI nodes.
29939         (move_computations_stmt): Likewise.  Hoist PHI nodes in
29940         if-converted form using COND_EXPRs.
29941         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
29942         (tree_ssa_lim): Likewise.
29943         * tree-flow.h (tree_ssa_lim): Adjust prototype.
29944         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
29945
29946 2010-05-06  Richard Guenther  <rguenther@suse.de>
29947
29948         PR tree-optimization/43987
29949         * tree-ssa-structalias.c (could_have_pointers): For possibly
29950         address-taken variables force pointers to be recorded.
29951         (create_variable_info_for_1): Likewise.
29952         (push_fields_onto_fieldstack): Pass in wheter all fields
29953         must have pointers.
29954         (find_func_aliases): Query types instead of vars whether
29955         they contain pointers where appropriate.
29956
29957 2010-05-06  Jan Hubicka  <jh@suse.cz>
29958
29959         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
29960         (record_reference, mark_address, mark_load, mark_store): Record
29961         references.
29962         (record_references_in_initializer): Update call of record_references.
29963         (rebuild_cgraph_edges): Remove all references before rebuiding.
29964         * cgraph.c (cgraph_create_node): Clear ref list.
29965         (cgraph_remove_node): Remove references.
29966         (dump_cgraph_node): Dump references.
29967         (cgraph_clone_node): Clone references.
29968         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
29969         (struct cgraph_node, varpool_node): Add ref_lst.
29970         * ipa-ref.c: New file.
29971         * ipa-ref.h: New file.
29972         * ipa-ref-inline.h: New file.
29973         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
29974         (referenced_from_other_partition_p): New function.
29975         (lto_output_varpool_node): Take set arugment; call
29976         referenced_from_other_partition.
29977         (lto_output_ref): New.
29978         (add_references): New.
29979         (output_refs): New.
29980         (output_cgraph): Compute boundary based on references; output refs.
29981         (output_varpool): Accept cgraph_node_set argument.
29982         (input_ref): New.
29983         (input_refs): New.
29984         (input_cgraph): Call input_refs.
29985         * lto-section-in.c (lto_section_name): Add refs.
29986         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
29987         (ipa-ref.o): New file.
29988         * varpool.c (varpool_node): Clear ipa ref list.
29989         (varpool_remove_node): Remove references.
29990         (dump_varpool_node): Dump references.
29991         (varpool_assemble_decl): Only compile finalized ones.
29992         (varpool_extra_name_alias): Initialize ref list.
29993         * lto-streamer.c (lto-get_section_name): Add .refs section.
29994         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
29995         (referenced_from_other_partition_p): Declared.
29996
29997 2010-05-06  Ira Rosen  <irar@il.ibm.com>
29998
29999         PR tree-optimization/43901
30000         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30001         type is not NULL if it's transformation phase, and return
30002         FALSE if it's analysis.
30003         (vectorizable_conversion, vectorizable_operation,
30004         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30005
30006 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30007
30008         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30009         Delete.
30010         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30011         New define.
30012         * config/mips/mips-protos.h
30013         (mips_small_register_classes_for_mode_p): Delete prototype.
30014
30015 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30016
30017         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30018         * config/arm/arm.c (multiple_operation_profitable_p,
30019         compute_offset_order): New static functions.
30020         (load_multiple_sequence, store_multiple_sequence): Use them.
30021         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30022         memory offsets, not register numbers.
30023         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30024
30025 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30026
30027         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30028         (get_pending_sizes, put_pending_size, put_pending_sizes):
30029         Update the uses of pending_sizes.
30030         * c-decl.c (store_parm_decls): Likewise.
30031         * c-tree.h (struct c_arg_info): Likewise.
30032         * tree.h: Update the prototype for get_pending_sizes and
30033         put_pending_sizes.
30034
30035 2010-05-05  Jason Merrill  <jason@redhat.com>
30036
30037         PR debug/43370
30038         * c-common.c (handle_aligned_attribute): Respect
30039         ATTR_FLAG_TYPE_IN_PLACE.
30040
30041         PR testsuite/43758
30042         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30043         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30044         (TARGET_INITIALIZER): Use it.
30045         * c-common.c (attribute_takes_identifier_p): Call it.
30046         * c-common.h: Update prototype.
30047         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30048         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30049
30050 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30051
30052         PR debug/43950
30053         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30054         DW_ID_down_case for Fortran compilation units.
30055
30056 2010-05-05  Jan Hubicka  <jh@suse.cz>
30057
30058         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30059         handle aliases.
30060
30061 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30062
30063         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30064         a variable-sized RESULT_DECL.
30065
30066 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30067
30068         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30069
30070 2010-05-05  Jason Merrill  <jason@redhat.com>
30071
30072         PR c++/43787
30073         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30074         returns GS_OK.
30075         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30076
30077 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30078             Jakub Jelinek  <jakub@redhat.com>
30079
30080         PR debug/43478
30081         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30082         (dead_debug_init, dead_debug_finish): New functions.
30083         (dead_debug_add, dead_debug_insert_before): Likewise.
30084         (df_note_bb_compute): Initialize a dead_debug object, add dead
30085         debug uses to it, insert debug bind insns before death insns,
30086         reset debug insns that refer to pending uses at the end.
30087         * rtl.h (make_debug_expr_from_rtl): New prototype.
30088         * varasm.c (make_debug_expr_from_rtl): New function.
30089
30090 2010-05-05  Jan Hubicka  <jh@suse.cz>
30091
30092         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30093         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30094         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30095         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30096         lto_varpool_encoder_encode_initializer_p,
30097         lto_set_varpool_encoder_encode_initializer): New functions.
30098         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30099         call output_varpool.
30100         (input_varpool_node): Do not always set analyzed.
30101         (input_cgraph_1): Return vector of cgraph nodes.
30102         (input_varpool_1): Return vector of varpools.
30103         (input_cgraph): Free the vectors.
30104         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30105         output only initializers needed.
30106         (lto_output): Only call output_cgraph.
30107         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30108         * lto-section-out.c (lto_new_out_decl_state): Initialize
30109         state->varpool_node_encoder.
30110         * lto-streamer.h (lto_varpool_encoder_d): New.
30111         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30112         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30113         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30114         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30115         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30116         Declare.
30117         (output_varpool, input_varpool): Remove declarations.
30118
30119 2010-05-05  Jan Hubicka  <jh@suse.cz>
30120
30121         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30122         with body can prevail.
30123
30124 2010-05-05  Jan Hubicka  <jh@suse.cz>
30125
30126         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30127         size.
30128
30129 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30130
30131         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30132
30133         * gengtype.h (erro_at_line): Constify pos argument.
30134
30135         * gengtype.c: Include hashtab.h.
30136         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30137         (error_at_line): Constify pos argument.
30138         (do_typedef): Initialize p->opt field.
30139         (get_file_gtfilename): Fix comment typo.
30140         (struct walk_type_data): Constify line field.
30141         (get_output_file_for_structure): New function.
30142         (write_local_func_for_structure): Constify orig_s argument.
30143         Use get_output_file_for_structure.
30144         (write_func_for_structure): Use get_output_file_for_structure.
30145         (INDENT): New define.
30146         (dump_pair, dump_type, dump_type_list, dump_typekind)
30147         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30148         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30149         functions.
30150         (seen_types): New variable.
30151         (main): New variable do_dump.  Process "-d" command line option.
30152         Call dump_everything if dump requested.
30153
30154 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30155
30156         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30157         in a temporary instead of invoking the macro multiple times.
30158         (track_expr_p): Likewise.
30159
30160 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30161
30162         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30163         per new semantics.
30164         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30165         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30166         conditions for printing notes.
30167         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30168         true, update documentation.
30169         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30170
30171 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30172
30173         PR c/43981
30174         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30175         on dimen.
30176
30177 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30178
30179         PR target/43799
30180         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30181         (*sse_prologue_save_insn1): Likewise.
30182         (SSE prologue save splitter): Likewise.
30183
30184 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30185
30186         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30187         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30188         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30189         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30190         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30191         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30192         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30193
30194 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30195
30196         * tree-sra.c (build_access_from_expr_1): The first parameter type
30197         changed to simple tree.
30198         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30199         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30200         renamed as well.
30201         (build_accesses_from_assign): Removed all parameters except for a
30202         simple gimple statement.  Now returns a simple bool.
30203         (scan_function): All non-analysis parts moved to separate functions
30204         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
30205         parameters and updated both callers.
30206         (sra_modify_expr): Removed parameter data.
30207         (sra_modify_function_body): New function.
30208         (perform_intra_sra): Call sra_modify_function_body to modify the
30209         function body.
30210         (replace_removed_params_ssa_names): Parameter data changed into
30211         adjustments vector.
30212         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
30213         changed the parameter dont_convert to convert with the opposite
30214         meaning.
30215         (sra_ipa_modify_assign): Parameter data changed into adjustments
30216         vector, return value changed to bool.
30217         (ipa_sra_modify_function_body): New function.
30218         (sra_ipa_reset_debug_stmts): Updated a comment.
30219         (modify_function): Use ipa_sra_modify_function_body to modify function
30220         body.
30221
30222 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30223
30224         PR middle-end/43671
30225         * alias.c (true_dependence): Handle the same VALUE in x and mem.
30226         (canon_true_dependence): Likewise.
30227         (write_dependence_p): Likewise.
30228
30229 2010-05-04  Jan Hubicka  <jh@suse.cz>
30230
30231         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
30232         * cgraphbuild.c: Include ipa-utils.h
30233         (record_reference_ctx): New struct.
30234         (record_reference): Simplify to work on initializers; not statements.
30235         (mark_address, mark_load, mark_store): New.
30236         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30237         walk PHI nodes too.
30238         (record_references_in_initializer): Update use of record_reference.
30239         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30240         walk PHI nodes too.
30241
30242 2010-05-04  Jan Hubicka  <jh@suse.cz>
30243
30244         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
30245         node will be removed anyway.
30246         (lto_varpool_replace_node): Allow also unanalyzed nodes;
30247         relink aliases of node into prevailing node.
30248         * varpool.c (varpool_remove_node): Remove aliases properly;
30249         when removing node, remove all its aliases too; remove DECL_INITIAL
30250         of removed node; ggc_free the varpool node.
30251
30252 2010-05-04  Richard Guenther  <rguenther@suse.de>
30253
30254         PR tree-optimization/43879
30255         * tree-ssa-structalias.c (alias_get_name): Use
30256         DECL_ASSEMBLER_NAME if available.
30257         (create_function_info_for): Return the varinfo node.
30258         (ipa_pta_execute): Associate same-body aliases and extra names
30259         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
30260
30261 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30262
30263         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
30264
30265 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
30266
30267         PR bootstrap/43964
30268         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
30269         only if HONOR_REG_ALLOC_ORDER is not defined.
30270
30271 2010-05-04  Richard Guenther  <rguenther@suse.de>
30272
30273         PR tree-optimization/43949
30274         * tree-vrp.c (extract_range_from_binary_expr): Only handle
30275         TRUNC_MOD_EXPR.
30276
30277 2010-04-26  Jason Merrill  <jason@redhat.com>
30278
30279         * c.opt (-fstrict-enums): New.
30280         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
30281
30282 2010-05-03  David Ung  <davidu@mips.com>
30283             James E. Wilson  <wilson@codesourcery.com>
30284
30285         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
30286         emit the trap instruction before the divide for TUNE_74K.
30287
30288 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
30289
30290         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
30291         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
30292         based on the above, for new target hook.
30293
30294         * hooks.c (hook_bool_mode_true): New generic hook.
30295         * hooks.h (hook_bool_mode_true): Add prototype.
30296
30297         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
30298         target hook.
30299         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
30300         target hook, set to hook_bool_mode_false.
30301         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
30302         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
30303         with targetm.small_register_classes_for_mode_p.
30304         (find_reusable_reload): Likewise.
30305         (combine_reloads): Likewise.
30306         * reload1.c (reload_as_needed): Likewise.
30307         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
30308         * ifcvt.c (noce_process_if_block, check_cond_move_block,
30309         dead_or_predicable): Likewise.
30310         * regmove.c (optimize_reg_copy_1): Likewise.
30311         * calls.c (prepare_call_address): Likewise.
30312         (precompute_register_parameters): Likewise.
30313
30314         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
30315         hook definition.
30316         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30317         implementation of the hook that considers all register classes
30318         small except for SH64.
30319         (sh_override_options): Use the new hook.
30320         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
30321         Add prototype.
30322
30323         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
30324         hook definition.
30325         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
30326         implementation of the hook that considers all register classes
30327         small for THUMB1.
30328         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
30329         Add prototype.
30330
30331         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
30332         hook definition.
30333         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
30334         implementation of the hook that considers all register classes
30335         small for MIPS16.
30336         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
30337         Add prototype.
30338
30339         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
30340         hook definition.
30341         * config/m32c/m32c.h: Likewise.
30342         * config/pdp11/pdp11.h: Likewise.
30343         * config/avr/avr.h: Likewise.
30344         * config/xtensa/xtensa.h: Likewise.
30345         * config/m68hc11/m68hc11.h: Likewise.
30346         * config/mn10300/mn10300.h: Likewise.
30347         * config/mcore/mcore.h: Likewise.
30348         * config/h8300/h8300.h: Likewise.
30349         * config/bfin/bfin.h: Likewise.
30350
30351         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
30352         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
30353
30354 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
30355
30356         * double-int.h (tree_to_double_int): Remove macro.
30357         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
30358         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30359         (tree_to_double_int): New function.
30360         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
30361         Move ...
30362         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30363
30364 2010-05-03  Richard Guenther  <rguenther@suse.de>
30365
30366         PR tree-optimization/43971
30367         * tree-ssa-structalias.c (get_constraint_for_1): Fix
30368         constraints in the !flag_delete_null_pointer_checks case.
30369
30370 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30371
30372         PR debug/43972
30373         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30374         result mode matches original rtl mode.
30375
30376 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30377
30378         PR target/43888
30379         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30380
30381 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30382
30383         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30384         when processing flag options.
30385
30386 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30387
30388         * gcov-iov.c (main): Change format string placeholder
30389         from %#08x to 0x%08x.
30390         * genchecksum.c (dosum): Change format string placeholder
30391         from %#02x to 0x%02x.
30392
30393 2010-05-02  Richard Guenther  <rguenther@suse.de>
30394
30395         PR tree-optimization/43879
30396         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30397
30398 2010-05-02  Bruno Haible  <bruno@clisp.org>
30399
30400         * doc/extend.texi (Function Attributes): Fix a typo.
30401
30402 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30403
30404         Revert:
30405         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30406         placeholder from 0x%x to %#x.
30407         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30408         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30409         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30410         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30411         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30412         * config/i386/i386.c (ix86_target_string): Ditto.
30413         * config/i386/i386.c (output_pic_addr_const): Ditto.
30414         (print_operand): Ditto.
30415
30416 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30417
30418         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30419         placeholder from 0x%x to %#x.
30420         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30421         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30422         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30423         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30424         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30425         * optc-gen.awk: Ditto.
30426         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30427         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30428         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30429         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30430
30431 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30432
30433         * target.h (struct calls): Add function_value_regno_p field.
30434         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30435         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30436         * targhooks.c (default_function_value_regno_p): New function.
30437         * targhooks.h (default_function_value_regno_p): Declare function.
30438         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30439         * builtins.c. (apply_result_size): (Ditto.).
30440         * combine.c. (likely_spilled_retval_p): (Ditto.).
30441         * mode-switching.c. Include 'target.h'.
30442         (create_pre_exit): Use function_value_regno_p hook.
30443         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30444         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30445         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30446
30447         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30448         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30449         (ix86_function_value_regno_p): Declare as static, change argument
30450         type to const unsigned int.
30451         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30452
30453 2010-05-01  Richard Guenther  <rguenther@suse.de>
30454
30455         PR tree-optimization/43949
30456         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30457         types.
30458         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30459
30460 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30461
30462         * rtl.h (CONST_DOUBLE_P): Define.
30463         (rtx_to_double_int): Declare.
30464         * emit-rtl.c (rtx_to_double_int): New function.
30465         * dwarf2out.c (insert_double): New function.
30466         (loc_descriptor, add_const_value_attribute): Clean up, use
30467         rtx_to_double_int and insert_double functions.
30468
30469 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30470
30471         * doc/extend.texi (Inline): Add missing return keyword to examples.
30472         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30473         "command-line".
30474
30475 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30476
30477         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30478         the variable part of the offset as well.  Use highest_pow2_factor for
30479         all alignment checks.
30480
30481 2010-04-30  Richard Guenther  <rguenther@suse.de>
30482
30483         PR tree-optimization/43879
30484         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30485         can have pointers.
30486
30487 2010-04-30  Jan Hubicka  <jh@suse.cz>
30488
30489         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30490         varpool.
30491         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30492
30493 2010-04-30  Jan Hubicka  <jh@suse.cz>
30494
30495         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30496         New.
30497         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30498         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30499         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30500         cgraph_node_set_needs_ltrans_p): Remove.
30501
30502 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30503
30504         * sdbout.c: Include vec.h, do not include varray.h.
30505         (deferred_global_decls, sdbout_global_decl,
30506         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30507         * toplev.c: Do not include varray.h.
30508         (dump_memory_report): Do not dump VARRAY statistics.
30509         * gengtype.c (open_base_file): Ignore varray.h.
30510         * Makefile.in: Update for abovementioned changes.
30511         Remove all traces of varray.c and varray.h.
30512         * varray.c: Remove file.
30513         * varray.h: Remove file.
30514
30515 2010-04-30  Jan Hubicka  <jh@suse.cz>
30516
30517         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30518         references.
30519
30520 2010-04-30  Jan Hubicka  <jh@suse.cz>
30521
30522         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30523         needed.
30524
30525 2010-04-30  Richard Guenther  <rguenther@suse.de>
30526
30527         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30528         constraints for CONSTRUCTOR.
30529
30530 2010-04-30  Richard Guenther  <rguenther@suse.de>
30531
30532         PR lto/43946
30533         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30534         first after all lowering passes.
30535
30536 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30537
30538         * toplev.c: Include varray.h for statistics dumping.
30539         * tree.h: Do not declare varray_head_tag.
30540         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30541         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30542         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30543         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30544         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30545         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30546         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30547         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30548         include varray.h.
30549         * Makefile.in: Update for abovementioned changes.
30550
30551 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30552
30553         PR debug/43942
30554         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30555
30556 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30557
30558         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30559         Use this function to do machine-specific conversion.
30560         (picochip_legitimize_reload_address): Likewise.
30561         (picochip_legitimate_address_p): Check valid base register only if
30562         strict.
30563         (picochip_check_conditional_copy): Check for modw only if opnd is
30564         register.
30565         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30566         to call the function in c.
30567         * config/picochip/picochip-protos.h
30568         (picochip_legitimize_reload_address): Define.
30569         * config/picochip/picochip.md (supported_compare1): Define.
30570
30571 2010-04-30  Jan Hubicka  <jh@suse.cz>
30572
30573         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30574         (cgraph_global_info): Remove inlined.
30575         (LTO_cgraph_tag_names): Remove.
30576         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30577         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30578         simplify cgraph tags and document.
30579         (lto_output_node): Use only LTO_cgraph_unavail_node and
30580         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30581         for_functions_valid, global info, process and output flags.
30582         (input_overwrite_node): Initialize estimated stack size and
30583         estimated growth.  Do not read flags we no longer store.
30584         (input_node): Likewise do not read info no longer stored.
30585         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30586         flag.
30587
30588 2010-04-30  Richard Guenther  <rguenther@suse.de>
30589
30590         PR tree-optimization/43879
30591         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30592         handle non-zero initializers.
30593
30594 2010-04-30  Richard Guenther  <rguenther@suse.de>
30595
30596         * builtins.c (fold_builtin_1): Delete free (0).
30597
30598 2010-04-29  Jan Hubicka  <jh@suse.cz>
30599
30600         * gengtype.c (open_base_files): Add lto-streamer.h
30601         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30602         (pass_ipa_cp): GGC collect.
30603         * toplev. (compile_file): Do not output symbols.
30604         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30605         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30606         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30607         * lto-section-in.c: Include ggc.h
30608         (lto_new_in_decl_state): Alloc in GGC.
30609         (lto_delete_in_decl_state): Likewise.
30610         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30611         Collect.
30612
30613 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30614
30615         PR target/42895
30616         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30617         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30618         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30619         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30620         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30621         account only if HONOR_REG_ALLOC_ORDER is not defined.
30622         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30623         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30624
30625 2010-04-29  Jon Grant  <04@jguk.org>
30626
30627         * collect2.c (vflag): Change type from int to bool.
30628         (debug): Likewise.
30629         (helpflag): New global bool.
30630         (main): Set vflag and debug with boolean, not integer truth values.
30631         Accept new "--help" option and output usage text if found.
30632         * collect2.h (vflag): Update prototype.
30633         (debug): Likewise.
30634
30635 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30636
30637         PR bootstrap/43936
30638         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30639
30640 2010-04-29  Richard Guenther  <rguenther@suse.de>
30641
30642         PR bootstrap/43935
30643         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30644         with ATTRIBUTE_UNUSED.
30645
30646 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30647
30648         PR target/43921
30649         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30650         INSN_P with NONDEBUG_INSN_P.
30651         (distance_non_agu_define): Likewise.
30652         (distance_agu_use): Likewise.
30653
30654 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30655
30656         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30657         PR bootstrap/43858
30658         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30659         test_set.
30660
30661 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30662
30663         * plugin.h (invoke_plugin_callbacks): New inline function.
30664         * plugin.c (flag_plugin_added): New global flag.
30665         (add_new_plugin): Initialize above flag.
30666         (invoke_plugin_callbacks): Rename to ...
30667         (invoke_plugin_callbacks_full): ... this.
30668
30669 2010-04-28  Jan Hubicka  <jh@suse.cz>
30670
30671         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30672         (lto_varpool_replace_node): New.
30673         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30674         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30675         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30676         * cgraph.h (varpool_node_ptr): New type.
30677         (varpool_node_ptr): New vector.
30678         (varpool_node_set_def): New structure.
30679         (varpool_node_set): New type.
30680         (varpool_node_set): New vector.
30681         (varpool_node_set_element_def): New structure.
30682         (varpool_node_set_element, const_varpool_node_set_element): New types.
30683         (varpool_node_set_iterator): New type.
30684         (varpool_node): Add prev pointers, add used_from_other_partition,
30685         in_other_partition.
30686         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30687         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30688         varpool_get_node, varpool_remove_node): Declare.
30689         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30690         varpool_node_set_size): New inlines.
30691         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30692         * tree-pass.h (varpool_node_set_def): Forward declare.
30693         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30694         (ipa_write_optimization_summaries): Update prototype.
30695         * ipa-cp.c (ipcp_write_summary): Update.
30696         * ipa-reference.c (ipa_reference_write_summary): Update.
30697         * lto-cgraph.c (lto_output_varpool_node): New static function.
30698         (output_varpool): New function.
30699         (input_varpool_node): New static function.
30700         (input_varpool_1): New function.
30701         (input_cgraph): Input varpool.
30702         * ipa-pure-const.c (pure_const_write_summary): Update.
30703         * lto-streamer-out.c (lto_output): Update, output varpool too.
30704         (write_global_stream): Kill WPA hack.
30705         (produce_asm_for_decls): Update.
30706         (output_alias_pair_p): Handle variables.
30707         (output_unreferenced_globals): Output only needed partition of varpool.
30708         * ipa-inline.c (inline_write_summary): Update.
30709         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30710         cgraph.
30711         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30712         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30713         varpool_node_set_new, varpool_node_set_add,
30714         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30715         debug_varpool_node_set): New functions.
30716         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30717         (execute_one_pass): Process new decls too.
30718         (ipa_write_summaries_2): Pass around vsets.
30719         (ipa_write_summaries_1): Likewise.
30720         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30721         to add.
30722         (ipa_write_optimization_summaries_1): Pass around vsets.
30723         (ipa_write_optimization_summaries): Likewise.
30724         * varpool.c (varpool_get_node): New.
30725         (varpool_node): Update doubly linked lists.
30726         (varpool_remove_node): New.
30727         (dump_varpool_node): More dumping.
30728         (varpool_enqueue_needed_node): Update doubly linked lists.
30729         (decide_is_variable_needed): Kill ltrans hack.
30730         (varpool_finalize_decl): Kill lto hack.
30731         (varpool_assemble_decl): Skip decls in other partitions.
30732         (varpool_assemble_pending_decls): Update doubly linkes lists.
30733         (varpool_empty_needed_queue): Likewise.
30734         (varpool_extra_name_alias): Likewise.
30735         * lto-streamer.c (lto_get_section_name): Add vars section.
30736         * lto-streamer.h (lto_section_type): Update.
30737         (output_varpool, input_varpool): Declare.
30738
30739 2010-04-28  Mike Stump  <mikestump@comcast.net>
30740
30741         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30742
30743 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30744
30745         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30746         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30747         (lto_input_ts_type_tree_pointers): Likewise.
30748         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30749         (lto_output_ts_type_tree_pointers): Likewise.
30750
30751 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30752
30753         Uniquization of constants at the Tree level
30754         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30755         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30756         bit to the end.
30757         (tree_output_constant_def): Declare.
30758         * gimplify.c (gimplify_init_constructor): When using block copy, first
30759         uniquize the constant constructor on the RHS.
30760         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30761         DECL_IN_CONSTANT_POOL flag.
30762         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30763         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30764         constant pool.
30765         (assemble_variable): Deal with symbols belonging to the tree constant
30766         pool.
30767         (get_constant_section): Add ALIGN parameter and simplify.
30768         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30769         (assemble_constant_contents): Use the expression of the VAR_DECL.
30770         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30771         (tree_output_constant_def): New global function.
30772         (mark_constant): Use the expression of the VAR_DECL.
30773         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30774         its expression.
30775         (output_object_block): Likewise and assemble the expression.
30776
30777 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30778
30779         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30780         hash_tree, eq_tree): New tree hash table.
30781         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30782         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30783         lto_orig_address_remove): Reimplement.
30784
30785 2010-04-28  Xinliang David Li  <davidxl@google.com>
30786
30787         PR c/42643
30788         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30789         (compute_uninit_opnds_pos): New function.
30790         (is_non_loop_exit_postdominating): New function.
30791         (compute_control_dep_chain): New function.
30792         (find_pdom): New function.
30793         (convert_control_dep_chain_into_preds): New function.
30794         (find_predicates): New function.
30795         (find_control_equiv_block): New function.
30796         (collect_phi_def_edges): New function.
30797         (find_def_preds): New function.
30798         (find_dom): New function.
30799         (dump_predicates): New function.
30800         (get_cmp_code): New function.
30801         (is_value_included_in): New function.
30802         (find_matching_predicate_in_rest_chains): New function.
30803         (use_pred_not_overlap_with_undef_path_pred): New function.
30804         (is_use_properly_guarded): New function.
30805         (normalize_cond_1): New function.
30806         (is_and_or_or): New function.
30807         (normalize_cond): New function.
30808         (is_gcond_subset_of): New function.
30809         (is_subset_of_any): New function.
30810         (is_or_set_subset_of): New function.
30811         (is_and_set_subset_of): New function.
30812         (is_norm_cond_subset_of): New function.
30813         (is_pred_expr_subset_of): New function.
30814         (is_pred_chain_subset_of): New function.
30815         (is_included_in): New function.
30816         (is_superset_of): New function.
30817         (find_uninit_use): New function.
30818         (warn_uninitialized_phi): New function.
30819         (compute_possibly_undefined_names): New function.
30820         (ssa_undefined_value_p): New function.
30821         (execute_late_warn_uninitialized): New function.
30822         * tree-ssa.c (ssa_undefined_value_p): Removed.
30823         (warn_uninit): Changed to extern.
30824         (warn_uninitialized_phi): Removed.
30825         (warn_uninitialized_vars): Changed to extern.
30826         (execute_late_warn_uninitialized): Removed
30827         * tree-flow.h: Add new prototypes.
30828         * timevar.def: Add new time variable.
30829         * Makefile.in: Add new build file.
30830
30831 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30832
30833         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30834         type if available.
30835
30836 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30837
30838         PR target/22224
30839         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30840
30841 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30842
30843         * cgraph.h (struct cgraph_node): New field indirect_calls.
30844         (struct cgraph_indirect_call_info): New type.
30845         (struct cgraph_edge): Removed field indirect_call. New fields
30846         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30847         (cgraph_create_indirect_edge): Declare.
30848         (cgraph_make_edge_direct): Likewise.
30849         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
30850         * ipa-prop.h (struct ipa_param_call_note): Removed.
30851         (struct ipa_node_params): Removed field param_calls.
30852         (ipa_create_all_structures_for_iinln): Declare.
30853         * cgraph.c: Described indirect edges and uids in initial comment.
30854         (cgraph_add_edge_to_call_site_hash): New function.
30855         (cgraph_edge): Search also among the indirect edges, use
30856         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
30857         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
30858         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
30859         site hash.
30860         (initialize_inline_failed): Assign a reason to indirect edges.
30861         (cgraph_create_edge_1): New function.
30862         (cgraph_create_edge): Moved some functionality to
30863         cgraph_create_edge_1.
30864         (cgraph_create_indirect_edge): New function.
30865         (cgraph_edge_remove_callee): Add an assert checking for
30866         non-indirectness.
30867         (cgraph_edge_remove_caller): Special-case indirect edges.
30868         (cgraph_remove_edge): Likewise.
30869         (cgraph_set_edge_callee): New function.
30870         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
30871         (cgraph_make_edge_direct): New function.
30872         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
30873         the declaration of the call statement matches.
30874         (cgraph_node_remove_callees): Special-case indirect edges.
30875         (cgraph_clone_edge): Likewise.
30876         (cgraph_clone_node): Clone also the indirect edges.
30877         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
30878         indirect_call, dump count of indirect_calls edges.
30879         * ipa-prop.c (iinlining_processed_edges): New variable.
30880         (ipa_note_param_call): Create indirect edges instead of
30881         creating notes.  New parameter node.
30882         (ipa_analyze_call_uses): New parameter node, pass it on to
30883         ipa_note_param_call.
30884         (ipa_analyze_stmt_uses): Likewise.
30885         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
30886         (print_edge_addition_message): Work on edges rather than on notes.
30887         (update_call_notes_after_inlining): Likewise, renamed to
30888         update_indirect_edges_after_inlining.
30889         (ipa_create_all_structures_for_iinln): New function.
30890         (ipa_free_node_params_substructures): Do not free notes.
30891         (ipa_edge_duplication_hook): Propagate bits within
30892         iinlining_processed_edges bitmap.
30893         (ipa_node_duplication_hook): Do not duplicate notes.
30894         (free_all_ipa_structures_after_ipa_cp): Renamed to
30895         ipa_free_all_structures_after_ipa_cp.
30896         (free_all_ipa_structures_after_iinln): Renamed to
30897         ipa_free_all_structures_after_iinln.
30898         (ipa_write_param_call_note): Removed.
30899         (ipa_read_param_call_note): Removed.
30900         (ipa_write_indirect_edge_info): New function.
30901         (ipa_read_indirect_edge_info): Likewise.
30902         (ipa_write_node_info): Do not stream notes, do stream information
30903         in indirect edges.
30904         (ipa_read_node_info): Likewise.
30905         (lto_ipa_fixup_call_notes): Removed.
30906         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
30907         * ipa-inline.c (pass_ipa_inline): Likewise.
30908         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
30909         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
30910         * tree-inline.c (copy_bb): Removed an unnecessary double check for
30911         is_gimple_call.
30912         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
30913         edges.
30914         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
30915         (output_cgraph): Stream also indirect edges.
30916         (lto_output_edge): Added capability to stream indirect edges.
30917         (input_edge): Likewise.
30918         (input_cgraph_1): Likewise.
30919         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
30920         of indirect edges.
30921
30922 2010-04-28  Richard Guenther  <rguenther@suse.de>
30923
30924         PR tree-optimization/43879
30925         PR tree-optimization/43909
30926         * tree-ssa-structalias.c (struct variable_info): Add
30927         only_restrict_pointers flag.
30928         (new_var_info): Initialize it.  Increment stats.total_vars here.
30929         (create_function_info_for): Do not increment stats.total_vars here.
30930         (get_function_part_constraint): Fix build with C++.
30931         (insert_into_field_list): Remove.
30932         (push_fields_onto_fieldstack): Properly merge fields.
30933         (create_variable_info_for): Split and simplify.
30934         (create_variable_info_for_1): New piece.
30935         (intra_create_variable_infos): Properly make restrict constraints
30936         from parameters.
30937
30938 2010-04-28  Richard Guenther  <rguenther@suse.de>
30939
30940         PR c++/43880
30941         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
30942
30943 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30944             Jan Hubicka  <hubicka@ucw.cz>
30945
30946         * doc/invoke.texi (-Wsuggest-attribute=const,
30947         -Wsuggest-attribute=pure): Document.
30948         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
30949         (function_always_visible_to_compiler_p,
30950         suggest_attribute, warn_function_pure, warn_function_const):
30951         New functions.
30952         (check_call): Improve debug info.
30953         (analyze_function): Do not check availability.
30954         (add_new_function): Check availability.
30955         (propagate): Output warnings.
30956         (skip_function_for_local_pure_const): New function.
30957         (local_pure_const): Use it; output warnings.
30958         * common.opt (Wsuggest-attribute=const,
30959         Wsuggest-attribute=pure): New.
30960
30961 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
30962
30963         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
30964         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
30965         or DW_CFA_def_cfa_offset{,_sf}.
30966
30967 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
30968
30969         * tree.h: Fix truncated long macros.
30970
30971 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
30972
30973         * collect2.c (TARGET_64BIT): Redefine to target's default.
30974         * tlink.c: Likewise.
30975         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
30976         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
30977         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
30978         for underscoring __USER_LABEL_PREFIX__.
30979         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
30980         (SUB_LINK_ENTRY32): New.
30981         (SUB_LINK_ENTRY64): New.
30982         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
30983         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
30984         (SUB_LINK_ENTRY64): New.
30985         (SUB_LINK_ENTRY): New.
30986         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
30987         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
30988         x64 target is choosen.
30989         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
30990         * configure: Regenerated.
30991         * configure.ac (leading-mingw64-underscores): Option added.
30992
30993 2010-04-27  Jan Hubicka  <jh@suse.cz>
30994
30995         * doc/invoke.texi (-fipa-profile): Document.
30996         * opts.c (decode_options): Enable ipa-profile at -O1.
30997         * timevar.def (TV_IPA_PROFILE): Define.
30998         * common.opt (fipa-profile): Add.
30999         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31000         flag for clones.
31001         (cgraph_propagate_frequency): Handle only local ones.
31002         * tree-pass.h (pass_ipa_profile): Declare.
31003         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31004         (pass_ipa_profile): Use TV_IPA_PROFILE.
31005         * ipa.c (ipa_profile): New function.
31006         (gate_ipa_profile): Likewise.
31007         (pass_ipa_profile): New global variable.
31008         * passes.c (pass_ipa_profile): New.
31009
31010 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31011
31012         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31013
31014 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31015
31016         PR middle-end/43812
31017         * ipa.c (dissolve_same_comdat_group_list): New function.
31018         (function_and_variable_visibility): Call
31019         dissolve_same_comdat_group_list when comdat group contains external or
31020         newly local nodes.
31021         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31022         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31023
31024 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31025
31026         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31027         (const_hash_1) <VECTOR_CST>: New case.
31028         (compare_constant) <VECTOR_CST>: Likewise.
31029         <ADDR_EXPR>: Deal with LABEL_REFs.
31030         (copy_constant) <VECTOR_CST>: New case.
31031
31032 2010-04-27  Jan Hubicka  <jh@suse.cz>
31033
31034         * cgraph.c (cgraph_propagate_frequency): New function.
31035         * cgraph.h (cgraph_propagate_frequency): Declare.
31036         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31037         cgraph_propagate_frequency.
31038
31039 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31040
31041         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31042
31043 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31044
31045         PR target/40657
31046         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31047         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31048         here to determine which regs to push and how much stack to reserve.
31049
31050 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31051
31052         * doc/gimple.texi (gimple_statement_with_ops): Remove
31053         addresses_taken field.
31054         (gimple_statement_with_memory_ops): Likewise.
31055
31056 2010-04-27  Jan Hubicka  <jh@suse.cz>
31057
31058         * tree-inline.c (eni_inlining_weights): Remove.
31059         (estimate_num_insns): Special case more builtins.
31060
31061 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31062
31063         PR c/32207
31064         * c-typeck.c (build_binary_op): Move forward check for comparison
31065         pointer with null pointer constant and adjust the diagnostic message.
31066
31067 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31068
31069         PR lto/42776
31070         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31071         binutils supports extended .section directive needed by LTO, or
31072         warn if older binutils found.
31073         (LTO_BINARY_READER): New AC_SUBST'd variable.
31074         (LTO_USE_LIBELF): Likewise.
31075         * config.gcc (lto_binary_reader): New target-specific configure
31076         variable.
31077         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31078         (LTO_USE_LIBELF): Likewise.
31079         * configure: Regenerate.
31080
31081         * collect2.c (is_elf): Rename from this ...
31082         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31083          object files in addition to ELF-formatted ones.
31084         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31085         symbol to be prefixed or not by an extra underscore.
31086
31087         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31088         * config/i386/winnt.c: Also #include lto-streamer.h
31089         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31090         LTO named sections.
31091         (i386_pe_asm_output_aligned_decl_common): Add comment.
31092         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31093
31094 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31095
31096         PR target/43889
31097         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31098         Add missing earlyclobber for second alternative.
31099
31100 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31101
31102         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31103         bits for artificial defs at the top of the block.
31104         * fwprop.c (single_def_use_enter_block): Don't call it.
31105
31106 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31107
31108         PR 43715
31109         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31110         instead of "$gcc_cv_objdump -T".
31111         Use "-undefined dynamic_lookup" on darwin.
31112         * configure: Regenerate.
31113
31114 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31115
31116         PR c/43893
31117         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31118
31119 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31120
31121         * c-parser.c (struct c_token): Move location field up.
31122         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31123         (struct c_declspecs): Convert typespec_word, storage_class, and
31124         default_int_p into bitfields.
31125         (struct c_declarator): Move loc field up.
31126
31127 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31128
31129         * cfgloop.h (struct loop): Move can_be_parallel field up.
31130         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31131         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31132         down.
31133         (struct iv_cand): Convert pos field into a bitfield.
31134         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31135         field up.
31136         (struct _stmt_vec_info): Shuffle fields for better packing.
31137
31138 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31139
31140         * varasm.c (IN_NAMED_SECTION): Remove guard.
31141         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31142         (IN_NAMED_SECTION_P): ...this.
31143         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31144         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31145
31146 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31147
31148         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31149         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31150         of shadowing it.  Fix comments.
31151
31152 2010-04-26  Jan Hubicka  <jh@suse.cz>
31153
31154         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31155         (cgraph_clone_node): Copy function frequency.
31156         * cgraph.h (node_frequency): New enum
31157         (struct cgraph_node): Add.
31158         * final.c (rest_of_clean_state): Update.
31159         * lto-cgraph.c (lto_output_node): Output node frequency.
31160         (input_overwrite_node): Input node frequency.
31161         * tre-ssa-loop-ivopts (computation_cost): Update.
31162         * lto-streamer-out.c (output_function): Do not output function
31163         frequency.
31164         * predict.c (maybe_hot_frequency_p): Update and handle functions
31165         executed once.
31166         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31167         attribute lookup.
31168         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31169         (compute_function_frequency): Set noreturn functions to be executed
31170         once.
31171         (choose_function_section): Update.
31172         * lto-streamer-in.c (input_function): Do not input function frequency.
31173         * function.c (allocate_struct_function): Do not initialize function
31174         frequency.
31175         * function.h (function_frequency): Remove.
31176         (struct function): Remove function frequency.
31177         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31178         (try_update): Update.
31179         * tree-inline.c (initialize_cfun): Do not update function frequency.
31180         * passes.c (pass_init_dump_file): Update.
31181         * i386.c (ix86_compute_frame_layout): Update.
31182         (ix86_pad_returns): Update.
31183
31184 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31185
31186         PR tree-optimization/43833
31187         * tree-vrp.c (range_int_cst_p): New.
31188         (range_int_cst_singleton_p): New.
31189         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31190         when both operands are constants.  Use range_int_cst_p in
31191         BIT_IOR_EXPR case.
31192
31193 2010-04-26  Jan Hubicka  <jh@suse.cz>
31194
31195         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31196
31197 2010-04-26  Richard Guenther  <rguenther@suse.de>
31198
31199         PR lto/43080
31200         * gimple.c (gimple_decl_printable_name): Deal gracefully
31201         with a NULL DECL_NAME.
31202
31203 2010-04-26  Richard Guenther  <rguenther@suse.de>
31204
31205         PR lto/42425
31206         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
31207         if emitting debug information and it is either a function
31208         or a namespace decl.
31209
31210 2010-04-26  Ira Rosen  <irar@il.ibm.com>
31211
31212         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
31213         determine if the statement is vectorizable, and a macro to access it.
31214         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31215         Skip statements that can't be vectorized. If the analysis fails,
31216         mark the statement as unvectorizable if vectorizing basic block.
31217         (vect_compute_data_refs_alignment): Likewise.
31218         (vect_verify_datarefs_alignment): Skip statements marked as
31219         unvectorizable. Add print.
31220         (vect_analyze_group_access): Skip statements that can't be
31221         vectorized. If the analysis fails, mark the statement as
31222         unvectorizable if vectorizing basic block.
31223         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
31224         * tree-vect-stmts.c (vectorizable_store): Fix the number of
31225         generated stmts for SLP.
31226         (new_stmt_vec_info): Initialize the new field.
31227         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
31228         statements marked as unvectorizable.
31229
31230 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
31231
31232         * c-common.c (flag_isoc1x): New.
31233         (flag_isoc99): Update comment.
31234         * c-common.h (flag_isoc1x): New.
31235         (flag_isoc99): Update comment.
31236         * c-cppbuiltin.c (builtin_define_float_constants): Also define
31237         __<type>_DECIMAL_DIG__.
31238         * c-opts.c (set_std_c1x): New.
31239         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
31240         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
31241         * c.opt (-std=c1x, -std=gnu1x): New options.
31242         * doc/cpp.texi: Mention -std=c1x.
31243         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
31244         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
31245         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
31246         * doc/standards.texi: Mention C1X.
31247         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
31248         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
31249         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
31250         Define for C1X.
31251
31252 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
31253
31254         * config/i386/gmon-sol2.c (_mcleanup): Change format string
31255         placeholder from 0x%x to %#x.
31256         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31257         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31258         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31259         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31260         * config/i386/i386.c (ix86_target_string): Ditto.
31261         (output_pic_addr_const): Ditto.
31262         (print_operand): Ditto.
31263
31264 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
31265
31266         * combine.c (find_split_point): Add third argument.  Use it
31267         to find nested multiply-accumulate instructions.  Adjust calls.
31268         (try_combine): Adjust call to find_split_point.
31269
31270 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
31271
31272         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
31273
31274 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
31275
31276         PR tree-optimization/41442
31277         * fold-const.c (merge_truthop_with_opposite_arm): New function.
31278         (fold_binary_loc): Call it.
31279
31280 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31281
31282         * toplev.c (general_init): Set default for fdiagnostics-show-option.
31283         * opts.c (common_handle_option): Allow disabling it.
31284         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
31285
31286 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
31287
31288         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
31289         between modes if both types are integral.
31290
31291 2010-04-23  Richard Guenther  <rguenther@suse.de>
31292
31293         PR tree-optimization/43572
31294         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
31295
31296 2010-04-23  Richard Guenther  <rguenther@suse.de>
31297
31298         PR lto/43455
31299         * tree-inline.c (tree_can_inline_p): Also check compatibility
31300         of return types.
31301
31302 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31303
31304         PR tree-optimization/43846
31305         * tree-sra.c (struct access): New flag grp_assignment_read.
31306         (build_accesses_from_assign): Set grp_assignment_read.
31307         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
31308         (enum mark_read_status): New type.
31309         (analyze_access_subtree): Propagate grp_assignment_read, create
31310         accesses also if both direct_read and root->grp_assignment_read.
31311
31312 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31313
31314         PR middle-end/43835
31315         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
31316         function does not have type attributes.
31317
31318 2010-04-23  Richard Guenther  <rguenther@suse.de>
31319
31320         PR lto/42653
31321         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
31322         of FUNCTION_DECLs.
31323
31324 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31325
31326         * sese.h (create_if_region_on_edge): Remove.
31327
31328         * sese.c (create_if_region_on_edge): Make static.
31329
31330         * tree-inline.c: Do not include ggc.h.
31331
31332         * expr.c: Do not include ggc.h.
31333
31334         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
31335         dependencies.
31336
31337 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
31338
31339         PR target/43744
31340         * config/sh/sh.c (find_barrier): Don't emit a constant pool
31341         in the middle of insns for casesi_worker_2.
31342
31343 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
31344
31345         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
31346
31347 2010-04-22  Ira Rosen  <irar@il.ibm.com>
31348
31349         PR tree-optimization/43842
31350         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
31351         loop unrolling in update of exit phis. Fix comment.
31352         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
31353         least two reduction statements in the loop before starting SLP
31354         analysis.
31355
31356 2010-04-22  Nick Clifton  <nickc@redhat.com>
31357
31358         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
31359
31360 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
31361
31362         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
31363         to simplify a + ~a.
31364
31365 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31366
31367         * tree-parloops.c (loop_parallel_p): New argument
31368         parloop_obstack.  Pass it down.
31369         (parallelize_loops): New variable parloop_obstack.  Initialize it,
31370         pass it down, free it.
31371
31372         * tree-loop-linear.c (linear_transform_loops): Pass down
31373         lambda_obstack.
31374
31375         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31376         of type struct obstack *.
31377
31378         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31379         scratch_obstack.  Initialize it, pass down, free it.
31380
31381         * lambda.h (lambda_loop_new): Remove.
31382         (lambda_matrix_new, lambda_matrix_inverse)
31383         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31384         argument of type struct obstack *.
31385
31386         * lambda-trans.c (lambda_trans_matrix_new): New argument
31387         lambda_obstack.  Pass it down, use obstack allocation for ret.
31388         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31389         it down.
31390
31391         * lambda-mat.c (lambda_matrix_get_column)
31392         (lambda_matrix_project_to_null): Remove.
31393         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31394         allocation for mat.
31395         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31396         lambda_obstack.
31397
31398         * lambda-code.c (lambda_loop_new): New function.
31399         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31400         (lambda_compute_auxillary_space, lambda_compute_target_space)
31401         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31402         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31403         (build_access_matrix): New argument lambda_obstack.  Use obstack
31404         allocation for am.
31405         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31406         argument lambda_obstack.  Pass it down.
31407
31408 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31409
31410         * optabs.h (expand_widening_mult): Declare.
31411
31412 2010-04-22  Richard Guenther  <rguenther@suse.de>
31413
31414         PR tree-optimization/43845
31415         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31416         lookup the CALL_EXPR function and arguments.
31417
31418 2010-04-22  Nick Clifton  <nickc@redhat.com>
31419
31420         * config/stormy16/stormy16.c
31421         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31422         * config/stormy16/stormy16.h: Tidy up formatting.
31423         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31424         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31425         (ineqbranchsi): Delete pattern.
31426         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31427         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31428         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31429         stormy16-lib2-ucmpsi2.c.
31430
31431 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31432
31433         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31434         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31435         extra set merge_set_noclobber, and use it to relax the final test
31436         slightly.
31437         * df.h (df_simulate_find_noclobber_defs): Declare.
31438         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31439         conditional defs.
31440         (df_simulate_find_noclobber_defs): New function.
31441
31442 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31443
31444         * config/i386/i386.md: Use {} around multi-line preparation statements.
31445
31446 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31447
31448         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31449         (process_init_element): New argument of type struct obstack *.
31450
31451         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31452         (set_init_index, set_init_label, set_nonincremental_init)
31453         (set_nonincremental_init_from_string, find_init_member)
31454         (output_init_element, output_pending_init_elements)
31455         (process_init_element): New argument braced_init_obstack.  Pass it
31456         down.
31457         (push_range_stack, add_pending_init): New argument
31458         braced_init_obstack.  Use obstack allocation.
31459
31460         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31461         braced_init_obstack.  Pass it down.
31462         (c_parser_braced_init): New variables ret, braced_init_obstack.
31463         Initialize obstack, pass it down and finally free it.
31464
31465 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31466
31467         PR middle-end/29274
31468         * tree-pass.h (pass_optimize_widening_mul): Declare.
31469         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31470         gate_optimize_widening_mul): New static functions.
31471         (pass_optimize_widening_mul): New.
31472         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31473         <case MULT_EXPR>: Remove support for widening multiplies.
31474         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31475         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31476         simplify_gen_unary rather than directly building extensions.
31477         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31478         WIDEN_MULT_EXPR.
31479         * expmed.c (expand_widening_mult): New function.
31480         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31481
31482 2010-04-21  Jan Hubicka  <jh@suse.cz>
31483
31484         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31485         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31486         * lto-wpa-fixup.c: Remove.
31487         * Makefile.in (lto-wpa-fixup.o): Remove.
31488         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31489         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31490         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31491
31492 2010-04-21  Jan Hubicka  <jh@suse.cz>
31493
31494         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31495         add write_optimization_summary, read_optimization_summary.
31496         (ipa_write_summaries_of_cgraph_node_set): Remove.
31497         (ipa_write_optimization_summaries): Declare.
31498         (ipa_read_optimization_summaries): Declare.
31499         * ipa-cp.c (pass_ipa_cp): Update.
31500         * ipa-reference.c (pass_ipa_reference): Update.
31501         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31502         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31503         Update.
31504         * ipa-inline.c (pass_ipa_inline): Update.
31505         * ipa.c (pass_ipa_whole_program): Update.
31506         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31507         * passes.c (ipa_write_summaries_1): Do not test wpa.
31508         (ipa_write_optimization_summaries_1): New.
31509         (ipa_write_optimization_summaries): New.
31510         (ipa_read_summaries): Do not test ltrans.
31511         (ipa_read_optimization_summaries_1): New.
31512         (ipa_read_optimization_summaries): New.
31513
31514 2010-04-21  Jan Hubicka  <jh@suse.cz>
31515
31516         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31517         for boundary nodes.
31518         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31519
31520 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31521
31522         PR debug/40040
31523         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31524         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31525
31526 2010-04-21  Jan Hubicka  <jh@suse.cz>
31527
31528         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31529
31530 2010-04-21  Jan Hubicka  <jh@suse.cz>
31531
31532         * varpool.c (decide_is_variable_needed): Variable is always needed
31533         during ltrans.
31534
31535 2010-04-21  Jan Hubicka  <jh@suse.cz>
31536
31537         * opts.c (decode_options): Enable pure-const pass for whopr.
31538
31539 2010-04-21  Jan Hubicka  <jh@suse.cz>
31540
31541         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31542         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31543         at WPA dumping.
31544         (cgraph_decide_inlining): Do not expect callee to be removed in all
31545         cases.
31546
31547 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31548
31549         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31550
31551 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31552
31553         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31554         amdfam10_decode attributes.
31555
31556 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31557
31558         PR middle-end/43570
31559         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31560         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31561         (lower_copyprivate_clauses): Use private var in outer
31562         context instead of original var.  Make sure the types
31563         are correct for VLAs.
31564
31565 2010-04-21  Richard Guenther  <rguenther@suse.de>
31566
31567         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31568         to non-pointer objects.
31569
31570 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31571
31572         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31573         last chain entry if it starts with the still current label.
31574         (add_location_or_const_value_attribute): Check that
31575         loc_list->first->next is NULL instead of comparing ->first with ->last.
31576         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31577         to add_var_loc_to_decl.
31578
31579         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31580         >= 4 add also address size and segment size fields into CIE header.
31581
31582         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31583         long as address size is the same as sizeof (void *) and
31584         segment size is 0.
31585         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31586         address size or segment size is unexpected, return DW_EH_PE_omit.
31587         (classify_object_over_fdes): If get_cie_encoding returned
31588         DW_EH_PE_omit, return -1.
31589         (init_object): If classify_object_over_fdes returned -1,
31590         pretend there were no FDEs at all.
31591
31592 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31593
31594         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31595         bswap{si,di}2 using SWI48 mode iterator.
31596         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31597         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31598         set modrm attribute of bswap insn to 0 and remove length attribute.
31599         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31600         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31601         set mode attribute to <MODE> and remove length attribute.
31602
31603 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31604
31605         PR rtl-optimization/43520
31606         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31607         zero available registers.
31608
31609 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31610
31611         * builtins.c (fold_builtin_cproj): Fold more cases.
31612
31613 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31614
31615         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31616         (fold_builtin_1): Fold builtin cproj.
31617         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31618         Use ATTR_CONST_NOTHROW_LIST.
31619
31620 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31621
31622         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31623         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31624         ffsi2_no_cmove for !TARGET_CMOVE.
31625         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31626         (ffssi2): Remove expander.
31627         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31628         mode iterator.
31629         (ctz<mode>2): Ditto from ctz{si,di}2.
31630         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31631         mode iterator.
31632         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31633         mode iterator.
31634
31635 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31636
31637         * dwarf2out.c (AT_linkage_name): Define.
31638         (clone_as_declaration): Handle DW_AT_linkage_name.
31639         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31640         of DW_AT_MIPS_linkage_name.
31641         (move_linkage_attr): Likewise.
31642         (dwarf2out_finish): Likewise.
31643
31644 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31645
31646         PR middle-end/41952
31647         * fold-const.c (fold_comparison): New folding rule.
31648
31649 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31650
31651         * double-int.h (double_int_setbit): Declare.
31652         * double-int.c (double_int_setbit): New function.
31653         * rtl.h (immed_double_int_const): Declare.
31654         * emit-rtl.c (immed_double_int_const): New function.
31655         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31656         and immed_double_int_const functions.
31657         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31658         expand_copysign_bit): (Ditto.).
31659         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31660         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31661         * dojump.c (prefer_and_bit_test): (Ditto.).
31662         * expr.c (convert_modes, reduce_to_bit_field_precision,
31663         const_vector_from_tree): (Ditto.).
31664         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31665
31666 2010-04-20  Jan Hubicka  <jh@suse.cz>
31667
31668         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31669         (dump_cgraph_node): Dump new flags.
31670         * cgraph.h (struct cgraph_node): Add flags
31671         reachable_from_other_partition and in_other_partition.
31672         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31673         other partition can not be removed.
31674         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31675         the other partition must be output; silence sanity checking on
31676         leaking functions bodies from other paritition.
31677         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31678         (lto_output_node): Output new flags; do not sanity check that inline
31679         clones are output; drop lto_forced_extern_inline_p code; do not mock
31680         visibility flags at partition boundaries.
31681         (add_node_to): New function.
31682         (output_cgraph): Use it to sort functions so masters appear before
31683         clones.
31684         (input_overwrite_node): Input new flags.
31685         * passes.c (ipa_write_summaries): Do not call
31686         lto_new_extern_inline_states.
31687         * lto-section-out.c (forced_extern_inline,
31688         lto_new_extern_inline_states lto_delete_extern_inline_states,
31689         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31690         * lto-streamer.h (lto_new_extern_inline_states,
31691         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31692         lto_forced_extern_inline_p): Kill.
31693
31694 2010-04-20  Richard Guenther  <rguenther@suse.de>
31695
31696         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31697         from vars that can have pointers.
31698         (process_constraint): Dump useless constraints.
31699
31700 2010-04-20  Richard Guenther  <rguenther@suse.de>
31701
31702         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31703         (dump_sa_points_to_info): Remove asserts.
31704         (init_base_vars): nothing_id isn't an escape point nor does it
31705         have pointers.
31706
31707 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31708
31709         * tree.h (TYPE_REF_IS_RVALUE): Define.
31710         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31711         should_move_die_to_comdat, prune_unused_types_walk): Handle
31712         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31713         (modified_type_die, gen_reference_type_die): Emit
31714         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31715         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31716
31717 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31718
31719         PR target/43635
31720         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31721         calls for -fpic -m31 if they have been sibcall optimized.
31722
31723 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31724
31725         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31726         ar.lc fixed and call-used.
31727
31728         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31729
31730 2010-04-19  Jan Hubicka  <jh@suse.cz>
31731
31732         * opts.c (decode_options): Disable whpr incompatible passes.
31733         * lto/lto.c (lto_1_to_1_map): Skip clones.
31734         (read_cgraph_and_symbols): Do not mark everything as needed.
31735         (do_whole_program_analysis): Do map only after optimizing;
31736         set proper cgraph_state; use passmanager.
31737
31738 2010-04-19  DJ Delorie  <dj@redhat.com>
31739
31740         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31741         POINTER_PLUS_EXPR and fix them.
31742
31743 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31744
31745         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31746         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31747         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31748         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31749         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31750         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31751         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31752         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31753         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31754         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31755         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31756
31757 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31758
31759         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31760         (check_cond_move_block): Likewise.
31761         (cond_move_process_if_block): Likewise.
31762         (noce_find_if_block): Improve formatting.
31763         (find_if_header): Pass 0 to memset and tweak conditions.
31764         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31765
31766 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31767
31768         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31769         for -gdwarf-4.
31770
31771         PR middle-end/43337
31772         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31773         with non-local decl doesn't need chain.
31774
31775 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31776
31777         * ira-color.c (allocno_reload_assign): Avoid accumulating
31778         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31779
31780 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31781
31782         * gimple.h (create_tmp_reg): Declare.
31783         * gimplify.c (create_tmp_reg): New function.
31784         (gimplify_return_expr): Use create_tmp_reg.
31785         (gimplify_omp_atomic): Likewise.
31786         (gimple_regimplify_operands): Likewise.
31787         * tree-dfa.c (make_rename_temp): Likewise.
31788         * tree-predcom.c (predcom_tmp_var): Likewise.
31789         (reassociate_to_the_same_stmt): Likewise.
31790         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31791         (get_replaced_param_substitute): Likewise.
31792         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31793         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31794         * tree-ssa-pre.c (get_representative_for): Likewise.
31795         (create_expression_by_pieces): Likewise.
31796         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31797         (create_tailcall_accumulator): Likewise.
31798
31799 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31800
31801         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31802         new_stmt.
31803         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31804
31805 2010-04-19  Richard Guenther  <rguenther@suse.de>
31806
31807         PR tree-optimization/43796
31808         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31809         from SCEV in the lattice.
31810         (vrp_visit_phi_node): Dump change.
31811
31812 2010-04-19  Richard Guenther  <rguenther@suse.de>
31813
31814         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31815         * configure: Re-generated.
31816
31817 2010-04-19  Richard Guenther  <rguenther@suse.de>
31818
31819         PR tree-optimization/43783
31820         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31821         constant ARRAY_REF operands two and three if possible.
31822
31823 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31824
31825         PR target/43766
31826         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31827
31828 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31829
31830         PR target/43662
31831         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31832
31833 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31834
31835         PR tree-optimization/37027
31836         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31837         and macro to access it.
31838         (vectorizable_reduction): Add argument.
31839         (vect_get_slp_defs): Likewise.
31840         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31841         statements for possible use in SLP.
31842         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31843         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31844         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31845         add new argument.
31846         (vectorizable_reduction): Likewise.
31847         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31848         vect_get_slp_defs.
31849         (vectorizable_type_demotion, vectorizable_type_promotion,
31850         vectorizable_store): Likewise.
31851         (vect_analyze_stmt): Update call to vectorizable_reduction.
31852         (vect_transform_stmt): Likewise.
31853         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
31854         (vect_build_slp_tree): Fix indentation. Check that there are no loads
31855         from different interleaving chains in same node.
31856         (vect_slp_rearrange_stmts): New function.
31857         (vect_supported_load_permutation_p): Allow load permutations for
31858         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
31859         inside SLP nodes if necessary.
31860         (vect_analyze_slp_instance): Handle reductions.
31861         (vect_analyze_slp): Try to build SLP instances originating from groups
31862         of reductions.
31863         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
31864         (vect_get_constant_vectors): Create initial vectors for reductions
31865         according to reduction code. Add new argument.
31866         (vect_get_slp_defs): Add new argument, pass it to
31867         vect_get_constant_vectors.
31868         (vect_schedule_slp_instance): Remove SLP tree root statements.
31869
31870 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31871
31872         * tree.h (ENUM_IS_SCOPED): Define.
31873         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
31874         for ENUM_IS_SCOPED enums.
31875
31876 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
31877
31878         * fold-const.c (fold_comparison): Use ssizetype.
31879         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
31880         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
31881         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
31882         * tree-object-size.c (compute_object_sizes): Use size_type_node.
31883
31884         * tree.h (initialize_sizetypes): Remove parameter.
31885         (build_common_tree_nodes): Remove second parameter.
31886         * stor-layout.c (initialize_sizetypes): Remove parameter.
31887         Always create an unsigned type.
31888         (set_sizetype): Assert that the passed type is unsigned and simplify.
31889         * tree.c (build_common_tree_nodes): Remove second parameter.
31890         Adjust call to initialize_sizetypes.
31891         * c-decl.c (c_init_decl_processing): Remove second argument in call to
31892         build_common_tree_nodes.
31893
31894 2010-04-18  Matthias Klose  <doko@ubuntu.com>
31895
31896         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
31897
31898 2010-04-18  Ira Rosen  <irar@il.ibm.com>
31899
31900         PR tree-optimization/43771
31901         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
31902         load permutation doesn't have gaps.
31903
31904 2010-04-18  Jan Hubicka  <jh@suse.cz>
31905
31906         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
31907         (sse_prologue_save_insn expander): Use new pattern.
31908         (sse_prologue_save_insn1): New pattern and splitter.
31909         (sse_prologue_save_insn): Update to deal also with 64bit aligned
31910         blocks.
31911         * i386.c (setup_incoming_varargs_64): Do not compute jump
31912         destination here.
31913         (ix86_gimplify_va_arg): Update alignment needed.
31914         (ix86_local_alignment): Do not align all local arrays to 128bit.
31915
31916 2010-04-17  Jan Hubicka  <jh@suse.cz>
31917
31918         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
31919
31920 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31921
31922         * arm.md (negdi2): Remove redundant code to force values into a
31923         register.
31924
31925 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31926
31927         * arm/bpabi.S: Add EABI alignment attributes to objects.
31928         * arm/bpabi-v6m.S: Likewise.
31929         * arm/crti.asm: Likewise.
31930         * arm/crtn.asm: Likewise.
31931         * arm/lib1funcs.asm: Likewise.
31932         * arm/libunwind.S: Likewise.
31933
31934 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31935
31936         * arm-protos.h (tune_params): New structure.
31937         * arm.c (current_tune): New variable.
31938         (arm_constant_limit): Delete.
31939         (struct processors): Add pointer to the tune parameters.
31940         (arm_slowmul_tune): New tuning option.
31941         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
31942         (all_cores): Adjust to pick up the tuning model.
31943         (arm_constant_limit): New function.
31944         (arm_override_options): Select the appropriate tuning model.  Delete
31945         initialization of arm_const_limit.
31946         (arm_split_constant): Use the new constant-limit model.
31947         (arm_rtx_costs): Pick up the current tuning model.
31948         * arm.md (is_strongarm, is_xscale): Delete.
31949         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
31950         for Xscale variant architectures.
31951         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
31952
31953 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31954
31955         * config/arm/arm.c (arm_gen_constant): Remove unused variable
31956         can_shift.
31957         (arm_rtx_costs_1): Remove unused variable extra_cost.
31958         (arm_unwind_emit_set): Use variable offset.
31959         (thumb1_output_casesi): Remove unused variable flags.
31960
31961 2010-04-16  Jeff Law  <law@redhat.com>
31962
31963         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
31964         needing assignment rather than doing a two-phase assignment.  Remove
31965         unused variable 'm'.
31966
31967 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31968
31969         PR bootstrap/43767
31970         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
31971
31972 2010-04-16  Doug Kwan  <dougkwan@google.com>
31973
31974         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
31975         (next_operand_entry_id): New static variable.
31976         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
31977         (add_to_ops_vec): Assigned unique ID to operand entry.
31978         (struct oecount_s): New field ID.
31979         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
31980         (undistribute_ops_list): Assign unique IDs to oecounts.
31981         (init_reassoc): reset next_operand_entry_id.
31982
31983 2010-04-16  Doug Kwan  <dougkwan@google.com>
31984
31985         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
31986         missing left parenthesis.
31987
31988 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
31989
31990         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
31991         *btdi_rex64 using SWI48 mode iterator.
31992         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
31993         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
31994         *jcc_btdi_mask_rex64.
31995
31996 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
31997
31998         * double-int.h (tree_to_double_int): Convert to macro.
31999         * double-int.c (tree_to_double_int): Remove.
32000
32001 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32002
32003         PR debug/43762
32004         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32005         with want_address 2 and in case a single element list might be
32006         possible, call it again with want_address 0.
32007
32008 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32009
32010         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32011         case 'W' print operands for HI mode.
32012         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32013         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32014         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32015         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32016
32017         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32018
32019         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32020         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32021         #xx:3 and #xx:4 mode.
32022
32023         * config/h8300/h8300.md (inverted load with HImode dest): Add
32024         support for H8300SX.
32025
32026         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32027         satisfy 'U' constraint.
32028
32029 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32030
32031         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32032         * configure: Regenerate.
32033         * config.in: Regenerate.
32034         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32035         works.
32036
32037 2010-04-16  Richard Guenther  <rguenther@suse.de>
32038
32039         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32040         (struct tree_decl_common): ... here.
32041         (DECL_PT_UID): Adjust.
32042         (SET_DECL_PT_UID): Likewise.
32043         (DECL_PT_UID_SET_P): Likewise.
32044
32045 2010-04-16  Richard Guenther  <rguenther@suse.de>
32046
32047         PR tree-optimization/43572
32048         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32049         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32050         * tree-flow.h (is_call_clobbered): Remove.
32051         * tree-flow-inline.h (is_call_clobbered): Likewise.
32052         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32053         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32054         (execute_return_slot_opt): Adjust.
32055         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32056         check for call clobbered vars here.
32057         (find_tail_calls): Move tailcall verification to the
32058         proper place.
32059
32060 2010-04-16  Diego Novillo  <dnovillo@google.com>
32061
32062         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32063
32064 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32065
32066         PR target/40603
32067         * config/arm/arm.md (cbranchqi4): New pattern.
32068         * config/arm/predicates.md (const0_operand,
32069         cbranchqi4_comparison_operator): New predicates.
32070
32071 2010-04-16  Richard Guenther  <rguenther@suse.de>
32072
32073         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32074         (dump_gimple_stmt): Likewise.
32075
32076 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32077
32078         * recog.h (struct recog_data): New field is_operator.
32079         (struct insn_operand_data): New field is_operator.
32080         * recog.c (extract_insn): Set recog_data.is_operator.
32081         * genoutput.c (output_operand_data): Emit code to set the
32082         is_operator field.
32083         * reload.c (find_reloads): Use it rather than testing for an
32084         empty constraint string.
32085
32086         PR target/41514
32087         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32088         If the previous insn is a cbranchsi4_insn with the same arguments,
32089         omit the compare instruction.
32090
32091         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32092         register, inputs must be low registers and we need a low register
32093         scratch.  Handle alternative 2 like alternative 3.
32094
32095 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32096
32097         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32098         don't call get_addr on both.  If one expression is a VALUE and
32099         the other a REG, check VALUE's locs if the REG isn't among them.
32100
32101 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32102
32103         * config/sh/sh.h (sh_frame_pointer_required): New function.
32104         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32105         (flag_omit_frame_pointer) Set.
32106         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32107         (rounded_frame_size): Adjust size with outgoing_args_size.
32108         (sh_set_return_address): Must return from stack pointer.
32109         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32110         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32111         (ACCUMULATE_OUTGOING_ARGS): Define.
32112         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32113         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32114
32115 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32116
32117         PR target/43471
32118         * config/sh/sh.c (sh_legitimize_reload_address): Use
32119         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32120         Remove a unneeded check for offset_base.
32121
32122 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32123
32124         * configure: Regenerated.
32125
32126 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32127
32128         * config/s390/s390.c (s390_call_save_register_used): Switch back
32129         to HARD_REGNO_NREGS.
32130
32131 2010-04-15  Richard Guenther  <rguenther@suse.de>
32132
32133         * alias.c (alias_set_subset_of): Handle alias-set zero
32134         child properly.
32135
32136 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32137             Julian Brown  <julian@codesourcery.com>
32138
32139         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32140         alternatives according to use of high and low regs.
32141         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32142         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32143         optimizing for size on Thumb-2.
32144
32145 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32146
32147         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32148
32149 2010-04-15  Richard Guenther  <rguenther@suse.de>
32150
32151         * tree-ssa-structalias.c (struct variable_info): Add
32152         is_fn_info flag.
32153         (new_var_info): Initialize it.
32154         (dump_constraints): Support printing last added constraints.
32155         (debug_constraints): Adjust.
32156         (dump_constraint_graph): Likewise.
32157         (make_heapvar_for): Check for NULL cfun.
32158         (get_function_part_constraint): New function.
32159         (get_fi_for_callee): Likewise.
32160         (find_func_aliases): Properly implement IPA PTA constraints.
32161         (process_ipa_clobber): New function.
32162         (find_func_clobbers): Likewise.
32163         (insert_into_field_list_sorted): Remove.
32164         (create_function_info_for): Properly allocate vars for IPA mode.
32165         Do not use insert_into_field_list_sorted.
32166         (create_variable_info_for): Properly generate constraints for
32167         global vars in IPA mode.
32168         (dump_solution_for_var): Always dump the solution.
32169         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32170         (find_what_var_points_to): Adjust.
32171         (pt_solution_set): Change.
32172         (pt_solution_ior_into): New function.
32173         (pt_solution_empty_p): Export.
32174         (pt_solution_includes_global): Adjust.
32175         (pt_solution_includes_1): Likewise.
32176         (pt_solutions_intersect_1): Likewise.
32177         (dump_sa_points_to_info): Check some invariants.
32178         (solve_constraints): Move constraint dumping ...
32179         (compute_points_to_sets): ... here.
32180         (ipa_pta_execute): ... and here.
32181         (compute_may_aliases): Do not re-compute points-to info
32182         locally if IPA info is available.
32183         (ipa_escaped_pt): New global var.
32184         (ipa_pta_execute): Properly implement IPA PTA.
32185         * tree-into-ssa.c (dump_decl_set): Support dumping
32186         decls not in referenced-vars.
32187         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32188         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32189         (dump_points_to_solution): Likewise.
32190         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32191         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32192         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32193         (copy_decl_to_var): Copy DECL_PT_UID.
32194         (copy_result_decl_to_var): Likewise.
32195         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32196         (copy_node_stat): Copy it.
32197         * tree.h (DECL_PT_UID): New macro.
32198         (SET_DECL_PT_UID): Likewise.
32199         (DECL_PT_UID_SET_P): Likewise.
32200         (struct tree_decl_minimal): Add pt_uid member.
32201         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32202         (pt_solution_empty_p): Declare.
32203         (pt_solution_set): Adjust.
32204         (ipa_escaped_pt): Declare.
32205         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
32206         * gimple-pretty-print.c (pp_points_to_solution): New function.
32207         (dump_gimple_call): Dump call clobber/use information.
32208         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
32209         * tree-pass.h (TDF_ALIAS): New dump option.
32210         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
32211         * doc/invoke.texi (-fipa-pta): Update documentation.
32212
32213 2010-04-15  Richard Guenther  <rguenther@suse.de>
32214
32215         * Makefile.in (OBJS-common): Add gimple-fold.o.
32216         (gimple-fold.o): New rule.
32217         * tree.h (maybe_fold_offset_to_reference,
32218         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
32219         prototypes ...
32220         * gimple.h: ... here.
32221         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
32222         may_propagate_address_into_dereference): Move prototypes ...
32223         * gimple.h: ... here.
32224         * tree-ssa-ccp.c (get_symbol_constant_value,
32225         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
32226         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
32227         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
32228         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
32229         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
32230         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
32231         gimplify_and_update_call_from_tree): Move ...
32232         * gimple-fold.c: ... here.  New file.
32233         (ccp_fold_builtin): Rename to ...
32234         (gimple_fold_builtin): ... this.
32235         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
32236
32237 2010-04-15  Richard Guenther  <rguenther@suse.de>
32238
32239         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
32240         fit_double_type, force_fit_type_double, add_double_with_sign,
32241         neg_double, mul_double_with_sign, lshift_double, rshift_double,
32242         lrotate_double, rrotate_double, div_and_round_double): Move ...
32243         * double-int.c: ... here.
32244         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
32245         add_double, neg_double, mul_double_with_sign, mul_double,
32246         lshift_double, rshift_double, lrotate_double, rrotate_double,
32247         div_and_round_double): Move prototypes ...
32248         * double-int.h: ... here.
32249
32250 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
32251
32252         PR target/43742
32253         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
32254         matching constraints to ensure inputs match the output.
32255
32256 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32257
32258         PR target/43742
32259         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
32260         in an input-only operand.
32261
32262 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
32263
32264         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
32265         (double_int_not, double_int_lshift, double_int_rshift): Declare.
32266         (double_int_negative_p): Convert to static inline function.
32267         * double-int.c (double_int_lshift, double_int_lshift): New functions.
32268         (double_int_negative_p): Remove.
32269         * tree.h (lshift_double, rshift_double):
32270         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
32271         * fold-const.c (fold_convert_const_int_from_real,
32272         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
32273         (lshift_double): Change type of arith argument to bool.
32274         (rshift_double): Change type of arith argument to bool. Correct
32275         comment.
32276         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32277
32278 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
32279
32280         PR target/21803
32281         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
32282         at the start and end of the then/else blocks, and omit them from the
32283         conversion.
32284         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
32285         argument; all callers changed.  Pass zero to old_insns_match_p instead.
32286         (flow_find_head_matching_sequence): New function.
32287         (old_insns_match_p): Check REG_EH_REGION notes for calls.
32288         * basic-block.h (flow_find_cross_jump,
32289         flow_find_head_matching_sequence): Declare functions.
32290
32291 2010-04-14  Jason Merrill  <jason@redhat.com>
32292
32293         PR c++/36625
32294         * c-common.c (attribute_takes_identifier_p): New fn.
32295         * c-common.h: Declare it.
32296
32297 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32298
32299         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
32300         splitter condition.
32301         (*udivmod<mode>4): Ditto.
32302
32303 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32304
32305         * config/i386/i386.md (maxmin_int): Rename code attribute from
32306         maxminiprefix and update all users.
32307         (maxmin_float): Ditto from maxminfprefix.
32308         (logic): Ditto from logicprefix.
32309         (absneg_mnemonic): Ditto from absnegprefix.
32310         * config/i386/mmx.md: Update all users of maxminiprefix,
32311         maxminfprefix and logicprefix for rename.
32312         * config/i386/sse.md: Ditto.
32313         * config/i386/sync.md (sync_<code><mode>): Update for
32314         logicprefix rename.
32315
32316 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32317
32318         PR 42966
32319         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
32320         warnings converted to errors.
32321
32322 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32323
32324         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
32325         used insn_type variable.
32326         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
32327         to avoid set-but-not-used warning.
32328
32329 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32330
32331         * df-core.c (df_ref_debug): Change format string placeholder
32332         from 0x%x to %#x.
32333         * dwarf2asm.c (dw2_asm_output_data_raw,
32334         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
32335         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
32336         * dwarf2out.c (output_cfi, output_cfi_directive,
32337         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
32338         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
32339         Ditto.
32340         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
32341         * print-rtl.c (print_rtx): Ditto.
32342
32343 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32344
32345         PR middle-end/42694
32346         * builtins.c (expand_builtin_pow_root): New function to expand pow
32347         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
32348         series of sqrt and cbrt calls under -ffast-math.
32349         (expand_builtin_pow): Call it.
32350
32351 2010-04-14  Michael Matz  <matz@suse.de>
32352
32353         PR tree-optimization/42963
32354         * tree-cfg.c (touched_switch_bbs): New static variable.
32355         (group_case_labels_stmt): New function broken out from ...
32356         (group_case_labels): ... here, use the above.
32357         (start_recording_case_labels): Allocate touched_switch_bbs.
32358         (end_recording_case_labels): Deallocate it, call
32359         group_case_labels_stmt.
32360         (gimple_redirect_edge_and_branch): Remember index of affected BB.
32361
32362 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32363
32364         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
32365         from insn template.
32366
32367 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32368
32369         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
32370
32371 2010-04-13  Jan Hubicka  <jh@suse.cz>
32372
32373         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32374         of optimized out static functions.
32375         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32376         cost computation.  Also sanity check for overflows.
32377         (update_caller_keys): Update cgraph_edge_badness call; properly
32378         update fibheap and sanity check that it is up to date.
32379         (add_new_edges_to_heap): Update cgraph_edge_badness.
32380         (cgraph_decide_inlining_of_small_function): Likewise;
32381         add sanity checking that badness in heap is up to date;
32382         improve dumping of reason; Update badness of calls to the
32383         offline copy of function currently inlined; dump badness
32384         of functions not inlined because of unit growth limits.
32385
32386 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32387
32388         PR middle-end/32628
32389         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32390         because of sign-extension change when converting to sizetype here...
32391         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32392
32393         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32394         the folding to constants.  Remove redundant final conversion.
32395         (fold_binary) <associate>: Do not associate if the re-association of
32396         constants alone overflows.
32397         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32398         to the end of the list.
32399         (multiple_of_p) <COND_EXPR>: New case.
32400
32401 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32402
32403         * opt-functions.awk (opt_sanitized_name): New.
32404         (opt_enum): New.
32405         * optc-gen.awk: Use it
32406         * opth-gen.awk: Use it.
32407
32408 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32409
32410         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32411         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32412         children.  Call replace_uses_with_default_def_ssa_name to handle
32413         SSA_NAES on lhs.
32414
32415 2010-04-13  Michael Matz  <matz@suse.de>
32416
32417         PR middle-end/43730
32418         * builtins.c (expand_builtin_interclass_mathfn): Also create
32419         a register if the predicate doesn't match.
32420
32421 2010-04-13  Diego Novillo  <dnovillo@google.com>
32422
32423         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32424         * c-pch.c: Include timevar.h.
32425         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32426         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32427         * ggc-common.c: Include timevar.h.
32428         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32429         * timevar.def (TV_PCH_SAVE): Define.
32430         (TV_PCH_CPP_SAVE): Define.
32431         (TV_PCH_PTR_REALLOC): Define.
32432         (TV_PCH_PTR_SORT): Define.
32433         (TV_PCH_RESTORE): Define.
32434         (TV_PCH_CPP_RESTORE): Define.
32435
32436 2010-04-13  Michael Matz  <matz@suse.de>
32437
32438         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32439         into MINUS_EXPRs.
32440         (can_reassociate_p): New function.
32441         (break_up_subtract_bb, reassociate_bb): Use it.
32442
32443 2010-04-13  Richard Guenther  <rguenther@suse.de>
32444
32445         PR bootstrap/43737
32446         * builtins.c (c_readstr): Fix assert.
32447
32448 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32449
32450         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32451         when generating cltd insn.
32452
32453         (*ashl<mode>3_1): Remove special handling for register operand 2.
32454         (*ashlsi3_1_zext): Ditto.
32455         (*ashlhi3_1): Ditto.
32456         (*ashlhi3_1_lea): Ditto.
32457         (*ashlqi3_1): Ditto.
32458         (*ashlqi3_1_lea): Ditto.
32459         (*<shiftrt_insn><mode>3_1): Ditto.
32460         (*<shiftrt_insn>si3_1_zext): Ditto.
32461         (*<shiftrt_insn>qi3_1_slp): Ditto.
32462         (*<rotate_insn><mode>3_1): Ditto.
32463         (*<rotate_insn>si3_1_zext): Ditto.
32464         (*<rotate_insn>qi3_1_slp): Ditto.
32465
32466 2010-04-13  Richard Guenther  <rguenther@suse.de>
32467
32468         * tree-ssa-structalias.c (callused_id): Remove.
32469         (call_stmt_vars): New.
32470         (get_call_vi): Likewise.
32471         (lookup_call_use_vi): Likewise.
32472         (lookup_call_clobber_vi): Likewise.
32473         (get_call_use_vi): Likewise.
32474         (get_call_clobber_vi): Likewise.
32475         (make_transitive_closure_constraints): Likewise.
32476         (handle_const_call): Adjust to do per-call call-used handling.
32477         (handle_pure_call): Likewise.
32478         (find_what_var_points_to): Remove general callused handling.
32479         (init_base_vars): Likewise.
32480         (init_alias_vars): Initialize call_stmt_vars.
32481         (compute_points_to_sets): Process call-used and call-clobbered
32482         vars for call statements.
32483         (delete_points_to_sets): Free call_stmt_vars.
32484
32485 2010-04-13  Richard Guenther  <rguenther@suse.de>
32486
32487         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32488         Only add RW dependence for dependence distance zero.
32489         Adjust maximal vectorization factor according to dependences.
32490         Move alignment handling ...
32491         (vect_find_same_alignment_drs): ... here.  New function.
32492         (vect_analyze_data_ref_dependences): Adjust.
32493         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32494         (vect_analyze_data_refs): Adjust minimal vectorization factor
32495         according to data references.
32496         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32497         dependences before determining the vectorization factor.
32498         Analyze alignment after determining the vectorization factor.
32499         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32500         dependences before alignment.
32501         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32502         Adjust prototype.
32503         (vect_analyze_data_refs): Likewise.
32504         (MAX_VECTORIZATION_FACTOR): New define.
32505
32506 2010-04-13  Duncan Sands  <baldrick@free.fr>
32507
32508         * except.h (lang_eh_type_covers): Remove.
32509         * except.c (lang_eh_type_covers): Likewise.
32510
32511 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32512             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32513
32514         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32515         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32516         UNITS_PER_LONG where it is ABI relevant.
32517         (s390_return_addr_rtx): Likewise.
32518         (s390_back_chain_rtx): Likewise.
32519         (s390_frame_area): Likewise.
32520         (s390_frame_info): Likewise.
32521         (s390_initial_elimination_offset): Likewise.
32522         (save_gprs): Likewise.
32523         (s390_emit_prologue): Likewise.
32524         (s390_emit_epilogue): Likewise.
32525         (s390_function_arg_advance): Likewise.
32526         (s390_function_arg): Likewise.
32527         (s390_va_start): Likewise.
32528         (s390_gimplify_va_arg): Likewise.
32529         (s390_function_profiler): Likewise.
32530         (s390_optimize_prologue): Likewise.
32531         (s390_rtx_costs): Likewise.
32532         (s390_secondary_reload): Likewise.
32533         (s390_promote_function_mode): Likewise.
32534         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32535         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32536         registers available.
32537         (s390_unwind_word_mode): New function.
32538         (s390_function_value): Split 64 bit values into register pair if
32539         used as return value.
32540         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32541         function call parameters.  Handle parallels.
32542         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32543         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32544         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32545         (s390_expand_setmem): Remove unused variable src_addr.
32546         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32547         deal with 64 bit registers.
32548         * config/s390/s390.h: Define __zarch__ predefined macro.
32549         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32550         (UNITS_PER_LONG): New macro.
32551         * libjava/include/s390-signal.h: Define extended ucontext
32552         structure containing the upper halfs of the 64 bit registers.
32553
32554 2010-04-13  Simon Baldwin  <simonb@google.com>
32555
32556         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32557
32558 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32559
32560         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32561         rvalue on the RHS if the LHS is of a non-renamable type.
32562         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32563
32564 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32565
32566         * gcc.c (cc1_options): Handle -iplugindir before processing
32567         the cc1 spec. Only add -iplugindir once.
32568         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32569         found.
32570         * common.opt (iplugindir): Remove `Separate' property, initialize.
32571         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32572         option.
32573         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32574         (distclean): Remove plugin dir.
32575         * doc/invoke.texi: Document -iplugindir.
32576
32577 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32578
32579         * doc/plugins.texi (Loading Plugins): Document short
32580         -fplugin=foo option.
32581         (Plugin API): Mention default_plugin_dir_name function.
32582
32583         * gcc.c (find_file_spec_function): Add new declaration.
32584         (static_spec_func): Use it for "find-file".
32585         (find_file_spec_function): Add new function.
32586         (cc1_options): Add -iplugindir option if -fplugin* options found.
32587
32588         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32589
32590         * plugin.c (add_new_plugin): Updated comment, and handle short
32591         plugin name.
32592         (default_plugin_dir_name): Added new function.
32593
32594         * common.opt (iplugindir): New option to set the plugin directory.
32595
32596 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32597
32598         * config/i386/i386.md (any_rotate): New code iterator.
32599         (rotate_insn): New code attribute.
32600         (rotate): Ditto.
32601         (SWIM124): New mode iterator.
32602         (<rotate_insn>ti3): New expander.
32603         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32604         any_rotate code iterator.
32605         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32606         using any_rotate code iterator and SWIM124 mode iterator.
32607         (ix86_rotlti3): New insn_and_split pattern.
32608         (ix86_rotrti3): Ditto.
32609         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32610         ix86_rotl{di,ti}3 patterns.
32611         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32612         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32613         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32614         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32615         code iterator and SWI mode iterator.
32616         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32617         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32618         code iterator.
32619         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32620         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32621         (bswap rotatert splitter): Add splitter.
32622         (bswap splitter): Macroize splitter using any_rotate code iterator.
32623         Add insn predicate to split only for TARGET_USE_XCHGB or when
32624         optimizing function for size.
32625
32626 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32627
32628         * config/pa/pa.c (emit_move_sequence): Remove use of
32629         deleted variable flag_argument_noalias.
32630
32631 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32632
32633         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32634         configurations.
32635         Add to unsupported targets list.
32636         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32637         sparc*-sun-solaris2.[567]* from target lists.
32638         * configure: Regenerate.
32639         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32640         removal.
32641         Remove Solaris 7 patch references.
32642         (Specific, sparc-sun-solaris2.7): Removed.
32643         (sparc-sun-solaris2*): Update Solaris 7 example.
32644         (sparc64-*-solaris2*): Likewise.
32645
32646 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32647
32648         * config.build (alpha*-dec-osf4*): Remove.
32649         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32650         of obsolete configurations.
32651         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32652         support.
32653         * config/alpha/t-osf4: Renamed to ...
32654         * config/alpha/t-osf5: ... this.
32655         * config/alpha/osf.h: Renamed to ...
32656         * config/alpha/osf5.h: ... this.
32657         Merged old osf5.h contents.
32658         Update comments.
32659         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32660         (EXTRA_SPECS): Removed.
32661         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32662         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32663         Document that.
32664
32665 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32666
32667         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32668
32669 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32670
32671         PR/43702
32672         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32673         __thiscall convention.
32674
32675 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32676
32677         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32678         orig_base.
32679         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32680
32681 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32682
32683         * function.c (assign_parms_initialize_all): Add unused attribute
32684         to fntype.
32685
32686 2010-04-12  Richard Guenther  <rguenther@suse.de>
32687
32688         * gsstruct.def (GSS_CALL): New.
32689         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32690         * gimple.h: Include tree-ssa-alias.h.
32691         (struct gimple_statement_call): New.
32692         (union gimple_statement_struct_d): Add gimple_call member.
32693         (gimple_call_reset_alias_info): Declare.
32694         (gimple_call_use_set): New function.
32695         (gimple_call_clobber_set): Likewise.
32696         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32697         * gimple.c (gimple_call_reset_alias_info): New function.
32698         (gimple_build_call_1): Call it.
32699         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32700         * tree-inline.c (remap_gimple_stmt): Likewise.
32701         (expand_call_inline): Remove callused handling.
32702         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32703         * tree-dfa.c (dump_variable): Likewise.
32704         * tree-parloops.c (parallelize_loops): Likewise.
32705         * tree-ssa.c (init_tree_ssa): Likewise.
32706         (delete_tree_ssa): Likewise.
32707         * tree-flow-inline.h (is_call_used): Remove.
32708         * tree-flow.h (struct gimple_df): Remove callused member.
32709         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32710         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32711         (ref_maybe_used_by_call_p_1): Simplify.
32712         (call_may_clobber_ref_p_1): Likewise.
32713         * tree-ssa-structalias.c (compute_points_to_sets): Set
32714         the call stmt used and clobbered sets.
32715         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32716         (find_tail_calls): Verify the tail call.
32717
32718 2010-04-12  Richard Guenther  <rguenther@suse.de>
32719
32720         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32721         single-iteration always-inline inlining.
32722         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32723         (cgraph_decide_inlining): Do not handle always-inline specially.
32724         (try_inline): Remove always-inline cycle detection special case.
32725         Do not recurse on always-inlines.
32726         (cgraph_early_inlining): Do not iterate if not optimizing.
32727         (cgraph_gate_early_inlining): remove.
32728         (pass_early_inline): Run unconditionally.
32729         (gate_cgraph_decide_inlining): New function.
32730         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32731         not inlining or optimizing.
32732         (cgraph_decide_inlining_of_small_functions): Also consider
32733         always-inline functions.
32734         (cgraph_default_inline_p): Return true for nodes which should
32735         disregard inline limits.
32736         (estimate_function_body_sizes): Assume zero size and time for
32737         nodes which are marked as disregarding inline limits.
32738         (cgraph_decide_recursive_inlining): Do not perform recursive
32739         inlining on always-inline nodes.
32740
32741 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32742
32743         PR bootstrap/43699
32744         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32745         for exprs satisfying handled_component_p.
32746
32747 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32748
32749         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32750         non-constant aggregate elements.
32751
32752         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32753         is a real initialization.
32754
32755 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32756
32757         PR c/36774
32758         * c-decl.c (start_function): Move forward check for nested function.
32759
32760 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32761
32762         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32763         * config/sh/sh.c: Include reload.h.
32764         (sh_legitimize_reload_address): New.
32765         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32766         sh_legitimize_reload_address.
32767
32768 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32769
32770         * config/sh/sh.md (*movqi_pop): New insn pattern.
32771         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32772
32773 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32774
32775         * config/i386/i386.md (any_shiftrt): New code iterator.
32776         (shiftrt_insn): New code attribute.
32777         (shiftrt): Ditto.
32778         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32779         using any_shiftrt code iterator.
32780         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32781         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32782         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32783         pattern from corresponding peephole2 patterns.
32784         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32785         using any_shiftrt code iterator.
32786         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32787         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32788         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32789         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32790         *{ashr,lshr}<mode>3_cmp_zext.
32791         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32792
32793 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32794
32795         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32796         scratch register.
32797         (*lshr<mode>3_cconly): Ditto.
32798
32799 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32800
32801         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32802         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32803         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32804         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32805         DWI mode iterator.
32806         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32807         from corresponding peephole2 patterns.
32808         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32809         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32810         and *lshrdi3_1_rex64 using SWI mode iterator.
32811         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32812         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32813         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32814         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32815         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32816         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32817         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32818         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32819         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32820         SWI mode iterator.
32821
32822 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32823
32824         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32825         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32826         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32827         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32828         DWI mode iterator.
32829         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32830         from corresponding peephole2 patterns.
32831         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32832         (ashrsi3_cvt): Rename from ashrsi3_31.
32833         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32834         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32835         and x86_64_shift_adj_3 using SWI48 mode iterator.
32836         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32837         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32838         and *ashrdi3_1_rex64 using SWI mode iterator.
32839         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32840         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32841         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32842         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32843         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32844         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32845         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32846         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32847         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32848         SWI mode iterator.
32849         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
32850         * config/i386/i386.c (ix86_split_ashr): Update for renamed
32851         x86_shift<mode>_adj_3 expanders.
32852
32853 2010-04-10  Wei Guozhi  <carrot@google.com>
32854
32855         PR target/42601
32856         * config/arm/arm.c (arm_pic_static_addr): New function.
32857         (legitimize_pic_address): Call arm_pic_static_addr when it detects
32858         a static symbol.
32859         (arm_output_addr_const_extra): Output expression for new pattern.
32860         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
32861
32862 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
32863
32864         * ira-costs.c (record_reg_classes): Ignore alternatives that are
32865         not enabled.
32866
32867         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
32868         * web.c: Include "insn-config.h" and "recog.h".
32869         (union_match_dups): New function.
32870         (web_main): Call it.
32871         (union_defs): Don't try to recognize match_dups.
32872
32873         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
32874         if doing so would replace the entire pattern.
32875
32876 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32877
32878         PR target/43707
32879         PR target/43709
32880         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
32881         and splitter pattern.  Change splitter operand 1 predicate to
32882         nonmemory_operand.
32883
32884 2010-04-09  Martin Jambor  <mjambor@suse.cz>
32885
32886         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
32887         lattices are addresses of CONST_DECLs with the same initial value.
32888         (ipcp_print_all_lattices): Print values of CONST_DECLs.
32889         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
32890
32891 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
32892             Bernd Schmidt  <bernds@codesourcery.com>
32893
32894         * loop-invariant.c (replace_uses): New static function.
32895         (move_invariant_reg): Use it to ensure we can replace the uses.
32896
32897 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
32898
32899         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
32900         function template.
32901         (picochip_override_options): Enable section anchors only above -O1.
32902         (picochip_reorg): Fixed a couple of build warnings.
32903
32904 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32905
32906         * configure.ac (plugin -rdynamic test): Log result.
32907         * configure: Regenerate.
32908         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
32909         (RDYNAMIC_SPEC): Define.
32910         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
32911
32912 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32913
32914         * configure.ac: Determine Sun ld version numbers.
32915         (comdat_group): Restrict GNU ld version checks to gld.
32916         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
32917         (enable_comdat): Support --enable-comdat.
32918         * configure: Regenerate.
32919         * doc/install.texi (Configuration): Document --enable-comdat.
32920
32921 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32922
32923         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
32924         * config/sol2-gld.h: ... here.
32925         * config.gcc (sparc*-*-solaris2*): Reflect this.
32926         (i[34567]86-*-solaris2*): Use it.
32927
32928 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
32929
32930         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
32931         setup_clocks_p.
32932         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
32933
32934 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32935
32936         PR 42965
32937         * diagnostic.c (diagnostic_initialize): Initialize
32938         some_warnings_are_errors.
32939         (diagnostic_finish): New.
32940         (diagnostic_action_after_output): Call it before exiting.
32941         (diagnostic_report_diagnostic): Do not print message here. Set
32942         some_warnings_are_errors.
32943         * diagnostic.h (diagnostic_context): Delete
32944         issue_warnings_are_errors_message. Add some_warnings_are_errors.
32945         (diagnostic_finish): Declare.
32946         * toplev.c (toplev_main): Call it before exit.
32947
32948 2010-04-09  Jason Merrill  <jason@redhat.com>
32949
32950         PR c++/42623
32951         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
32952         for incomplete type.
32953
32954         PR c++/41788
32955         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
32956         based on a warning flag.
32957
32958 2010-04-09  Richard Guenther  <rguenther@suse.de>
32959
32960         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
32961
32962 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
32963
32964         PR bootstrap/43684
32965         * varasm.c (default_assemble_visibility): Wrap vars that are
32966         set, but unused, by targets without GAS.
32967         * config/rs6000/rs6000.c (paired_emit_vector_compare):
32968         Remove set, but unused, vars.
32969         (rs6000_legitimize_tls_address): Likewise.
32970         (altivec_expand_dst_builtin): Likewise.
32971         * config/darwin.c (machopic_classify_symbol): Likewise.
32972         (machopic_indirection_name): Likewise.
32973
32974 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32975
32976         * config/i386/i386.md (DWI): New mode iterator.
32977         (S): New mode attribute.
32978         (shift_operand): Ditto.
32979         (shift_immediate_operand): Ditto.
32980         (ashl_input_operand): Ditto.
32981         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
32982         using SDWIM mode iterator.
32983         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32984         pattern from *ashl{di,ti}3_1 and corresponding splitters using
32985         DWI mode iterator.
32986         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
32987         from corresponding peephole2 patterns.
32988         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
32989         and x86_64_shift_adj_1 using SWI48 mode iterator.
32990         (x86_shift<mode>_adj_2): Ditto.
32991         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
32992         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
32993         using SWI48 mode iterator.
32994         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
32995         *ashldi3_cmp_rex64 using SWI mode iterator.
32996         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
32997         *ashldi3_cconly_rex64 using SWI mode iterator.
32998         * config/i386/i386.c (ix86_split_ashl): Update for renamed
32999         x86_shift<mode>_adj_{1,2}.
33000         (ix86_split_ashr): Ditto.
33001         (ix86_split_lshr): Ditto.
33002
33003 2010-04-09  Richard Guenther  <rguenther@suse.de>
33004
33005         * target.h (builtin_conversion): Pass in input and output types.
33006         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33007         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33008         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33009         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33010
33011         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33012         Handle AVX modes.
33013         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33014
33015 2010-04-09  Richard Guenther  <rguenther@suse.de>
33016
33017         PR target/43152
33018         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33019
33020 2010-04-09  Richard Guenther  <rguenther@suse.de>
33021
33022         * tree-vectorizer.h (struct _stmt_vec_info): Document
33023         that vectype is the type of the LHS.
33024         (supportable_widening_operation, supportable_narrowing_operation):
33025         Get both input and output vector types as arguments.
33026         (vect_is_simple_use_1): Declare.
33027         (get_same_sized_vectype): Likewise.
33028         * tree-vect-loop.c (vect_determine_vectorization_factor):
33029         Set STMT_VINFO_VECTYPE to the vector type of the def.
33030         (vectorizable_reduction): Adjust.
33031         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33032         Adjust.  Specify the output vector type.
33033         (vect_pattern_recog_1): Adjust.
33034         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33035         (vectorizable_call): Adjust.
33036         (vectorizable_conversion): Likewise.
33037         (vectorizable_operation): Likewise.
33038         (vectorizable_type_demotion): Likewise.
33039         (vectorizable_type_promotion): Likewise.
33040         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33041         the def.
33042         (vect_is_simple_use_1): New function.
33043         (supportable_widening_operation): Get both input and output
33044         vector types.
33045         (supportable_narrowing_operation): Likewise.
33046         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33047
33048 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33049
33050         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33051         __thiscall and _thiscall as predefined macros.
33052         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33053         thiscall attribute handling.
33054         (ix86_comp_type_attributes): Likewise.
33055         (ix86_function_regparm): Likewise.
33056         (ix86_return_pops_args): Likewise.
33057         (init_cumulative_args): Likewise.
33058         (find_drap_reg): Likewise.
33059         (ix86_static_chain): Likewise.
33060         (x86_this_parameter): Likewise.
33061         (x86_output_mi_thunk): Likewise.
33062         (ix86_attribute_table): Add description for thiscall attribute.
33063         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33064         * doc/extend.texi: Add documentation for thiscall.
33065
33066 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33067
33068         PR c++/28584
33069         * c.opt (Wint-to-pointer-cast): Available in C++.
33070         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33071
33072 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33073
33074         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33075         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33076         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33077         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33078         function type instead.  Reorder and simplify checks.
33079
33080         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33081
33082 2010-04-08  Jing Yu  <jingyu@google.com>
33083             Zdenek Dvorak  <ook@ucw.cz>
33084
33085         PR tree-optimization/42720
33086         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33087         loop unswitch conditions here from ...
33088         (tree_unswitch_single_loop): ... here.
33089
33090 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33091
33092         * tree-if-conv.c: Fix comments and simplify logic.
33093
33094 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33095
33096         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33097         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33098         (main_tree_if_conversion): Update call to tree_if_conversion.
33099
33100 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33101
33102         PR 42485
33103         * doc/invoke.texi (-b,-V): Delete.
33104         * doc/tm.texi: Do not mention -b.
33105         * gcc.c (display_help): Delete -b and -V.
33106         (process_command): Delete -b and -V.
33107         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33108
33109 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33110             Wolfgang Gellerich  <gellerich@de.ibm.com>
33111
33112         Implement target hook for loop unrolling
33113         * target.h (loop_unroll_adjust): Add a new target hook function.
33114         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33115         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33116         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33117         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33118         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33119         target hook.
33120         (decide_unroll_stupid): Likewise.
33121
33122 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33123
33124         PR target/43643
33125         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33126
33127 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33128
33129         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33130         (Specific, *-*-solaris2*): Likewise.
33131         Don't prefer Sun as over GNU as.
33132
33133 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33134
33135         * config/s390/s390.c (override_options): Adjust the z10 defaults
33136         for max-unroll-times, max-completely-peeled-insns
33137         and max-completely-peel-times.
33138
33139 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33140
33141         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33142         instructions for z10.
33143         (s390_expand_setmem): Likewise.
33144         (s390_expand_cmpmem): Likewise.
33145
33146 2010-04-08  Richard Guenther  <rguenther@suse.de>
33147
33148         PR tree-optimization/43679
33149         * tree-ssa-pre.c (eliminate): Only propagate copies.
33150
33151 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33152
33153         PR bootstrap/43681
33154         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33155         set but not used variable warning.
33156
33157 2010-04-08  Wei Guozhi  <carrot@google.com>
33158
33159         PR target/41653
33160         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33161         (arm_size_rtx_costs): Call the new function when optimized for size.
33162
33163 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33164
33165         PR debug/43670
33166         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33167         op0 is not a MEM, just return NULL instead of assertion
33168         failure.
33169         (discover_nonconstant_array_refs): Don't walk debug stmts.
33170
33171 2010-04-08  Doug Kwan  <dougkwan@google.com>
33172
33173         * configure.ac: Recognize gold and do not use its version number
33174         to test ld features.
33175         * configure: Regenerate.
33176
33177 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33178
33179         PR middle-end/40815
33180         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33181         (negate_value): Move code to push elements to broken_up_substracts ...
33182         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33183         negative pair to plus_negates.
33184         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33185
33186 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33187
33188         * doc/install.texi (Configuration): Move description of
33189         --enable-lto, --with-libelf*, --enable-gold from Java section to
33190         general section.
33191
33192         * doc/generic.texi (Working with declarations)
33193         (Function Properties, C and C++ Trees): Fix typos.
33194         * doc/sourcebuild.texi (Top Level): Likewise.
33195
33196 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33197
33198         PR c/18624
33199         * tree.h (DECL_READ_P): Define.
33200         (struct tree_decl_common): Add decl_read_flag.
33201         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33202         a set but not used warning.
33203         (merge_decls): Merge DECL_READ_P flag.
33204         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
33205         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
33206         * c-common.c (handle_used_attribute, handle_unused_attribute):
33207         Likewise.
33208         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
33209         New prototypes.
33210         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
33211         New functions.
33212         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
33213         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
33214         c_parser_binary_expression, c_parser_cast_expression,
33215         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
33216         Call default_function_array_read_conversion instead of
33217         default_function_array_conversion where needed.
33218         (c_parser_unary_expression, c_parser_conditional_expression,
33219         c_parser_postfix_expression_after_primary, c_parser_initelt):
33220         Likewise.  Call mark_exp_read where needed.
33221         (c_parser_statement_after_labels, c_parser_asm_operands,
33222         c_parser_typeof_specifier, c_parser_sizeof_expression,
33223         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
33224         where needed.
33225         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
33226         New.
33227         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
33228         (warn_unused_but_set_parameter): Default to warn_unused
33229         && extra_warnings.
33230         * doc/invoke.texi: Document -Wunused-but-set-variable and
33231         -Wunused-but-set-parameter.
33232
33233         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
33234         used count variable.
33235         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
33236         when operandN variables aren't used in the body of the expander
33237         or splitter.
33238         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
33239         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
33240         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
33241         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
33242         FOR_EACH_IMM_USE_ON_STMT): Likewise.
33243         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
33244         * tree.c (PROCESS_ARG): Likewise.
33245
33246 2010-04-07  Simon Baldwin  <simonb@google.com>
33247
33248         * diagnostic.h (diagnostic_override_option_index): New macro to
33249         set a diagnostic's option_index.
33250         * c-tree.h (c_cpp_error): Add warning reason argument.
33251         * opts.c (_warning_as_error_callback): New.
33252         (register_warning_as_error_callback): Store callback for
33253         warnings enabled via enable_warning_as_error.
33254         (enable_warning_as_error): Call callback, minor code tidy.
33255         * opts.h (register_warning_as_error_callback): Declare.
33256         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
33257         response to -Werror=.
33258         (c_common_init_options): Register warning_as_error_callback in opts.c.
33259         * common.opt: Add -Wno-cpp option.
33260         * c-common.c (struct reason_option_codes_t): Map cpp warning
33261         reason codes to gcc option indexes.
33262         * (c_option_controlling_cpp_error): New function, lookup the gcc
33263         option index for a cpp warning reason code.
33264         * (c_cpp_error): Add warning reason argument, call
33265         c_option_controlling_cpp_error for diagnostic_override_option_index.
33266         * doc/invoke.texi: Document -Wno-cpp.
33267
33268 2010-04-07  Richard Guenther  <rguenther@suse.de>
33269
33270         * ipa-reference.c (mark_load): Use get_base_address.
33271         (mark_store): Likewise.
33272
33273         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
33274         inserting GIMPLE_NOPs into the IL.
33275         * tree-ssa-structalias.c (get_constraint_for_component_ref):
33276         Explicitly strip handled components and indirect references.
33277
33278         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
33279         folding address expressions.
33280         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
33281         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
33282         operand_equal_p to compare decls.
33283         (ptr_deref_may_alias_decl_p): Likewise.
33284         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
33285         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
33286         Handle reversed comparison ops.
33287         * tree-sra.c (asm_visit_addr): Use get_base_address.
33288         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
33289         * ipa-reference.c (mark_address): Use get_base_address.
33290
33291 2010-04-07  Richard Guenther  <rguenther@suse.de>
33292
33293         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
33294         Propagate constants everywhere.
33295
33296 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33297
33298         PR debug/43516
33299         * tree.c (MAX_INT_CACHED_PREC): Define.
33300         (nonstandard_integer_type_cache): New array.
33301         (build_nonstandard_integer_type): Cache results for precision
33302         <= MAX_INT_CACHED_PREC.
33303
33304 2010-04-07  Richard Guenther  <rguenther@suse.de>
33305
33306         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
33307         -fargument-noalias-global, -fargument-noalias-anything): Remove.
33308         * common.opt: Likewise.
33309         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
33310         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
33311         (nonoverlapping_memrefs_p): Likewise.
33312         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
33313         * opts.c (common_handle_option): Handle OPT_fargument_alias,
33314         OPT_fargument_noalias, OPT_fargument_noalias_anything and
33315         OPT_fargument_noalias_global for backward compatibility.
33316
33317 2010-04-07  Richard Guenther  <rguenther@suse.de>
33318
33319         PR tree-optimization/43270
33320         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
33321         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
33322         * tree-ssa-pre.c (phi_translate_1): Adjust.
33323         (fully_constant_expression): Split out vn_reference handling to ...
33324         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
33325         Fold reads from constant strings.
33326         (vn_reference_lookup): Handle fully constant references.
33327         (vn_reference_lookup_pieces): Likewise.
33328         * Makefile.in (expmed.o-warn): Add -Wno-error.
33329
33330 2010-04-07  Martin Jambor  <mjambor@suse.cz>
33331
33332         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
33333
33334 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
33335
33336         PR driver/41594
33337         * gcc.c: Add -static-libstdc++ to list of recognized options.
33338
33339 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33340
33341         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
33342
33343 2010-04-07  Richard Guenther  <rguenther@suse.de>
33344
33345         PR middle-end/42617
33346         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
33347         bases build simple mem attributes to retain points-to information.
33348
33349 2010-04-07  Richard Guenther  <rguenther@suse.de>
33350
33351         PR middle-end/42617
33352         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
33353         preserve points-to related information.
33354
33355 2010-04-07  Richard Guenther  <rguenther@suse.de>
33356
33357         PR middle-end/42617
33358         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
33359         discard plain indirect references.
33360         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
33361         * tree.c (tree_nop_conversion): Likewise.
33362
33363 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
33364
33365         PR debug/43628
33366         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
33367
33368 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
33369
33370         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33371         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33372
33373 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33374
33375         * tree-if-conv.c: Fix indentation and comments.
33376
33377 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33378
33379         * tree-if-conv.c: Sort static functions in topological order.
33380
33381 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33382
33383         * tree-if-conv.c: Fix indentation and comments.
33384
33385 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33386
33387         PR middle-end/43519
33388         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33389         lang_hooks.types.type_for_size instead of
33390         build_nonstandard_integer_type.
33391         When converting an unsigned type to signed, double its precision.
33392         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33393         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33394         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33395         use lb <= ub.
33396
33397 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33398
33399         PR middle-end/43519
33400         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33401         POINTER_PLUS_EXPR for pointer types.
33402
33403 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33404
33405         PR middle-end/43519
33406         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33407         * graphite-clast-to-gimple.c: Include langhooks.h.
33408         (max_signed_precision_type): New.
33409         (max_precision_type): Takes two types as arguments.
33410         (precision_for_value): New.
33411         (precision_for_interval): New.
33412         (gcc_type_for_interval): New.
33413         (gcc_type_for_value): New.
33414         (gcc_type_for_clast_term): New.
33415         (gcc_type_for_clast_red): New.
33416         (gcc_type_for_clast_bin): New.
33417         (gcc_type_for_clast_expr): Split up into several functions.
33418         (gcc_type_for_clast_eq): Rewritten.
33419         (compute_bounds_for_level): New.
33420         (compute_type_for_level_1): New.
33421         (compute_type_for_level): New.
33422         (gcc_type_for_cloog_iv): Removed.
33423         (gcc_type_for_iv_of_clast_loop): Rewritten.
33424         (graphite_create_new_loop): Compute the lower and upper bound types
33425         with gcc_type_for_clast_expr.
33426         (graphite_create_new_loop_guard): Same.
33427         (find_cloog_iv_in_expr): Removed.
33428         (compute_cloog_iv_types_1): Removed.
33429         (compute_cloog_iv_types): Removed.
33430         (gloog): Do not call compute_cloog_iv_types.
33431         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33432         GBB_CLOOG_IV_TYPES.
33433         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33434         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33435         (GBB_CLOOG_IV_TYPES): Removed.
33436
33437 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33438
33439         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33440         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33441         (detect_commutative_reduction): Same.
33442
33443 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33444
33445         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33446         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33447         argument.
33448         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33449         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33450         (rewrite_commutative_reductions_out_of_ssa): Same.
33451         * passes.c (execute_function_todo): Call verify_ssa for every pass
33452         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33453         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33454         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33455         with an extra argument.
33456         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33457         verify_ssa only when the extra argument is true.
33458         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33459         with an extra argument.
33460         (tree_transform_and_unroll_loop): Same.
33461
33462 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33463
33464         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33465         for all the passes of the LNO having LOOP_CLOSED_SSA.
33466         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33467         * tree-loop-distribution.c (pass_loop_distribution): Same.
33468         * tree-pass.h (TODO_verify_loops): Removed.
33469         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33470         (pass_lim): Same.
33471         (pass_tree_unswitch): Same.
33472         (pass_predcom): Same.
33473         (pass_vectorize): Same.
33474         (pass_linear_transform): Same.
33475         (pass_graphite_transforms): Same.
33476         (pass_iv_canon): Same.
33477         (pass_complete_unroll): Same.
33478         (pass_complete_unrolli): Same.
33479         (pass_parallelize_loops): Same.
33480         (pass_loop_prefetch): Same.
33481         (pass_iv_optimize): Same.
33482
33483 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33484
33485         PR middle-end/32824
33486         * passes.c (init_optimization_passes): Move pass_lim before
33487         pass_copy_prop and pass_dce_loop.
33488
33489 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33490
33491         PR target/43667
33492         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33493         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33494         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33495         MULTI_* defines for 4 argument vpermil2p* builtins.
33496
33497 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33498
33499         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33500         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33501         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33502         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33503         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33504         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33505         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33506         Use x86_maybe_negate_const_int to output insn mnemonic.
33507         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33508         check from instruction predicate.  Update comments.
33509         * config/i386/sync.md (sync_add<mode>): Use
33510         x86_maybe_negate_const_int to output insn mnemonic.
33511
33512 2010-04-06  Jan Hubicka  <jh@suse.cz>
33513
33514         PR tree-optimization/42906
33515         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33516         IGNORE_SELF argument.  Set visited_control_parents for fully
33517         processed BBs.
33518         (find_obviously_necessary_stmts): Update call of
33519         mark_control_dependent_edges_necessary.
33520         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33521
33522 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33523
33524         * config/i386/i386.md: Remove comment about 'e' and 'E'
33525         operand modifier.
33526
33527 2010-04-06  Richard Guenther  <rguenther@suse.de>
33528
33529         PR tree-optimization/43627
33530         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33531         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33532         not varying.
33533
33534 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33535
33536         * BASE-VER: Change to 4.6.0.
33537
33538         PR target/43638
33539         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33540         handling.
33541
33542 2010-04-06  Richard Guenther  <rguenther@suse.de>
33543
33544         PR middle-end/43661
33545         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33546
33547 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33548
33549         * doc/invoke.texi (Optimize Options): Document that LTO
33550         won't remove object access purely due to incompatible
33551         declarations.
33552
33553 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33554
33555         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33556         Initialize variable.
33557
33558 2010-04-03  Richard Guenther  <rguenther@suse.de>
33559
33560         PR middle-end/42509
33561         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33562         require a non-NULL MEM_OFFSET.
33563
33564 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33565
33566         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33567         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33568         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33569         config/alpha/predicates.md, config/arm/arm.md,
33570         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33571         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33572         config/darwin9.h, config/darwin.c, config/darwin.h,
33573         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33574         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33575         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33576         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33577         config/mips/mips.md, config/mn10300/mn10300.c,
33578         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33579         config/rs6000/aix.h, config/rs6000/dfp.md,
33580         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33581         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33582         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33583         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33584         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33585         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33586         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33587         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33588         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33589         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33590         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33591         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33592         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33593         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33594         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33595         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33596         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33597         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33598         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33599         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33600         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33601         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33602         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33603         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33604         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33605         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33606         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33607         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33608         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33609         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33610         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33611         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33612         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33613         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33614         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33615         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33616
33617 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33618
33619         PR other/43620
33620         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33621         * aclocal.m4: Regenerate.
33622
33623 2010-04-02  Richard Guenther  <rguenther@suse.de>
33624
33625         PR tree-optimization/43629
33626         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33627         if we have seen a constant value.
33628
33629 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33630
33631         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33632
33633 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33634
33635         PR target/43469
33636         * arm.c (legitimize_tls_address): Adjust call to
33637         gen_tls_load_dot_plus_four.
33638         (arm_note_pic_base): New function.
33639         (arm_cannot_copy_insn_p): Use it.
33640         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33641         constraint.
33642
33643 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33644
33645         PR bootstrap/43531
33646
33647         Revert:
33648         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33649
33650         * Makefile.in ($(out_object_file)): Depend on
33651         gt-$(basename $(notdir $(out_file))).h.
33652
33653 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33654
33655         * config.gcc (lm32-*-rtems*): Add t-lm32.
33656
33657 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33658
33659         * config.gcc: Add lm32-*-rtems*.
33660         * config/lm32/rtems.h: New file.
33661
33662 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33663
33664         PR target/42609
33665         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33666
33667 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33668
33669         * dwarf2out.c (output_compilation_unit_header): For
33670         -gdwarf-4 use version 4 instead of version 3.
33671         (output_line_info): For version 4 and above emit additional
33672         maximum ops per insn header field.
33673         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33674
33675         * dwarf2out.c (is_c_family, is_java): Remove.
33676         (lower_bound_default): New function.
33677         (add_bound_info, gen_descr_array_type_die): Use it.
33678
33679 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33680
33681         PR debug/43325
33682         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33683         re-declaration when it happens in a function.
33684
33685 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33686
33687         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33688         (cgraph_remove_function_insertion_hook): Same.
33689         (cgraph_call_function_insertion_hooks): Same.
33690
33691 2010-04-01  Richard Guenther  <rguenther@suse.de>
33692
33693         PR middle-end/43614
33694         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33695         and TREE_THIS_VOLATILE.
33696         (copy_ref_info): Likewise.
33697         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33698         * tree.c (build6_stat): Ignore side-effects of all but arg5
33699         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33700         TARGET_MEM_REF.
33701
33702 2010-04-01  Richard Guenther  <rguenther@suse.de>
33703
33704         PR tree-optimization/43607
33705         * ipa-type-escape.c (check_call): Do not access non-existing
33706         arguments.
33707
33708 2010-04-01  Richard Guenther  <rguenther@suse.de>
33709
33710         PR middle-end/43602
33711         Revert
33712         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33713                     Jack Howarth  <howarth@bromo.med.uc.edu>
33714
33715         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33716         variables TLS.
33717
33718 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33719
33720         * doc/install.texi (Prerequisites): Document libelf usability on
33721         IRIX 5/6 and Solaris 2.
33722         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33723         Update GNU as, GNU ld requirements.
33724         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33725         Document Sun Studio compiler download.
33726         Update and simplify as, ld recommendations.
33727         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33728
33729 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33730
33731         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33732         with_tune_32 to pentium4.
33733
33734 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33735
33736         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33737
33738 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33739
33740         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33741         obsoletion, removal.
33742         Update IDO URL.
33743         Document GNU as requirement.
33744         Update configure requirements.
33745         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33746         Recomment IRIX 6.5.18+.
33747         Document IDF/IDL requirement.
33748         Document GNU as requirement.
33749         Document GNU ld bootstrap failure.
33750         Remove freeware.sgi.com reference.
33751
33752 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33753
33754         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33755         UNIX V4.0, V5.0 obsoletion, removal.
33756         Remove --with-gc=simple reference.
33757         Update VM requirements during bootstrap.
33758         Remove -oldas bootstrap description.
33759         Update binutils reference.
33760         Remove comparison failure note.
33761
33762 2010-03-31  Richard Guenther  <rguenther@suse.de>
33763             Zdenek Dvorak  <ook@ucw.cz>
33764             Sebastian Pop  <sebastian.pop@amd.com>
33765
33766         PR middle-end/43464
33767         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33768         with multiple arguments.
33769         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33770
33771 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33772
33773         * graphite-dependences.c (print_pddr): Call print_pdr with an
33774         extra argument.
33775         * graphite-poly.c (debug_pdr): Add an extra argument for the
33776         verbosity level.
33777         (print_pdr): Same.
33778         (print_pbb_domain): Same.
33779         (print_pbb): Same.
33780         (print_scop_context): Same.
33781         (print_scop): Same.
33782         (print_cloog): Same.
33783         (debug_pbb_domain): Same.
33784         (debug_pbb): Same.
33785         (print_pdrs): Same.
33786         (debug_pdrs): Same.
33787         (debug_scop_context): Same.
33788         (debug_scop): Same.
33789         (debug_cloog): Same.
33790         (print_scop_params): Same.
33791         (debug_scop_params): Same.
33792         (print_iteration_domain): Same.
33793         (print_iteration_domains): Same.
33794         (debug_iteration_domain): Same.
33795         (debug_iteration_domains): Same.
33796         (print_scattering_function): Same.
33797         (print_scattering_functions): Same.
33798         (debug_scattering_function): Same.
33799         (debug_scattering_functions): Same.
33800         * graphite-poly.h (debug_pdr): Update declaration.
33801         (print_pdr): Same.
33802         (print_pbb_domain): Same.
33803         (print_pbb): Same.
33804         (print_scop_context): Same.
33805         (print_scop): Same.
33806         (print_cloog): Same.
33807         (debug_pbb_domain): Same.
33808         (debug_pbb): Same.
33809         (print_pdrs): Same.
33810         (debug_pdrs): Same.
33811         (debug_scop_context): Same.
33812         (debug_scop): Same.
33813         (debug_cloog): Same.
33814         (print_scop_params): Same.
33815         (debug_scop_params): Same.
33816         (print_iteration_domain): Same.
33817         (print_iteration_domains): Same.
33818         (debug_iteration_domain): Same.
33819         (debug_iteration_domains): Same.
33820         (print_scattering_function): Same.
33821         (print_scattering_functions): Same.
33822         (debug_scattering_function): Same.
33823         (debug_scattering_functions): Same.
33824
33825 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33826
33827         * graphite-poly.c (print_scattering_function_1): New.
33828         (print_scattering_function): Call it.
33829         (print_scop_params): Remove spaces at the end of lines.
33830         (print_cloog): New.
33831         (debug_cloog): New.
33832         * graphite-poly.h (print_cloog): Declared.
33833         (debug_cloog): Declared.
33834
33835 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33836
33837         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33838         in loop->header.
33839         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33840         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33841         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33842         to switch between adding the IV bump in loop->latch or in loop->header.
33843
33844 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33845
33846         * graphite-poly.c (print_scattering_function): Pretty print following
33847         the scoplib format.
33848         (print_pdr): Same.
33849         (print_pbb_domain): Same.
33850         (dump_gbb_cases): Same.
33851         (dump_gbb_conditions): Same.
33852         (print_pdrs): Same.
33853         (print_pbb): Same.
33854         (print_scop_params): Same.
33855         (print_scop_context): Same.
33856         (print_scop): Same.
33857         (print_pbb_body): New.
33858         (lst_indent_to): New.
33859         (print_lst): Start new lines with a #.
33860         * graphite-poly.h (pbb_bb): New.
33861         (pbb_index): Use pbb_bb.
33862         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
33863         disjuncts.
33864         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
33865
33866 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33867
33868         * dwarf2out.c (size_of_die): For -gdwarf-4 use
33869         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
33870         and 0 instead of 1 for dw_val_class_flag.
33871         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
33872         dw_val_class_range_list, dw_val_class_loc_list,
33873         dw_val_class_lineptr and dw_val_class_macptr, use
33874         DW_FORM_flag_present for dw_val_class_flag and
33875         DW_FORM_exprloc for dw_val_class_loc.
33876         (output_die): For -gdwarf-4 print dw_val_class_loc
33877         size as uleb128 instead of 1 or 2 bytes and don't print
33878         anything for dw_val_class_flag.
33879
33880         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
33881         instead of cselib_lookup following by tweaking locs->setting_insn.
33882
33883         PR bootstrap/43596
33884         * cselib.c (cselib_process_insn): Clear cselib_current_insn
33885         even before returning from label, setjmp call or volatile asm
33886         handling.
33887
33888 2010-03-31  Richard Guenther  <rguenther@suse.de>
33889
33890         PR middle-end/43600
33891         * cgraphunit.c (cgraph_output_in_order): Do not allocate
33892         temporary data on stack.
33893
33894 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33895
33896         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
33897         (PUSHSECTION_ASM_OP): Remove.
33898         (POPSECTION_ASM_OP): Remove.
33899         (PUSHSECTION_FORMAT): Remove.
33900         * config/sol2.h (PUSHSECTION_FORMAT): Define.
33901         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
33902         * config/sol2.c (solaris_output_init_fini): Use it.
33903
33904 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33905
33906         PR 43574
33907         * opt-functions.awk (var_type_struct): Use signed char type
33908         for simple variables.
33909
33910 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33911
33912         * config/sol2.c: Include output.h.
33913         (solaris_assemble_visibility): New function.
33914         * config/t-sol2 (sol2.o): Add output.h dependency.
33915         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
33916         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
33917         Redefine.
33918
33919 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33920
33921         PR target/43580
33922         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
33923         V2SImode or XFmode on PRE_DEC.
33924
33925         PR debug/43557
33926         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
33927         BLKmode.
33928
33929 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33930
33931         PR 43562
33932         * reload.h (caller_save_initialized_p): Declare.
33933         * toplev.c (backend_init_target): Don't call
33934         init_caller_save but set caller_save_initialized_p to false.
33935         * caller-save.c (caller_save_initialized_p): Define.
33936         (init_caller_save): Check caller_save_initialized_p.
33937         * ira.c (ira): Call init_caller_save if flag_caller_saves.
33938
33939 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33940
33941         PR target/39048
33942         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
33943         and soft-fp/t-softfp to tmake_file.
33944         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
33945         (LIBGCC2_TF_CEXT): Define.
33946         (TF_SIZE): Define.
33947
33948 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
33949
33950         PR debug/42977
33951         * cselib.c (n_useless_values): Document handling of debug locs.
33952         (n_useless_debug_values, n_debug_values): New variables.
33953         (new_elt_loc_list): Don't add to debug values, keep count.
33954         (promote_debug_loc): New.
33955         (cselib_reset_table): Zero new variables.
33956         (entry_and_rtx_equal_p): Promote debug locs.
33957         (discard_useless_locs): Increment n_useless_debug_values for
33958         debug values.
33959         (remove_useless_values): Adjust n_useless_values and n_debug_values
33960         with n_useless_debug_values.
33961         (add_mem_for_addr): Promote debug locs.
33962         (cselib_lookup_mem): Likewise.
33963         (cselib_lookup_addr): Renamed to...
33964         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
33965         (cselib_log_lookup): ... this.  Turn into...
33966         (cselib_lookup_addr): ... new wrapper.
33967         (cselib_lookup_from_insn): New.
33968         (cselib_invalidate_regno): Increment n_useless_debug_values for
33969         debug values.
33970         (cselib_invalidate_mem): Likewise.
33971         (cselib_process_insn): Take n_deleted and n_debug_values into
33972         account to guard remove_useless_value call.
33973         (cselib_finish): Zero n_useless_debug_values.
33974         * cselib.h (cselib_lookup_from_insn): Declare.
33975         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
33976         (sched_analyze_2): Likewise.
33977
33978 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
33979
33980         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
33981         functions.
33982         (adjust_mems): Replace narrowing SUBREG of expression containing
33983         just PLUS, MINUS, MULT and ASHIFT of registers and constants
33984         with operations in the narrower mode.
33985
33986         PR debug/43593
33987         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
33988         regs_invalidated_by_call instead all call_used_reg_set registers.
33989
33990 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
33991
33992         PR middle-end/43430
33993         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
33994         pointer comparisons with types_compatible_p.
33995         * tree-vect-stmts.c (vectorizable_call): Same.
33996         (vectorizable_condition): Same.
33997
33998 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33999
34000         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34001         stack check if the mask would be zero.
34002
34003 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34004             Jack Howarth  <howarth@bromo.med.uc.edu>
34005
34006         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34007         variables TLS.
34008
34009 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34010
34011         PR other/25232
34012         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34013         and __unordtf2.
34014         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34015         Include ___unordxf2 and ___unordtf2.
34016         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34017         GCC_4.4.0 here.
34018
34019 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34020
34021         * config/lm32/t-lm32: New file.
34022         * config.gcc: Use the above file when targetting lm32.
34023
34024 2010-03-28  Duncan Sands  <baldrick@free.fr>
34025
34026         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34027
34028 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34029
34030         PR middle-end/43431
34031         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34032         Improve vectorization cost model diagnostic.
34033
34034 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34035
34036         PR middle-end/43436
34037         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34038         compute_data_dependences_for_loop returns false, early exit
34039         and output an extra diagnostic for the failed data reference
34040         analysis.
34041
34042 2010-03-29  Richard Guenther  <rguenther@suse.de>
34043
34044         PR tree-optimization/43560
34045         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34046         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34047
34048 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34049
34050         PR 43564
34051         * toplev.c (process_options): Set optimization_default_node
34052         and optimization_current_node.
34053         * opts.c (decode_options): Don't set optimization_default_node
34054         and optimization_current_node.
34055
34056 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34057
34058         * config/rtems.h: Abandon -qrtems_debug.
34059
34060 2010-03-28  Jan Hubicka  <jh@suse.cz>
34061
34062         PR tree-optimization/43505
34063         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34064         map should not be copied.
34065
34066 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34067
34068         PR middle-end/41674
34069         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34070         cdtors, set DECL_PRESERVE_P.
34071         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34072         should be preseved.
34073
34074 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34075
34076         PR tree-optimization/43528
34077         * stor-layout.c (place_field): Check that constant fits into
34078         unsigned HWI when skipping calculation of MS bitfield layout.
34079
34080 2010-03-27  Jan Hubicka  <jh@suse.cz>
34081
34082         PR middle-end/43391
34083         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34084         notice_global_symbol work.
34085
34086 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34087
34088         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34089         instead of dwarf2out_decl.
34090         (struct var_loc_node): Remove section_label field.
34091         (dwarf2out_function_decl): New function.
34092         (dwarf2out_var_location): Don't set section_label field.
34093         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34094
34095 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34096
34097         PR tree-optimization/43544
34098         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34099         First argument for builtin vectorized function hook is now a
34100         tree to be able to distinguish between machine specific and
34101         standard builtins.
34102         * targhooks.c (default_builtin_vectorized_function): Ditto.
34103         * targhooks.h (default_builtin_vectorized_function): Ditto.
34104         * target.h (struct gcc_target): Ditto.
34105         * tree-vect-stmts.c (vectorizable_function): Ditto.
34106         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34107         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34108         Ditto.
34109
34110 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34111
34112         PR c/43381
34113         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34114         nested binding iff it is a FUNCTION_DECL.
34115         (store_parm_decls_newstyle): Pass nested=true to bind for
34116         FUNCTION_DECLs amongst parameters.
34117
34118 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34119
34120         * var-tracking.c (vt_expand_loc_callback): Don't run
34121         cselib_expand_value_rtx_cb in dummy mode if
34122         cselib_dummy_expand_value_rtx_cb returned false.
34123
34124         * var-tracking.c (emit_note_insn_var_location): For one part
34125         notes with offset 0, don't add EXPR_LIST around the location.
34126         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34127         add_location_or_const_value_attribute): Adjust for that change.
34128
34129         PR debug/43540
34130         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34131         into first operand and location into second.
34132         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34133         dw_cfi_oprnd_loc for DW_CFA_expression.
34134         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34135         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34136         assume first argument is regnum and second argument is location.
34137
34138 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34139
34140         PR target/42113
34141         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34142         of scratch register to DImode.  Split to DImode comparison operator.
34143         Use SImode subreg of scratch register in the multiplication.
34144         (*cmp_sadd_sidi): Ditto.
34145         (*cmp_ssub_si): Ditto.
34146         (*cmp_ssub_sidi): Ditto.
34147
34148 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34149
34150         PR target/43524
34151         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34152         Remove invalid assert and wrong comment.
34153
34154 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34155
34156         PR debug/43516
34157         * flags.h (final_insns_dump_p): New extern.
34158         * final.c (final_insns_dump_p): New variable.
34159         (rest_of_clean_state): Set it before -fdump-final-insns=
34160         dumping, clear afterwards.
34161         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34162         MEM_ALIAS_SET on MEMs.
34163
34164 2010-03-26  David S. Miller  <davem@davemloft.net>
34165
34166         * configure.ac: Fix sparc GOTDATA_OP bug check.
34167         * configure: Rebuild.
34168
34169 2010-03-26  Alan Modra  <amodra@gmail.com>
34170
34171         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34172
34173 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34174
34175         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34176         TLS_SECTION_ASM_FLAG.
34177
34178 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34179
34180         PR bootstrap/43511
34181         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34182         Clear first_function_block_is_cold.
34183
34184         PR c/43385
34185         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34186         argument if the argument is truth_value_p.
34187
34188 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34189
34190         * config/rs6000/constraints.md: Update copyright year for my changes.
34191
34192         PR target/43484
34193         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34194         used in reg+reg addressing, swap registers.
34195
34196 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34197
34198         PR debug/43293
34199         * target.h (struct gcc_target): Add code_end hook.
34200         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34201         if not yet defined.
34202         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
34203         * toplev.c (compile_file): Call targetm.asm_out.code_end
34204         hook before unwind info/debug info output.
34205         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
34206         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
34207         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34208         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
34209         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34210         * config/i386/i386.c (ix86_file_end): Renamed to...
34211         (ix86_code_end): ... this.  Make static.  Don't call
34212         file_end_indicate_exec_stack.  Emit unwind info using
34213         final_start_function/final_end_function.
34214         (darwin_x86_file_end): Remove.
34215         (TARGET_ASM_CODE_END): Define.
34216         * config/i386/i386.h (TARGET_ASM_FILE_END,
34217         NEED_INDICATE_EXEC_STACK): Don't define.
34218         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
34219         (TARGET_ASM_FILE_END): Define to darwin_file_end.
34220         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
34221         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
34222
34223         PR target/43498
34224         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
34225         at the beginning and final_end_function at the end.
34226         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
34227
34228 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34229
34230         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
34231         and Sun as TLS syntax.
34232         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
34233         * configure: Regenerate.
34234         * config.in: Regenerate.
34235         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
34236         (default_elf_asm_named_section): Use it.
34237         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
34238         (i386_output_dwarf_dtprel): Likewise.
34239         (output_addr_const_extra): Likewise.
34240         (output_pic_addr_const): Lowercase @GOTTPOFF.
34241         (output_addr_const_extra): Likewise.
34242         (output_pic_addr_const): Lowercase @GOTNTPOFF.
34243         (output_addr_const_extra): Likewise.
34244         (output_pic_addr_const): Lowercase @INDNTPOFF.
34245         (output_addr_const_extra): Likewise.
34246         (output_pic_addr_const): Lowercase @NTPOFF.
34247         (output_addr_const_extra): Likewise.
34248         (output_pic_addr_const): Lowercase @TPOFF.
34249         (output_addr_const_extra): Likewise.
34250         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
34251         (*tls_global_dynamic_64): Likewise.
34252         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
34253         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
34254
34255         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
34256         (ASM_OUTPUT_TLS_COMMON): Use it.
34257         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
34258
34259         PR target/38118
34260         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
34261         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
34262         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
34263         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
34264         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34265         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
34266
34267 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34268
34269         * config/i386/i386.c (override_options): Don't accept
34270         -mtls-dialect=sun any longer.
34271         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
34272         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
34273         (*tls_local_dynamic_base_32_sun): Likewise.
34274         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34275
34276 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34277
34278         PR debug/43508
34279         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34280         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
34281
34282         PR debug/43479
34283         * ira.c (adjust_cleared_regs): New function.
34284         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
34285
34286         PR debug/19192
34287         PR debug/43479
34288         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
34289         from gimple_block.
34290         * expr.c (expand_expr_real): Restore previous
34291         curr_insn_source_location and curr_insn_block after
34292         expand_expr_real_1 call.
34293         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
34294         instead of expand_expr_real_1.
34295
34296 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
34297
34298         PR rtl-optimization/43413
34299         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
34300         hard regs too.
34301
34302 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
34303
34304         PR target/43348
34305         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
34306         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
34307
34308 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
34309
34310         * config/i386/i386.c (ix86_target_string): Add -mfma.
34311         Fix a typo in comment.
34312
34313 2010-03-22  Mike Stump  <mikestump@comcast.net>
34314
34315         PR target/23071
34316         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
34317         Don't overly align based upon packed packed fields.
34318
34319 2010-03-22  Jason Merrill  <jason@redhat.com>
34320
34321         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
34322         Use () rather than [], and move before the element type.
34323
34324 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34325
34326         * doc/configfiles.texi (Configuration Files): Removed
34327         fixinc/Makefile*, intl/Makefile.*.
34328         * doc/makefile.texi: Fixed markup. Abstract from version
34329         control system used.
34330         (Makefile): Removed obsolete java/parse.y example.
34331         * doc/sourcebuild.texi: Likewise.
34332         (Top Level): Added config, gnattools, libdecnumber, libgcc,
34333         libgomp, libssp.  Removed fastjar.
34334         (Miscellaneous Docs): Clarify location.
34335         Added COPYING3, COPYING3.LIB.
34336         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
34337
34338 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34339
34340         PR target/38085
34341         * config/i386/i386.c (x86_function_profiler)
34342         [!NO_PROFILE_COUNTERS]: Fix typo.
34343         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
34344         instead of callq.
34345
34346 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
34347             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34348
34349         * doc/sourcebuild.texi (Test Directives): Split into six
34350         subsections, with most of the current text in new subsections
34351         Directives, Selectors, and Final Actions.
34352         (Directives): Split list of test directives into multiple
34353         subsubsections.
34354         (Selectors): Describe use and syntax of selectors.
34355         (Effective-Target Keywords): Describe all existing keywords.
34356         (Add Options): Describe features for dg-add-options.
34357         (Require Support): Describe variants of dg-require-support.
34358         (Final Actions): Describe commands to use in dg-final.
34359
34360 2010-03-22  Michael Matz  <matz@suse.de>
34361
34362         PR middle-end/43475
34363         * recog.c (validate_replace_rtx_group): Replace also in
34364         REG_EQUAL and REG_EQUIV notes.
34365
34366 2010-03-22  Richard Guenther  <rguenther@suse.de>
34367
34368         PR tree-optimization/43390
34369         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
34370         sure vector extracts are type correct.
34371
34372 2010-03-22  Richard Guenther  <rguenther@suse.de>
34373
34374         PR middle-end/40106
34375         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34376         x * sqrt (x) even when optimizing for size if the target
34377         has native support for sqrt.
34378
34379 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34380
34381         * varasm.c (make_decl_rtl_for_debug): Also clear
34382         flag_mudflap for the duration of make_decl_rtl call.
34383
34384         PR debug/43443
34385         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34386         locs from preserved VALUEs.
34387
34388 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34389
34390         PR middle-end/42718
34391         * pa.md (movmemsi): Set align to one if zero.
34392         (movmemdi): Likewise.
34393
34394 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34395
34396         PR target/42321
34397         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34398         with their corresponding prologue pushes.
34399
34400 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34401
34402         PR target/43156
34403         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34404         at the begining or end.
34405         (spu_expand_epilogue): Likewise.
34406
34407 2010-03-20  Richard Guenther  <rguenther@suse.de>
34408
34409         PR rtl-optimization/43438
34410         * combine.c (make_extraction): Properly zero-/sign-extend an
34411         extraction of the low part of a CONST_INT.  Also handle
34412         CONST_DOUBLE.
34413
34414 2010-03-19  Mike Stump  <mikestump@comcast.net>
34415
34416         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34417         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34418         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34419
34420 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34421
34422         PR c/43211
34423         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34424         an error.
34425
34426 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34427
34428         PR rtl-optimization/42258
34429         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34430         use that may match DEF.
34431
34432         PR target/40697
34433         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34434         the cost of loading the constant rather than assuming
34435         COSTS_N_INSNS (1).
34436         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34437         outer code is AND, do the same tests as the andsi3 expander and
34438         return COSTS_N_INSNS (1) if and is cheap.
34439
34440         * optabs.c (avoid_expensive_constant): Fix formatting.
34441
34442 2010-03-19  Michael Matz  <matz@suse.de>
34443
34444         PR c++/43116
34445         * attribs.c (decl_attributes): When rebuilding a function pointer
34446         type use the same qualifiers as the original pointer type.
34447
34448 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34449
34450         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34451         and is_gimple_ip_invariant_address.
34452
34453 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34454
34455         Revert
34456         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34457
34458         * config/arm/arm.c (arm_override_options): Turn off
34459         flag_dwarf2_cfi_asm for AAPCS variants.
34460
34461 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34462
34463         PR target/43399
34464         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34465         Use PRE_MODIFY instead of PRE_DEC.
34466         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34467         (vfp_emit_fstmd): Likewise.
34468
34469 2010-03-19  Michael Matz  <matz@suse.de>
34470
34471         PR target/43305
34472         * builtins.c (expand_builtin_interclass_mathfn,
34473         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34474         if that fails.
34475
34476 2010-03-19  Richard Guenther  <rguenther@suse.de>
34477
34478         PR tree-optimization/43415
34479         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34480         (phi_translate_1): ... this.
34481         (phi_translate): Move all caching here.  Cache all NARY
34482         and REFERENCE translations.
34483
34484 2010-03-19  David S. Miller  <davem@davemloft.net>
34485
34486         With help from Eric Botcazou.
34487         * config/sparc/sparc.c: Include dwarf2out.h.
34488         (emit_pic_helper): Delete.
34489         (pic_helper_symbol_name): Delete.
34490         (pic_helper_emitted_p): Delete.
34491         (pic_helper_needed): New.
34492         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34493         (get_pc_thunk_name): New.
34494         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34495         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34496         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34497         (sparc_expand_prologue): Update load_pic_register call.
34498         (sparc_output_mi_thunk): Likewise.
34499         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34500         thunk if possible.  Output CFI information as needed.
34501
34502 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34503             Jack Howarth  <howarth@bromo.med.uc.edu>
34504
34505         PR target/36399
34506         * config/i386/i386.h: Fix ABI on darwin x86-32.
34507
34508 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34509
34510         * tree.h: Declare make_decl_rtl_for_debug.
34511         * varasm.c (make_decl_rtl_for_debug): New.
34512         * dwarf2out.c (rtl_for_decl_location): Call it.
34513         * cfgexpand.c (expand_debug_expr): Call it.
34514
34515 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34516
34517         PR bootstrap/43399
34518         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34519         mem_mode.
34520
34521         PR bootstrap/43403
34522         * var-tracking.c (vt_init_cfa_base): Do nothing if
34523         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34524
34525 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34526
34527         PR debug/42873
34528         * var-tracking.c (canonicalize_vars_star): New.
34529         (dataflow_post_merge_adjust): Use it.
34530
34531 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34532
34533         PR debug/43058
34534         * var-tracking.c (non_suitable_const): New function.
34535         (add_uses): For DEBUG_INSNs with constants, don't record any
34536         value, instead just the constant value itself.
34537         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34538         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34539         (emit_notes_in_bb): Likewise.
34540         (emit_note_insn_var_location): For onepart variables if
34541         cur_loc is a VOIDmode constant, use DECL_MODE.
34542
34543 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34544
34545         PR middle-end/42450
34546         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34547         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34548         all non-clones.  Moved call redirection...
34549         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34550         (cgraph_materialize_all_clones): Dispose of all
34551         combined_args_to_skip bitmaps.
34552         (verify_cgraph_node): Do not check for edges pointing to wrong
34553         nodes in inline clones.
34554         * tree-inline.c (copy_bb): Call
34555         cgraph_redirect_edge_call_stmt_to_callee.
34556         * ipa.c (cgraph_remove_unreachable_nodes): Call
34557         cgraph_node_remove_callees even when there are used clones.
34558
34559 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34560
34561         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34562
34563 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34564
34565         PR target/43383
34566         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34567         for 32bit.
34568
34569 2010-03-18  Michael Matz  <matz@suse.de>
34570
34571         PR middle-end/43419
34572         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34573         into sqrt(x) if we need to preserve signed zeros.
34574
34575 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34576             Eric Botcazou  <ebotcazou@adacore.com>
34577
34578         PR rtl-optimization/43360
34579         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34580         note if we don't know its invariant status.
34581
34582 2010-03-18  Michael Matz  <matz@suse.de>
34583
34584         PR tree-optimization/43402
34585         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34586         PHI chains of ssa names registered for update.
34587
34588 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34589
34590         PR target/42427
34591         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34592         non-offsettable and pre_modify update addressing.
34593         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34594         and "2" alternatives "#".
34595         (*movdd_softfloat32): Make all alternatives "#";
34596         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34597         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34598         (*movdf_softfloat32): Make all alternatives "#";
34599         (movdi): Use the new DIFD mode iterator to create a common splitter
34600         for movdi, movdf and movdd patterns.
34601
34602 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34603
34604         * common.opt (dumpdir): Remove redundant tab.
34605
34606 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34607
34608         PR tree-optimization/43347
34609         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34610         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34611
34612 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34613
34614         PR rtl-optimization/42216
34615         * regrename.c (create_new_chain): New function, broken out from...
34616         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34617         appending a use to an empty chain.
34618         (build_def_use): Remove previous changes that convert OP_INOUT to
34619         OP_OUT operands; instead detect the case where an OP_INOUT operand
34620         uses a previously untracked register and create an empty chain for it.
34621
34622 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34623
34624         * doc/extend.texi (Function Attributes): Rewrite unfinished
34625         sentence in ms_abi documentation.
34626
34627 2010-03-17  Alan Modra  <amodra@gmail.com>
34628
34629         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34630         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34631         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34632         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34633
34634 2010-03-16  Richard Henderson  <rth@redhat.com>
34635
34636         PR middle-end/43365
34637         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34638         (lower_try_finally): Save and restore eh_seq around the expansion
34639         of the try-finally.
34640
34641 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34642
34643         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34644         statements before splitting block.
34645
34646 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34647
34648         * doc/sourcebuild.texi (Testsuites): Fix markup.
34649         Use pathnames relative to gcc/testsuite.
34650         (Test Directives): Move description of how timeout is determined.
34651         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34652         (C Tests): Correct gcc.misc-tests directory.
34653         Framework tests now live in gcc.test-framework.
34654
34655 2010-03-16  Richard Guenther  <rguenther@suse.de>
34656
34657         PR middle-end/43379
34658         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34659         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34660
34661 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34662             Alexandre Oliva  <aoliva@redhat.com>
34663
34664         PR tree-optimization/42917
34665         * lambda-code.c (remove_iv): Skip debug statements.
34666         (lambda_loopnest_to_gcc_loopnest): Likewise.
34667         (not_interesting_stmt): Debug statements are not interesting.
34668
34669 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34670
34671         PR debug/43051
34672         PR debug/43092
34673         * cselib.c (cselib_preserve_constants,
34674         cfa_base_preserved_val): New static variables.
34675         (preserve_only_constants): New function.
34676         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34677         clear its REG_VALUES.  If cselib_preserve_constants, don't
34678         empty the whole hash table, but preserve there VALUEs with constants,
34679         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34680         (cselib_preserve_cfa_base_value): New function.
34681         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34682         (cselib_init): Change argument to int bitfield.  Set
34683         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34684         is in it.
34685         (cselib_finish): Clear cselib_preserve_constants and
34686         cfa_base_preserved_val.
34687         * cselib.h (enum cselib_record_what): New enum.
34688         (cselib_init): Change argument to int.
34689         (cselib_preserve_cfa_base_value): New prototype.
34690         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34691         * dse.c (dse_step1): Likewise.
34692         * cfgcleanup.c (thread_jump): Likewise.
34693         * sched-deps.c (sched_analyze): Likewise.
34694         * gcse.c (local_cprop_pass): Likewise.
34695         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34696         If FN is non-NULL, call the callback always and whenever it returns
34697         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34698         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34699         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34700         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34701         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34702         * var-tracking.c: Include recog.h.
34703         (bb_stack_adjust_offset): Remove.
34704         (vt_stack_adjustments): Don't call it, instead just gather the
34705         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34706         (adjust_stack_reference): Remove.
34707         (compute_cfa_pointer): New function.
34708         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34709         (struct adjust_mem_data): New type.
34710         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34711         functions.
34712         (get_address_mode): New function.
34713         (replace_expr_with_values): Use it.
34714         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34715         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34716         (adjust_sets): Remove.
34717         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34718         Use get_address_mode.
34719         (get_adjusted_src): Remove.
34720         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34721         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34722         (add_with_sets): Don't call adjust_sets.
34723         (fp_setter, vt_init_cfa_base): New functions.
34724         (vt_initialize): Change return type to bool.  Move most of pool etc.
34725         initialization to the beginning of the function from end.  Pass
34726         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34727         If !frame_pointer_needed, call vt_stack_adjustment before mos
34728         vector is filled, call vt_init_cfa_base if argp/framep has been
34729         eliminated to sp.  If frame_pointer_needed and argp/framep has
34730         been eliminated to hard frame pointer, set
34731         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34732         encountering fp setter in the prologue.  For MO_ADJUST, call
34733         log_op_type before pusing the op into mos vector, not afterwards.
34734         Call adjust_insn before cselib_process_insn/add_with_sets,
34735         call cancel_changes (0) afterwards.
34736         (variable_tracking_main_1): Adjust for vt_initialize calling
34737         vt_stack_adjustments and returning whether it succeeded or not.
34738
34739 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34740
34741         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34742         debug statements.
34743
34744 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34745
34746         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34747         has been set.
34748         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34749         drap_reg has not been set.
34750
34751 2010-03-15  Michael Matz  <matz@suse.de>
34752
34753         PR middle-end/43300
34754         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34755         use it to expand block copies.
34756         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34757         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34758         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34759
34760 2010-03-15  Richard Guenther  <rguenther@suse.de>
34761
34762         PR tree-optimization/43367
34763         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34764         elimination check.
34765
34766 2010-03-15  Richard Guenther  <rguenther@suse.de>
34767
34768         PR tree-optimization/43317
34769         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34770
34771 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34772
34773         PR tree-optimization/43141
34774         * tree-sra.c (create_abstract_origin): New function.
34775         (modify_function): Call create_abstract_origin.
34776
34777 2010-03-15  Chris Demetriou  <cgd@google.com>
34778
34779         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34780         wasn't copied.
34781
34782 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34783
34784         PR middle-end/43354
34785         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34786         call insert_out_of_ssa_copy for default definitions.
34787
34788 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34789
34790         * graphite-clast-to-gimple.c (my_long_long): Defined.
34791         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34792         * graphite-sese-to-poly.c (my_long_long): Defined.
34793         (scop_ivs_can_be_represented): Use it.
34794
34795 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34796
34797         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34798         graphite-max-bbs-per-function, and loop-block-tile-size.
34799         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34800         with "maximum".
34801         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34802
34803 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34804
34805         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34806         forward declaration.
34807         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34808         (add_upper_bounds_from_estimated_nit): New.
34809         (build_loop_iteration_domains): Use it.
34810
34811 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34812
34813         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34814
34815 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34816
34817         PR middle-end/43306
34818         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34819         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34820
34821 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34822
34823         * graphite.c (graphite_initialize): To bound the number of bbs per
34824         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34825         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34826         * doc/invoke.texi: Document it.
34827
34828 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34829
34830         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34831         * graphite-sese-to-poly.h (build_poly_scop): Same.
34832
34833 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34834
34835         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34836         the number of parameters in the scop.  Use as an upper bound
34837         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34838         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34839         * doc/invoke.texi: Document it.
34840
34841 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34842
34843         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34844         * doc/c-tree.texi: Remove.
34845         * doc/generic.texi: Merge c-tree.texi here.
34846         * doc/gccint.texi (Trees): Remove menu entry.
34847         (c-tree.texi): Remove @include.
34848         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34849         * doc/languages.texi (Reading RTL): Ditto.
34850
34851 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
34852
34853         PR target/42869
34854         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
34855
34856 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
34857
34858         PR middle-end/42431
34859         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
34860         code added to work around reload clobbering CONST insns.
34861
34862 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
34863
34864         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
34865         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
34866         (cselib_preserve_only_values): Remove retain argument, don't
34867         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
34868         * cselib.h (cselib_preserve_only_values): Remove retain argument.
34869         * var-tracking.c (micro_operation): Move insn field before union.
34870         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
34871         (struct variable_tracking_info_def): Remove n_mos field, change
34872         mos into a vector of micro_operations.
34873         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
34874         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
34875         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
34876         changing into a vector.
34877         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
34878         come before all other uops generated by add_stores.
34879         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
34880         argument removal.
34881         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
34882         a vector.  Run just one pass over the bbs instead of separate counting
34883         and computation phase.
34884         (vt_finalize): Free VTI (bb)->mos vector instead of array.
34885
34886         PR debug/43329
34887         * tree-inline.c (remap_decls): Put old_var rather than origin_var
34888         into *nonlocalized_list vector.
34889         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
34890         even if origin is non-NULL.
34891         (gen_variable_die): Likewise.
34892         (process_scope_var): Don't change origin.
34893         (gen_decl_die): Likewise.
34894         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
34895         before adding new edges instead of after it, fix moving over
34896         debug stmts.
34897
34898 2010-03-11  David S. Miller  <davem@davemloft.net>
34899
34900         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
34901         of four.
34902         * configure: Rebuild.
34903
34904 2010-03-11  Martin Jambor  <mjambor@suse.cz>
34905
34906         PR tree-optimization/43257
34907         * tree.c (assign_assembler_name_if_neeeded): New function.
34908         (free_lang_data_in_cgraph): Assembler name assignment moved to the
34909         above new function.
34910         * tree.h (assign_assembler_name_if_neeeded): Declare.
34911         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
34912         the function if needed.
34913
34914 2010-03-11  Chris Demetriou  <cgd@google.com>
34915
34916         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
34917         include/stdint-gcc.h, and include/stdint.h world-readable.
34918
34919 2010-03-11  Richard Guenther  <rguenther@suse.de>
34920
34921         PR tree-optimization/43255
34922         * tree-vrp.c (process_assert_insertions_for): Do not insert
34923         asserts for trivial conditions.
34924
34925 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34926
34927         PR tree-optimization/43280
34928         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
34929         generation.  Move calculation of size out of the if branch.
34930         (find_bswap): Modify compare number generation.
34931
34932 2010-03-11  Richard Guenther  <rguenther@suse.de>
34933
34934         PR lto/43200
34935         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
34936         (input_gimple_stmt): Fixup handled component types during
34937         operand read.  Also fix up decls in ADDR_EXPRs.
34938
34939 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
34940
34941         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
34942         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
34943
34944 2010-03-10  Jan Hubicka  <jh@suse.cz>
34945
34946         PR c/43288
34947         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
34948         * varasm.c (get_variable_section): Don't do that here...
34949         (make_decl_rtl): ... and here.
34950         (do_assemble_alias): Produce decl RTL.
34951         (assemble_alias): Likewise.
34952
34953 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
34954
34955         PR debug/43290
34956         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
34957         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
34958         of fde->vdrap_reg.
34959         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
34960         (based_loc_descr): Only express drap or vdrap regno based expressions
34961         using DW_OP_fbreg when not optimizing.
34962         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
34963         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
34964         REG_CFA_SET_VDRAP note.
34965
34966 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
34967
34968         PR tree-optimization/43236
34969         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
34970         error in calculation of base address in reverse iteration case.
34971         (generate_builtin): Take number of latch executions if the statement
34972         is in the latch.
34973
34974 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
34975
34976         PR middle-end/42859
34977         * tree-eh.c: Include pointer-set.h.
34978         (lower_eh_dispatch): Filter out duplicate case labels and
34979         remove the unneeded edge when the label is unused.  Return
34980         true when some edges are removed.
34981         (execute_lower_eh_dispatch): When any lowering resulted in
34982         removing an edge, also delete unreachable blocks.
34983
34984 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
34985
34986         PR bootstrap/43287
34987         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
34988         UNSPEC_MACHOPIC_OFFSET.
34989
34990 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
34991
34992         PR target/43294
34993         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
34994         (m68k_delegitimize_address): New function.
34995
34996 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
34997
34998         PR debug/43299
34999         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35000
35001         PR debug/43299
35002         * var-tracking.c (adjust_sets): New function.
35003         (count_with_sets, add_with_sets): Use it.
35004         (get_adjusted_src): New inline function.
35005         (add_stores): Use it.
35006
35007         PR debug/43304
35008         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35009         call cselib_dummy_expand_value_rtx_cb instead of
35010         cselib_expand_value_rtx_cb.
35011
35012         PR debug/43293
35013         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35014         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35015         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35016         and .cfi_endproc around the pic thunks.
35017         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35018         all queued unwind info register saves are saved before the call.
35019         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35020         considered as sp-=4 for unwind info and the pop as sp+=4 which
35021         also clobbers dest, but doesn't actually restore it.
35022
35023         PR debug/43290
35024         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35025         RTX_FRAME_RELATED_P.
35026
35027 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35028
35029         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35030         whitespaces in output template.
35031
35032 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35033
35034         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35035         out array boundary.
35036
35037 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35038
35039         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35040         builtins.exp in a separate job.
35041
35042 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35043
35044         * graphite-sese-to-poly.c (add_param_constraints): Use
35045         lower_bound_in_type and upper_bound_in_type.
35046
35047 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35048
35049         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35050         instead of unsigned_type_node.
35051
35052 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35053             Reza Yazdani  <reza.yazdani@amd.com>
35054
35055         PR middle-end/43065
35056         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35057         on pointer type parameters.
35058
35059 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35060
35061         PR middle-end/42644
35062         PR middle-end/42130
35063         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35064         handle conversions from pointer to integers.
35065         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35066         induction variable, to be able to work with code generated by CLooG.
35067         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35068         (build_poly_scop): Bail out if we cannot codegen a loop.
35069
35070 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35071
35072         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35073         code generation with gloog_error.
35074
35075 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35076
35077         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35078         Call fold_convert on all the returned values.
35079         (expand_scalar_variables_expr): Pass to
35080         expand_scalar_variables_ssa_name the type of the resulting expression.
35081
35082 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35083
35084         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35085         ppl_min_for_le_pointset.
35086         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35087         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35088
35089 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35090
35091         * graphite-dependences.c (map_into_dep_poly): Removed.
35092         (dependence_polyhedron_1): Use combine_context_id_scat.
35093
35094 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35095
35096         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35097         (struct poly_bb): Same.
35098         (combine_context_id_scat): New.
35099
35100 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35101
35102         PR middle-end/42326
35103         * sese.c (name_defined_in_loop_p): Return false for default
35104         definitions.
35105
35106 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35107
35108         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35109         and clean up the logic.
35110
35111 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35112
35113         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35114         early return.
35115
35116 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35117
35118         * var-tracking.c (remove_cselib_value_chains): Define only for
35119         ENABLE_CHECKING.
35120         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35121         delete_slot_part, emit_notes_for_differences_1): Don't call
35122         remove_cselib_value_chains here.
35123         (set_slot_part, emit_notes_for_differences_2): Don't call
35124         add_cselib_value_chains here.
35125         (preserved_values): New vector.
35126         (preserve_value): New function.
35127         (add_uses, add_stores, vt_add_function_parameters): Use it
35128         instead of cselib_preserve_value.
35129         (changed_values_stack): New vector.
35130         (check_changed_vars_0): New function.
35131         (check_changed_vars_1, check_changed_vars_2): Use it.
35132         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35133         changed_values_stack VALUEs.
35134         (vt_emit_notes): For all preserved_values call
35135         add_cselib_value_chains.  If ENABLE_CHECKING call
35136         remove_cselib_value_chains before verifying value_chains is empty.
35137         Initialize and free changed_values_stack.
35138         (vt_initialize): Initialize preserved_values.
35139         (vt_finalize): Free preserved_values.
35140
35141 2010-03-08  Richard Guenther  <rguenther@suse.de>
35142
35143         PR tree-optimization/43269
35144         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35145         region detection.
35146
35147 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35148
35149         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35150         (ipa_is_param_called): Removed.
35151         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35152         (ipa_print_node_params): Do not print the called flag.
35153         (ipa_write_node_info): Do not stream the called flag.
35154         (ipa_read_node_info): Likewise.
35155
35156 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35157
35158         PR debug/43176
35159         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35160         * cselib.c (struct expand_value_data): Add dummy field.
35161         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35162         dummy to false.
35163         (cselib_dummy_expand_value_rtx_cb): New function.
35164         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35165         any rtl.
35166         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35167         * var-tracking.c: Include pointer-set.h.
35168         (variable): Change n_var_parts to char from int.  Add
35169         cur_loc_changed and in_changed_variables fields.
35170         (variable_canonicalize): Remove.
35171         (shared_var_p): New inline function.
35172         (unshare_variable): Maintain cur_loc_changed and
35173         in_changed_variables fields.  If var was in changed_variables,
35174         replace it there with new_var.  Just copy cur_loc instead of
35175         resetting it to something else.
35176         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35177         (dataflow_set_union): Don't call variable_canonicalize.
35178         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35179         of their DEBUG_EXPR_TREE_DECLs.
35180         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35181         and in_changed_variables and cur_loc_changed is false.
35182         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35183         and cur_loc_changed.  Don't update cur_loc here.
35184         (variable_merge_over_src): Don't call variable_canonicalize.
35185         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35186         removing loc that is equal to cur_loc, clear cur_loc,
35187         set cur_loc_changed and ensure variable_was_changed is called.
35188         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35189         compare pointers in cur_loc check, if it is equal to loc,
35190         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35191         (variable_different_p): Remove compare_current_location argument,
35192         don't compare cur_loc.
35193         (dataflow_set_different_1): Adjust variable_different_p caller.
35194         (variable_was_changed): If dv had some var in changed_variables
35195         already, reset in_changed_variables flag for it and propagate
35196         cur_loc_changed over to the new variable.  On empty var
35197         always set cur_loc_changed.  Set in_changed_variables on whatever
35198         var is added to changed_variables.
35199         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35200         Use shared_var_p.  When removing loc that is equal to cur_loc,
35201         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35202         end, don't set it to something else, just call variable_was_changed.
35203         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
35204         loc being removed, clear cur_loc and set cur_loc_changed.
35205         Set cur_loc_changed if all locations have been removed.
35206         (struct expand_loc_callback_data): New type.
35207         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
35208         allocated.  Always create SUBREGs if simplify_subreg failed.
35209         Prefer to use cur_loc, when that fails and still in
35210         changed_variables (and seen first time) recompute it.  Set
35211         cur_loc_changed of variables which had to change cur_loc and
35212         compute elcd->cur_loc_changed if any of the subexpressions used
35213         had to change cur_loc.
35214         (vt_expand_loc): Adjust to pass arguments in
35215         expand_loc_callback_data structure.
35216         (vt_expand_loc_dummy): New function.
35217         (emitted_notes): New variable.
35218         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
35219         that weren't used for any other decl in current
35220         emit_notes_for_changes call call vt_expand_loc_dummy to update
35221         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
35222         first loc_chain location if NULL before.  Always use just
35223         cur_loc instead of first loc_chain location.  When cur_loc_changed
35224         is false, when not --enable-checking=rtl just don't emit any note.
35225         When rtl checking, compute the note and assert it is the same
35226         as previous note.  Clear cur_loc_changed and in_changed_variables
35227         at the end before removing from changed_variables.
35228         (check_changed_vars_3): New function.
35229         (emit_notes_for_changes): Traverse changed_vars to call
35230         check_changed_vars_3 on each changed var.
35231         (emit_notes_for_differences_1): Clear cur_loc_changed and
35232         in_changed_variables.  Recompute cur_loc of new_var.
35233         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
35234         (vt_emit_notes): Initialize and destroy emitted_notes.
35235
35236 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
35237
35238         PR rtl-optimization/42220
35239         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
35240         Use verify_reg_tracked to determine if we should use OP_OUT rather
35241         than OP_INOUT.
35242         (build_def_use): If we see an in-out operand for a register that we
35243         know nothing about, treat is an output if possible, fail the block if
35244         not.
35245
35246 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35247
35248         PR debug/42897
35249         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
35250         permanently.
35251
35252 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35253
35254         PR debug/42897
35255         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
35256         uses of relevant DEFs that are dead outside the loop too.
35257
35258 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35259
35260         * var-tracking.c (dataflow_set_merge): Swap src and src2.
35261         Reverted:
35262         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35263         PR debug/41371
35264         * var-tracking.c (values_to_unmark): New variable.
35265         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35266         values_to_unmark vector.  Moved body to...
35267         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35268         instead queue it into values_to_unmark vector.
35269         (vt_find_locations): Free values_to_unmark vector.
35270
35271 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
35272
35273         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
35274         (site.exp): Export them when plugins are enabled.
35275
35276 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
35277
35278         PR middle-end/42326
35279         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
35280         that contain scevs.
35281         (chrec_fold_multiply): Same.
35282
35283 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35284
35285         PR c/43248
35286         * c-decl.c (build_compound_literal): Return early if init is
35287         an error_mark_node.
35288
35289 2010-03-04  Martin Jambor  <mjambor@suse.cz>
35290
35291         PR tree-optimization/43164
35292         PR tree-optimization/43191
35293         * tree-sra.c (type_consists_of_records_p): Reject records with
35294         zero-size bit-fields at the end.
35295
35296 2010-03-04  Mike Stump  <mikestump@comcast.net>
35297
35298         * Makefile.in (TAGS): Remove *.y.
35299
35300 2010-03-04  Richard Guenther  <rguenther@suse.de>
35301
35302         PR tree-optimization/40761
35303         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
35304         in reverse order.
35305         (my_rev_post_order_compute): New function.
35306         (init_pre): Call it.
35307
35308 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35309
35310         PR middle-end/43209
35311         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
35312         decrease the cost of an IV candidate when the cost is infinite.
35313
35314 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35315
35316         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
35317         Use '3DNow!' for the extension of that name, ensure normal space
35318         after the string.
35319         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
35320
35321 2010-03-03  Jeff Law  <law@redhat.com>
35322
35323         * PR middle-end/32693
35324         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
35325         than gen_rtx_SUBREG.
35326         (extract_bit_field_1): Likewise.
35327
35328 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
35329
35330         * doc/sourcebuild.texi (Test directives): Document that arguments
35331         include-opts and exclude-opts are now optional for dg-skip-if,
35332         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
35333
35334 2010-03-03  Jason Merrill  <jason@redhat.com>
35335
35336         PR c++/12909
35337         * cgraph.h (varpool_node): Add extra_name field.
35338         * varpool.c (varpool_extra_name_alias): New.
35339         (varpool_assemble_decl): Emit extra name aliases.
35340         (varpool_mark_needed_node): Look past an extra name alias.
35341         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
35342         * lto-streamer-in.c (lto_input_tree): Read it.
35343         * lto-streamer-out.c (output_unreferenced_globals): Write it.
35344
35345 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35346
35347         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
35348         (sparc*-*-solaris2*): ...this.
35349
35350 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
35351
35352         PR debug/43229
35353         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
35354         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
35355         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
35356         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
35357
35358         PR debug/43237
35359         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
35360         fallthrough to default handling, just with want_address 0 instead of 2.
35361         For single element lists, add_AT_loc directly, otherwise create an
35362         artificial variable DIE and stick location list to it.
35363
35364         PR debug/43177
35365         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
35366         (VAL_EXPR_HAS_REVERSE): Define.
35367         (reverse_op): New function.
35368         (add_stores): For reversible operations add an extra MO_VAL_USE.
35369
35370 2010-03-02  Jason Merrill  <jason@redhat.com>
35371
35372         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35373
35374 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35375
35376         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35377         (sparc64-*-linux*): Likewise.
35378         (sparc64-*-solaris2*): Include assembler files before linker ones.
35379         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35380         * config/sparc/gas.h: Delete.
35381         * config/sparc/sol2-64.h: Add copyright notice.
35382         * config/sparc/sol2-gas-bi.h: Likewise.
35383         * config/sparc/sol2-gld.h: Likewise.
35384         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35385         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35386         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35387         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35388         (sparc_elf_asm_named_section): Rename into...
35389         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35390
35391 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35392
35393         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35394
35395 2010-03-02  Jeff Law  <law@redhat.com>
35396
35397         PR middle-end/42431
35398         * reload1.c (rtx_p, substitute_stack): Declare.
35399         (substitute): Record addresses of changed rtxs.
35400         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35401         Restore the original rtx when complete.
35402         (reload): Free subsitute_stack when complete.
35403
35404 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35405
35406         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35407         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35408         new chapter.
35409         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35410         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35411         Torture Tests): Change from subsection to section.
35412
35413 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35414             Steven Bosscher  <steven@gcc.gnu.org>
35415
35416         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35417         instead of bb.
35418
35419 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35420
35421         PR middle-end/42640
35422         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35423         the assignment from the new induction variable to the assignment
35424         of the value from the original loop PHI function.
35425
35426 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35427             Daniel Jacobowitz  <dan@codesourcery.com>
35428
35429         * doc/sourcebuild.texi (Test directives): Clarify options to
35430         dg-skip-if.
35431
35432 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35433
35434         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35435         Disable cfi directives unless GCC and gas agree on using read-only
35436         .eh_frame sections for 64-bit.
35437         * configure: Regenerate.
35438
35439 2010-03-01  Richard Guenther  <rguenther@suse.de>
35440
35441         PR tree-optimization/43220
35442         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35443         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35444
35445 2010-03-01  Richard Guenther  <rguenther@suse.de>
35446             Martin Jambor  <mjambor@suse.cz>
35447
35448         PR middle-end/41250
35449         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35450         gimplified parameters.
35451
35452 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35453
35454         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35455
35456 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35457
35458         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35459
35460 2010-03-01  Richard Guenther  <rguenther@suse.de>
35461
35462         PR middle-end/43213
35463         * expr.c (expand_assignment): Use the alias-oracle to tell
35464         if the rhs aliases the result decl.
35465
35466 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35467
35468         PR pch/14940
35469         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35470         to sol_gt_pch_get_address.
35471         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35472         64-bit, SPARC and x86.
35473         (sol_gt_pch_get_address): New function.
35474
35475 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35476
35477         * toplev.h (inform_n, error_n): Declare.
35478         * diagnostic.c (inform_n, error_n): New function.
35479
35480 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35481
35482         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35483         has no rtl yet when processing local_decls, queue it and recheck
35484         if deferred stack allocation hasn't assigned it rtl.
35485
35486 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35487
35488         * config/sh/sh.c (unspec_bbr_uid): New.
35489         (gen_block_redirect): Use it instead of INSN_UID.
35490         (gen_far_branch): Likewise.
35491
35492 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35493
35494         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35495         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35496
35497 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35498
35499         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35500         (Warning Options): -Wno-conversion-null is valid for
35501         Objective-C++ as well.
35502         * doc/tm.texi (Named Address Spaces): Likewise.
35503         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35504         * doc/tree-ssa.texi (Tree SSA): Likewise.
35505
35506 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35507
35508         PR bootstrap/43202
35509         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35510         by default.  Don't set the default arch for
35511         i[34567]86-*-darwin*|x86_64-*-darwin*.
35512
35513 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35514
35515         PR bootstrap/43202
35516         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35517         default.  Set the default 32bit/64bit archs with $with_arch
35518         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35519
35520 2010-02-27  Richard Guenther  <rguenther@suse.de>
35521
35522         PR tree-optimization/43186
35523         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35524         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35525         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35526         unroller iterations.
35527
35528 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35529
35530         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35531         required and i[34567]86-*-* targets don't support 64bit ISA.
35532
35533 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35534
35535         PR ada/43096
35536         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35537         the same alias set.
35538
35539 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35540
35541         * config.gcc: Set the default arch at least to Prescott for
35542         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35543         if SSE math is enabled.
35544
35545 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35546
35547         * diagnostic.c (diagnostic_initialize): Update.
35548         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35549         informative notes.
35550         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35551         (diagnostic_inhibit_notes): New.
35552         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35553
35554 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35555
35556         PR c/20631
35557         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35558         * doc/standards.texi: Likewise.
35559         * doc/extend.texi: Likewise.
35560         * doc/trouble.texi: Likewise.
35561         * doc/cppopts.texi: Likewise.
35562         * doc/install.texi: Likewise.
35563         * c.opt (std=c90,std=gnu90): New options.
35564         * c-opts.c (c_common_handle_option): Handle them.
35565
35566 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35567
35568         PR c/24577
35569         * c-decl.c (undeclared_variable): Use an informative note.
35570
35571 2010-02-26  Richard Guenther  <rguenther@suse.de>
35572
35573         PR tree-optimization/43186
35574         * gimple.h (gimple_fold): Remove.
35575         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35576         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35577         Try harder for conditions.
35578
35579 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35580
35581         PR debug/43190
35582         * function.c (used_types_insert): Don't skip through named pointer
35583         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35584         and it is different from the main variant's type.
35585
35586 2010-02-26  Nick Clifton  <nickc@redhat.com>
35587
35588         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35589
35590 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35591
35592         * config.gcc: Support --with-fpmath=sse for x86.
35593
35594         * config/i386/ssemath.h: New.
35595
35596         * doc/install.texi (--with-fpmath=sse): Documented.
35597
35598 2010-02-26  Richard Guenther  <rguenther@suse.de>
35599
35600         PR tree-optimization/43188
35601         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35602         vector types of over-aligned element type.
35603
35604 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35605
35606         PR target/43175
35607         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35608         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35609
35610 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35611
35612         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35613
35614 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35615
35616         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35617         * var-tracking.c: Include diagnostic.h.
35618         (debug_dv): New function.
35619         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35620
35621         PR debug/43160
35622         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35623         (add_value_chain, add_value_chains, remove_value_chain,
35624         remove_value_chains): Handle DEBUG_EXPRs.
35625         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35626
35627         PR debug/43161
35628         * regcprop.c (struct queued_debug_insn_change): New type.
35629         (struct value_data_entry): Add debug_insn_changes field.
35630         (struct value_data): Add n_debug_insn_changes field.
35631         (debug_insn_changes_pool): New variable.
35632         (free_debug_insn_changes, apply_debug_insn_changes,
35633         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35634         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35635         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35636         fields.
35637         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35638         changes for them.
35639         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35640         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35641         changes, call cprop_find_used_regs via note_stores.
35642         (copyprop_hardreg_forward): When copying vd from predecessor
35643         which has any queued DEBUG_INSN changes, make sure the pointers are
35644         cleared.  At the end call df_analyze and then if there are any
35645         DEBUG_INSN changes queued at the end of some basic block for still
35646         live registers, apply them.
35647         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35648
35649 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35650
35651         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35652         (arm*-*-*): Ditto.
35653
35654 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35655
35656         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35657         targets.  Set the default with_cpu/with_arch from arch/cpu.
35658         Allow x86-64 and native for with_cpu/with_arch.
35659
35660 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35661
35662         * ebitmap.c: Change calls to verify_popcount with calls to
35663         sbitmap_verify_popcount.
35664         (ebitmap_clear_bit): Fixed map->cacheindex test and
35665         map>cache update when bit clearing results in an empty
35666         element.
35667
35668 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35669
35670         PR target/43154
35671         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35672         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35673         and support both V2DF and V2DI modes.
35674         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35675         support both V2DF and V2DI modes.
35676         (general): Delete trailing whitespace from a few patterns.
35677
35678         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35679         V2DF/V2DI interleave high/low builtins.
35680
35681         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35682         new VSX builtins.
35683
35684         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35685         interleave high/low functions.
35686
35687 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35688
35689         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35690         #pragma extern_prefix.
35691
35692 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35693
35694         PR debug/43166
35695         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35696         BLKmode, assert op0 is a MEM and just adjust its mode.
35697
35698         PR debug/43165
35699         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35700         if bitpos isn't multiple of mode's bitsize.
35701
35702 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35703
35704         * c.opt (-ftemplate-depth=): New.
35705         (-ftemplate-depth-): Deprecate.
35706         * optc-gen.awk: Handle -ftemplate-depth=.
35707         * opth-gen.awk: Likewise.
35708         * c-opts.c (c_common_handle_option): Likewise.
35709         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35710
35711 2010-02-24  Jason Merrill  <jason@redhat.com>
35712
35713         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35714
35715 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35716
35717         * cfg.c (alloc_aux_for_block): Remove inline.
35718         (alloc_aux_for_edge): Likewise.
35719
35720 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35721
35722         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35723
35724 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35725
35726         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35727         * config/i386/sol2-gas.h: New file.
35728         * config.gcc (i[34567]86-*-solaris2*): Use it.
35729
35730 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35731
35732         PR c/43128
35733         * c-typeck.c (ep_convert_and_check): New.
35734         (build_conditional_expr): Use it.
35735         (build_binary_op): Likewise.
35736
35737 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35738
35739         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35740
35741         PR debug/43150
35742         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35743         bounds even for -O+.
35744         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35745         expr needs to have DECL_NAME set.
35746
35747 2010-02-24  Nick Clifton  <nickc@redhat.com>
35748
35749         * config/mep/mep.c: Include gimple.h.
35750         (mep_function_uses_sp): Delete unused function.
35751         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35752         parameters.  Use unsigned integers to count args.  Return a
35753         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35754
35755 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35756
35757         PR target/43107
35758         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35759         greater or equal to nelt instead of 2 * nelt.
35760         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35761         with nelt - 1.
35762
35763 2010-02-23  Jason Merrill  <jason@redhat.com>
35764
35765         PR debug/42800
35766         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35767         in cfun->local_decls even if they have register types.
35768
35769         PR c++/42837
35770         * stor-layout.c (place_field): Don't warn about unnecessary
35771         DECL_PACKED if the type is packed.
35772
35773 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35774
35775         PR target/43139
35776         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35777         GOTOFF relocs, even when the base reg isn't pic pointer.
35778
35779 2010-02-23  Michael Matz  <matz@suse.de>
35780
35781         PR debug/43077
35782         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35783         (expand_gimple_basic_block): Generate and use debug temps if there
35784         are debug uses left after the last real use of TERed ssa names.
35785         Unlink debug immediate uses when they are expanded.
35786
35787 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35788
35789         PR 43123
35790         * config/i386/i386.c (override_options): Reorganise to provide
35791         better error messages.
35792
35793 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35794
35795         PR middle-end/43083
35796         * graphite-scop-detection.c (create_single_exit_edge): Move
35797         the call to find_single_exit_edge to....
35798         (create_sese_edges): ...here.  Don't handle multiple edges
35799         exiting the function.
35800         (build_graphite_scops): Don't handle multiple edges
35801         exiting the function.
35802
35803 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35804
35805         PR middle-end/43097
35806         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35807         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35808
35809 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35810
35811         PR middle-end/43026
35812         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35813
35814 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35815
35816         PR c++/43126
35817         * c-typeck.c (convert_arguments): Print declaration location.
35818         * c-common.c (validate_nargs): Rename as
35819         builtin_function_validate_nargs.
35820         (check_builtin_function_arguments): Update.
35821
35822 2010-02-22  Richard Guenther  <rguenther@suse.de>
35823
35824         PR lto/43045
35825         * tree-inline.c (declare_return_variable): Use the type of
35826         the call stmt lhs if available.
35827
35828 2010-02-22  Duncan Sands  <baldrick@free.fr>
35829
35830         * passes.c (register_pass): Always consider all pass lists when
35831         ref_pass_instance_number is zero.
35832
35833 2010-02-22  Richard Guenther  <rguenther@suse.de>
35834
35835         PR tree-optimization/42749
35836         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35837         parameter.  Do arithmetic in the original type.
35838         (update_accumulator_with_ops): Likewise.
35839         (adjust_accumulator_values): Adjust.
35840
35841 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35842
35843         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35844         (QI to BLKmode splitter): New splitter.
35845
35846 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35847
35848         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35849         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
35850
35851 2010-02-22  Richard Guenther  <rguenther@suse.de>
35852
35853         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
35854
35855 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
35856
35857         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
35858         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
35859         ($(T)crti.o, $(T)crtn.o): Remove rules.
35860
35861 2010-02-21  Tobias Burnus  <burnus@net-b.de>
35862
35863         PR fortran/35259
35864         * doc/invoke.texi (-fassociative-math): Document that this
35865         option is automatically enabled for Fortran.
35866
35867 2010-02-20  David S. Miller  <davem@davemloft.net>
35868
35869         * configure.ac: Test if linker and assembler properly support
35870         GOTDATA_OP relocations.
35871         * configure: Rebuild.
35872         * config.in: Likewise.
35873         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
35874         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
35875         (movsi_high_pic): Likewise.
35876         (movdi_lo_sum_pic): Likewise.
35877         (movdi_high_pic): Likewise.
35878         (movsi_pic_gotdata_op): New pattern.
35879         (movdi_pic_gotdata_op): Likewise.
35880         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
35881         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
35882
35883 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
35884
35885         PR target/43067
35886         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
35887         attribute to ssemul.
35888         (xop_mulv2div2di3_high): Ditto.
35889
35890 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35891
35892         PR c++/35669
35893         * c.opt (Wconversion-null): New option.
35894         * doc/invoke.texi (Wconversion-null): Document.
35895
35896 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35897
35898         * common.opt (Wlarger-than-): Add Undocumented.
35899
35900 2010-02-19  Mike Stump  <mikestump@comcast.net>
35901
35902         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
35903
35904 2010-02-19  Jason Merrill  <jason@redhat.com>
35905
35906         PR target/40332
35907         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
35908         * configure: Likewise.
35909
35910 2010-02-20  Alan Modra  <amodra@gmail.com>
35911
35912         PR middle-end/42344
35913         * cgraph.h (cgraph_make_decl_local): Declare.
35914         * cgraph.c (cgraph_make_decl_local): New function.
35915         (cgraph_make_node_local): Use it.
35916         * cgraphunit.c (cgraph_function_versioning): Likewise.
35917         * ipa.c (function_and_variable_visibility): Likewise.
35918
35919 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35920
35921         PR bootstrap/43121
35922         * except.c (sjlj_emit_function_enter): Don't call
35923         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
35924         directly.
35925         * rtl.h (add_reg_br_prob_note): Remove prototype.
35926
35927 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35928
35929         PR 41779
35930         * c-common.c (conversion_warning): Remove widening conversions
35931         before checking the conversion of integers to reals.
35932
35933 2010-02-19  Mike Stump  <mikestump@comcast.net>
35934
35935         PR middle-end/43125
35936         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
35937
35938         PR objc/43061
35939         * cgraphunit.c (process_function_and_variable_attributes): Check
35940         DECL_PRESERVE_P instead of looking up attribute "used".
35941         * ipa-pure-const.c (check_decl): Likewise.
35942         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
35943         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
35944         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
35945         instead of attribute "used".
35946         * config/sol2-c.c (solaris_pragma_init): Likewise.
35947         (solaris_pragma_fini): Likewise.
35948
35949 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35950
35951         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
35952         Use XCNEW instead of xcalloc.
35953         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
35954         XNEW instead of xmalloc.
35955         (get_fields): Use XNEWVEC instead of xmalloc.
35956
35957         PR debug/43084
35958         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
35959         populate vars array.
35960         (create_new_general_access): For debug stmts just reset value.
35961         (get_stmt_accesses): For accesses within debug stmts just record them
35962         using add_access_to_acc_sites instead of preventing the peeling or
35963         counting them as accesses.
35964
35965         PR middle-end/42233
35966         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
35967
35968 2010-02-19  Richard Guenther  <rguenther@suse.de>
35969
35970         PR tree-optimization/42916
35971         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
35972         instructions.
35973
35974 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
35975
35976         * configure.ac: Replace all uses of changequote in macro arguments
35977         with proper quoting.
35978
35979 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35980
35981         PR middle-end/42233
35982         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
35983
35984 2010-02-19  Richard Guenther  <rguenther@suse.de>
35985
35986         PR tree-optimization/42944
35987         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
35988         test for aliasing with errno.
35989
35990 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35991
35992         PR middle-end/42233
35993         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
35994         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
35995         * dojump.c: Include output.h.
35996         (inv): New inline function.
35997         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
35998         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
35999         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36000         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36001         argument, pass it down to other calls.
36002         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36003         add REG_BR_PROB note to the conditional jump.
36004         * cfgexpand.c (add_reg_br_prob_note): Removed.
36005         (expand_gimple_cond): Don't call it, add the probability
36006         as last argument to jumpif_1/jumpifnot_1.
36007         * Makefile.in (dojump.o): Depend on output.h.
36008         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36009         callers.
36010         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36011         * stmt.c (do_jump_if_equal): Likewise.
36012         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36013         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36014         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36015         Likewise.
36016         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36017         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36018         jumpifnot_1 callers.
36019         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36020         callers.
36021         (store_expr): Adjust jumpifnot caller.
36022         (store_constructor): Adjust jumpif caller.
36023
36024         PR middle-end/42233
36025         * gimplify.c (gimple_boolify): For __builtin_expect call
36026         gimple_boolify also on its first argument.
36027
36028 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36029
36030         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36031         changequote block.
36032         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36033         * configure: Regenerated.
36034
36035 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36036
36037         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36038         lang_hooks.types_compatible_p instead of comptypes.
36039
36040 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36041
36042         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36043         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36044         if __prefer_thumb__ is defined.
36045
36046 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36047
36048         PR tree-optimization/43066
36049         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36050         array with zero-sized element type.
36051
36052 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36053
36054         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36055         rtx, allocate struct var_loc_node here and return it to the
36056         caller, and only if it is actually needed.
36057         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36058         move it earlier and return immediately if it returns NULL.
36059
36060 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36061
36062         * config/sparc/gas.h: New file.  Restore
36063         TARGET_ASM_NAMED_SECTION to its ELF default.
36064         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36065         check !HAVE_GNU_AS.
36066         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36067         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36068         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36069         after sparc/sysv4.h.
36070
36071 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36072
36073         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36074
36075 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36076
36077         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36078         patterns from predicated pattern.
36079
36080 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36081
36082         PR target/43103
36083         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36084         for insn mnemonic suffix.
36085
36086 2010-02-17  Richard Guenther  <rguenther@suse.de>
36087
36088         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36089         to loop PHI nodes.
36090
36091 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36092
36093         PR debug/42918
36094         * caller-save.c (save_call_clobbered_regs): If BB ends with
36095         a DEBUG_INSN, move any notes in between last real insn and the last
36096         DEBUG_INSN after the last DEBUG_INSN.
36097
36098 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36099
36100         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36101         Fix return type.  Fix argument type.  Explain meaning of return value.
36102
36103 2010-02-16  Richard Guenther  <rguenther@suse.de>
36104
36105         PR tree-optimization/41043
36106         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36107         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36108         statements ...
36109         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36110
36111 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36112
36113         PR tree-optimization/43074
36114         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36115         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36116         vectorizable cycles in hybrid SLP check.
36117         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36118
36119 2010-02-16  Richard Guenther  <rguenther@suse.de>
36120
36121         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36122         (true_dependence): If memrefs_conflict_p computes must-alias
36123         trust it.  Move TBAA check after offset-based disambiguation.
36124         (canon_true_dependence): Likewise.
36125
36126 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36127
36128         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36129         * doc/invoke.texi: Document it.
36130         * var-tracking.c: Include toplev.h and params.h.
36131         (vt_find_locations): Return bool indicating success.  Compute
36132         hash sizes unconditionally.  Check new parameter, report.
36133         (variable_tracking_main_1): Check vt_find_locations results and
36134         retry.  Renamed from...
36135         (variable_tracking_main): ... this.  New wrapper to preserve
36136         flag_var_tracking_assignments.
36137         * Makefile.in (var-tracking.o): Adjust dependencies.
36138
36139 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36140             Jakub Jelinek  <jakub@redhat.com>
36141
36142         PR target/42854
36143         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36144         if weak_import attribute is present.
36145         * config/darwin.c (machopic_select_section): Likewise.
36146
36147 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36148
36149         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36150         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36151         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36152         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36153
36154         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36155         types.
36156
36157         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36158         Fix argument types.
36159
36160         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36161         Rewrite text to refer to the names.
36162
36163 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36164
36165         * config/i386/i386-builtin-types.def
36166         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36167         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36168         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36169         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36170         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36171         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36172         IX86_BUILTIN_VPERMIL2PS256.
36173         (MULTI_ARG_4_DF2_DI_I): Defined.
36174         (MULTI_ARG_4_DF2_DI_I1): Defined.
36175         (MULTI_ARG_4_SF2_SI_I): Defined.
36176         (MULTI_ARG_4_SF2_SI_I1): Defined.
36177         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36178         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36179         __builtin_ia32_vpermil2ps256.
36180         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36181         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36182         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36183         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36184         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36185         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36186         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36187         CODE_FOR_xop_vpermil2v8sf3.
36188         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36189         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36190         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36191         (_mm256_permute2_pd): New.
36192         (_mm_permute2_ps): New.
36193         (_mm256_permute2_ps): New.
36194
36195 2010-02-15  Nick Clifton  <nickc@redhat.com>
36196
36197         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36198         boolean parameters.  Use emit_jump_insn when emitting a pop
36199         instruction containing a return insn.
36200         (push): Use 'true' rather than '1' as second parameter to F.
36201         (h8300_expand_prologue): Likewise.
36202         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
36203         (h8300_expand_epilogue): Likewise.
36204
36205 2010-02-15  Richard Guenther  <rguenther@suse.de>
36206
36207         PR middle-end/43068
36208         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
36209         if that is zero.
36210
36211 2010-02-15  Nick Clifton  <nickc@redhat.com>
36212
36213         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
36214         delta.
36215
36216 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
36217
36218         * intl.c (fake_ngettext): New function.
36219         * intl.h (fake_ngettext): Declare.
36220         (ngettext): Define macro.
36221         * collect2.c (notice_translated): New function.
36222         (main): Use notice_translated and ngettext.
36223         * collect2.h (notice_translated): Declare.
36224
36225 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
36226
36227         * reorg.c (delete_computation): Comment fixes.
36228         * caller-save.c (setup_save_areas): Idem.
36229         * sel-sched-dump.c (dump_lv_set): Idem.
36230         * rtl.def: Idem.
36231
36232 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36233
36234         * config/s390/s390.c (s390_sched_init): New function.
36235         (TARGET_SCHED_INIT): Target hook defined.
36236
36237 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
36238             Jack Howarth  <howarth@bromo.med.uc.edu>
36239             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
36240
36241         PR target/42982
36242         Partial revert of unintended change in fix for PR41605.
36243         * config/darwin.h: Fix typo.
36244         * config/darwin9.h: Same.
36245
36246 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36247
36248         * c-pch.c (pch_init): Clear v.
36249
36250 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36251
36252         PR middle-end/42930
36253         * graphite-scop-detection.c (graphite_can_represent_scev): Call
36254         graphite_can_represent_init for MULT_EXPR.
36255
36256 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36257
36258         PR middle-end/42914
36259         PR middle-end/42530
36260         * graphite-sese-to-poly.c (remove_phi): New.
36261         (translate_scalar_reduction_to_array): Call remove_phi.
36262
36263 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36264
36265         PR middle-end/42771
36266         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
36267         * graphite-clast-to-gimple.h (gloog): Update declaration.
36268         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
36269         * graphite-poly.h (struct poly_bb): Add missing comments.
36270         (struct scop): Add poly_scop_p field.
36271         (POLY_SCOP_P): New.
36272         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
36273         * graphite.c (graphite_transform_loops): Build the polyhedral
36274         representation for each scop before code generation.
36275         * sese.c (rename_variables_in_operand): Removed.
36276         (rename_variables_in_expr): Return the renamed expression.
36277         (rename_sese_parameters): New.
36278         * sese.h (rename_sese_parameters): Declared.
36279
36280 2010-02-11  Richard Guenther  <rguenther@suse.de>
36281
36282         PR tree-optimization/42998
36283         * tree-ssa-pre.c (create_expression_by_pieces): Treat
36284         POINTER_PLUS_EXPR properly.
36285
36286 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36287             Changpeng Fang  <changpeng.fang@amd.com>
36288
36289         PR middle-end/40886
36290         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
36291         the cost of an IV candidate when the IV is used in a test against zero.
36292
36293         * gcc.dg/tree-ssa/ivopts-3.c: New.
36294
36295 2010-02-11  Richard Guenther  <rguenther@suse.de>
36296
36297         PR lto/41664
36298         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
36299         pointer-vs-decl case by swapping refs.  Handle some cases
36300         of pointer-vs-decl disambiguations more conservatively.
36301         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
36302         to false after expanding.
36303
36304 2010-02-11  Richard Guenther  <rguenther@suse.de>
36305
36306         PR driver/43021
36307         * gcc.c (process_command): Handle LTO file@offset case more
36308         appropriately.
36309
36310 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36311
36312         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
36313         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
36314         of DEBUG_INSNs.
36315         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
36316
36317         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
36318         if MEM's mode size isn't DWARF2_ADDR_SIZE.
36319         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
36320         Optimize eq/ne comparisons when both arguments are known to be
36321         zero-extended.
36322         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
36323         Don't mask operands unnecessarily if they are known to be already
36324         zero-extended.
36325
36326 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
36327
36328         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
36329         instead of loop.
36330
36331 2010-02-10  Richard Guenther  <rguenther@suse.de>
36332
36333         PR tree-optimization/43017
36334         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
36335         for wrapping signed arithmetic.
36336
36337 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36338
36339         PR debug/43010
36340         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
36341         if no debug info should be emitted for it.
36342
36343 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
36344
36345         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
36346         note when flag_exceptions is set.
36347
36348 2010-02-10  Duncan Sands  <baldrick@free.fr>
36349
36350         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
36351
36352 2010-02-10  Richard Guenther  <rguenther@suse.de>
36353
36354         PR c/43007
36355         * tree.c (get_unwidened): Handle constants.
36356         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
36357
36358 2010-02-10  Martin Jambor  <mjambor@suse.cz>
36359
36360         PR lto/42985
36361         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
36362         check for variable argument counts independently.
36363
36364 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36365
36366         PR target/42841
36367         * config/sh/sh.c (find_barrier): Increase length for non delayed
36368         conditional branches.
36369
36370 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36371
36372         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36373
36374 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36375
36376         * builtins.c (set_builtin_user_assembler_name): Also handle
36377         ffs if int is smaller than word.
36378
36379 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36380
36381         PR middle-end/42973
36382         * ira-conflicts.c (get_dup): Remove.
36383         (process_reg_shuffles): Add new parameter.  Use it as an
36384         additional guard for copy generation.
36385         (add_insn_allocno_copies): Rewrite.
36386
36387 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36388
36389         * common.opt (fsched2-use-traces): Preserved for backward
36390         compatibility.
36391         * doc/invoke.texi: Remove the documentation about option
36392         -fsched2-use-traces.
36393         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36394         flag_sched2_use_traces.
36395         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36396         the backward compatibility flag section.
36397
36398 2010-02-09  Richard Guenther  <rguenther@suse.de>
36399
36400         PR tree-optimization/43008
36401         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36402         make HEAP variables initialized from global memory if they
36403         are not known builtin functions.
36404         (find_func_aliases): Adjust.
36405
36406 2010-02-09  Richard Guenther  <rguenther@suse.de>
36407
36408         PR tree-optimization/43000
36409         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36410         arithmetic manually.
36411
36412 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36413
36414         PR tree-optimization/42931
36415         * tree-loop-linear.c (try_interchange_loops): Don't call
36416         double_int_mul if estimated_loop_iterations failed.
36417
36418 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36419
36420         PR middle-end/42898
36421         * tree-sra.c (build_accesses_from_assign): Do not mark in
36422         should_scalarize_away_bitmap if stmt has volatile ops.
36423         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36424         has volatile ops.
36425
36426 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36427
36428         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36429
36430 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36431
36432         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36433         before the pattern.
36434
36435 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36436
36437         PR middle-end/42946
36438         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36439
36440 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36441
36442         PR middle-end/42988
36443         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36444         to unknown_dependence.
36445         (graphite_legal_transform_dr): Handle the unknown_dependence.
36446         (graphite_carried_dependence_level_k): Same.
36447
36448 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36449
36450         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36451
36452 2010-02-07  Richard Guenther  <rguenther@suse.de>
36453
36454         PR middle-end/42991
36455         * expr.c (get_inner_reference): Always initialize *pbitsize.
36456
36457 2010-02-07  Richard Guenther  <rguenther@suse.de>
36458
36459         PR middle-end/42956
36460         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36461         new ARRAY_REFs on variable size element or minimal index arrays.
36462         Complete.
36463         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36464         gimple_fold_indirect_ref.
36465
36466 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36467
36468         PR target/42957
36469         * arm.c (arm_override_options): Just return if the user has specified
36470         an invalid fpu name.
36471
36472 2010-02-03  Jason Merrill  <jason@redhat.com>
36473
36474         PR c++/42870
36475         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36476         i386_pe_maybe_record_exported_symbol.
36477
36478 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36479
36480         PR target/42924
36481         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36482         (pa_delegitimize_address): New function.
36483
36484 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36485
36486         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36487         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36488
36489 2010-02-05  Richard Guenther  <rguenther@suse.de>
36490
36491         PR lto/42762
36492         * lto-streamer-in.c (get_resolution): Deal with references
36493         to undefined functions.
36494
36495 2010-02-05  Richard Guenther  <rguenther@suse.de>
36496
36497         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36498         (fold_const_aggregate_ref): Likewise.
36499         (ccp_fold_stmt): Substitute loads.
36500         (maybe_fold_reference): Verify types before substituting.
36501         Unshare properly.
36502         (fold_gimple_assign): Unshare properly.
36503         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36504
36505 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36506
36507         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36508         for rs6000_gen_cell_microcode.
36509
36510 2010-02-04  Richard Guenther  <rguenther@suse.de>
36511
36512         PR rtl-optimization/42952
36513         * dse.c (const_or_frame_p): Remove MEM handling.
36514
36515 2010-02-04  Nick Clifton  <nickc@redhat.com>
36516
36517         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36518         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36519         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36520         (mn10300_asm_output_mi_thunk): New function.
36521         (mn10300_can_output_mu_thunk): New function.
36522         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36523         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36524         (FUNCTION_ARG): Delete incorrect comment.
36525
36526 2010-02-03  Jason Merrill  <jason@redhat.com>
36527
36528         PR c++/40138
36529         * fold-const.c (operand_equal_p): Handle erroneous types.
36530
36531 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36532
36533         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36534
36535 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36536
36537         PR rtl-optimization/42941
36538         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36539         of xmalloc.
36540
36541 2010-02-03  Jason Merrill  <jason@redhat.com>
36542
36543         PR c++/35652
36544         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36545
36546 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36547
36548         PR debug/42896
36549         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36550         (cselib_reset_table): Renamed from...
36551         (cselib_reset_table_with_next_value): ... this.
36552         (cselib_get_next_uid): Renamed from...
36553         (cselib_get_next_unknown_value): ... this.
36554         * cselib.c (next_uid): Renamed from...
36555         (next_unknown_value): ... this.
36556         (cselib_clear_table): Adjust.
36557         (cselib_reset_table): Adjust.  Renamed from...
36558         (cselib_reset_table_with_next_value): ... this.
36559         (cselib_get_next_uid): Adjust.  Renamed from...
36560         (cselib_get_next_unknown_value): ... this.
36561         (get_value_hash): Use hash.
36562         (cselib_hash_rtx): Likewise.
36563         (new_cselib_val): Adjust.  Set and dump uid.
36564         (cselib_lookup_mem): Pass next_uid as hash.
36565         (cselib_subst_to_values): Likewise.
36566         (cselib_log_lookup): Dump uid.
36567         (cselib_lookup): Pass next_uid as hash.  Adjust.
36568         (cselib_process_insn): Adjust.
36569         (cselib_init): Initialize next_uid.
36570         (cselib_finish): Adjust.
36571         (dump_cselib_table): Likewise.
36572         * dse.c (canon_address): Dump value uid.
36573         * print-rtl.c (print_rtx): Print value uid.
36574         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36575         (dvuid): New type.
36576         (dv_uid): New function, sort of renamed from...
36577         (dv_htab_hash): ... this, reimplemented in terms of it and...
36578         (dv_uid2hash): ... this.  New.
36579         (variable_htab_eq): Drop excess assertions.
36580         (tie_break_pointers): Removed.
36581         (canon_value_cmp): Compare uids.
36582         (variable_post_merge_New_vals): Print uids.
36583         (vt_add_function_parameters): Adjust.
36584         (vt_initialize): Reset table.  Adjust.
36585
36586 2010-02-03  Richard Guenther  <rguenther@suse.de>
36587
36588         PR tree-optimization/42944
36589         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36590         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36591         malloc and calloc clobbering errno.
36592
36593 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36594
36595         * doc/invoke.texi: Fix name of sched1 dump.
36596
36597         * opts.c (decode_options): Set flag_tree_switch_conversion
36598         only conditionally on optimize >= 2.
36599
36600         * gcse.c: Assorted comment fixes in pass description.
36601
36602 2010-02-03  Anthony Green  <green@moxielogic.com>
36603
36604         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36605         nop padding in order to maintain alignment of storage location of
36606         target function address.
36607         (moxie_trampoline_init): Store target function address at newly
36608         aligned location.
36609         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36610         to 32.
36611         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36612
36613 2010-02-03  Richard Guenther  <rguenther@suse.de>
36614
36615         PR middle-end/42927
36616         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36617
36618 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36619
36620         * config.gcc: Reenable check for obsolete targets.
36621         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36622         mips-sgi-irix6.[0-4]*.
36623
36624 2010-02-02  Nick Clifton  <nickc@redhat.com>
36625
36626         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36627         constant size of 4 as being the same as 0.
36628         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36629         can take values in the range 0..4.
36630
36631 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36632
36633         PR java/41991
36634         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36635         as _darwin10_Unwind_FindEnclosingFunction().
36636         * libgcc-libsystem.ver: New.
36637
36638 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36639
36640         PR target/41399
36641         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36642         implicitly set registers.
36643
36644 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36645
36646         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36647         (arm_override_options): Allow automatic selection of the thread
36648         pointer register if thumb2.
36649         (legitimize_pic_address): Improve code sequences for Thumb2.
36650         (arm_call_tls_get_addr): Likewise.
36651         (legitimize_tls_address): Likewise.
36652         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36653         (pic_load_addr_32bit): ... this.  New named pattern.
36654         * thumb2.md (pic_load_addr_thumb2): Delete.
36655         (pic_load_dot_plus_four): Delete.
36656         (tls_load_dot_plus_four): New named pattern.
36657
36658 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36659
36660         PR libgomp/29986
36661         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36662         Document fix for TLS bug.
36663
36664 2010-01-31  Richard Guenther  <rguenther@suse.de>
36665
36666         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36667         conservatively correct.
36668
36669 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36670
36671         PR target/42850
36672         Revert:
36673         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36674
36675         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36676
36677 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36678
36679         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36680
36681 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36682
36683         * config.gcc: Adjust order of makefile fragments for mingw targets.
36684
36685 2010-01-31  Richard Guenther  <rguenther@suse.de>
36686
36687         PR middle-end/42898
36688         * gimplify.c (gimplify_init_constructor): For volatile LHS
36689         initialize a temporary.
36690
36691 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36692
36693         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36694         --with-headers
36695         * configure: Regenerate.
36696
36697 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36698
36699         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36700         the same alias set and their sizes different constantness.
36701         (aliasing_component_refs_p): Revert 2009-10-24 change.
36702
36703 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36704
36705         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36706         unused.
36707
36708 2010-01-29  Richard Guenther  <rguenther@suse.de>
36709
36710         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36711         Assert we successfully updated the call.
36712
36713 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36714
36715         PR rtl-optimization/42889
36716         * df.h (df_set_bb_dirty_nonlr): New prototype.
36717         * df-core.c (df_set_bb_dirty_nonlr): New function.
36718         * df-scan.c (df_insn_rescan): Call it instead of
36719         df_set_bb_dirty for DEBUG_INSNs.
36720
36721 2010-01-29  Richard Guenther  <rguenther@suse.de>
36722
36723         PR middle-end/37448
36724         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36725         quadratic behavior in most cases.
36726
36727 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36728
36729         PR target/42891
36730         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36731         in the call to gen_x86_movsicc_0_m1.
36732
36733 2010-01-28  Richard Guenther  <rguenther@suse.de>
36734
36735         PR tree-optimization/42871
36736         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36737
36738 2010-01-28  Richard Guenther  <rguenther@suse.de>
36739
36740         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36741         into call arguments.
36742
36743 2010-01-28  Richard Guenther  <rguenther@suse.de>
36744
36745         PR middle-end/42883
36746         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36747         the forwarder if the destination is an EH landing pad.
36748
36749 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36750
36751         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36752         block list passed to gimple_duplicate_sese_tail.
36753         (parallelize_loops): Avoid parallelization when the function
36754         has_nonlocal_label.
36755         Avoid parallelization when the preheader is IRREDUCIBLE.
36756         Try to optimize when estimated_loop_iterations_int is unresolved.
36757         Add the loop's location to the dump file.
36758         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36759         (gimple_duplicate_sese_tail): Remove the check for the latch.
36760         Redirect nexits to the exit block.
36761         Remove handling of the incoming edges to the latch.
36762         Redirect the backedge from the copied latch to the exit bb.
36763
36764 2010-01-28  Michael Matz  <matz@suse.de>
36765
36766         PR target/42881
36767         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36768         Wrap force_reg into a sequence, emit it before user.
36769
36770 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36771
36772         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36773         (arm_rev): New.
36774         (arm_legacy_rev): Likewise.
36775         (thumb_legacy_rev): Likewise.
36776
36777 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36778
36779         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36780         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36781         on MEM's address failed, try avoid_constant_pool_reference and
36782         recurse if it returned something different.
36783         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36784         address, try avoid_constant_pool_reference and recurse if it
36785         returned something different.
36786         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36787         address and avoid_constant_pool_reference returned something
36788         different, don't set have_address.
36789
36790 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36791
36792         PR debug/42861
36793         * var-tracking.c (val_store): Add modified argument, obey it.
36794         Adjust callers.
36795         (count_uses): Move down logging of main.
36796         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36797         don't need resolution.
36798         (emit_notes_in_bb): Likewise.
36799
36800 2010-01-27  Richard Guenther  <rguenther@suse.de>
36801
36802         PR middle-end/42878
36803         * tree-inline.c (remap_decl): Delay remapping of SSA name
36804         default definitions until we need them.
36805
36806 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36807
36808         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36809         (rs6000_delegitimize_address): New function.
36810
36811         * config/s390/s390.c (s390_delegitimize_address): Call
36812         delegitimize_mem_from_attrs.
36813
36814         PR middle-end/42874
36815         * tree-inline.c (cannot_copy_type_1): Removed.
36816         (copy_forbidden): Don't forbid copying of functions containing
36817         records/unions with variable length fields.
36818
36819 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36820
36821         Revert:
36822         PR target/42841
36823         * config/sh/sh.c (find_barrier): Increase length for non delayed
36824         conditional branches.
36825
36826 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36827
36828         * configure.ac (gnu-unique-object): Fix ldd version check.
36829         * configure: Regenerate.
36830
36831 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36832
36833         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36834         HAVE_GNU_AS value.
36835         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36836         Test for HAVE_GNU_AS value.
36837
36838 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36839
36840         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36841         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36842         INT64_TYPE): Define.
36843         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36844         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36845         INT_LEAST64_TYPE): Define.
36846         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36847         UINT_LEAST64_TYPE): Define.
36848         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36849         INT_FAST64_TYPE): Define.
36850         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
36851         UINT_FAST64_TYPE): Define.
36852         (INTMAX_TYPE, UINTMAX_TYPE): Define.
36853         (INTPTR_TYPE, UINTPTR_TYPE): Define.
36854         (SIG_ATOMIC_TYPE): Define.
36855
36856 2010-01-26  Richard Guenther  <rguenther@suse.de>
36857
36858         * df-scan.c (df_scan_set_bb_info): Remove assert.
36859         (df_insn_rescan_debug_internal): Merge asserts.
36860         (df_install_ref): Likewise.
36861         (df_mark_reg): Use bitmap_set_range.
36862         (df_hard_reg_used_p): Remove assert.
36863         (df_hard_reg_used_count): Likewise.
36864
36865 2010-01-26  Richard Guenther  <rguenther@suse.de>
36866
36867         PR rtl-optimization/42685
36868         * web.c (web_main): Ignore DEBUG_INSNs.
36869
36870 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
36871
36872         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
36873
36874         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
36875         Fix types of fndecl and arglist parameters.
36876
36877 2010-01-26  Richard Guenther  <rguenther@suse.de>
36878
36879         PR middle-end/42806
36880         * tree-eh.c (unsplit_eh): Skip debug insns.
36881
36882 2010-01-26  Richard Guenther  <rguenther@suse.de>
36883
36884         PR tree-optimization/42250
36885         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
36886
36887 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
36888
36889         PR fortran/42866
36890         * omp-low.c (expand_omp_sections): Only use single_pred if
36891         l2_bb is single_pred_p.
36892
36893 2010-01-25  Christian Bruel  <christian.bruel@st.com>
36894
36895         PR target/42841
36896         * config/sh/sh.c (find_barrier): Increase length for non delayed
36897         conditional branches.
36898         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
36899
36900 2010-01-24  David S. Miller  <davem@davemloft.net>
36901
36902         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
36903         define if not using GAS.
36904         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36905         Likewise.  Delete SECTION_MERGE code, which is only applicable
36906         when using GAS.
36907
36908 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
36909
36910         PR c++/42748
36911         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
36912         mangling of va_list in system headers.
36913
36914 2010-01-23  Toon Moene  <toon@moene.org>
36915
36916         * tree-predcom.c (combine_chains): Return NULL, not false.
36917
36918 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
36919
36920         * tree-loop-distribution.c (distribute_loop): Fix declaration and
36921         initialization of variable res to agree with return type.
36922
36923 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
36924
36925         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
36926         * tree-sra.c: Add include of expr.h.
36927
36928 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
36929
36930         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
36931         insert the debug stmt on the single non-EH edge from the stmt.
36932
36933 2010-01-22  Richard Henderson  <rth@redhat.com>
36934
36935         PR tree-opt/42833
36936         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
36937         the RHS until after generate_subtree_copies has insertted its
36938         code before the current statement.
36939
36940 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
36941
36942         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
36943
36944         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
36945
36946 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36947
36948         PR tree-optimization/42585
36949         * tree-sra.c (struct access): New field grp_total_scalarization.
36950         (dump_access): Dump the new field.
36951         (should_scalarize_away_bitmap): New variable.
36952         (cannot_scalarize_away_bitmap): Likewise.
36953         (sra_initialize): Allocate new bitmaps.
36954         (sra_deinitialize): Free new bitmaps.
36955         (create_access_1): New function.
36956         (create_access): Parts moved to create_access_1.
36957         (type_consists_of_records_p): New function.
36958         (completely_scalarize_record): Likewise.
36959         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
36960         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
36961         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
36962         access.
36963         (analyze_all_variable_accesses): Completely scalarize small eligible
36964         records.
36965
36966 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36967
36968         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
36969
36970 2010-01-21  Andrew Haley  <aph@redhat.com>
36971
36972         * gcc.c (process_command): Move lang_specific_driver before
36973         setting cc_libexec_prefix.
36974
36975 2010-01-21  Richard Guenther  <rguenther@suse.de>
36976
36977         PR middle-end/19988
36978         * fold-const.c (negate_expr_p): Pretend only negative
36979         real constants are easily negatable.
36980
36981 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
36982             Jason Merrill  <jason@redhat.com>
36983
36984         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
36985         (TYPE_TRANSPARENT_AGGR): this, for union and record.
36986         * calls.c (initialize argument_information): Handle it.
36987         * c-common.c (handle_transparent_union_attribute): Use new name.
36988         * c-decl.c (finish_struct): Ditto.
36989         * c-typeck.c (type_lists_compatible_p): Ditto.
36990         (convert_for_assignment): Use new name and also handle record.
36991         * function.c (aggregate_value_p): Handle it.
36992         (pass_by_reference): Ditto.
36993         (assign_parm_data_types): Ditto.
36994         * print-tree.c (print_node): Ditto.
36995         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
36996         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
36997         * tree.c (first_field): New fn.
36998
36999 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37000
37001         PR target/42818
37002         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37003         even when linking statically, for now.
37004
37005 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37006
37007         PR debug/42715
37008         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37009         without a cselib val.
37010         (count_uses): Accept MO_VAL_SET with no val on stores.
37011         (add_stores): Likewise.
37012
37013 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37014
37015         * var-tracking.c (check_value_val): Add a compile time assertion.
37016         (dv_is_decl_p): Simplify.
37017         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37018         gcc_assert if ENABLE_CHECKING.
37019
37020 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37021
37022         PR debug/42782
37023         * var-tracking.c: Include tree-flow.h.
37024         (mem_dies_at_call): New.
37025         (dataflow_set_preserve_mem_locs): Use it.
37026         (dataflow_set_remove_mem_locs): Likewise.
37027         (dump_var): Renamed from dump_variable.  Adjust all callers.
37028         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37029         * Makefile.in (var-tracking.o): Adjust deps.
37030
37031 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37032
37033         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37034
37035 2010-01-20  Richard Guenther  <rguenther@suse.de>
37036
37037         PR tree-optimization/42717
37038         * tree-ssa-dce.c (get_live_post_dom): Remove.
37039         (forward_edge_to_pdom): Take an arbitrary edge to copy
37040         degenerate PHI args from.
37041         (remove_dead_stmt): Use the first post-dominator even if it
37042         does not contain live statements as redirection destination.
37043
37044 2010-01-20  Richard Guenther  <rguenther@suse.de>
37045
37046         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37047
37048 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37049
37050         * sel-sched.c (create_speculation_check): Remove set but not used
37051         variable twin.
37052         (try_transformation_cache): Remove set but not used variable ds.
37053         (calculate_privileged_insns): Remove set but not used variables
37054         cur_insn and min_spec_insn.
37055         (find_best_expr): Remove set but not used variable avail_n.
37056         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37057         variable e.
37058         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37059         false_label.
37060         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37061         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37062         new_scop_exit_edge.
37063
37064 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37065
37066         PR bootstrap/42786
37067         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37068         cpu types.  Add support for *-sse3 cpu types.
37069         (x86_64-*-*): Ditto.
37070
37071 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37072
37073         PR middle-end/42803
37074         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37075         argument, call initializer_constant_valid_p_1 instead of
37076         initializer_constant_valid_p, pass CACHE to it, return NULL
37077         immediately if first call returns NULL.
37078         (initializer_constant_valid_p_1): New function.
37079         (initializer_constant_valid_p): Use it.
37080
37081 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37082
37083         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37084
37085 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37086
37087         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37088         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37089         (loc_list_from_tree): Don't handle unsigned division.  Handle
37090         signed modulo using DW_OP_{over,over,div,mul,minus}.
37091         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37092         modulo instead of signed.
37093
37094 2010-01-20  DJ Delorie  <dj@redhat.com>
37095
37096         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37097         (Fpa): Pass it
37098         (h8300_emit_stack_adjustment): Propogate it.
37099         (push): Pass it.
37100         (h8300_expand_prologue): Likewise.
37101         (h8300_expand_epilogue): Likewise.
37102
37103 2010-01-19  Michael Matz  <matz@suse.de>
37104
37105         PR tree-optimization/41783
37106         * tree-data-ref.c (toplevel): Include flags.h.
37107         (dump_data_dependence_relation):  Also dump the inputs if the
37108         result will be unknown.
37109         (split_constant_offset_1): Look through some conversions.
37110         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37111         the offset from last element is too large.
37112         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37113         (reassociate_to_the_same_stmt): Handle vector registers.
37114         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37115         (e.g. conversions).
37116         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37117         wide_prolog_niters argument, emit widening instructions.
37118         (vect_do_peeling_for_alignment): Adjust caller, use widened
37119         variant of the iteration cound.
37120         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37121
37122 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37123
37124         PR target/38697
37125         * config/arm/neon-testgen.m (emit_automatics): New parameter
37126         features. Adjust for Fixed_return_reg feature.
37127         (test_intrinsic): Call emit_automatics with new feature.
37128         * config/arm/neon.ml: Update copyright years.
37129         (features): New Fixed_return_reg feature.
37130         (ops): Update feature for Vget_low.
37131
37132 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37133
37134         PR tree-optimization/42719
37135         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37136         stmt uses.
37137
37138         PR debug/42728
37139         * fwprop.c (all_uses_available_at): Return false if def_set dest
37140         is a REG that is used in def_insn.
37141
37142 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37143
37144         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37145
37146         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37147         Add argument names.
37148
37149         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37150
37151         * target.h (struct gcc_target) <secondary_reload>: Change type
37152         of last argument to secondary_reload_info *.
37153
37154 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37155
37156         PR target/42774
37157         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37158         memory references with unaligned offsets.  Remove CQImode handling.
37159         (unaligned_memory_operand): Return 1 for memory references with
37160         unaligned offsets.  Remove CQImode handling.
37161
37162 2010-01-18  Richard Guenther  <rguenther@suse.de>
37163
37164         PR middle-end/39954
37165         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37166         builtin calls.
37167
37168 2010-01-18  Richard Guenther  <rguenther@suse.de>
37169
37170         PR tree-optimization/42781
37171         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37172         restrict processing only if the original variable was artificial.
37173
37174 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37175
37176         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37177         find number of popped argument bytes.
37178
37179         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37180         Fix the text that describes the return value for invalid insns.
37181
37182         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37183
37184         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37185         Clarify what 'cost of the -dependence' is.  Fix quoting.
37186
37187         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37188         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37189
37190 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37191
37192         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37193         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37194
37195 2010-01-17  Richard Guenther  <rguenther@suse.de>
37196
37197         PR middle-end/42248
37198         * function.c (split_complex_args): Take a VEC to modify.
37199         (assign_parms_augmented_arg_list): Build a VEC instead of
37200         a chain of PARM_DECLs.
37201         (assign_parms_unsplit_complex): Take a VEC of arguments.
37202         Do not fixup unmodified parms.
37203         (assign_parms): Deal with the VEC.
37204         (gimplify_parameters): Likewise.
37205
37206 2010-01-17  Richard Guenther  <rguenther@suse.de>
37207
37208         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
37209         node existence check.
37210         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
37211         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
37212         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
37213         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
37214         (gimple_execute_on_growing_pred): Likewise.
37215
37216 2010-01-17  Richard Guenther  <rguenther@suse.de>
37217
37218         PR tree-optimization/42773
37219         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
37220         (compute_antic_aux): Likewise.
37221         (compute_partial_antic_aux): Likewise.
37222
37223 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
37224
37225         PR debug/42767
37226         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
37227         and US_TRUNCATE.
37228
37229 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
37230
37231         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
37232         appearance.
37233
37234         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
37235         Fix markup for strict argument.
37236
37237         (TARGET_SCHED_REORDER2): Fix argument types.
37238
37239         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
37240         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
37241
37242         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
37243         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
37244
37245         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
37246         Add argument name.
37247
37248         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
37249         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
37250         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
37251         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
37252         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
37253
37254         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
37255
37256         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
37257
37258         (TARGET_ASM_RELOC_RW_MASK): Add return type.
37259         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
37260
37261         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
37262
37263         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
37264         Use prototype.
37265
37266         (TARGET_ASM_NAMED_SECTION): Fix argument list.
37267
37268         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
37269         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
37270
37271         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
37272
37273         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
37274
37275         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
37276         referring to it.  Fix language.
37277
37278         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
37279
37280         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
37281
37282         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
37283
37284         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
37285
37286         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
37287         '@var{stream}.  Remove stray 'and'.
37288
37289         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
37290
37291         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
37292
37293         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
37294
37295         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
37296         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
37297
37298         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
37299         Fix description of return value.
37300         Rename argument "sz" to "len."
37301
37302         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
37303         Clarify meaning of 'true' return value.
37304
37305         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
37306
37307         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
37308         rep_mode versus mode_rep.
37309
37310         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
37311
37312         (TARGET_BUILTIN_DECL): Fix name.
37313
37314         (TARGET_COMMUTATIVE_P): Fix type of first argument.
37315
37316         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
37317
37318         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
37319
37320         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
37321
37322         (TARGET_RELAXED_ORDERING): Use @deftypevr.
37323
37324         (TARGET_GET_DRAP_RTX): Note that this is a hook.
37325         Clarify language.
37326
37327         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
37328         Rename argument tm_fn to md_fn.
37329
37330         (TARGET_OPTION_PRINT): Fix argument list.
37331
37332 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
37333
37334         PR target/42664
37335         * config/i386/i386.c (ix86_fixup_binary_operands):
37336         Revert FMA4 fixup of operands.
37337
37338 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37339
37340         PR other/42525
37341         * Makefile.in (write_entries_to_file, install-plugin):
37342         Use \012 instead of \n with tr.
37343
37344 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
37345
37346         * configure.ac (HAVE_AS_REF): New C macro.
37347         * configure: Regenerate.
37348         * config.in: Likewise.
37349         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
37350         if HAVE_AS_REF.
37351         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
37352         if HAVE_AS_REF.
37353
37354 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
37355
37356         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
37357
37358         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
37359
37360         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
37361
37362         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
37363
37364         (TARGET_IN_SMALL_DATA_P): Fix argument type.
37365
37366         (TARGET_BINDS_LOCAL_P): Fix argument type.
37367
37368         (TARGET_ASM_FILE_END): Use prototype.
37369
37370         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37371
37372         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37373
37374         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37375
37376         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37377
37378         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37379         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37380
37381         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37382         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37383
37384         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37385         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37386         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37387         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37388
37389         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37390
37391         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37392
37393         (TARGET_INIT_BUILTINS): Use prototype.
37394
37395         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37396         Put 'const char *' in braces.  Fix parameter types.
37397         (TARGET_INVALID_CONVERSION): Fix parameter types.
37398         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37399         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37400
37401         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37402         Fix argument type.
37403
37404         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37405
37406         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37407
37408 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37409
37410         * doc/tm.texi (TARGET_HELP): Fix return type.
37411
37412         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37413         in braces.  Fix argument types.
37414
37415         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37416
37417         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37418
37419         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37420
37421         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37422         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37423
37424         (TARGET_MANGLE_TYPE): Fix argument types.
37425
37426         (TARGET_IRA_COVER_CLASSES): Use prototype.
37427
37428         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37429
37430         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37431
37432         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37433
37434         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37435
37436         (TARGET_CALLEE_COPIES): Fix argument types.
37437
37438         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37439
37440         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37441
37442         (TARGET_FUNCTION_VALUE): Fix argument types.
37443
37444         (TARGET_RETURN_IN_MSB): Fix argument type.
37445
37446         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37447
37448         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37449
37450         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37451
37452         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37453         agree with return type.
37454
37455         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37456
37457 2010-01-15  Jing Yu  <jingyu@google.com>
37458
37459         PR rtl-optimization/42691
37460         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37461         a pseudo to a constant and are merged, and adjust comments.
37462
37463 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37464
37465         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37466
37467 2010-01-15  Richard Guenther  <rguenther@suse.de>
37468
37469         PR middle-end/42739
37470         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37471         labels of computed or non-local gotos to the destination.
37472         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37473         landing pad label is the first label.
37474
37475 2010-01-15  Richard Guenther  <rguenther@suse.de>
37476
37477         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37478
37479 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37480
37481         PR target/42747
37482         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37483         to allow generation of the xssqrtdp instruction on power7.
37484         (sqrtdf2_fpr): Ditto.
37485
37486 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37487
37488         PR middle-end/42674
37489         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37490         functions with noreturn attribute.
37491
37492         PR c++/42608
37493         * varasm.c (declare_weak): Add weak attribute to decl if it
37494         doesn't have one already.
37495         (assemble_external): Only add decls to weak_decls if they also
37496         have weak attribute.
37497
37498 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37499
37500         * var-tracking.c (var_reg_delete): Don't delete the association
37501         between REGs and values or one-part variables if the register
37502         isn't clobbered.
37503
37504 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37505
37506         PR debug/42657
37507         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37508         because its first operand is a non-localized variable.
37509
37510 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37511
37512         PR tree-optimization/42706
37513         * tree-sra.c (encountered_recursive_call): New variable.
37514         (encountered_unchangable_recursive_call): Likewise.
37515         (sra_initialize): Initialize both new variables.
37516         (callsite_has_enough_arguments_p): New function.
37517         (scan_function): Call decl and flags check only for IPA-SRA, check
37518         whether there is a recursive call and whether it has enough arguments.
37519         (all_callers_have_enough_arguments_p): New function.
37520         (convert_callers): Look for recursive calls only when
37521         encountered_recursive_call is set.
37522         (ipa_early_sra): Bail out either if
37523         !all_callers_have_enough_arguments_p or
37524         encountered_unchangable_recursive_call.
37525
37526 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37527
37528         * sel-sched.c: Add 2010 to copyright years.
37529         * sel-sched-ir.c: Likewise.
37530         * sel-sched-ir.h: Likewise.
37531
37532 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37533
37534         PR tree-optimization/42714
37535         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37536         constructors specially.
37537
37538 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37539
37540         * config/i386/drivers-i386.c (detect_caches_intel):
37541         Add l2sizekb parameter and fill in.
37542         (host_detect_local_cpu): Add l2sizekb, fill in.
37543         Add Atom small cache heuristic.
37544
37545 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37546
37547         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37548         Add level3 parameter and fill in.
37549         (detect_caches_intel): Handle level3 cache.
37550
37551 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37552
37553         * config/i386/drivers-i386.c (host_detect_local_cpu):
37554         Fix core duo detection.
37555
37556 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37557
37558         * config/i386/drivers-i386.c (host_detect_local_cpu):
37559         Fix Atom detection.
37560
37561 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37562
37563         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37564         (rs6000_variable_issue_1): this.  Use...
37565         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37566
37567 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37568
37569         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37570         sel_restore_notes.  Update all callers.  Call reemit_notes
37571         for all insns.
37572
37573 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37574
37575         PR rtl-optimization/42246
37576         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37577         loops.
37578
37579 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37580
37581         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37582         all successors is the same as number of successors in current region.
37583
37584 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37585
37586         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37587         to rename is not separable.  Otherwise check that its LHS is not NULL.
37588
37589 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37590
37591         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37592
37593 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37594
37595         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37596         available registers when failed to discover LHS register class.
37597         Fix indentation.  Update comment.
37598
37599 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37600             Alexander Monakov  <amonakov@ispras.ru>
37601
37602         PR rtl-optimization/42389
37603         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37604         to can_issue_more.
37605         (advance_state_on_fence): Likewise.
37606         (sel_target_adjust_priority): Print debug output only when
37607         sched_verbose >= 4, not 2.
37608         (get_expr_cost): Do not issue all unique insns on the next cycle.
37609         (fill_insns): Initialize can_issue_more from the value saved
37610         with the fence.
37611         * sel-sched-ir.c (flist_add): New parameter issue_more.
37612         Init FENCE_ISSUE_MORE with it.
37613         (merge_fences): Likewise.
37614         (init_fences): Update call to flist_add.
37615         (add_to_fences, add_clean_fence_to_fences)
37616         (add_dirty_fence_to_fences): Likewise.
37617         (move_fence_to_fences): Update call to merge_fences.
37618         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37619         sched groups.
37620         * sel-sched-ir.h (struct _fence): New field issue_more.
37621         (FENCE_ISSUE_MORE): New accessor macro.
37622
37623 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37624
37625         PR rtl-optimization/42388
37626         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37627         that have no predecessors nor successors.  Do not call move_bb_info
37628         for empty blocks outside of current region.
37629
37630 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37631
37632         PR rtl-optimization/42294
37633         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37634         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37635         originators' originators.
37636
37637 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37638
37639         PR rtl-optimization/39453
37640         PR rtl-optimization/42246
37641         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37642         for pipelining_p.
37643         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37644
37645 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37646             Alexander Monakov  <amonakov@ispras.ru>
37647
37648         PR middle-end/42245
37649         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37650         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37651         argument.  Update all callers.
37652         (tidy_control_flow): ... and here.  Recompute topological order
37653         of basic blocks in region if necessary.
37654         (sel_redirect_edge_and_branch): Change return type.  Return true
37655         if topological order might have been invalidated.
37656         (purge_empty_blocks): Export and move from...
37657         * sel-sched.c (purge_empty_blocks): ... here.
37658         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37659         (maybe_tidy_empty_bb): Delete prototype.
37660         (purge_empty_blocks): Declare.
37661
37662 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37663
37664         PR rtl-optimization/42249
37665         * sel-sched.c (try_replace_dest_reg): When chosen register
37666         and original register is the same, do not bail out early, but
37667         still check all original insns for validity of replacing destination
37668         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37669         in this case.
37670
37671 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37672
37673         PR c/42721
37674         Port from no-undefined-overflow branch:
37675         2009-03-09  Richard Guenther  <rguenther@suse.de>
37676
37677         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37678
37679 2010-01-14  Richard Guenther  <rguenther@suse.de>
37680
37681         PR lto/42665
37682         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37683
37684 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37685
37686         PR tree-optimization/42709
37687         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37688         as scalar type in creation of constant vector operand.
37689
37690 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37691
37692         PR testsuite/42414
37693         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37694         (check-parallel-%): Match `testsuite' directory component only
37695         at the end.
37696
37697 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37698
37699         PR translation/39521
37700         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37701         strings with _().
37702
37703 2010-01-13  Richard Guenther  <rguenther@suse.de>
37704
37705         PR tree-optimization/42730
37706         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37707         offset zero.
37708
37709 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37710
37711         PR target/pr42542
37712         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37713         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37714         them signed.
37715
37716 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37717
37718         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37719         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37720         ___umulsi3_highpart.
37721
37722         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37723         rather than schedule_insns if the pass is enabled.
37724
37725 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37726
37727         PR tree-optimization/42704
37728         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37729         SSA_NAMEs.
37730
37731 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37732
37733         PR tree-optimization/42703
37734         * tree-sra.c (analyze_access_subtree): Check that we can build a
37735         reference to the original data within the aggregate.
37736
37737 2010-01-13  Richard Guenther  <rguenther@suse.de>
37738
37739         PR tree-optimization/42705
37740         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37741
37742 2010-01-13  Richard Guenther  <rguenther@suse.de>
37743
37744         PR middle-end/42716
37745         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37746
37747 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37748
37749         PR debug/41371
37750         * var-tracking.c (values_to_unmark): New variable.
37751         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37752         values_to_unmark vector.  Moved body to...
37753         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37754         instead queue it into values_to_unmark vector.
37755         (vt_find_locations): Free values_to_unmark vector.
37756
37757 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37758
37759         * config/s390/s390.c (override_options): Set
37760         default of max-pending-list-length to 256
37761
37762 2010-01-13  Richard Guenther  <rguenther@suse.de>
37763
37764         PR lto/42678
37765         * tree-pass.h (PROP_gimple_lcx): New.
37766         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37767         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37768         before the final cleanup_eh.
37769         (dump_properties): Dump PROP_gimple_lcx.
37770         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37771         (tree_lower_complex_O0): Remove.
37772         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37773         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37774         tree_lower_complex, schedule TODO_update_ssa.
37775         * lto-streamer-out.c (output_function): Stream the functions
37776         properties.
37777         * lto-streamer-in.c (input_function): Likewise.
37778         (lto_read_body): Do not override them here.
37779
37780 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37781
37782         PR c/42708
37783         * c-typeck.c (build_c_cast): Fold value cast to union type before
37784         wrapping it in a CONSTRUCTOR.
37785
37786 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37787
37788         PR rtl-optimization/42699
37789         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37790         involved.
37791
37792 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37793
37794         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37795         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37796         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37797         SUBTARGET_WARN_UNUSED_SPEC): ... here
37798         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37799
37800 2010-01-12  Julian Brown  <julian@codesourcery.com>
37801
37802         * config/arm/neon-schedgen.ml (Utils): Don't try to
37803         open missing module.
37804         (find_with_result): New.
37805
37806 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37807
37808         PR debug/42662
37809         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37810         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37811
37812         PR tree-optimization/42645
37813         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37814         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37815         decl_map, set processing_debug_stmt to -1 and return name without
37816         any remapping.
37817
37818 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37819
37820         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37821         binutils version, and reword target configuration description.
37822
37823 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37824
37825         * config/avr/avr.h (LINKER_NAME): Remove.
37826
37827 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37828
37829         PR target/42416
37830         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37831         that support VSX, warn for -mno-altivec if vsx is not disabled,
37832         and disable vsx.
37833
37834 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37835             Shujing Zhao  <pearly.zhao@oracle.com>
37836
37837         PR translation/42469
37838         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37839         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37840         character between option name and help text.
37841         * c.opt (imultilib): Likewise.
37842
37843 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37844
37845         * lto-streamer-out.c (output_unreferenced_globals): Output static
37846         variables.
37847
37848 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37849
37850         PR rtl-optimization/42621
37851         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
37852         optimizing for size.
37853         (duplicate_computed_gotos): Remove now-redundant check.
37854
37855 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
37856
37857         PR target/37454
37858         * configure.ac: Save and restore LDFLAGS and LIBS
37859         * configure: Regenerate.
37860
37861 2010-01-10  Richard Guenther  <rguenther@suse.de>
37862
37863         PR middle-end/42667
37864         * builtins.c (fold_builtin_strlen): Add type argument and
37865         convert the resulting length to it.
37866         (fold_builtin_1): Adjust.
37867
37868 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37869
37870         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
37871         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
37872         1 insn.
37873         (num_insns_constant_wide): Adjust for that change.
37874
37875 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37876
37877         PR debug/42631
37878         * web.c (union_defs): Add used argument, to combine uses of
37879         uninitialized regs.
37880         (entry_register): Adjust type and tests of used argument.
37881         (web_main): Widen used for new use.  Pass it to union_defs.
37882         * df.h (union_defs): Adjust prototype.
37883
37884 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37885
37886         PR debug/42630
37887         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
37888         uses in new incoming argument.  Free body.
37889         (reset_debug_uses_in_loop): New.
37890         (analyze_insn_to_expand_var): Call the latter if the former found
37891         anything.  Fix whitespace.  Reject invalid dest overlaps before
37892         going through all insns in the loop.
37893
37894 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37895
37896         PR debug/42629
37897         * haifa-sched.c (dying_use_p): Debug insns don't count.
37898
37899 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37900
37901         PR middle-end/42363
37902         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
37903         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
37904         (verify_gimple_call): Reject LHS in noreturn calls.
37905
37906 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37907
37908         PR debug/42604
37909         PR debug/42395
37910         * tree-vect-loop-manip.c (adjust_info): New type.
37911         (adjust_vec): New pointer to vector.
37912         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
37913         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
37914         (slpeel_update_phis_for_duplicate_loop): Use them.
37915         (slpeel_update_phi_nodes_for_guard1): Likewise.
37916         (slpeel_update_phi_nodes_for_guard2): Likewise.
37917         (slpeel_tree_peel_loop_to_edge): Likewise.
37918         (vect_update_ivs_after_vectorizer): Likewise.
37919
37920 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37921
37922         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
37923         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
37924
37925 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37926
37927         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
37928         bogus uninitialized warning.
37929
37930 2010-01-09  Richard Guenther  <rguenther@suse.de>
37931
37932         PR middle-end/42512
37933         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
37934         the evolution is compatible with the initial condition.
37935
37936 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37937
37938         * gcc.c (process_command): Update copyright notice dates.
37939         * gcov.c (print_version): Likewise.
37940         * gcov-dump.c (print_version): Likewise.
37941         * mips-tfile.c (main): Likewise.
37942         * mips-tdump.c (main): Likewise.
37943
37944 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37945
37946         PR target/41885
37947         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
37948         (rotlhi3): Delete.
37949         (rotlhi3_8): Delete.
37950         (rotlsi3): Delete.
37951         (rotlsi3_8): Delete.
37952         (rotlsi3_16): Delete.
37953         (rotlsi3_24): Delete.
37954         (rotl<mode>3): New.
37955         (*rotw<mode>3): New.
37956         (*rotb<mode>3): New.
37957         * config/avr/avr.c (avr_rotate_bytes): New function.
37958         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
37959
37960 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
37961
37962         PR target/37454
37963         * configure.ac: Modify -rdynamic check.
37964         * configure: Regenerate.
37965
37966 2010-01-08  DJ Delorie  <dj@redhat.com>
37967
37968         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
37969         register popping order.
37970
37971 2010-01-08  Richard Guenther  <rguenther@suse.de>
37972
37973         PR lto/42528
37974         * c.opt (fsigned-char): Also let LTO handle this option.
37975         (funsigned-char): Likewise.
37976
37977 2010-01-07  Richard Guenther  <rguenther@suse.de>
37978
37979         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
37980         (gimple_op): Likewise.
37981         (gimple_op_ptr): Likewise.
37982         (gimple_assign_set_lhs): Remove gcc_assert.
37983         (gimple_assign_set_rhs1): Likewise.
37984         (gimple_assign_set_rhs2): Likewise.
37985         (gimple_call_set_lhs): Likewise.
37986         (gimple_call_set_fn): Likewise.
37987         (gimple_call_set_fndecl): Likewise.
37988         (gimple_call_fndecl): Likewise.
37989         (gimple_call_return_type): Likewise.
37990         (gimple_call_set_chain): Likewise.
37991         (gimple_call_num_args): Likewise.
37992         (gimple_call_set_arg): Likewise.
37993         (gimple_cond_set_code): Likewise.
37994         (gimple_cond_set_lhs): Likewise.
37995         (gimple_cond_set_rhs): Likewise.
37996         (gimple_cond_set_true_label): Likewise.
37997         (gimple_cond_set_false_label): Likewise.
37998         (gimple_label_set_label): Likewise.
37999         (gimple_goto_set_dest): Likewise.
38000         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38001         (gimple_debug_bind_get_value): Likewise.
38002         (gimple_debug_bind_get_value_ptr): Likewise.
38003         (gimple_debug_bind_set_var): Likewise.
38004         (gimple_debug_bind_set_value): Likewise.
38005         (gimple_debug_bind_reset_value): Likewise.
38006         (gimple_debug_bind_has_value_p): Likewise.
38007         (gimple_return_retval_ptr): Remove gcc_assert.
38008         (gimple_return_retval): Likewise.
38009         (gimple_return_set_retval): Likewise.
38010         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38011         (safe_referenced_var_iterator): Remove.
38012         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38013         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38014         (fill_referenced_var_vec): Remove.
38015         (first_readonly_imm_use): Remove redundant gcc_assert.
38016         (phi_arg_index_from_use): Combine gcc_asserts.
38017         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38018         (first_imm_use_stmt): Remove redundant gcc_assert.
38019         * tree-cfg.c (verify_gimple_call): Verify function and chain
38020         operands.  Verify arguments.
38021         (verify_types_in_gimple_stmt): Verify condition code and labels.
38022
38023 2010-01-07  Richard Guenther  <rguenther@suse.de>
38024
38025         PR tree-optimization/42641
38026         * sese.c (rename_map_elt_info): Use the SSA name version, do
38027         not hash pointers.
38028
38029 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38030
38031         PR tree-optimization/42625
38032         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38033         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38034
38035 2010-01-07  Duncan Sands  <baldrick@free.fr>
38036
38037         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38038
38039 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38040
38041         PR target/42511
38042         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38043         note itself is not function_invariant_p.
38044
38045 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38046
38047         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38048         Do not add the DF_NOTE problem.
38049         * store-motion.c (execute_rtl_store_motion): Likewise.
38050
38051 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38052
38053         PR tree-optimization/42157
38054         * tree-sra.c (compare_access_positions): Stabilize sort if both
38055         accesses have integer types, return zero immediately if they are the
38056         same.
38057
38058 2010-01-06  Richard Henderson  <rth@redhat.com>
38059
38060         PR middle-end/41883
38061         * haifa-sched.c (add_to_note_list): Merge into ...
38062         (concat_note_lists): ... here, and ...
38063         (unlink_other_notes, rm_other_notes): Merge into...
38064         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38065         NOTE_INSN_EPILOGUE_BEG.
38066
38067 2010-01-06  Richard Guenther  <rguenther@suse.de>
38068
38069         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38070         not inline regular functions into always-inline functions.
38071
38072 2010-01-06  Nick Clifton  <nickc@redhat.com>
38073
38074         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38075         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38076         used together.
38077         (OVERRIDE_OPTIONS): Delete.
38078         (OPTIMIZATION_OPTIONS): Define.
38079         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38080         * config/rx/rx.c (rx_handle_option): Issue an error message if
38081         -mcpu=rx200 and -fpu are used together.
38082         (rx_set_optimization_options): New function.  Issue an error
38083         message if an optimization attribute attempts to reset the FPU/
38084         math optimization pairing.
38085         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38086         * config/rx/rx.opt: Set the default to 32-bit doubles.
38087         * config/rx/t-rx: Add multilibs for -nofpu option.
38088         * doc/invoke.texi: Update documentation of RX options.
38089
38090 2010-01-06  Richard Guenther  <rguenther@suse.de>
38091
38092         * tree-ssa-pre.c (name_to_id): New global.
38093         (alloc_expression_id): Simplify SSA name handling.
38094         (lookup_expression_id): Likewise.
38095         (init_pre): Zero name_to_id.
38096         (fini_pre): Free it.
38097
38098 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38099
38100         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38101
38102 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38103
38104         PR target/42542
38105         * config/i386/sse.md (smaxv2di3): New.
38106         (umaxv2di3): Likewise.
38107         (sminv2di3): Likewise.
38108         (uminv2di3): Likewise.
38109
38110 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38111
38112         PR target/42564
38113         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38114         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38115         (legitimize_tls_address): Likewise.
38116         (sparc_tls_referenced_p): Likewise.
38117         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38118         and adjust calls to legitimize_pic_address.
38119         (legitimate_constant_p) Use sparc_tls_referenced_p.
38120         (legitimate_pic_operand_p): Likewise.
38121         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38122         (sparc_tls_symbol_ref_1): Delete.
38123         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38124         (legitimize_tls_address): Make static, handle CONST patterns.
38125         (legitimize_pic_address): Make static, remove unused parameter and
38126         adjust recursive calls.
38127         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38128         and adjust call to legitimize_pic_address.
38129         (sparc_output_mi_thunk): Likewise.
38130
38131 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38132             H.J. Lu  <hongjiu.lu@intel.com>
38133
38134         PR target/42542
38135         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38136         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38137         operands to make them signed.
38138
38139         Revert:
38140         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38141
38142         PR target/42542
38143         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38144         GTU to GT for V4SI and V2DI.
38145
38146         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38147         (umin<mode>3): Removed.
38148         (uminv8hi3): New.
38149         (uminv4si3): Likewise.
38150
38151 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38152
38153         PR tree-optimization/42462
38154         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38155         current_function_decl to helper functions and macros.
38156
38157 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38158
38159         PR bootstrap/41771
38160         * flags.h: Don't include real.h.
38161         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38162         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38163         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38164         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38165         * dominance.c: Update copyright.
38166         * gimple.c (walk_gimple_op): Remove inline.
38167         * tree-ssa-reassoc.c: Include real.h.
38168         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38169         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38170
38171 2010-01-05  Nick Clifton  <nickc@redhat.com>
38172
38173         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38174         register to push into the stack frame when the accumulator has to
38175         be saved during interrupts.
38176
38177 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38178
38179         * doc/invoke.texi: Remove the documentation about option
38180         -Wunreachable-code.
38181         * common.opt (Wunreachable-code):  Preserved for backward
38182         compatibility.
38183         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38184         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38185         the backward compatibility flag section.
38186
38187 2010-01-05  Richard Guenther  <rguenther@suse.de>
38188
38189         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38190
38191 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38192
38193         PR other/42611
38194         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38195
38196         PR tree-optimization/42508
38197         * tree-sra.c (convert_callers): Check for recursive call
38198         by comparing cgraph nodes instead of decls.
38199         (modify_function): Call ipa_modify_formal_parameters also
38200         on all same_body aliases.
38201
38202         * cgraphunit.c (cgraph_materialize_all_clones): Compare
38203         cgraph nodes when checking for same_body aliases.
38204
38205 2010-01-05  Richard Guenther  <rguenther@suse.de>
38206
38207         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
38208         allocation and lookup.
38209         (get_or_alloc_expr_for_constant): Likewise.
38210         (phi_translate): Sink allocation.
38211
38212 2010-01-04  Richard Guenther  <rguenther@suse.de>
38213
38214         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
38215         a new entry only if needed.
38216         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
38217         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
38218         hashtable lookup.
38219         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
38220         the result array.
38221         (phi_translate): Handle CONSTANTs early.
38222
38223 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38224
38225         PR tree-optimization/42398
38226         * tree-sra.c (struct access): Removed flag grp_different_types.
38227         (dump_access): Do not dump the removed flag.
38228         (sort_and_splice_var_accesses): Do not set the removed flag.
38229         (sra_modify_expr): Check for type compatibility directly.
38230
38231 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38232
38233         PR tree-optimization/42366
38234         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
38235         edges with variable number of parameters.
38236         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
38237         flag instead of asserting it.
38238         (ipa_read_node_info): Read uses_analysis_done flag.
38239
38240 2010-01-04  Richard Guenther  <rguenther@suse.de>
38241
38242         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
38243         iterative_hash_* as intended.
38244         (vn_reference_compute_hash): Likewise.  Simplify hashing
38245         SSA names.
38246         (vn_reference_lookup_2): Likewise.
38247         (vn_nary_op_compute_hash): Likewise.
38248         (vn_phi_compute_hash): Likewise.
38249         (expressions_equal_p): Remove strange code.
38250         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
38251         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
38252         (bitmap_insert_into_set_1): Take value-id as parameter.
38253         (add_to_value): Pass it.
38254         (bitmap_insert_into_set): Likewise.
38255         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
38256
38257 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
38258
38259         PR driver/42442
38260         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
38261         (do_self_spec): For switches with SWITCH_IGNORE set set also
38262         SWITCH_IGNORE_PERMANENTLY.
38263         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
38264         of SWITCH_IGNORE.
38265
38266 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
38267
38268         * lto-streamer-out.c (output_unreferenced_globals): Output the full
38269         tree of an unreferenced global var.
38270
38271 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38272
38273         PR target/42542
38274         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38275         GTU to GT for V4SI and V2DI.
38276
38277         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38278         (umin<mode>3): Removed.
38279         (uminv8hi3): New.
38280         (uminv4si3): Likewise.
38281
38282 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38283
38284         PR lto/42581
38285         * collect2.c (main): Turn on trace in collect2 if -v is passed
38286         to gcc with LTO.
38287
38288 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
38289
38290         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
38291         description of expression operand.
38292
38293 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
38294
38295         * configure.ac: Add install-html to target_list for Make-hooks.
38296         * configure: Regenerate.
38297         * fortran/Make-lang.in (F95_HTMLFILES): New.
38298         (fortran.html): Use it.
38299         (fortran.install-html): New.
38300         * Makefile.in (install-html): Add lang.install-html.
38301         * java/Make-lang.in (JAVA_HTMLFILES): New.
38302         (java.html): Use it.
38303         (java.install-html): New.
38304         * objc/Make-lang.in (objc.install-html): New.
38305         * objcp/Make-lang.in (obj-c++.install-html): New.
38306         * cp/Make-lang.in (c++.install-html): New.
38307         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
38308         * lto/Make-lang.in (lto.install-html): New.
38309
38310 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38311
38312         PR lto/42520
38313         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
38314
38315 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38316
38317         PR rtl-optimization/41862
38318         * store-motion.c (store_killed_in_insn, compute_store_table,
38319         remove_reachable_equiv_notes, replace_store_insn,
38320         build_store_vectors): Ignore all DEBUG_INSNs.
38321
38322 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38323
38324         PR lto/41564
38325         * common.opt: Add dumpdir.
38326
38327         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
38328         isn't specified.
38329         (option_map): Add --dumpdir.
38330
38331         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
38332
38333         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
38334
38335         * opts.c (decode_options): Try dump_dir_name first if
38336         dump_base_name isn't an absolute path.
38337         (common_handle_option): Handle OPT_dumpdir.
38338
38339         * toplev.c (dump_dir_name): New.
38340         (print_switch_values): Also ignore -dumpdir.
38341
38342         * toplev.h (dump_dir_name): New.
38343
38344 2010-01-03  Richard Guenther  <rguenther@suse.de>
38345
38346         PR tree-optimization/42589
38347         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
38348         double-word expansion of bswap32.
38349
38350 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38351
38352         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
38353         with BLOCK_FOR_INSN.
38354         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
38355         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
38356         noce_process_if_block): Likewise.
38357         * gcse.c (compute_local_properties, insert_expr_in_table,
38358         insert_set_in_table, canon_list_insert, find_avail_set,
38359         pre_insert_copy_insn): Likewise.
38360
38361         * basic-block.h (BLOCK_NUM): Move from here...
38362         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
38363
38364 2010-01-03  Richard Guenther  <rguenther@suse.de>
38365
38366         PR tree-optimization/42438
38367         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
38368         contains_may_not_return_call flag.
38369         (BB_MAY_NOTRETURN): New.
38370         (valid_in_sets): Trapping nary operations are not valid
38371         in blocks that may not return.
38372         (insert_into_preds_of_block): Remove check for trapping expressions.
38373         (compute_avail): Compute also BB_MAY_NOTRETURN.
38374
38375 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38376
38377         * doc/invoke.texi: Add 2010 to copyright years.
38378
38379 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38380
38381         * config/sparc/sparc.c: Fix formatting nits.
38382
38383 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38384             Alexander Monakov  <amonakov@ispras.ru>
38385
38386         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38387
38388 2010-01-02  Richard Guenther  <rguenther@suse.de>
38389
38390         PR middle-end/42577
38391         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38392         (simplify_switch_using_ranges): Mark to be removed edges
38393         as non-executable.
38394
38395 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38396
38397         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38398
38399         * collect2.c (scan_libraries): Add missing argument in call to
38400         scan_prog_file.
38401
38402 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38403
38404         PR target/42448
38405         * config/alpha/predicates.md (aligned_memory_operand): Return false
38406         for CQImode.
38407         (unaligned_memory_operand): Return true for CQImode.
38408         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38409         doesn not cross aligned SImode word boundary.
38410
38411 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38412
38413         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38414         Remove.
38415         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38416         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38417
38418 2010-01-02  Richard Guenther  <rguenther@suse.de>
38419
38420         PR lto/41597
38421         * toplev.c (compile_file): Emit LTO marker properly.  Change
38422         it to __gnu_lto_v1.
38423         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38424
38425 2010-01-01  Richard Guenther  <rguenther@suse.de>
38426
38427         PR debug/42455
38428         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38429
38430 2010-01-01  Richard Guenther  <rguenther@suse.de>
38431
38432         PR c/42570
38433         * c-decl.c (grokdeclarator): For zero-size arrays force
38434         structural equality checks as layout_type does.
38435
38436 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38437
38438         * builtins.c: Update copyright to 2010.
38439
38440 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38441
38442         PR lto/42531
38443         * lto-streamer-out.c (produce_asm): Revert the last change.
38444         (copy_function): Likewise.
38445
38446         * lto-streamer.c (lto_get_section_name): Skip any leading
38447         asterisk in name.
38448
38449 2010-01-01  Richard Guenther  <rguenther@suse.de>
38450
38451         PR middle-end/42559
38452         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38453         for LABEL_DECLs.
38454
38455 \f
38456 Copyright (C) 2010 Free Software Foundation, Inc.
38457
38458 Copying and distribution of this file, with or without modification,
38459 are permitted in any medium without royalty provided the copyright
38460 notice and this notice are preserved.