re PR c++/44871 (Invalid type mismatches while merging C and C++ sources)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-12-02  Richard Guenther  <rguenther@suse.de>
2
3         PR lto/44871
4         * gimple.c (canonical_type_hash_cache): New hashtable.
5         (gimple_type_hash): Make a wrapper around ...
6         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
7         (gimple_canonical_type_hash): Likewise.
8         (gtc_visit): Take a gtc_mode argument.
9         (gimple_types_compatible_p_1): Likewise. Do not compare struct
10         tag names or field names when computing canonical types.
11         (gimple_types_compatible_p): Adjust.
12         (visit): Take a gtc_mode argument.
13         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
14         names or field names when computing hashes of canonical types.
15         (gimple_register_canonical_type): Use gimple_canonical_type_hash
16         for the hash.
17         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
18         (free_gimple_type_tables): Free canonical_type_hash_cache.
19
20 2010-12-02  Richard Guenther  <rguenther@suse.de>
21             Ira Rosen  <irar@il.ibm.com>
22
23         PR tree-optimization/46663
24         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
25         FUNCTION_DECL exists and that it's a builtin.
26
27 2010-12-02  Jie Zhang  <jie@codesourcery.com>
28
29         PR middle-end/46674
30         * varasm.c (compute_visible_aliases): Handle user set
31         assembler name.
32
33 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
34
35         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
36         thinko regarding setting -mno-<xxx> debug switches.
37         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
38
39 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
40
41         * intl.c: Don't include tm.h.
42         * Makefile.in (intl.o): Don't depend on $(TM_H).
43
44 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
45
46         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
47         unused warning.
48         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
49
50 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
51
52         * graphite-sese-to-poly.c (analyze_drs): Removed.
53         (build_scop_drs): Do not call analyze_drs.
54         (analyze_drs_in_stmts): New.
55         (insert_stmts): New.
56         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
57         (insert_out_of_ssa_copy_on_edge): Same.
58         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
59         (rewrite_phi_out_of_ssa): Same.
60         (rewrite_cross_bb_scalar_dependence): Same.
61         (split_reduction_stmt): Move data references in the new basic blocks.
62         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
63
64 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
65
66         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
67
68 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
69
70         PR middle-end/45297
71         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
72         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
73         * graphite-poly.h (new_poly_bb): Update declaration.
74         (gbb_from_bb): Moved here...
75         (pbb_from_bb): New.
76         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
77         Removed.
78         (graphite_stmt_p): Removed.
79         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
80         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
81         new_poly_bb.
82         (build_scop_bbs_1): Do not pass in sbitmap reductions.
83         (build_scop_bbs): Same.
84         (gbb_from_bb): ... from here.
85         (add_conditions_to_constraints): Moved up.
86         (analyze_drs): New.
87         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
88         not contain data references.
89         (new_pbb_from_pbb): New.
90         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
91         block is split.
92         (rewrite_close_phi_out_of_ssa): Update call to
93         insert_out_of_ssa_copy_on_edge.
94         (rewrite_reductions_out_of_ssa): Now static.
95         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
96         (split_pbb): New.
97         (split_reduction_stmt): Call split_pbb.
98         (translate_scalar_reduction_to_array): Pass in the scop, do not
99         pass in the sbitmap reductions.
100         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
101         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
102         (rewrite_commutative_reductions_out_of_ssa): Same.
103         (build_poly_scop): Call build_scop_bbs,
104         rewrite_commutative_reductions_out_of_ssa,
105         rewrite_reductions_out_of_ssa, and
106         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
107         before scop_to_lst.
108         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
109         Removed declaration.
110         (rewrite_reductions_out_of_ssa): Same.
111         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
112         (build_scop_bbs): Same.
113         * graphite.c (graphite_transform_loops): Do not initialize reductions.
114         Do not call build_scop_bbs,
115         rewrite_commutative_reductions_out_of_ssa,
116         rewrite_reductions_out_of_ssa, and
117         rewrite_cross_bb_scalar_deps_out_of_ssa.
118         * sese.h (struct gimple_bb): Add field pbb.
119         (GBB_PBB): New.
120
121 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
122
123         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
124         New.
125         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
126         handle_scalar_deps_crossing_scop_limits.
127         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
128         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
129
130 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
131
132         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
133         when replacing a constant in an ADDR_EXPR.
134
135 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
136
137         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
138         for the stride.
139         (lst_do_strip_mine): Same.
140         (scop_do_strip_mine): Same.
141         * graphite-poly.c (apply_poly_transforms): Update call to
142         scop_do_strip_mine.
143         * graphite-poly.h (scop_do_strip_mine): Update declaration.
144
145 2010-12-01  Jan Hubicka  <jh@suse.cz>
146
147         * tree.c (build_common_builtin_nodes): Do not initialize
148         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
149         * builtins.c (expand_builtin_profile_func): Remove.
150         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
151         BUILT_IN_PROFILE_FUNC_EXIT.
152         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
153         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
154         * gimplify.c (gimplify_function_tree): Reorganize code calling
155         profiling functions.
156
157 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
158
159         * opts.c: Expand comment on tm.h include.
160
161 2010-12-01  Yao Qi  <yao@codesourcery.com>
162
163         * config/arm/predicates.md ("vfp_register_operand"): Return true for
164         VFP_D0_D7_REGS classes.
165
166 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
167
168         * common.opt (flag_stack_check): New Variable entry.
169         (fcompare-debug-second): Use Var.
170         * flags.h (flag_compare_debug, flag_stack_check): Remove.
171         * opts.c (flag_compare_debug): Remove.
172         (common_handle_option): Don't handle OPT_fcompare_debug_second.
173         Set opts->x_flag_stack_check for OPT_fstack_check_.
174         * toplev.c (flag_stack_check): Remove.
175
176 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
177
178         * common.opt (main_input_filename, main_input_basename,
179         main_input_baselength): New Variable entries.  From toplev.c.
180         * final.c (output_quoted_string): Move from toplev.c.
181         * output.h (output_quoted_string): Move from toplev.h.
182         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
183         access main_input_filename, main_input_baselength and
184         main_input_basename.
185         * targhooks.c: Include intl.h and opts.h.
186         (option_affects_pch_p, default_get_pch_validity): Move from
187         toplev.c.
188         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
189         Move from toplev.h.
190         * toplev.c (main_input_filename, main_input_basename,
191         main_input_baselength): Move to common.opt.
192         (output_quoted_string): Move to final.c.
193         (warn_deprecated_use): Move to tree.c.
194         (option_affects_pch_p, default_get_pch_validity,
195         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
196         * toplev.h (skip_leading_substring): Move to tree-dump.c.
197         (warn_deprecated_use): Move to tree.h.
198         (output_quoted_string): Move to output.h.
199         (main_input_filename, main_input_basename, main_input_baselength):
200         Move to common.opt.
201         (default_get_pch_validity, default_pch_valid_p): Move to
202         targhooks.c.
203         * tree-dump.c (skip_leading_substring): Move from toplev.h.
204         * tree.c (warn_deprecated_use): Move from toplev.c.
205         * tree.h (warn_deprecated_use): Move from toplev.h.
206         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
207         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
208         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
209         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
210         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
211         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
212         config/mcore/mcore.c, config/mep/mep.c,
213         config/microblaze/microblaze.c, config/mips/mips.c,
214         config/mmix/mmix.c, config/mn10300/mn10300.c,
215         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
216         config/picochip/picochip.c, config/s390/s390.c,
217         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
218         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
219         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
220         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
221         varasm.c, xcoffout.c: Don't include toplev.h.
222         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
223         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
224         varasm.o, xcoffout.o): Update dependencies.
225         * config/arm/t-arm (arm.o): Update dependencies.
226         * config/spu/t-spu-elf (spu.o): Update dependencies.
227
228 2010-12-01  Richard Guenther  <rguenther@suse.de>
229
230         PR tree-optimization/46730
231         * value-prof.c (gimple_ic): Always generate a separate merge BB.
232
233 2010-11-30  Ian Lance Taylor  <iant@google.com>
234
235         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
236         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
237         * config/i386/linux64.h (ASM_SPEC): Likewise.
238         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
239         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
240         * config/i386/vxworks.h (ASM_SPEC): Likewise.
241         * config/i386/x86-64.h (ASM_SPEC): Likewise.
242         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
243         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
244
245 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
246
247         * c-decl.c (finish_function): Call objc_finish_function in
248         Objective-C.
249         * c-typeck.c (convert_for_assignment): Do not call
250         objc_type_quals_match().
251
252 2010-11-30  Richard Guenther  <rguenther@suse.de>
253
254         PR tree-optimization/46722
255         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
256         operands as arguments.
257         (execute_optimize_widening_mul): Also handle power of two as
258         multiplication.
259
260 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
261
262         PR middle-end/46709
263         * cgraphunit.c (process_function_and_variable_attributes): Fix
264         cut'n'pasteo.
265
266 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
267
268         * hwint.c:  New.  Extracted from toplev.c.
269         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
270         Move from toplev.h.
271         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
272         Move to hwint.c.
273         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
274         Move to hwint.h.
275         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
276         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
277         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
278         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
279         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
280         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
281         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
282         tree-vrp.c: Don't include toplev.h.
283         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
284         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
285         toplev.h in generated output.
286         * Makefile.in (OBJS-common): Add hwint.o.
287         Dependencies for above files changed to remove toplev.h.
288         (hwint.o): New.
289         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
290         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
291         toplev.h.
292         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
293         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
294
295 2010-11-30  Richard Guenther  <rguenther@suse.de>
296
297         PR tree-optimization/46717
298         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
299         call.  Manually create EH edges for the direct call and update
300         target PHI nodes.
301
302 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
303
304         * diagnostic-core.h: Include bversion.h.
305         * toplev.h: Don't include input.h or bversion.h.
306         (parse_optimize_options): Don't declare here.
307         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
308         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
309         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
310         config/host-darwin.c, config/i386/host-cygwin.c,
311         config/i386/host-mingw32.c, config/i386/msformat-c.c,
312         config/i386/netware.c, config/i386/nwld.c,
313         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
314         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
315         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
316         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
317         config/score/score3.c, config/score/score7.c,
318         config/sh/symbian-base.c, config/sh/symbian-c.c,
319         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
320         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
321         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
322         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
323         graphite-blocking.c, graphite-clast-to-gimple.c,
324         graphite-dependences.c, graphite-flattening.c,
325         graphite-interchange.c, graphite-poly.c,
326         graphite-scop-detection.c, graphite.c, haifa-sched.c,
327         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
328         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
329         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
330         lto-opts.c, lto-section-in.c, lto-section-out.c,
331         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
332         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
333         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
334         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
335         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
336         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
337         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
338         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
339         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
340         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
341         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
342         include toplev.h.
343         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
344         toplev.h.  Dependencies for above files and c-family files changed
345         to remove $(TOPLEV_H) or toplev.h.
346         (C_TREE_H): Don't include $(TOPLEV_H).
347         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
348         bversion.h.
349         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
350         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
351         config/t-darwin, config/t-sol2,
352         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
353         Dependencies for above files changed to remove $(TOPLEV_H) or
354         toplev.h.
355
356 2010-11-30  Richard Guenther  <rguenther@suse.de>
357
358         PR lto/44986
359         * gcc.c (main): Use the first input with a compiler as infile
360         for link spec processing.
361
362 2010-11-30  Richard Guenther  <rguenther@suse.de>
363
364         PR lto/45949
365         * cgraphunit.c (ipa_passes): Stop after errors from
366         small IPA passes.
367
368 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
369
370         * gcc-plugin.h: Include coretypes.h.
371         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
372
373 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
374
375         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
376         * ggc-none.c (ggc_internal_alloc_zone_stat)
377         (ggc_internal_cleared_alloc_zone_stat): New.
378
379 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
380
381         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
382         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
383         (rs6000_emit_prologue): Don't set PIC register if
384         TARGET_SINGLE_PIC_BASE.
385         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
386         * doc/invoke.texi (msingle-pic-base): Document.
387
388 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
389
390         PR driver/46712
391         * exec-tool.in (id): New.
392         Check and export LT_RCU_$id instead of LT_RCU.
393
394 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
395
396         PR tree-optimization/46675
397         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
398         in offset calculation.
399
400 2010-11-29  Jan Hubicka  <jh@suse.cz>
401
402         * collect2.c (main): Do not imply verbose output with
403         LTO and linker plugin.
404
405 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
406
407         * dwarf2out.c (print_die): Print the address of the current DIE or
408         of any DIE referenced by the current one.
409
410 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
411
412         PR debug/46101
413         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
414         function.
415         (scope_die_for, gen_type_die_for_member): Replace uses of
416         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
417
418 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
419
420         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
421         (darwin_asm_declare_object_name): Correct spelling.
422         (darwin_output_aligned_bss): Likewise.
423
424 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
425             Mike Stump  <mrs@gcc.gnu.org>
426
427         PR target/26427
428         PR target/33120
429         PR testsuite/35710
430         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
431         (ASM_OUTPUT_LOCAL): Likewise.
432         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
433         (darwin_output_aligned_bss): Likewise.
434         (darwin_asm_output_aligned_decl_local): Likewise.
435         (darwin_asm_output_aligned_decl_common): Likewise.
436         (darwin_use_anchors_for_symbol_p): Likewise.
437         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
438         (TARGET_ASM_OUTPUT_ANCHOR): Define.
439         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
440         (DARWIN_SECTION_ANCHORS): Set to 1.
441         * config/darwin.c (emit_aligned_common): New var.
442         (darwin_init_sections): Check that the Darwin private zero-size section
443         marker is in range.
444         (darwin_text_section): Check for zero-sized objects.
445         (darwin_mergeable_string_section): Likewise.
446         (darwin_mergeable_constant_section): Likewise.
447         (machopic_select_section): Adjust to check for zero-sized objects.
448         Assert that OBJC meta data are non-zero sized.
449         (darwin_asm_declare_object_name): New.
450         (darwin_asm_declare_constant_name): Adjust for zero-sized
451         object sections.
452         (BYTES_ZFILL): Define.
453         (darwin_emit_weak_or_comdat): New.
454         (darwin_emit_local_bss): New.
455         (darwin_emit_common): New.
456         (darwin_output_aligned_bss): New.
457         (darwin_asm_output_aligned_decl_common): New.
458         (darwin_asm_output_aligned_decl_local): New.
459         (darwin_file_end): Disable subsections_via_symbols when section
460         anchoring is active.
461         (darwin_asm_output_anchor): Re-enable.
462         (darwin_use_anchors_for_symbol_p): New.
463         (darwin_override_options): Check for versions that can emit
464         aligned common.  Update usage of flags to current.
465         * config/darwin-sections.def: Update comments and flags for
466         non-anchor sections.  zobj_const_section, zobj_data_section,
467         zobj_bss_section, zobj_const_data_section: New.
468         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
469         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
470         (L2_MAX_OFILE_ALIGNMENT): Define.
471         (ASM_OUTPUT_ALIGNED_BSS): Define.
472         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
473         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
474         (SECTION_NO_ANCHOR): Define.
475         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
476         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
477
478 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
479
480         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
481         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
482         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
483         Conditionally define.
484         (GET_ENVIRONMENT): Poison.
485         * configure.ac: Don't test for mincore.
486         * configure: Regenerate.
487         * config.in: Regenerate.
488         * collect2-aix.c: Don't include <sys/mman.h>.
489         * collect2.c: Don't include <signal.h>.
490         (SIGCHLD): Don't define.
491         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
492         * config/alpha/alpha.c: Include "splay-tree.h" instead of
493         <splay-tree.h>.
494         * config/arm/arm.c (arm_target_help): Use getenv instead of
495         GET_ENVIRONMENT.
496         * config/avr/driver-avr.c: Don't include <stdlib.h>.
497         * config/frv/frv.c: Don't include <ctype.h>.
498         * config/host-darwin.c: Don't include <sys/mman.h>.
499         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
500         (MAP_FAILED): Don't define.
501         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
502         * config/host-solaris.c: Don't include <sys/mman.h>.
503         * config/i386/cygming.h: Don't include <stdio.h>.
504         * config/i386/driver-i386.c: Don't include <stdlib.h>.
505         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
506         * config/iq2000/iq2000.c: Don't include <signal.h>.
507         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
508         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
509         * config/mep/mep-pragma.c: Don't include <stdio.h>.
510         * config/microblaze/microblaze.c: Don't include <signal.h>.
511         * config/mips/mips.c: Don't include <signal.h>.
512         * config/rs6000/host-darwin.c: Don't include <signal.h>.
513         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
514         * defaults.h (GET_ENVIRONMENT): Don't define.
515         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
516         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
517         (SIGCHLD, MAP_FAILED, kill): Don't define.
518         (process_command): Use getenv instead of GET_ENVIRONMENT.
519         * genhooks.c: Don't include <string.h>.
520         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
521         <sys/types.h>.
522         (MAP_FAILED): Don't define.
523         * ggc-page.c Don't include <sys/mman.h>.
524         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
525         * ggc-zone.c: Don't include <sys/mman.h>.
526         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
527         * graph.c: Include "config.h" instead of <config.h>.
528         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
529         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
530         (SIGCHLD, kill): Don't define.
531         * mips-tfile.c: Don't include <signal.h>.
532         * opts.c: Don't include <signal.h> or <sys/resource.h>.
533         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
534         * passes.c: Don't include <signal.h>, <sys/resource.h> or
535         <sys/times.h>.
536         * sparseset.h: Don't include <assert.h>.
537         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
538         * tlink.c: Don't include "libiberty.h".
539         * toplev.c: Don't include <signal.h> or <sys/times.h>.
540         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
541         * tree-switch-conversion.c: Don't include <signal.h>.
542         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
543
544 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
545
546         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
547         c_parser_objc_try_catch_finally_statement for consistency with the
548         C++ parser.  Parse @catch(...) and pass NULL_TREE to
549         objc_begin_catch_clause() in that case.  Improved error recovery.
550         Reorganized code to be almost identical to
551         cp_parser_objc_try_catch_finally_statement.
552
553 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
554
555         PR tree-optimization/46621
556         * gimple.h: Don't include tm.h or hard-reg-set.h .
557         * Makefile.in (GIMPLE_H): Remove $(TM_H).
558
559         PR bootstrap/44756
560         * cppbuiltin.c: Include target.h .
561         (define_builtin_macros_for_type_sizes):
562         Use targetm.float_words_big_endian.
563
564 2010-11-27  Jan Hubicka  <jh@suse.cz>
565
566         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
567         and output cold_text_section_label.
568         (dwarf2out_init): Don't do that there.
569         (dwarf2out_finish): Handle cold section end label only if cold
570         section was used.
571
572 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
573
574         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
575         VLA variables.
576
577 2010-11-27  Richard Guenther  <rguenther@suse.de>
578
579         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
580         (gimple_assign_ssa_name_copy_p): Likewise.
581         (gimple_assign_unary_nop_p): Use is_gimple_assign.
582         (is_gimple_cast): Remove.
583         (gimple_assign_single_p): Move ...
584         * gimple.h (gimple_assign_single_p): ... here.
585         (is_gimple_cast): Remove.
586         (gimple_assign_rhs_code): Simplify.
587         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
588         instead of is_gimple_cast.
589         * ipa-type-escape.c (look_for_casts): Likewise.
590
591 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
592
593         * doc/options.texi (Enum, EnumValue): Document new record types.
594         (Enum): Document new option flag.
595         * opt-functions.awk
596         * optc-gen.awk: Handle enumerated option arguments.
597         * opth-gen.awk: Handle enumerated option arguments.
598         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
599         enum_value_to_arg): New.
600         (decode_cmdline_option): Handle enumerated arguments.
601         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
602         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
603         * opts.c (print_filtered_help, print_specific_help): Take
604         lang_mask arguments.
605         (print_filtered_help): Handle printing values of enumerated
606         options.  Print possible arguments for enumerated options.
607         (print_specific_help): Update call to print_filtered_help.
608         (common_handle_option): Update calls to print_specific_help.  Use
609         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
610         handle OPT_ffp_contract_, OPT_fexcess_precision_,
611         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
612         OPT_fira_region_ here.
613         * opts.h (enum cl_var_type): Add CLVC_ENUM.
614         (struct cl_option): Add var_enum.
615         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
616         struct cl_enum, cl_enums, cl_enums_count): New.
617         (CL_ERR_ENUM_ARG): Define.
618         (CL_ERR_NEGATIVE): Update value.
619         (enum_value_to_arg): Declare.
620         * common.opt (flag_ira_algorithm, flag_ira_region,
621         flag_fp_contract_mode, flag_excess_precision_cmdline,
622         default_visibility, flag_tls_default): Remove Variable entries.
623         (help_enum_printed): New Variable.
624         (fdiagnostics-show-location=): Use Enum.  Add associated
625         SourceInclude, Enum and EnumValue entries.
626         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
627         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
628         associated Enum and EnumValue entries.
629
630 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
631
632         PR target/46623
633         * config/microblaze/microblaze.c (microblaze_block_move_straight):
634         Use XALLOCAVEC.
635         (microblaze_option_override): Don't use C++ style comments.
636         (save_restore_insns): Remove unused variable base_offset.
637         (microblaze_expand_prologue): Remove unused variable insn.
638         (microblaze_secondary_reload): Adjust type to match target.h .
639         (microblaze_elf_in_small_data_p): Move declarations to start of block.
640         (microblaze_expand_move): Likewise.
641         * config/microblaze/microblaze.h (LARGE_INT):
642         Avoid signed / unsigned comparisons.
643         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
644         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
645         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
646
647 2010-11-26  Michael Matz  <matz@suse.de>
648
649         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
650
651         * passes.c (init_optimization_passes): Remove superfluous
652         copy-prop pass.
653
654 2010-11-26  Richard Guenther  <rguenther@suse.de>
655
656         PR lto/46648
657         * gimple.c (gtc_visit): Do not return true for members of an
658         SCC still being processed but the current lattice value of
659         the member.  Treat SCC members comparison state as lattice,
660         starting at equal, eventually dropping to unequal.
661         (gimple_types_compatible_p_1): Likewise.
662
663 2010-11-26  Richard Guenther  <rguenther@suse.de>
664
665         PR middle-end/46559
666         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
667         for location list processing.
668
669 2010-11-26  Richard Guenther  <rguenther@suse.de>
670
671         PR lto/46560
672         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
673         flags manually.
674
675 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
676
677         * config/s390/s390.c (print_operand_address): Replace assert with
678         error message.
679         (print_operand): Replace assertions, gcc_unreachable and
680         fatal_insn with error messages.
681
682 2010-11-26  Richard Guenther  <rguenther@suse.de>
683
684         PR tree-optimization/46665
685         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
686
687 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
688
689         * config/arm/arm.c (arm_option_override): enable loop array
690         prefetching at -O3 for suitable targets, and configure params.
691         * config/arm/arm-protos.h (struct tune_params): Add fields for
692         configuring loop array prefetching.
693
694 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
695
696         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
697
698 2010-11-26  Richard Guenther  <rguenther@suse.de>
699
700         PR tree-optimization/46664
701         * tree-affine.c (aff_combination_to_tree): Add rest last.
702
703 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
704
705         PR target/33637
706         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
707         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
708         * configure: Regenerated.
709         * exec-tool.in: Not quoting command, may have extra arguments.
710
711 2010-11-26  Richard Guenther  <rguenther@suse.de>
712
713         PR tree-optimization/46528
714         PR debug/46338
715         * profile.c (branch_prob): Do not split blocks based on locations
716         from debug statements.
717
718 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
719
720         PR middle-end/46647
721         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
722         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
723
724         PR bootstrap/45700
725         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
726         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
727         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
728         build6_loc): Define.
729         * fold-const.c (protected_set_expr_location_unshare): New inline.
730         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
731         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
732         pedantic_omit_one_operand_loc, omit_two_operands_loc,
733         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
734         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
735         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
736         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
737         instead of buildN followed by SET_EXPR_LOCATION or
738         protected_set_expr_location.
739         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
740         Use buildN_stat_loc instead of buildN_stat followed by
741         SET_EXPR_LOCATION.
742
743 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
744
745         * Makefile.in (s-tm-texi): Remove spurous tab.
746
747 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
748
749         PR debug/46258
750         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
751         debug stmts.
752
753 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
754
755         * toplev.c (finalize): Add no_backend parameter.  Don't finish
756         passes when preprocessing only.  Adjust...
757         (do_compile): ... caller.
758
759 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
760
761         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
762         flag_unsafe_math_optimizations.
763         (negsf2): Likewise.
764         Move fnegabs related patterns together.  Only use fmpynfadd instruction
765         to negate a multiply if !flag_signed_zeros is true.
766
767 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
768
769         * gengtype-state.c (read_state_structures): Initialize "previous".
770
771 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
772             Jeremie Salvucci  <jeremie.salvucci@free.fr>
773
774         * gengtype-state.c: Add new file.
775
776         * gengtype.c (type count): New variable.
777         (new_structure, find_param_structure, create_pointer)
778         (create_array): Use it to set state_number in types.
779         (dump_everything): Improve comment.
780         (main): Call read_state and write_state. Print type_count.
781
782         * gengtype.h (type_lineloc): New function.
783         (read_state, write_state): New declarations.
784
785         * Makefile.in (GENGTYPE_FLAGS): New variable.
786         (s-gtype): Run gengtype twice and generate gtype.state.
787         (build/gengtype-state.o): New rule.
788         (build/gengtype$(build_exeext)): Link gengtype-state.o.
789         (mostlyclean): Update comment.  Remove gtype.state.
790
791 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
792
793         PR middle-end/46637
794         * combine.c (try_combine): When substing i2dest for i2src, pass
795         1 as last argument even if
796         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
797
798 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
799
800         PR middle-end/46647
801         * builtins.c (target_char_cast): Check INTEGER_CST instead of
802         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
803
804 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
805
806         * target.def (supports_split_stack, except_unwind_info): Take
807         gcc_options parameters.
808         * targhooks.c (default_except_unwind_info,
809         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
810         gcc_options parameters.
811         * targhooks.h (default_except_unwind_info,
812         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
813         prototypes.
814         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
815         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
816         Document that hooks must not be modified.
817         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
818         * doc/tm.texi: Regenerate.
819         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
820         &global_options to targetm.except_unwind_info.
821         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
822         dwarf2out_begin_prologue, dwarf2out_frame_init,
823         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
824         &global_options to targetm.except_unwind_info.
825         * except.c (init_eh, finish_eh_generation,
826         gate_convert_to_eh_region_ranges,
827         output_one_function_exception_table): Pass &global_options to
828         targetm.except_unwind_info.
829         * expr.c (build_personality_function): Pass &global_options to
830         targetm.except_unwind_info.
831         * function.c (expand_function_end): Pass &global_options to
832         targetm.except_unwind_info.
833         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
834         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
835         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
836         and targetm.supports_split_stack.  Remove assertions about opts
837         and opts_set.
838         (common_handle_option): Remove assertions about opts, opts_set and dc.
839         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
840         &global_options to targetm.except_unwind_info.
841         * tree.c (build_common_builtin_nodes: Pass &global_options to
842         targetm.except_unwind_info.
843         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
844         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
845         thumb1_expand_prologue, thumb1_output_function_prologue,
846         arm_unwind_emit, arm_output_fn_unwind): Update calls to
847         arm_except_unwind_info.
848         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
849         parameter.
850         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
851         parameter.
852         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
853         ia64_reorg, ia64_asm_unwind_emit): Update calls to
854         ia64_except_unwind_info.
855         * config/pa/pa.c (pa_option_override): Pass &global_options to
856         targetm.except_unwind_info.
857         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
858         Remove prototype.
859
860 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
861
862         * cgraphunit.c (process_function_and_variable_attributes):
863         Mark dllexport-ed function/variables as needed.
864         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
865         as externally visible.
866
867 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
868
869         PR rtl-optimization/46585
870         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
871         (vinsn_init): Skip computation of dependencies for local NOPs.
872         (vinsn_delete): Don't try to free regsets for local NOPs.
873         (setup_nop_and_exit_insns): Change definition of nop_pattern.
874
875 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
876
877         PR rtl-optimization/46602
878         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
879         (tidy_control_flow): Here.
880
881 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
882             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
883
884         PR bootstrap/45888
885         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
886         Fix target.def pathname in timestamp comparison.
887
888 2010-11-24  Richard Henderson  <rth@redhat.com>
889
890         * config/ia64/predicates.md (pmpyshr_operand): New.
891         * config/ia64/ia64.c (ia64_expand_unpack): New.
892         (ia64_expand_widen_mul_v4hi): New.
893         (ia64_expand_widen_sum): Update for pattern renames.
894         (ia64_expand_dot_prod_v8qi): Likewise.
895         * config/ia64/ia64-protos.h: Update.
896         * config/ia64/vect.md (vecwider): New mode attribute.
897         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
898         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
899         (pmpyshr2, pmpyshr2_u): New.
900         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
901         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
902         (mulv2si3): New.
903         (vec_pack_ssat_v4hi): Rename from pack2_sss.
904         (vec_pack_usat_v4hi): Rename from *pack2_uss.
905         (vec_pack_ssat_v2si): Rename from pack4_sss.
906         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
907         vec_select operation.
908         (vec_interleave_highv8qi): Similarly.
909         (mux1_alt): Rename from *mux1_alt.
910         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
911         (vec_interleave_lowv4hi): Rename from unpack2_l.
912         (vec_interleave_highv4hi): Rename from unpack2_h.
913         (mix2_r): Rename from *mix2_r.
914         (mix2_l): Similarly.
915         (vec_extract_evenodd_helper): New.
916         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
917         (vec_interleave_lowv2si): Rename from *unpack4_l.
918         (vec_interleave_highv2si): Rename from *unpack4_h.
919         (vec_extract_evenv2si, vec_extract_oddv2si): New.
920         (vec_interleave_lowv2sf): Rename from fmix_r.
921         (vec_interleave_highv2sf): Rename from *fmix_l.
922         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
923         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
924         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
925         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
926
927 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
928
929         * targhooks.c (default_except_unwind_info): Remove
930         MUST_USE_SJLJ_EXCEPTIONS case.
931         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
932         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
933         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
934         * doc/tm.texi: Regenerate.
935         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
936
937 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
938
939         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
940         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
941         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
942         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
943         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
944
945 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
946
947         PR target/46519
948         * config/i386/i386.c (ix86_expand_call): Don't check
949         TREE_THIS_VOLATILE.
950
951 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
952
953         PR target/46519
954         * config/i386/i386.c (upper_128bits_state): New.
955         (block_info_def): Remove upper_128bits_set and done.  Add state,
956         referenced, count, processed and rescanned.
957         (check_avx256_stores): Updated.
958         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
959         Call note_stores only if needed.  Set referenced and count.
960         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
961         (rescan_move_or_delete_vzeroupper): New.
962         (move_or_delete_vzeroupper):  Process and rescan all all basic
963         blocks instead of predecessor blocks of all exit points.
964         (ix86_option_override_internal): Enable vzeroupper optimization
965         only for -fexpensive-optimizations and not optimizing for size.
966         (use_avx256_p): Removed.
967         (init_cumulative_args): Don't set use_avx256_p.
968         (ix86_function_arg): Likewise.
969         (ix86_expand_move): Likewise.
970         (ix86_expand_vector_move_misalign): Likewise.
971         (ix86_local_alignment): Likewise.
972         (ix86_minimum_alignment): Likewise.
973         (ix86_expand_epilogue): Don't check use_avx256_p when generating
974         vzeroupper.
975         (ix86_expand_call): Likewise.
976
977         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
978         and use_avx256_p.  Add rescan_vzeroupper_p.
979
980 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
981
982         * toplev.c: Include <signal.h>.
983
984 2010-11-24  Richard Guenther  <rguenther@suse.de>
985
986         PR lto/43218
987         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
988         conflicting function signatures as non-inlineable.
989
990 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
991
992         PR rtl-optimization/46614
993         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
994          (deps_analyze_insn): Mark JUMP_INSNs in
995         last_pending_memory_flush that weren't added through
996         flush_pending_lists with NON_FLUSH_JUMP_KIND.
997         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
998         on INSN_LIST instead of JUMP_P check on its operand.
999         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1000
1001 2010-11-24  Richard Guenther  <rguenther@suse.de>
1002
1003         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1004
1005 2010-11-24  Richard Guenther  <rguenther@suse.de>
1006
1007         PR lto/46606
1008         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1009         a FIELD_DECL that is type correct issue a warning and fixup
1010         with a VIEW_CONVERT_EXPR.
1011
1012 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1013
1014         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1015         Explain static numbering of dump files.
1016
1017 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1018
1019         * common.opt (user_vect_verbosity_level): New Variable entry.
1020         (ftree-vectorizer-verbose=): Mark as UInteger.
1021         * flag-types.h (enum vect_verbosity_levels): Move from enum
1022         verbosity_levels in tree-vectorizer.h.
1023         * opts.c: Don't include tree.h.
1024         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1025         gcc_options parameter; take integer option argument.
1026         (common_handle_option): Update call to vect_set_verbosity_level.
1027         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1028         (vect_set_verbosity_level): Move to opts.c.
1029         (vect_verbosity_level, vect_print_dump_info): Update for change of
1030         enum name.
1031         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1032         (vect_print_dump_info): Update for change of enum name.
1033         * tree.h (vect_set_verbosity_level): Remove.
1034         * Makefile.in (opts.o): Update dependencies.
1035
1036 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1037
1038         PR middle-end/46629
1039         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1040         instead of insn with any_condjump_p.
1041
1042 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1043
1044         * config/mips/loongson.md: Change the description comment of the file
1045         and update the copyright years.
1046         (define_insn "<u>div<mode>3): Add loongson3a support.
1047         (define_insn "<u>mod<mode>3"): Likewise.
1048         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1049         mul<mode>3_mul3_loongson.
1050         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1051         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1052
1053 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1054
1055         * common.opt (initial_max_fld_align, flag_debug_asm,
1056         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1057         flag_print_asm_name, graph_dump_format, help_printed,
1058         help_columns, flag_opts_finished): New Variable entries.
1059         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1060         frandom-seed=): Mark deferred.
1061         (fsched-verbose=): Use UInteger and Var.
1062         * flags.h (set_struct_debug_option, flag_print_asm_name,
1063         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1064         graph_dump_format): Don't declare here.
1065         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1066         * opts-global.c: Include dbgcnt.h and debug.h.
1067         (decode_options): Pass location to finish_options.
1068         (handle_common_deferred_options): Check flag_dump_all_passed.
1069         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1070         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1071         OPT_fstack_limit.
1072         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1073         (set_struct_debug_option): Add location_t parameter.  Update
1074         recursive call.  Use error_at.
1075         (default_options_optimization): Use error_at.
1076         (finish_options): Add location_t parameter.  Use
1077         opts->x_flag_opts_finished instead of first_time_p.  Use
1078         opts->x_optimize instead of optimize.  Use error_at.  Pass
1079         location to inform.
1080         (print_filtered_help): Use opts->x_help_printed to track what
1081         options have been printed.
1082         (print_specific_help): Use opts->x_help_columns to track number of
1083         columns.
1084         (common_handle_option): Pass locations and gcc_options pointers to
1085         more functions.  Use warning_at instead of fnotice and warning.
1086         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1087         OPT_fdebug_prefix_map_.  Use error_at.  Set
1088         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1089         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1090         OPT_fsched_verbose_.
1091         (handle_param): Add location_r parameter.  Use error_at.
1092         (set_debug_level): Add location_r parameter.  Use error_at and
1093         warning_at.
1094         (setup_core_dumping): Add diagnostic_context parameter.
1095         (decode_d_option): Add gcc_options, location_t and
1096         diagnostic_context parameters and use them instead of global
1097         state.  Use warning_at.
1098         (enable_warning_as_error): Use error_at.
1099         * opts.h (finish_options): Update prototype.
1100         (set_struct_debug_option): Declare here.
1101         * rtl.h (fix_sched_param): Remove.
1102         * stor-layout.c (initial_max_fld_align): Remove.
1103         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1104         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1105         (process_options): Set maximum_field_alignment.
1106         * tree.h (initial_max_fld_align) Don't declare here.
1107         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1108
1109 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1110
1111         * flag-types.h (struct visibility_flags): Don't declare here.
1112         * flags.h (strip_off_ending, fast_math_flags_set_p,
1113         fast_math_flags_struct_set_p): Declare here.
1114         (visibility_options): Don't declare here.
1115         * opts-common.c (option_enabled, get_option_state): Move from
1116         opts.c.
1117         * opts-global.c: Include diagnostic.h instead of
1118         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1119         and toplev.h.
1120         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1121         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1122         print_ignored_options, unknown_option_callback,
1123         post_handling_callback, lang_handle_option, add_input_filename,
1124         read_cmdline_options, initial_lang_mask, init_options_once,
1125         decode_cmdline_options_to_array_default_mask,
1126         set_default_handlers, decode_options): Move from opts.c.
1127         (print_ignored_options): Use warning_at instead of saving and
1128         restoring input_location.
1129         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1130         instead of expr.h.  Don't include langhooks.h, except.h or
1131         lto-streamer.h.  Add more comments on includes.
1132         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1133         toplev.c.
1134         (visibility_options): Move to c-family/c-common.c.
1135         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1136         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1137         print_ignored_options, unknown_option_callback,
1138         post_handling_callback, lang_handle_option, add_input_filename,
1139         read_cmdline_options, initial_lang_mask, init_options_once,
1140         decode_cmdline_options_to_array_default_mask,
1141         set_default_handlers, decode_options): Move to opts-global.c.
1142         (target_handle_option, default_options_optimization,
1143         finish_options, common_handle_option): Remove static.
1144         (option_enabled, get_option_state): Move to opts-common.c.
1145         * opts.h (common_handle_option, target_handle_option,
1146         finish_options, default_options_optimization): Declare.
1147         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1148         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1149         opts.c.
1150         * toplev.h (strip_off_ending, decode_d_option,
1151         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1152         declare here.
1153         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1154
1155 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1156
1157         PR driver/42690
1158         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1159         options, replace by call of pass-through-libs spec function to process
1160         link_gcc_c_sequence spec.
1161         (lto_libgcc_spec): Delete variable.
1162         (static_specs[]): Remove related entry.
1163         (static_spec_functions[]): Add new entry for pass-through-libs.
1164         (main): Don't generate deleted lto_libgcc_spec.
1165         (pass_through_libs_spec_func): New function to implement the new
1166         pass-through-libs spec function.
1167         * doc/invoke.texi (pass-through-libs): Document new spec function.
1168
1169 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1170
1171         * doc/options.texi (Warning, Optimization): Document.
1172
1173 2010-11-23  Jan Hubicka  <jh@suse.cz>
1174
1175         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1176         (tree_decl_with_vis): Add implicit_section_name_p.
1177         * targhooks.h (default_function_section): Declare.
1178         * target.def (function_section): New hook.
1179         * defaults.h (HOT_TEXT_SECTION_NAME,
1180         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1181         * predict.c (choose_function_section): Remove.
1182         (estimate_bb_frequencies): Do not use choose_function_section.
1183         * coretypes.h (enum node_frequency): Move here from cgraph.h
1184         * cgraph.h (enum node_frequency): Remove.
1185         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1186         unlikely_text_section_p): Remove.
1187         (named_subsection_entry): New structure.
1188         (get_text_section): New function.
1189         (default_function_section): New function.
1190         (function_section_1): Break out from ...; handle profile info.
1191         (function_section): ... here.
1192         (unlikely_text_section): Remove.
1193         (unlikely_text_section_p): Use function_section_1.
1194         (assemble_start_function): Do not initialize cold section.
1195         (default_section_type_flags): Do not special case cold subsection.
1196         (switch_to_section): Likewise.
1197         * output.h (get_text_section): Define.
1198         * config/i386/winnt.c: Do not special case cold section.
1199         * config/darwin-protos.h (darwin_function_section): Declare.
1200         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1201         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1202         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1203         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1204         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1205         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1206         * config/darwin.c (machopic_select_section): Use
1207         darwin_function_section.
1208         (darwin_function_section): New function.
1209         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1210         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1211         (TARGET_ASM_FUNCTION_SECTION): Define.
1212         * system.h (HOT_TEXT_SECTION_NAME,
1213         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1214
1215 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1216
1217         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1218         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1219
1220 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1221
1222         PR middle-end/46499
1223         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1224         following unconditional jumps.
1225
1226 2010-11-23  Richard Guenther  <rguenther@suse.de>
1227
1228         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1229
1230 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1231             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1232
1233         * gengtype.c (enum typekind, struct options)
1234         (struct nested_ptr_data, struct pair, NUM_PARAM)
1235         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1236         Move to gengtype.h.
1237         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1238         Remove static, add zero state_number.
1239         (typedefs, structures, param_structs, variables): Remove static.
1240         (create_option): Remove.
1241         (create_string_option, create_type_option, create_nested_option):
1242         New functions.
1243         (create_nested_ptr_option): Use create_nested_option.
1244         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1245         new create*option functions.
1246         (process_gc_options): Adjust for discriminated option.
1247         (output_mangled_typename): Handle TYPE_NONE.
1248         (walk_type): Test option kinds.
1249         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1250         (write_func_for_structure, write_type, write_local, write_root)
1251         (write_roots, note_def_vec, dump_options): Adjust for
1252         discriminated option.
1253
1254         * gengtype.h (typedefs, structures, param_structs, variables
1255         enum typekind): Move from gengtype.c
1256         (enum option_kind): New discriminating enumeration.
1257         (struct options): Becomes discriminated.
1258         (struct nested_ptr_data): Nove from gengtype.c
1259         (create_string_option, create_type_option, create_nested_option)
1260         (create_nested_ptr_option): New functions
1261         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1262         (UNION_OR_STRUCT_P): Move from gengtype.c
1263
1264         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1265         discriminated options.
1266
1267 2010-11-23  Richard Guenther  <rguenther@suse.de>
1268
1269         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1270         twice.  Avoid re-allocating the ops vector all the time.
1271
1272 2010-11-23  Richard Guenther  <rguenther@suse.de>
1273
1274         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1275         is_gimple_min_invariant, group tree code checks to allow
1276         combining them.
1277         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1278         of is_gimple_reg.
1279
1280 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1281
1282         * config.gcc (sparc*-*-*): Reorder.
1283
1284 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1285
1286         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1287         Remove ENABLE_CHECKING around DBGPRINTF.
1288
1289 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1290
1291         * common.opt (exit_after_options, write_symbols, debug_info_level,
1292         use_gnu_debug_info_extensions): New Variable entries.
1293         (fprofile-dir=): Use Var.
1294         * flag-types.h (enum debug_info_level): Rename to enum
1295         debug_info_levels.
1296         * flags.h (write_symbols, debug_info_level,
1297         use_gnu_debug_info_extensions): Remove declarations.
1298         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1299         (set_struct_debug_option): Make static variables const.
1300         (use_gnu_debug_info_extensions): Remove.
1301         (set_debug_level, print_filtered_help, print_specific_help,
1302         fast_math_flags_set_p): Take gcc_options parameters and use them
1303         in place of global variables.
1304         (print_filtered_help): Make new_help non-static.
1305         (print_specific_help): Update call to print_filtered_help.
1306         (common_handle_option): Update calls to print_specific_help.  Use
1307         gcc_options structure for more settings.  Make --help table
1308         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1309         set_debug_level.
1310         * toplev.c (profile_data_prefix): Remove.
1311         * toplev.h (profile_data_prefix, exit_after_options): Remove
1312         declarations.
1313         (fast_math_flags_set_p): Update prototype.
1314         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1315         Update call to fast_math_flags_set_p.
1316
1317 2010-11-22  Richard Henderson  <rth@redhat.com>
1318
1319         PR target/46434
1320         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1321         return the address register extracted.
1322         (crx_decompose_address): Update the extracted address register.
1323
1324 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1325
1326         PR driver/43335
1327         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1328
1329 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1330
1331         PR target/46608
1332         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1333         * config/picochip/picochip-protos.h: Don't include "target.h" .
1334         (picochip_secondary_reload): Don't declare.
1335
1336         PR target/46613
1337         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1338         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1339         static.
1340
1341 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1342
1343         PR bootstrap/46609
1344         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1345         (source_dot_c_frul): Likewise.
1346
1347 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1348
1349         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1350
1351 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1352
1353         PR bootstrap/44970
1354         * Makefile.in (fwprop.o) Add sparseset.h.
1355         * fwprop.c: Include sparseset.h
1356         (struct find_occurrence_data, find_occurrence_callback,
1357         find_occurrence): Remove.
1358         (active_defs, active_defs_check, register_active_defs,
1359         update_df_init, update_uses): New.
1360         (update_df): Rewrite.
1361         (try_fwprop_subst, forward_propagate_asm): Add calls to
1362         update_df_init and update_df.
1363         (fwprop_init): Allocate active_defs and active_defs_check.
1364         (fwprop_done): Free them.
1365         (fwprop, fwprop_addr): Adjust comments.
1366         * df.h (df_uses_create): Declare.
1367         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1368         (df_ref_create): Return result of df_ref_create_structure directly.
1369         (df_ref_create_structure): Call df_install_ref_incremental when
1370         no collection_rec is passed.
1371         (df_ref_record): Do not create multiword hard reg info when no
1372         collection_rec is passed.
1373         (df_uses_create): New.
1374
1375 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1376
1377         PR middle-end/43057
1378         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1379         setting location.
1380
1381 2010-11-22  Richard Guenther  <rguenther@suse.de>
1382
1383         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1384         MEM_REFs, preserve volatileness.
1385         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1386         addresses.
1387
1388 2010-11-22  Richard Guenther  <rguenther@suse.de>
1389
1390         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1391
1392 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1393
1394         PR rtl-optimization/45652
1395         * alias.c (get_reg_base_value): New.
1396         * rtl.h (get_reg_base_value): Add prototype.
1397         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1398         non-null REG_BASE_VALUE for renaming.
1399
1400 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1401             Basile Starynkevitch  <basile@starynkevitch.net>
1402
1403         * gengtype.c: Include xregex.h and obstack.h
1404         Added comments about role of get_output_file_with_visibility and
1405         our regexpr machinery.
1406         (frul_actionrout_t, struct file_rule_st): New.
1407         (hader_dot_h_frul, source_dot_c_frul): New functions.
1408         (NULL_REGEX,  NULL_FRULACT): New.
1409         (files_rules): New.
1410         (matching_file_name_substitute): New function.
1411         (get_output_file_with_visibility): Updated comments and rewritten
1412         to use the new files_rules machinery.
1413
1414         * Makefile.in (XREGEX_H): Added variable.
1415         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1416
1417 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1418
1419         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1420
1421 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1422
1423         * target.def (conditional_register_usage): Define.
1424         * reginfo.c (init_reg_sets_1): Call
1425         targetm.conditional_register_usage.
1426         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1427         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1428         for making it a hook.
1429         * doc/tm.texi: Regenerate.
1430         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1431         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1432         New function.
1433         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1434         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1435         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1436         New function.
1437         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1438         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1439         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1440         New function.
1441         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1442         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1443         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1444         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1445         (bfin_conditional_register_usage): ...here.  New function.
1446         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1447         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1448         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1449         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1450         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1451         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1452         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1453         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1454         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1455         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1456         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1457         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1458         New function.
1459         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1460         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1461         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1462         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1463         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1464         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1465         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1466         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1467         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1468         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1469         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1470         New function.
1471         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1472         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1473         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1474         Delete.
1475         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1476         static.
1477         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1478         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1479         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1480         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1481         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1482         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1483         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1484         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1485         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1486         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1487         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1488         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1489         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1490         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1491         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1492         ...here.  New function.
1493         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1494         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1495         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1496         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1497         New function.
1498         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1499         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1500         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1501         New function.
1502         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1503         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1504         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1505         Delete.
1506         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1507         static.
1508         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1509         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1510         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1511         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1512         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1513         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1514         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1515         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1516         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1517         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1518         * config/score/score.c (score_conditional_register_usage): ...here.
1519         New function.
1520         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1521         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1522         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1523         New function.
1524         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1525         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1526         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1527         New function.
1528         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1529         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1530         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1531         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1532         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1533         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1534         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1535         New function.
1536         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1537
1538 2010-11-21  Jan Hubicka  <jh@suse.cz>
1539             Dominique d'Humieres <dominiq@lps.ens.ft>
1540
1541         PR target/46510
1542         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1543         finalize external decls.
1544
1545 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1546
1547         * system.h (strerror): Poison.
1548
1549 2010-11-21  Richard Henderson  <rth@redhat.com>
1550
1551         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1552         for infq/huge_valq.
1553
1554 2010-11-21  Richard Henderson  <rth@redhat.com>
1555
1556         PR rtl-optimization/46571
1557         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1558         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1559
1560 2010-11-21  Paul Koning  <ni1d@arrl.net>
1561
1562         * config/mips/pdp11.md (negsi2): Fix wrong code.
1563
1564 2010-11-21  Paul Koning  <ni1d@arrl.net>
1565
1566         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1567         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1568
1569 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1570
1571         * config/mips/mips.c (machine_function): Rename load_label_length to
1572         load_label_num_insns.
1573         (mips_load_label_length): Rename to...
1574         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1575         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1576
1577 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1578
1579         PR target/46533
1580         * config/alpha/predicates.md (direct_call_operand): Return false
1581         for !TARGET_SMALL_TEXT targets.
1582
1583 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1584
1585         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1586         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1587         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1588         * doc/tm.texi: Regenerate.
1589         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1590         HANDLE_PRAGMA_WEAK): Poison.
1591         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1592         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1593         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1594         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1595         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1596         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1597         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1598         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1599         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1600         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1601         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1602         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1603         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1604         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1605         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1606         (HANDLE_PRAGMA_WEAK): Don't undefine.
1607         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1608         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1609         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1610         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1611         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1612         (HANDLE_PRAGMA_WEAK): Don't undefine.
1613         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1614         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1615         (HANDLE_PRAGMA_PACK): Don't undefine.
1616         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1617         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1618         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1619         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1620         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1621         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1622         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1623         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1624         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1625         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1626         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1627         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1628         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1629         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1630         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1631         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1632         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1633
1634 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1635
1636         PR target/31100
1637         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1638         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1639         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1640
1641 2010-11-20  Jan Hubicka  <jh@suse.cz>
1642
1643         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1644         (dump_cgraph_node): Dump resolution.
1645         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1646         (cgraph_comdat_can_be_unshared_p): Dclare.
1647         * lto-streamer-out.c (produce_symtab): Use
1648         cgraph_comdat_can_be_unshared_p.
1649         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1650         (cgraph_comdat_can_be_unshared_p): New function based on logic
1651         in cgraph_externally_visible_p.
1652         (cgraph_externally_visible_p): Use it.
1653         (varpool_externally_visible_p): Virtual tables can be unshared.
1654         * varpool.c (dump_varpool_node): Dump resolution.
1655
1656 2010-11-20  Jan Hubicka  <jh@suse.cz>
1657
1658         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1659
1660 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1661
1662         PR other/46202
1663         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1664         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1665         shell quoting.
1666         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1667         (install-strip): New target.
1668         (STRIPPROG): New variable, exported if STRIP is set.
1669         * doc/install.texi (Final install): Minor markup and code style
1670         fixes.  Document install-strip target.
1671
1672 2010-11-20  Paul Koning  <ni1d@arrl.net>
1673
1674         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1675         pdp11_regno_reg_class): New functions.
1676         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1677         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1678         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1679         functions.
1680         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1681         frame pointer and argument pointer pseudo-registers.
1682         (ARG_POINTER_REGNUM): Define.
1683         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1684         argument pointer.
1685         (FIRST_PARM_OFFSET): Update for argument pointer.
1686         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1687         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1688         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1689         frame pointer and argument pointer.
1690
1691 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1692
1693         PR debug/46561
1694         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1695         when looking for immediate uses.
1696
1697         PR tree-optimization/45830
1698         * stmt.c (expand_switch_using_bit_tests_p): New function.
1699         (expand_case): Use it.
1700         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1701         * tree-switch-conversion.c (struct switch_conv_info): Add
1702         bit_test_uniq, bit_test_count and bit_test_bb fields.
1703         (check_range): Fix a comment.
1704         (check_process_case): Compute bit_test_uniq and bit_test_count.
1705         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1706         allocation.
1707         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1708         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1709         (array_value_type): New function.
1710         (build_one_array): Use it, if it returned different type,
1711         fold_convert all constructor fields and convert back to the
1712         wider type in the generated code.
1713         (process_switch): Initialize bit_test_uniq, bit_test_count and
1714         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1715         returned true.
1716
1717 2010-11-19  Michael Matz  <matz@suse.de>
1718
1719         PR tree-optimization/46077
1720         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1721
1722 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1723
1724         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1725         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1726         function.
1727         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1728
1729 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1730
1731         * mode-switching.c (optimize_mode_switching): Use
1732         FOR_BB_INSNS instead of open-coded loop.
1733         * cfgrtl.c (redirect_branch_edge): Ditto.
1734
1735 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1736
1737         PR target/46436
1738         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1739         to accomodate 32 bit HOST_WIDE_INT.
1740         (m68hc11_emit_logical): Remove unused variable insn.
1741         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1742         this_insn_uses_iy before use.
1743
1744         PR target/46434
1745         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1746
1747 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1748
1749         PR c/46547
1750         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1751         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1752
1753 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1754
1755         * doc/extend.texi (Function attributes): Document PowerPC target
1756         attributes that are supported.
1757         (Pragmas): Document that PowerPC now supports target pragmas.
1758
1759         * doc/options.texi (TargetVariable): Document TargetVariable,
1760         HeaderInclude, and SourceInclude.
1761
1762         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1763         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1764         -ffp-contract=off.
1765
1766         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1767         SourceInclude directives.  Fix a cut+paste error with target save
1768         enum variables.  Sort enums in the structures after ints and
1769         before shorts.
1770         * opth-gen.awk: Ditto.
1771
1772         * configure.ac: Add support for HeaderInclude and SourceInclude option
1773         directives to add the appropriate files to the dependency lists.
1774         * configure: Regenerate.
1775         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1776         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1777         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1778         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1779         (gcc-options.o): Ditto.
1780         * opt-include.awk: New awk script to handle HeaderInclude and
1781         TargetInclude.
1782
1783         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1784         gets saved in the target options.
1785         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1786         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1787         (-mprototype): Ditto.
1788         (-mbit-word): ditto.
1789         (-mregnames): Ditto.
1790         (-msecure-plt): Ditto.
1791         (-mbss-plt): Ditto.
1792         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1793         (-mpowerpc-gfxopt): Ditto.
1794         (-mmfcrf): Ditto.
1795         (-mpopcntb): Ditto.
1796         (-mfprnd): Ditto.
1797         (-mcmpb): Ditto.
1798         (-mmmfpgpr): Ditto.
1799         (-maltivec): Ditto.
1800         (-mhard-dfp): Ditto.
1801         (-mmulhw): Ditto.
1802         (-mdlmzb): Ditto.
1803         (-mmultiple): Ditto.
1804         (-mstring): Ditto.
1805         (-mpopcntd): Ditto.
1806         (-mfriz): Ditto.
1807         (-mvsx): Ditto.
1808         (-mno-update): Ditto.
1809         (-mavoid-indexed-addresses): Ditto.
1810         (-mtls-markers): Ditto.
1811         (-msched-epilog): Ditto.
1812         (-msched-prolog): Ditto.
1813         (-maix-struct-return): Ditto.
1814         (-msvr4-struct-return): Ditto.
1815         (-mxl-compat): Ditto.
1816         (-mrecip-precision): Ditto.
1817         (-mfp-in-toc): Ditto.
1818         (-msum-in-toc): Ditto.
1819         (-mvrsave): Ditto.
1820         (-mblock-move-inline-limit=): Ditto.
1821         (-misel): Ditto.
1822         (-mpaired): Ditto.
1823         (-mlongcall): Ditto.
1824         (-mgen-cell-microcode): Ditto.
1825         (-mwarn-cell-microcode): Ditto.
1826         (-mwarn-altivec-long): Ditto.
1827         (-mprioritize-restricted-insns=): Ditto.
1828         (-msingle-float): Ditto.
1829         (-mdouble-float): Ditto.
1830         (-msimple-fpu): Ditto.
1831         (-mxilinx-fpu): Ditto.
1832         * config/rs6000/aix64.opt (-mpe): Ditto.
1833
1834         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1835         (rs6000_cpu): Move variable to be a target variable.  Rename
1836         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1837         -mdebug=<xxx> variables into a single int.
1838         (rs6000_always_hint): Ditto.
1839         (rs6000_sched_groups): Ditto.
1840         (rs6000_align_branch_targets): Ditto.
1841         (rs6000_sched_costly_dep): Ditto.
1842         (rs6000_sched_insert_nops): Ditto.
1843         (rs6000_long_double_type_size): Ditto.
1844         (rs6000_ieeequad): Ditto.
1845         (rs6000_altivec_abi): Ditto.
1846         (rs6000_spe): Ditto.
1847         (rs6000_spe_abi): Ditto.
1848         (rs6000_float_gprs): Ditto.
1849         (rs6000_darwin64_abi): Ditto.
1850         (can_override_loop_align): Ditto.
1851         (rs6000_sdata): Ditto.
1852         (rs6000_tls_size): Ditto.
1853         (rs6000_current_abi): Ditto.
1854         (rs6000_traceback): Ditto.
1855         (rs6000_alignment_flags): Ditto.
1856         (rs6000_current_cmodel): Ditto.
1857         (rs6000_recip_control): Ditto.
1858         (rs6000_cpu_index): Ditto.
1859         (rs6000_tune_index): Ditto.
1860         (rs6000_debug): Ditto.
1861         (rs6000_target_flags_explict): Ditto.
1862
1863         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
1864         declaration.
1865
1866         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
1867         cmodel.  Change all uses.
1868
1869         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
1870         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
1871         Rename cmodel to rs6000_current_cmodel.
1872         (rs6000_sched_groups): Ditto.
1873         (rs6000_align_branch_targets): Ditto.
1874         (rs6000_sched_costly_dep): Ditto.
1875         (rs6000_sched_insert_nops): Ditto.
1876         (rs6000_long_double_type_size): Ditto.
1877         (rs6000_ieeequad): Ditto.
1878         (rs6000_altivec_abi): Ditto.
1879         (rs6000_spe): Ditto.
1880         (rs6000_spe_abi): Ditto.
1881         (rs6000_float_gprs): Ditto.
1882         (rs6000_darwin64_abi): Ditto.
1883         (can_override_loop_align): Ditto.
1884         (rs6000_sdata): Ditto.
1885         (rs6000_tls_size): Ditto.
1886         (rs6000_current_abi): Ditto.
1887         (rs6000_traceback): Ditto.
1888         (rs6000_alignment_flags): Ditto.
1889         (rs6000_current_cmodel): Ditto.
1890         (rs6000_recip_control): Ditto.
1891         (rs6000_cpu_index): Ditto.
1892         (rs6000_tune_index): Ditto.
1893         (rs6000_debug): Ditto.
1894         (rs6000_target_flags_explict): Ditto.
1895         (rs6000_sched_insert_nops_str): Make static.
1896         (rs6000_sched_costly_dep_str): Ditto.
1897         (rs6000_recip_name): Ditto.
1898         (rs6000_abi_name): Ditto.
1899         (rs6000_sdata_name): Ditto.
1900         (enum rs6000_traceback_name): Move to rs6000-opts.h.
1901         (rs6000_parse_tls_size_option): Delete.
1902         (rs6000_valid_attribute_p): New function for target attributes and
1903         pragmas.
1904         (rs6000_function_specific_save): Ditto.
1905         (rs6000_function_specific_restore): Ditto.
1906         (rs6000_function_specific_print): Ditto.
1907         (rs6000_can_inline_p): Ditto.
1908         (rs6000_set_current_function): Ditto.
1909         (rs6000_inner_target_options): Ditto.
1910         (rs6000_debug_target_options): Ditto.
1911         (rs6000_pragma_target_parse): Ditto.
1912         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
1913         attributes and pragmas.
1914         (TARGET_OPTION_SAVE): Ditto.
1915         (TARGET_OPTION_RESTORE): Ditto.
1916         (TARGET_OPTION_PRINT): Ditto.
1917         (TARGET_CAN_INLINE_P): Ditto.
1918         (TARGET_SET_CURRENT_FUNCTION): Ditto.
1919         (POWER_MASKS): Move to file level scope from the
1920         rs6000_option_override_internal function.
1921         (POWERPC_MASKS): Ditto.
1922         (ISA_*_MASKS): Ditto.
1923         (struct rs6000_ptt): Ditto.
1924         (processor_target_table): Ditto.
1925         (rs6000_cpu_name_lookup): Map cpu name to an index in
1926         processor_target_table.
1927         (rs6000_debug_reg_global): Print more information on processor
1928         options for -mdebug=reg.
1929         (rs6000_init_hard_regno_mode_ok): Add support for target
1930         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
1931         Allow -mdebug=val1,val2.  Rename cmodel variable.
1932         (rs6000_option_override_internal): Ditto.
1933         (rs6000_option_override): Ditto.
1934         (rs6000_handle_option): Ditto.
1935         (rs6000_conditional_register_usage): Add debug trace message.
1936         (struct rs6000_opt_mask): New for target attribute/pragma support.
1937         (rs6000_opt_masks): Ditto.
1938         (struct rs6000_opt_var): Ditto.
1939         (rs6000_opt_vars): Ditto.
1940         (rs6000_previous_function): Ditto.
1941
1942         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
1943         wasn't already included.
1944         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
1945         (enum processor_type): Ditto.
1946         (rs6000_cpu): Ditto.
1947         (enum fpu_type_t): Ditto.
1948         (fpu_type): Ditto.
1949         (enum rs6000_dependence_cost): Ditto.
1950         (enum rs6000_nop_insertion): Ditto.
1951         (enum group_termination): Ditto.
1952         (rs6000_long_double_type_size): Ditto.
1953         (rs6000_ieeequad): Ditto.
1954         (rs6000_altivec_abi): Ditto.
1955         (rs6000_spe_abi): Ditto.
1956         (rs6000_spe): Ditto.
1957         (rs6000_float_gprs): Ditto.
1958         (rs6000_alignment_flags): Ditto.
1959         (rs6000_sched_insert_nops): Ditto.
1960         (enum rs6000_vector): Ditto.
1961         (enum rs6000_abi): Ditto.
1962         (rs6000_current_opt): Ditto.
1963         (rs6000_debug_*): Delete.
1964         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
1965         (TARGET_DEBUG*): Ditto.
1966
1967         * config/rs6000/rs6000-opts.h: New header file to define the enums
1968         that are used in target variables that are now defined in rs6000.opt.
1969
1970         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
1971         rs6000-opts.h.
1972         (rs6000_sdata): Ditto.
1973         (rs6000_abi_name): Delete.
1974         (rs6000_sdata_name): Ditto.
1975         (rs6000_tls_size_string): Ditto.
1976
1977 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1978
1979         * common.opt (debug_struct_ordinary, debug_struct_generic): New
1980         Variable entries.
1981         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
1982         should_emit_struct_debug): Move from opts.c.
1983         * flag-types.h (enum debug_struct_file): Move from opts.c.
1984         * flags.h (should_emit_struct_debug): Remove.
1985         (base_of_path): Declare.
1986         (set_struct_debug_option): Add gcc_options parameter.
1987         * optc-gen.awk, opth-gen.awk: Handle array variables.
1988         * opts.c (enum debug_struct_file, debug_struct_ordinary,
1989         debug_struct_generic): Remove.
1990         (set_struct_debug_option): Add gcc_options parameter.
1991         (base_of_path): Remove static.
1992         (main_input_basename, main_input_baselength, matches_main_base,
1993         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
1994         Remove.
1995         * toplev.c (main_input_basename, main_input_baselength): Define
1996         here.
1997         * toplev.h (main_input_basename, main_input_baselength): Declare
1998         here.
1999
2000 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2001
2002         * common.opt (flag_instrument_functions_exclude_functions,
2003         flag_instrument_functions_exclude_files): New Variable definitions.
2004         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2005         * gimplify.c (char_p): Declare type and vectors.
2006         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2007         * opts.c (flag_instrument_functions_exclude_functions,
2008         flag_instrument_functions_exclude_files): Remove.
2009         (add_comma_separated_to_vector): Take void **.
2010         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2011         (common_handle_option): Use options structure for
2012         -finstrument-functions-exclude- options.
2013
2014 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2015
2016         * doc/options.texi (Var): Document effects of Defer.
2017         (Defer): Document.
2018         * opt-functions.awk (var_type, var_set): Handle deferred options.
2019         * opts-common.c (set_option): Handle CLVC_DEFER.
2020         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2021         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2022         fstack-limit-symbol=): Mark as deferred.
2023         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2024         plugin.h.
2025         (print_filtered_help): Don't report state of CLVC_DEFER options.
2026         (common_handle_option): Move code for OPT_fcall_used_,
2027         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2028         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2029         OPT_fstack_limit_symbol_ to opts-global.c.
2030         (option_enabled, get_option_state): Handle CLVC_DEFER.
2031         * opts.h: Include vec.h.
2032         (enum cl_var_type): Add CLVC_DEFER.
2033         (cl_deferred_option): Define type and vectors.
2034         (handle_common_deferred_options): Declare.
2035         * opts-global.c: New.
2036         * toplev.c (toplev_main): Call handle_common_deferred_options
2037         * Makefile.in (OPTS_H): Include $(VEC_H).
2038         (OBJS-common): Include opts-global.o.
2039         (opts.o): Update dependencies.
2040         (opts-global.o): Add dependencies.
2041
2042 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2043
2044         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2045         to objc_declare_protocols.
2046
2047 2010-11-19  Richard Guenther  <rguenther@suse.de>
2048
2049         PR lto/45789
2050         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2051         IDENTIFIERs do not stream TREE_TYPE.
2052         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2053
2054 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2055
2056         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2057
2058 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2059
2060         PR target/45870
2061         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2062         non-delegitimized TLS UNSPECs.
2063
2064 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2065             Ian Lance Taylor  <iant@google.com>
2066
2067         * config/darwin-c.c (darwin_additional_format_types): Export.
2068
2069 2010-11-18  Paul Koning  <ni1d@arrl.net>
2070
2071         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2072         pointer.
2073
2074 2010-11-18  Paul Koning  <ni1d@arrl.net>
2075
2076         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2077         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2078         * config/pdp11/pdp11.opt (-mabshi): Delete.
2079
2080 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2081
2082         * resource.h (struct resources): Fix typo in the comment.
2083
2084 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2085
2086         PR target/46546
2087         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2088
2089 2010-11-18  Richard Henderson  <rth@redhat.com>
2090
2091         PR middle-end/46515
2092         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2093         maybe_copy_epilogue_insn; handle prologue insns as well.
2094         * rtl.h, cfglayout.c: Update for rename.
2095         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2096         RTX_FRAME_RELATED_P insns.
2097
2098 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2099
2100         PR middle-end/46534
2101         * builtins.c (fold_builtin_printf): Don't copy and modify string
2102         before build_string_literal, instead modify what
2103         build_string_literal returned.
2104
2105 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2106
2107         PR c/33193
2108         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2109         REALPART_EXPR and IMAGPART_EXPR.
2110
2111 2010-11-18  Richard Guenther  <rguenther@suse.de>
2112
2113         PR tree-optimization/46172
2114         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2115         function.
2116         (slpeel_tree_peel_loop_to_edge): Call it.
2117
2118 2010-11-18  Jeff Law  <law@redhat.com>
2119
2120         PR middle-end-optimization/46297
2121         * postreload.c (reload_combine_note_store): Deal with embedded
2122         side effects in MEM expressions.
2123
2124 2010-11-18  Richard Guenther  <rguenther@suse.de>
2125
2126         PR lto/45089
2127         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2128         when checking is not enabled.
2129
2130 2010-11-18  Richard Guenther  <rguenther@suse.de>
2131
2132         PR lto/46525
2133         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2134         type leaders.
2135         (gimple_register_canonical_type): Also cache the canoncial type
2136         for non type leaders.
2137
2138 2010-11-18  Richard Guenther  <rguenther@suse.de>
2139
2140         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2141
2142 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2143
2144         PR middle-end/46518
2145         * sel-sched-ir.c (init_expr): Use the correct type for
2146         target_available.
2147         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2148
2149 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2150
2151         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2152         as well as -mrelocatable at the same time.
2153
2154 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2155
2156         PR target/46422
2157         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2158         Call the clz builtin.
2159
2160 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2161             Steve Ellcey  <sje@cup.hp.com>
2162
2163         PR middle-end/31490
2164         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2165         if section attribute used.
2166
2167 2010-11-17  Jan Hubicka  <jh@suse.cz>
2168
2169         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2170         expand errno setting variant when optimizing for size.
2171
2172 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2173
2174         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2175         Reverse backward loop.  Fix formatting issues.
2176
2177 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2178
2179         * c-parser.c (c_token_is_qualifier,
2180         c_parser_next_token_is_qualifier): New.
2181         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2182         Improve error message on specs->tagdef_seen_p.
2183         (c_parser_struct_or_union_specifier): Improve error recovery.
2184         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2185         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2186         using c_parser_next_token_is_qualifier; extend it to cover
2187         a ctsk_tagdef typespec and !typespec_ok in general.
2188
2189 2010-11-17  Richard Guenther  <rguenther@suse.de>
2190
2191         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2192         (gimple_mod_pow2_value_transform): Likewise.
2193         (gimple_mod_subtract_transform): Likewise.
2194
2195 2010-11-17  Richard Guenther  <rguenther@suse.de>
2196
2197         PR lto/46504
2198         * gimple.c (gimple_register_canonical_type): Make sure to only
2199         make type leaders canonical types.
2200
2201 2010-11-17  Michael Matz  <matz@suse.de>
2202
2203         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2204         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2205         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2206         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2207         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2208         (pass_build_ssa): ... but here.
2209         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2210         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2211         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2212         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2213         * predict.c (rebuild_frequencies): Ditto.
2214         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2215         * emit-rtl.c (verify_rtl_sharing): Ditto.
2216         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2217         * tree-ssa-live.c (remove_unused_locals): Ditto.
2218         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2219         * tree-ssa.c (pass_early_warn_uninitialized,
2220         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2221         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2222         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2223         * passes.c (pass_postreload, execute_todo): Ditto.
2224         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2225
2226 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2227
2228         * doc/invoke.texi (-dy): Remove.
2229         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2230         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2231         * langhooks.c (lhd_do_nothing_i): Remove.
2232         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2233         * toplev.c (set_yydebug): Remove.
2234         (compile_file): Update call to lang_hooks.parse_file.
2235         (decode_d_option): Don't handle -dy.
2236
2237 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2238
2239         PR rtl-optimization/46440
2240         * combine.c (update_cfg_for_uncondjump): When changing
2241         an indirect jump into unconditional jump, remove BARRIERs
2242         from bb's footer.
2243
2244 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2245
2246         * opts.c (target_handle_option): Do not assert that loc ==
2247         UNKNOWN_LOCATION.
2248
2249 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2250             Richard Guenther  <rguenther@suse.de>
2251
2252         PR middle-end/45838
2253         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2254         call_may_clobber_ref_p_1): Return true for __sync_* and some
2255         OpenMP builtins that act as threading barriers.
2256
2257 2010-11-17  Richard Guenther  <rguenther@suse.de>
2258
2259         PR tree-optimization/46498
2260         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2261
2262 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2263
2264         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2265         (xtensa_function_arg_boundary): ...this.
2266         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2267         thinko in declaration.
2268         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2269         number of parameters to picochip_function_arg_boundary.
2270         (picochip_arg_advance): Likewise.
2271
2272 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2273
2274         PR target/46512
2275         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2276         under check for type.
2277
2278 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2279
2280         * ifcvt.c (dead_or_predicable): Fix typo.
2281
2282 2010-11-16  Richard Henderson  <rth@redhat.com>
2283
2284         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2285         * config/s390/s390.opt (mfused-madd): Remove.
2286         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2287         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2288         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2289         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2290
2291 2010-11-16  Richard Henderson  <rth@redhat.com>
2292
2293         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2294         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2295         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2296         (*altivec_vmaddfp_1): Remove.
2297         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2298         (altivec_mulv4sf3): Expand to FMA directly.
2299         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2300         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2301         * config/rs6000/paired.md (paired_madds0): Use FMA.
2302         (paired_madds1): Likewise.
2303         (*paired_madd): Rename from paired_madd; use FMA.
2304         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2305         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2306         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2307         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2308         (rs6000_emit_madd): Use fma_optab.
2309         (rs6000_emit_msub): Use fms_optab.
2310         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2311         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2312         (*fmasf4_fpr): Rename from fmasf4_fpr.
2313         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2314         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2315         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2316         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2317         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2318         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2319         (*fmadf4_fpr): Rename from fmadf4_fpr.
2320         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2321         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2322         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2323         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2324         (fmasf4, fmadf4): Macroize into...
2325         (fma<FMA_F>4): ... here.
2326         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2327         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2328         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2329         TARGET_FUSED_MADD.
2330         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2331         (*vsx_fmadd<mode>4_1): Remove.
2332         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2333         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2334         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2335         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2336         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2337         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2338         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2339
2340 2010-11-16  Richard Henderson  <rth@redhat.com>
2341
2342         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2343         (fmasf4, fnmadf4, fnmasf4): Likewise.
2344         (unnamed plus+mult insns and splitters): Delete.
2345
2346 2010-11-16  Richard Henderson  <rth@redhat.com>
2347
2348         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2349         (fnma<VSF>4): Rename from fnms_<VSF>.
2350         (fms<VSF>4): Rename from fms_<VSF>.
2351         (fma<VDF>4): Rename from fma_<VDF>.
2352         (fms<VDF>4): Rename from fms_<VDF>.
2353         (nfma<VDF>4): Rename from fnma_<VDF>.
2354         (nfms<VDF>4): Rename from fnms_<VDF>.
2355         (fnma<VDF>4, fnms<VDF>4): New expanders.
2356         (floatunsdisf2): Update for the renames.
2357         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2358         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2359
2360 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2361
2362         PR rtl-optimization/46490
2363         * combine.c (expand_compound_operation): Fix thinko.
2364
2365 2010-11-16  Richard Henderson  <rth@redhat.com>
2366
2367         PR target/46470
2368         * recog.c (peep2_attempt): Convert frame-related info when possible.
2369         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2370         (peephole2_optimize): Allow peep2_attempt to fail.
2371
2372 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2373
2374         PR rtl-optimization/46315
2375         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2376         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2377         extracted from...
2378         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2379         (remove_reg_equal_equiv_notes_for_defs): ...this.
2380         (delete_unmarked_insns): Adjust to above renaming.
2381         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2382         referring to registers set in the insns being moved, if any.
2383
2384         * df-core.c (df_ref_dump): New function extracted from...
2385         (df_refs_chain_dump): ...here.  Call it.
2386         (df_regs_chain_dump): Likewise.
2387         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2388         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2389
2390 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2391
2392         PR rtl-optimization/46395
2393         * postreload.c (reload_combine): Invalidate register use
2394         information on all control flow insns.
2395
2396         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2397         LABEL_REF in UNSPEC operand.
2398
2399 2010-11-16  Jan Hubicka  <jh@suse.cz>
2400
2401         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2402         when !flag_toplevel_reorder do not remove unless variable is
2403         COMDAT or ARTIFICIAL.
2404         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2405         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2406         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2407         * varpool.c (decide_is_variable_needed): Do not handle visibility
2408         issues.
2409         (varpool_finalize_decl): Likewise.
2410         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2411         update outdated comment on DECL_RTL_SET_P check.
2412
2413 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2414
2415         * config/sol2.h (NM_FLAGS): Define.
2416         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2417         * doc/tm.texi: Update.
2418
2419 2010-11-16  Nick Clifton  <nickc@redhat.com>
2420
2421         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2422         (msubsf4): Rename to fmssf4, and use fma.
2423         (nmaddsf4): Rename to fnmasf4 and use fma.
2424         (nmsubsf4): Rename to fnmssf4 and use fma.
2425
2426 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2427
2428         PR target/44762
2429         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2430         (score3_in_small_data_p, score3_function_value): Likewise.
2431         (score3_trampoline_init): Use LCT_NORMAL.
2432         (score3_print_operand): Initialize code as UNKNOWN.
2433         * config/score/predicates.md (score_load_multiple_operation):
2434         Remove unused variable.
2435         (score_store_multiple_operation): Likewise.
2436         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2437         (score7_in_small_data_p, score7_function_value): Likewise.
2438         (score7_trampoline_init): Use LCT_NORMAL.
2439         (score7_print_operand): Initialize code as UNKNOWN.
2440         * config/score/score3.h (score3_return_in_memory): Update prototype.
2441         (score3_in_small_data_p, score3_function_value): Likewise.
2442         * config/score/score-protos.h (score_function_value): Likewise.
2443         * config/score/score7.h (score7_return_in_memory): Update prototype.
2444         (score7_in_small_data_p, score7_function_value): Likewise.
2445         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2446         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2447         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2448         (score_function_epilogue, score_in_small_data_p): Likewise.
2449         (score_option_override, score_asm_trampoline_template): Likewise.
2450         (score_trampoline_init, score_print_operand): Likewise.
2451         (score_print_operand_address, score_prologue): Likewise.
2452         (score_epilogue, score_call, score_call_value): Likewise.
2453         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2454         (score_function_arg_advance): Likewise. Make static.
2455         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2456         (score_function_arg, score_legitimate_address_p): Make static.
2457         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2458         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2459         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2460         Allow (W) == HOST_BITS_PER_WIDE_INT.
2461
2462         PR java/46386
2463         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2464         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2465
2466 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2467
2468         * config/arc/arc.c: Delete pasto.
2469         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2470
2471 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2472
2473         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2474         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2475         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2476         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2477         (mn10300_preferred_reload_class,
2478         mn10300_preferred_output_reload_class): New functions.
2479
2480 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2481
2482         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2483         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2484         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2485         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2486
2487 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2488
2489         * builtins.c (std_gimplify_va_arg_expr): Use
2490         targetm.calls.function_arg_boundary.
2491         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2492         * calls.c (struct arg_data): Update comment.
2493         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2494         * target.def (function_arg_boundary): Define.
2495         * targhooks.h (default_function_arg_boundary): Declare.
2496         * targhooks.c (default_function_arg_boundary): Define.
2497         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2498         TARGET_FUNCTION_ARG_BOUNDARY.
2499         (FUNCTION_ARG_BOUNDARY): Delete.
2500         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2501         * doc/tm.texi: Regenerate.
2502         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2503         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2504         * config/arc/arc.c (arc_function_arg_boundary): Define.
2505         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2506         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2507         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2508         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2509         (arm_function_arg_boundary): Define.
2510         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2511         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2512         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2513         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2514         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2515         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2516         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2517         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2518         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2519         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2520         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2521         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2522         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2523         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2524         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2525         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2526         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2527         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2528         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2529         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2530         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2531         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2532         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2533         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2534         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2535         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2536         * config/pa/pa.c (pa_function_arg_boundary): Define.
2537         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2538         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2539         * config/picochip/picochip-protos.h
2540         (picochip_get_function_arg_boundary): Delete.
2541         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2542         Rename to...
2543         (picochip_function_arg_boundary): ...this.  Make static.
2544         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2545         (picochip_arg_advance): Adjust.
2546         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2547         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2548         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2549         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2550         (rs6000_function_arg_boundary): ...this.  Make static.
2551         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2552         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2553         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2554         * config/rx/rx.c (rx_function_arg_boundary): Define.
2555         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2556         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2557         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2558         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2559         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2560         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2561         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2562         (xtensa_function_arg_boundary): ...this.  Make static.
2563         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2564
2565 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2566
2567         * expr.c (alignment_for_piecewise_move): New function.
2568         (widest_int_mode_for_size): New function.
2569         (move_by_pieces, move_by_pieces_ninsns): Call them.
2570         (can_store_by_pieces, store_by_pieces_1): Likewise.
2571
2572 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2573
2574         * gcc.c (char_p): Define.  Define a VEC of it.
2575         (n_linker_options, n_assembler_options, n_preprocessor_options):
2576         Delete.
2577         (linker_options, assembler_options, preprocessor_options): Convert
2578         to a VEC.
2579         (add_preprocessor_option): Adjust.
2580         (add_assembler_option): Adjust.
2581         (add_linker_option): Adjust.
2582         (do_specs_vec): New function.
2583         (do_spec_1): Call it.  Adjust for new types.
2584
2585 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2586
2587         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2588         (sreal.o, statistics.o, stringpool.o): Likewise.
2589
2590 2010-11-16  Richard Guenther  <rguenther@suse.de>
2591
2592         PR tree-optimization/44545
2593         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2594         statements are not reassociatable.
2595         (reassociate_bb): Likewise.
2596
2597 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2598
2599         * bitmap.c: Delete unnecessary includes.
2600         * ebitmap.c: Likewise.
2601         * et-forest.c: Likewise.
2602         * sreal.c: Likewise.
2603         * statistics.c: Likewise.
2604         * stringpool.c: Likewise.
2605         * double-int.c: Add comment for inclusion of tm.h.
2606
2607 2010-11-16  Richard Guenther  <rguenther@suse.de>
2608
2609         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2610         (visit_nary_op): ... this.
2611         (visit_binary_op): Remove.
2612         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2613
2614 2010-11-16  Richard Guenther  <rguenther@suse.de>
2615
2616         PR middle-end/45172
2617         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2618
2619 2010-11-16  Nick Clifton  <nickc@redhat.com>
2620
2621         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2622         record is packed.
2623
2624 2010-11-15  Richard Henderson  <rth@redhat.com>
2625
2626         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2627         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2628         DOT_PROD_EXPR.
2629
2630 2010-11-15  Richard Henderson  <rth@redhat.com>
2631
2632         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2633         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2634         fma rtx_code.
2635
2636 2010-11-15  Richard Henderson  <rth@redhat.com>
2637
2638         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2639         and *mulsubsf4 respectively.  Use fma rtx_code.
2640
2641 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2642
2643         * gcc.c: Include "vec.h".
2644         (argbuf): Make into a VEC.
2645         (argbuf_length, argbuf_index): Remove.
2646         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2647         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2648         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2649         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2650         (gcc.o): Depend on $(VEC_H).
2651
2652 2010-11-15  Richard Henderson  <rth@redhat.com>
2653
2654         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2655         via FMA if unsafe math.
2656         (insert_var_expansion_initialization): Handle FMA.
2657         (combine_var_copies_in_loop_exit): Likewise.
2658
2659 2010-11-15  Richard Henderson  <rth@redhat.com>
2660
2661         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2662         * config/ia64/ia64.opt: Remove mfused-madd.
2663         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2664         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2665         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2666         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2667         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2668         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2669         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2670         (fmav2sf4): Rename from fpma; use FMA code.
2671         (fmsv2sf4): Rename from fpms; use FMA code.
2672         (fnmav2sf4): Rename from *fpnma; use FMA code.
2673         * config/ia64/ia64.md (MODE_SDF): New iterator.
2674         (suffix): New mode attribute.
2675         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2676         (fmssf4): Rename from *fmssf4.
2677         (fnmasf4): Rename from *nfmasf4.
2678         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2679         (*nmadddf4, *nmadddf4_truncsf): Remove.
2680         (fmsdf4): Rename from *fmsdf4.
2681         (fnmadf4): Rename from *nfmadf4.
2682         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2683         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2684         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2685         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2686         (fmsxf4): Rename from *fmsxf4.
2687         (fnmaxf4): Rename from *nfmaxf4.
2688         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2689         (*fnmaxf_trunc_<MODE_SDF>): New.
2690
2691 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2692
2693         PR tree-optimization/46461
2694         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2695         a gimple val.
2696
2697 2010-11-15  Ian Lance Taylor  <iant@google.com>
2698
2699         * godump.c: New file.
2700         * common.opt (fdump-go-spec=): New option.
2701         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2702         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2703         (TYPE_SYMTAB_IS_DIE): Define.
2704         (struct tree_type): Change GTY for symtab field to use
2705         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2706         to pick the union field.
2707         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2708         (dump_go_spec_init): Declare.
2709         * toplev.c (process_options): Handle flag_dump_go_spec.
2710         * debug.c: Include "tree.h".
2711         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2712         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2713         * dbxout.c (dbx_debug_hooks): Likewise.
2714         (xcoff_debug_hooks): Likewise.
2715         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2716         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2717         SDB_DEBUGGING_INFO is not defined.
2718         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2719         (Overall Options): Document -fdump-go-spec.
2720         * Makefile.in (OBJS-common): Add godump.o.
2721         (debug.o): Add dependency on $(TREE_H).
2722         (godump.o): New target.
2723         (GTFILES): Add $(srcdir)/godump.c.
2724
2725 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2726
2727         PR debug/46095
2728         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2729         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2730         style < 0, add REG_FRAME_RELATED_EXPR.
2731
2732         PR debug/46387
2733         * rtl.h (vt_equate_reg_base_value): New prototype.
2734         * alias.c (vt_equate_reg_base_value): New function.
2735         * var-tracking.c (vt_init_cfa_base): Use it.
2736
2737 2010-11-15  Jan Hubicka  <jh@suse.cz>
2738             Diego Novillo  <dnovillo@google.com>
2739
2740         PR lto/41528
2741         * doc/lto.texi: Add.
2742         * doc/gccint.texi: Add reference to lto.texi.
2743         * doc/invoke.texi: Update user documentation for LTO.
2744         Move internal flags to lto.texi
2745
2746 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2747
2748         * c-typeck.c (build_unary_op): Use
2749         objc_build_incr_expr_for_property_ref to build the pre/post
2750         increment/decrement of an Objective-C property ref, and skip the
2751         lvalue_or_else check in that case.
2752
2753 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2754
2755         PR tree-optimization/46349
2756         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2757         (contains_vce_or_bfcref_p): Likewise.
2758         (sra_modify_assign): Use them.
2759
2760 2010-11-15  Richard Guenther  <rguenther@suse.de>
2761
2762         PR tree-optimization/46467
2763         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2764         variables without subvars.
2765
2766 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2767
2768         * config/picochip/picochip.c (file header): Picochip name change.
2769         * config/picochip/picochip.md (file header): Likewise.
2770         * config/picochip/predicates.md (file header): Likewise.
2771         * config/picochip/dfa_space.md (file header): Likewise.
2772         * config/picochip/dfa_speed.md (file header): Likewise.
2773         * config/picochip/picochip.h(file header): Likewise.
2774         * config/picochip/constraints.md (file header): Likewise.
2775         * config/picochip/picochip-protos.h (file header): Likewise.
2776         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2777         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2778         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2779         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2780         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2781         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2782         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2783         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2784         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2785         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2786         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2787         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2788         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2789         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2790
2791 2010-11-15  Richard Guenther  <rguenther@suse.de>
2792
2793         PR bootstrap/46474
2794         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2795
2796 2010-11-15  Nick Clifton  <nickc@redhat.com>
2797
2798         * config/stormy16/stormy16.c (direct_return): Do not generate a
2799         direct return for interrupt handlers.
2800
2801 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2802
2803         * Makefile.in (tm.texi): Replace with rule for:
2804         ($(srcdir)/doc/tm.texi).
2805         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2806         $(srcdir)/doc/tm.texi .
2807         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2808         tm.texi .
2809
2810         PR target/46427
2811         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2812
2813         PR bootstrap/45444
2814         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2815         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2816
2817         PR target/46432
2818         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2819
2820 2010-11-15  Richard Guenther  <rguenther@suse.de>
2821
2822         PR lto/44150
2823         * lto-opts.c (lto_write_options): Write -fexceptions even if
2824         not set by the user.
2825
2826 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2827
2828         PR c/46462
2829         * c-decl.c (declspecs_add_type): Make variables with error types
2830         integers.
2831         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2832         do not start a declaration before an Objective-C foreach.
2833         (c_parser_declaration_or_fndef): Improve recovery after unknown
2834         type name.
2835         (c_parser_for_statement): Hoist entrance of "foreach context"
2836         before ifs, add corresponding reset where it was missing.  Do
2837         not set objc_could_be_foreach_context for C.
2838
2839 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2840
2841         PR tree-optimization/45722
2842         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2843         this is a reference to a component.
2844         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2845         (ipa_note_param_call): Adjust comment.
2846
2847 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2848
2849         * config/mips/mips.c (machine_function): Remove
2850         initialized_mips16_gp_pseudo_p.
2851         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
2852         detect whether a pseudo has already been created.  Unconditionally
2853         create a new one if not.
2854         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
2855         expanding to rtl.  Create a new pseudo otherwise, if allowed.
2856
2857 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
2858
2859         PR target/43440
2860         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
2861         * tm.texi: Regenerated.
2862         * output.h (decode_reg_name_and_count): Declare.
2863         * varasm.c (decode_reg_name_and_count): New function.
2864         (decode_reg_name): Reimplement using decode_reg_name_and_count.
2865         * reginfo.c (fix_register): Use decode_reg_name_and_count and
2866         iterate over all regs used.
2867         * stmt.c (expand_asm_operands): Likewise.
2868         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
2869         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
2870         multiple machine registers.
2871
2872 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2873
2874         * stor-layout.c (place_union_field): Do not put location information
2875         on offset expressions.
2876         (place_field): Likewise.
2877         (finalize_record_size): Likewise on size expressions.
2878         (finalize_type_size): Likewise.
2879         (layout_type): Likewise.
2880
2881 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
2882
2883         PR debug/42889
2884         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
2885         * df-core.c (df_set_bb_dirty_nonrl): Remove.
2886         * df.h (df_set_bb_dirty_nonlr): Likewise.
2887
2888 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
2889
2890         * config/mips/mips.md (call_internal): Pass curr_insn to
2891         mips_split_call.
2892         (call_internal_direct): Ditto.
2893         (call_value_internal): Ditto.
2894         (call_value_internal_direct): Ditto.
2895         (call_value_multiple_internal): Ditto.
2896         * config/mips/mips.c (mips_split_call): Do not copy
2897         CALL_INSN_FUNCTION_USAGE here.
2898
2899 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
2900
2901         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
2902         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
2903         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
2904         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
2905         (TUNE_LOONGSON_3A): Define.
2906         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
2907         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
2908         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
2909         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
2910         (mips_rtx_cost_data): Add Loongson-3A.
2911
2912 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2913
2914         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
2915         switches.
2916
2917 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2918
2919         * dwarf2out.c (macinfo_entry): New struct.
2920         (output_comp_unit): Emit the section start label here and flag that we
2921         will emit an info section.
2922         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
2923         emitting directly.
2924         (dwarf2out_end_source_file): Likewise.
2925         (dwarf2out_define): Likewise.
2926         (dwarf2out_undef): Likewise.
2927         (output_macinfo): New.
2928         (dwarf2out_init): Do not emit debug section switches here, allocate a
2929         vec for macinfo, when required.
2930         (dwarf2out_finish): First switch to debug_abbrev_section here.
2931         debug_line_section,  debug_macinfo_section, Likewise.
2932         Check that the pubtypes table has at least one unpruned entry before
2933         trying to emit it.
2934
2935 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2936
2937         PR c/20385
2938         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
2939         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
2940         token lookahead.
2941         (c_parser_compound_statement_nostart, c_parser_label,
2942         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
2943         (c_parser_declaration_or_fndef): Detect the case now matched by
2944         c_parser_next_tokens_start_declaration, give error and correct it.
2945
2946 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2947
2948         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
2949         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
2950         with typespec_kind.
2951         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
2952         (shadow_tag_warned, check_compound_literal_type): Adjust
2953         uses of tag_defined_p.
2954         (declspecs_add_type): Set typespec_kind.
2955         * c-parser.c (c_parser_declaration_or_fndef,
2956         c_parser_declspecs, c_parser_struct_declaration,
2957         c_parser_parameter_declaration, c_parser_type_name,
2958         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
2959         of type_seen_p.
2960         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
2961         tag_defined_p, pass ctsk_firstref through.
2962
2963 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2964
2965         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
2966         (struct format_wanted_type): Replace field "name" with "kind", add
2967         "format_start" and "format_length".
2968         (check_format_info_main): Fill in new fields.  Fill in
2969         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
2970         after the final NUL outside the while loop.  Do not include
2971         width and precision modifiers in the format_start/format_length
2972         of the main format.
2973         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
2974         arguments.  Compute WANTED_TYPE first so that format_type_warning
2975         can be called for missing arguments.  Adjust calls to
2976         format_type_warning.
2977         (format_type_warning): Fetch as much information as possible
2978         from format_wanted_type.  Adjust printing now that every
2979         warning has a "descr", as well as for missing argument warnings
2980         and to include % sign for format specifiers.
2981
2982 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
2983
2984         PR rtl-optimization/46204
2985         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
2986         Update all callers.  Do not recompute topological order.  Adjust
2987         fallthrough edges following a degenerate conditional jump.
2988
2989 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
2990
2991         * opts-common.c (control_warning_option): New.
2992         * opts.c (set_default_handlers): New.
2993         (decode_options): Use set_default_handlers and
2994         control_warning_option.
2995         (common_handle_option): Update call to enable_warning_as_error.
2996         (enable_warning_as_error): Take gcc_options parameters.  Use
2997         control_warning_option.
2998         * opts.h (set_default_handlers, control_warning_option): Declare.
2999
3000 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3001
3002         * Makefile.in (OPTS_H): Define.
3003         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3004         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3005         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3006         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3007         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3008         * gcc.c (driver_handle_option): Take location_t parameter.
3009         (process_command, do_self_spec): Update calls to
3010         read_cmdline_option.
3011         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3012         * langhooks.c (lhd_handle_option): Take location_t parameter.
3013         * langhooks.h (handle_option): Take location_t parameter.
3014         * lto-opts.c (lto_reissue_options): Update call to set_option.
3015         * opts-common.c (handle_option): Make static.  Take location_t
3016         parameter and pass it to other functions.
3017         (handle_generated_option): Take location_t parameter and pass it
3018         to other functions.
3019         (read_cmdline_option): Take location_t parameter and pass it to
3020         other functions.  Use warning_at and error_at.
3021         (set_option): Take location_t parameter and pass it to other
3022         functions.
3023         * opts.c (common_handle_option): Take location_t parameter and
3024         pass it to other functions.
3025         (enable_warning_as_error): Make static.  Take location_t parameter
3026         and pass it to other functions.
3027         (lang_handle_option): Take location_t parameter and pass it to
3028         other functions.
3029         (target_handle_option): Take location_t parameter.
3030         (read_cmdline_options, maybe_default_option,
3031         maybe_default_options, default_options_optimization,
3032         decode_options): Take location_t parameter and pass it to other
3033         functions.
3034         * opts.h: Include input.h.
3035         (struct cl_option_handler_func, decode_options, set_option,
3036         handle_generated_option, read_cmdline_option): Take location_t
3037         parameters.
3038         (handle_option, enable_warning_as_error): Remove.
3039         * toplev.c (toplev_main): Update call to decode_options.
3040
3041 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3042
3043         * graphite-cloog-util.c (oppose_constraint,
3044         cloog_matrix_to_ppl_constraint,
3045         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3046         CLooG isl uses unsigned integers.  This triggered a warning.
3047
3048 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3049
3050         PR target/46438
3051         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3052         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3053         (xtensa_function_arg_1): De-constify cum.
3054         (xtensa_expand_prologue): Use add_reg_note.
3055
3056         PR target/46435
3057         * config/cris/cris.c (saved_regs_mentioned): Delete.
3058         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3059         Remove unused variable op0p.
3060         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3061         (cris_emit_movem_store): Use add_reg_note.
3062
3063         PR bootstrap/46456
3064         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3065
3066 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3067
3068         * function.c (expand_function_end): Set the locator of the prologue on
3069         the stack checking insns.
3070
3071 2010-11-12  Richard Henderson  <rth@redhat.com>
3072
3073         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3074         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3075         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3076         MASK_FUSED_MADD.
3077         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3078         (fnmasf4): Rename from mulsubsf3; use fma.
3079
3080 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3081             Richard Henderson  <rth@redhat.com>
3082
3083         PR target/46428
3084         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3085         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3086         comparison.
3087
3088 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3089
3090         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3091
3092 2010-11-12  Jan Hubicka  <jh@suse.cz>
3093
3094         * doc/invoke.texi (early-inlining-insns): Update default.
3095         * params.def (early-inlining-insns): Default to 10.
3096
3097 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3098
3099         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3100
3101 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3102
3103         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3104         (SUPPORTS_INIT_PRIORITY): Define.
3105
3106 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3107
3108         PR target/46430
3109         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3110         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3111         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3112         (avr_device_to_devicelib): Likewise.
3113         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3114         into block.
3115         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3116         (zero_extendhidi2, zero_extendsidi2): Likewise.
3117         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3118         (avr_return_addr_rtx): De-constify tem.
3119         (avr_rotate_bytes): Move declarations to start of block.
3120         Don't use variable length array.  Put nested if/else into block.
3121
3122         PR rtl-optimization/46433
3123         * var-tracking.c: Include tm_p.h .
3124
3125         PR bootstrap/44756
3126         PR build/44767
3127         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3128         should be unsigned.
3129         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3130         * doc/tm.texi: Regenerate.
3131
3132         PR target/46412
3133         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3134         * config/bfin/bfin.c: Include sel-sched.h .
3135         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3136         (expand_interrupt_handler_prologue): Remove unused variable insn.
3137         (bfin_load_pic_reg): Likewise.
3138         (bfin_rtx_costs): Make code / outer_code variables of type
3139         enum rtx_code, copied from re-named parameters.
3140         (bfin_local_alignment): Change align argument and return type
3141         to unsigned.
3142         (bfin_adjust_cost): Remove unused variable insn_type.
3143         Declare variables at start of block.
3144         (struct loop_info): Rename to...
3145         (struct loop_info_d).
3146         (workaround_rts_anomaly): Change type of icode to int.
3147         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3148         with int-typed variable.
3149         (note_np_check_stores): Likewise.
3150         (trapping_loads_p): Remove unused variable pat.
3151         (bfin_expand_binop_builtin): Use expand_normal.
3152         (bfin_expand_unop_builtin): Likewise.
3153         (bfin_expand_builtin): Likewise.  Set tmode before use.
3154
3155         PR middle-end/44769
3156         * final.c (split_double): Don't use BITS_PER_WORD directly in
3157         shift count.
3158
3159         PR target/46431
3160         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3161         assignment.
3162
3163         PR target/46450
3164         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3165         Use add_reg_note.
3166         (xstormy16_function_arg): Dereference cum.
3167         (xstormy16_expand_builtin): Use expand_normal.
3168         Change type of omode to enum machine_mode.
3169         (combine_bnp): Rename and to and_insn.
3170
3171         PR target/46437
3172         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3173         localreg.
3174
3175 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3176
3177         PR debug/46375
3178         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3179
3180 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3181
3182         PR lto/46376
3183         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3184
3185 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3186
3187         PR c/44782
3188         * common.opt (fmax-errors=): New option.
3189         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3190         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3191         * diagnostic.c (diagnostic_initialize): Initialize it.
3192         (diagnostic_action_after_output): Exit if more than max_errors
3193         have been output.
3194         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3195         (-fmax-errors): Document.
3196
3197 2010-11-11  Richard Henderson  <rth@redhat.com>
3198
3199         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3200
3201 2010-11-11  Richard Henderson  <rth@redhat.com>
3202
3203         * config/fused-madd.opt: New file.
3204         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3205         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3206         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3207         * config/i386/i386.opt (mfused-madd): Remove.
3208         * config/i386/sse.md (split_fma): Remove.
3209         (split_fms, split_fnma, split_fnms): Remove.
3210
3211 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3212
3213         PR target/46088
3214         * config/i386/i386.md (*ashl<mode>3_cconly,
3215         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3216         change nonimmediate_operand predicate to register_operand.
3217
3218 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3219
3220         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3221
3222 2010-11-11  Jan Hubicka  <jh@suse.cz>
3223
3224         * opts.c (finish_options): Do not error on -flto-partition alone.
3225
3226         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3227         (-flto-partition): Document none.
3228         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3229         * lto-wrapper.c: Update comment.
3230         (run_gcc): Update LTO option parsing.
3231         * opts.c (finish_options): add support -flto-partition=none
3232         (common_handle_option): Remove fwhopr.
3233         * common.opt: Turn fwhopr into flto.
3234         * collect2.c (main): Update option handling.
3235         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3236         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3237         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3238         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3239         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3240
3241 2010-11-11  Jan Hubicka  <jh@suse.cz>
3242
3243         PR tree-optimize/40436
3244         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3245         (eliminated_by_inlining_prob): ... this one; return 50% probability
3246         for SRA.
3247         (estimate_function_body_sizes): Update use of
3248         eliminated_by_inlining_prob; estimate static function size
3249         for 2 instructions.
3250
3251 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3252
3253         PR target/44749
3254         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3255         declare.  Change type of argument four to type int.
3256         (mep_secondary_input_reload_class): Returns enum reg_class.
3257         (mep_secondary_output_reload_class): Likewise.
3258         (mep_function_value): Change types of arguments to cont_tree.
3259         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3260         argument four to type int.
3261         (mep_secondary_input_reload_class): Returns enum reg_class.
3262         (mep_secondary_output_reload_class): Likewise.
3263         (mep_function_value): Change types of arguments to cont_tree.
3264         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
3265         mep_regno_reg_class to enum reg_class.
3266
3267 2010-11-11  Richard Henderson  <rth@redhat.com>
3268
3269         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3270         that the target has the exact fma operation that we matched.
3271
3272 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3273
3274         * reginfo.c (fix_register): Avoid inserting English word in
3275         diagnostic sentence.  Use %qs for quoting and %'.
3276
3277 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
3278
3279         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3280         Intel processor family 6, model 0x2c.
3281
3282 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3283
3284         * opts.c (warning_as_error_callback,
3285         register_warning_as_error_callback): Remove.
3286         (enable_warning_as_error): Don't use warning_as_error_callback.
3287         * opts.h (register_warning_as_error_callback): Remove.
3288
3289 2010-11-11  Richard Henderson  <rth@redhat.com>
3290
3291         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
3292         in between the MULT and the PLUS/MINUS.
3293
3294 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3295
3296         PR middle-end/46388
3297         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
3298         BLKmode mode for it.
3299         (expand_expr_real_1): Similarly for op0.
3300
3301 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3302
3303         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
3304         Document optional target selector.
3305
3306 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3307
3308         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
3309         assembling high and low parts of size if not using 32-bit HWINT; else
3310         use DECL_SIZE_UNITS, not DECL_SIZE.
3311
3312 2010-11-11  Martin Jambor  <mjambor@suse.cz>
3313
3314         PR tree-optimization/46383
3315         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
3316         offsets.
3317         (compute_complex_ancestor_jump_func): Likewise.
3318         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
3319
3320 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3321
3322         PR debug/46150
3323         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
3324         true if expr1->hash != expr2->hash.
3325
3326 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3327
3328         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
3329         diagnostics with lowercase letters.
3330         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
3331         lowercase letters.
3332         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
3333         diagnostic.
3334         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3335         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
3336         lowercase letters.
3337         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3338         Remove trailing ' ' from diagnostic.
3339         * config/avr/avr.c (print_operand_address): Start diagnostic with
3340         a lowercase letter and remove trailing '.'.
3341         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
3342         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
3343         with lowercase letters.  Use %' in diagnostics.  Remove trailing
3344         '.' from diagnostics.
3345         (bfin_handle_longcall_attribute): Use %' in diagnostic.
3346         * config/cris/cris.c (cris_split_movdx,
3347         cris_expand_pic_call_address): Start diagnostics with lowercase
3348         letters.
3349         (cris_asm_output_label_ref): Use %' in diagnostic.
3350         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
3351         letter.
3352         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
3353         lowercase letter.
3354         * config/darwin-c.c (version_as_macro): Start diagnostic with a
3355         lowercase letter.
3356         * config/darwin-driver.c (darwin_default_min_version): Use %' in
3357         diagnostic.
3358         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
3359         diagnostic.
3360         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3361         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
3362         diagnostics.
3363         * config/i386/i386.c (ix86_option_override_internal): Write
3364         diagnostic as a single sentence without trailing '.'.  Use %' in
3365         diagnostics.
3366         (ix86_function_sseregparm, classify_argument): Start diagnostics
3367         with lowercase letters.
3368         (ix86_expand_prologue): Use %' in diagnostic.
3369         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3370         diagnostic.
3371         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3372         lowercase letter.
3373         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3374         diagnostic.
3375         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3376         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3377         '`' in help text.
3378         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3379         lowercase letter.
3380         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3381         lowercase letters.
3382         * config/microblaze/microblaze.c (microblaze_handle_option):
3383         Remove trailing '.' from diagnostic.
3384         (print_operand): Start diagnostic with a lowercase letter.
3385         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3386         lowercase letters.  Avoid '`' in diagnostics.
3387         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3388         lowercase letters.  Avoid '`' in diagnostics.
3389         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3390         lowercase letters.  Avoid '`' in diagnostics.
3391         * config/picochip/picochip.c (picochip_option_override,
3392         picochip_emit_save_register, picochip_function_arg,
3393         picochip_output_label, picochip_output_internal_label,
3394         picochip_asm_output_opcode, picochip_output_cbranch,
3395         picochip_output_compare, picochip_output_branch,
3396         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3397         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3398         diagnostics.
3399         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3400         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3401         (rs6000_handle_option): Start diagnostics with lowercase letters.
3402         (def_builtin): Remove trailing '.' from diagnostic.
3403         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3404         letter.
3405         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3406         diagnostic.
3407         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3408         lowercase letter.
3409         * config/s390/s390.c (s390_option_override) Start diagnostics with
3410         lowercase letters.  Use %' in diagnostic.
3411         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3412         lowercase letters.
3413         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3414         diagnostic.
3415         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3416         diagnostic.
3417         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3418         diagnostic.
3419         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3420         * config/spu/spu.c (spu_option_override): Start diagnostics with
3421         lowercase letters.  Use %qs for quoting in diagnostics.
3422         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3423         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3424         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3425         from diagnostic.
3426         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3427         diagnostics.
3428         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3429         letter and use "cannot" spelling.
3430         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3431         lowercase letter and format as a single sentence without '.'.
3432         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3433         Use %' in diagnostics.
3434         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3435         Use %' in diagnostics.
3436         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3437         Use %' in diagnostics.
3438         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3439         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3440         with lowercase letters and remove tailing '.' and '\n'.
3441         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3442         lowercase letter and remove trailing '.'.
3443         (input_cgraph): Start diagnostics with lowercase letters and
3444         remove trailing '\n'.
3445         * opts.c (finish_options, common_handle_option): Start diagnostics
3446         with lowercase letters and remove trailing '.'.  Fix typo in
3447         diagnostic.
3448         * passes.c (position_pass): Start diagnostic with lowercase letter.
3449         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3450         register_callback, try_init_one_plugin): Start diagnostics with
3451         lowercase letters.
3452         * reload1.c (spill_failure): Use %' in diagnostic.
3453         (gen_reload): Start diagnostic with a lowercase letter.
3454         * stor-layout.c (place_field): Start diagnostic with a lowercase
3455         letter.
3456         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3457         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3458         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3459         Start diagnostics with lowercase letters, remove trailing '.' and
3460         use %' in diagnostics.
3461         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3462         (verify_ssa): Don't split diagnostic across two error calls.
3463         Spell out "number" and use %' in diagnostic.
3464         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3465         lowercase letters.
3466
3467 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3468
3469         PR middle-end/46419
3470         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3471         (_mm_cvtpu16_ps): Ditto.
3472
3473 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3474
3475         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3476         warn_larger_than, larger_than_size, warn_frame_larger_than,
3477         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3478         default_visibility, flag_tls_default): New Variable declarations.
3479         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3480         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3481         (v): Declare as Common and document here.
3482         * flags.h (default_visibility, flag_generate_lto,
3483         warn_larger_than, larger_than_size, warn_frame_larger_than,
3484         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3485         flag_shlib, flag_excess_precision_cmdline): Remove.
3486         (set_Wstrict_aliasing): Update prototype.
3487         * gcc.c (verbose_flag): Remove.
3488         (driver_handle_option): Add diagnostic_context parameter.  Don't
3489         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3490         incrementing it.
3491         * opts-common.c (handle_option): Pass dc to handler.
3492         * opts.c (warn_larger_than, larger_than_size,
3493         warn_frame_larger_than, frame_larger_than_size,
3494         default_visibility): Remove.
3495         (common_handle_option): Add diagnostic_context parameter.
3496         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3497         gcc_options parameters.
3498         (lang_handle_option, target_handle_option, read_cmdline_options,
3499         decode_options): Add diagnostic_context parameters.
3500         (finish_options): Access option state through opts pointer where
3501         possible.
3502         (common_handle_option): Access option state through opts pointer
3503         where possible.  Do not set local static variable verbose.  Do not
3504         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3505         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3506         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3507         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3508         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3509         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3510         (set_Wstrict_aliasing): Add gcc_options parameter.
3511         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3512         parameter to handler.
3513         (decode_options): Add diagnostic_context parameter.
3514         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3515         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3516         aux_info_file_name, flag_shlib, flag_tls_default,
3517         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3518         (toplev_main): Pass global_dc to decode_options.
3519         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3520         aux_info_file_name, asm_file_name): Remove.
3521         * tree.h (flag_tls_default): Remove.
3522
3523 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3524
3525         PR target/45986
3526         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3527         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3528
3529 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3530
3531         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3532         (x86_64-*-*): Likewise.
3533         * config/i386/cpuid.h: Define TBM bit.
3534         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3535         and set has_tbm.
3536         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3537         isa_flag for TBM.
3538         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3539         (OPTION_MASK_ISA_TBM_UNSET): New.
3540         (ix86_handle_option): Handle -mtbm.
3541         (isa_opts): Add -mtbm.
3542         (enum pta_flags): Add PTA_TBM.
3543         (ix86_option_override_internal): Add TBM support.
3544         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3545         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3546         (IX86_BUILTIN_BEXTRI64): Likewise.
3547         (bdesc_args): Add TBM intrinsics.
3548         (ix86_expand_builtin): Add TBM specific case.
3549         * config/i386/i386.h (TARGET_TBM): New for TBM.
3550         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3551         (tbm_bextri_<mode>): Likewise.
3552         (*tbm_blcfill_<mode>): Likewise.
3553         (*tbm_blci_<mode>): Likewise.
3554         (*tbm_blcic_<mode>): Likewise.
3555         (*tbm_blcmsk_<mode>): Likewise.
3556         (*tbm_blcs_<mode>): Likewise.
3557         (*tbm_blsfill_<mode>): Likewise.
3558         (*tbm_blsic_<mode>): Likewise.
3559         (*tbm_t1mskc_<mode>): Likewise.
3560         (*tbm_tzmsk_<mode>): Likewise.
3561         * config/i386/i386.opt: Add -mtbm.
3562         * config/i386/tbmintrin.h (__bextri_u32): New.
3563         (__blcfill_u32): Likewise.
3564         (__blci_u32): Likewise.
3565         (__blcic_u32): Likewise.
3566         (__blcmsk_u32): Likewise.
3567         (__blcs_u32): Likewise.
3568         (__blsfill_u32): Likewise.
3569         (__blsic_u32): Likewise.
3570         (__t1mskc_u32): Likewise.
3571         (__tzmsk_u32): Likewise.
3572         (__bextri_u64): Likewise.
3573         (__blcfill_u64): Likewise.
3574         (__blci_u64): Likewise.
3575         (__blcic_u64): Likewise.
3576         (__blcmsk_u64): Likewise.
3577         (__blcs_u64): Likewise.
3578         (__blsfill_u64): Likewise.
3579         (__blsic_u64): Likewise.
3580         (__t1mskc_u64): Likewise.
3581         (__tzmsk_u64): Likewise.
3582         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3583         * doc/invoke.texi: Document -mtbm.
3584         * doc/extend.texi: Document TBM built-in functions.
3585
3586 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3587
3588         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3589         (x86_64-*-*): Likewise.
3590         * config/i386/cpuid.h: Define BMI bit.
3591         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3592         and set has_bmi.
3593         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3594         isa_flag for BMI.
3595         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3596         (OPTION_MASK_ISA_BMI_UNSET): New.
3597         (ix86_handle_option): Handle -mbmi.
3598         (isa_opts): Add -mbmi.
3599         (enum pta_flags): Add PTA_BMI.
3600         (ix86_option_override_internal): Add BMI support.
3601         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3602         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3603         (IX86_BUILTIN_BEXTR64): Likewise.
3604         (IX86_BUILTIN_CTZS): Likewise.
3605         (bdesc_args): Add BMI intrinsics.
3606         (ix86_expand_args_builtin): Add BMI specific cases.
3607         * config/i386/i386.h (TARGET_BMI): New for BMI.
3608         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3609         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3610         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3611         (UNSPEC_TZCNT): Likewise.
3612         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3613         (bmi_andn_<mode>): New for BMI.
3614         (bmi_bextr_<mode>): Likewise.
3615         (bmi_blsi_<mode>): Likewise.
3616         (bmi_blsmsk_<mode>): Likewise.
3617         (bmi_blsr_<mode>): Likewise.
3618         * config/i386/i386.opt: Add -mbmi.
3619         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3620         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3621         (__tzcnt_u16): Likewise.
3622         (__andn_u32): Likewise.
3623         (__bextr_u32): Likewise.
3624         (__blsi_u32): Likewise.
3625         (__blsmsk_u32): Likewise.
3626         (__blsr_u32): Likewise.
3627         (__lzcnt_u32): Likewise.
3628         (__tzcnt_u32): Likewise.
3629         (__andn_u64): Likewise.
3630         (__bextr_u64): Likewise.
3631         (__blsi_u64): Likewise.
3632         (__blsmsk_u64): Likewise.
3633         (__blsr_u64): Likewise.
3634         (__lzcnt_u64): Likewise.
3635         (__tzcnt_u64): Likewise.
3636         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3637         * doc/extend.texi: Document BMI built-in functions.
3638
3639 2010-11-10  Jan Hubicka  <jh@suse.cz>
3640
3641         PR tree-optimize/46228
3642         * doc/invoke.texi (comdat-sharing-probability): Document.
3643         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3644         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3645
3646 2010-11-10  Jan Hubicka  <jh@suse.cz>
3647
3648         PR tree-optimize/46228
3649         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3650
3651 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3652
3653         PR tree-optimization/46414
3654         * tree-inline.c (estimate_move_cost): Check preferred vector
3655         mode for vector type.
3656
3657 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3658
3659         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3660
3661 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3662
3663         PR tree-optimization/45971
3664         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3665         for phi nodes analyzable by scev.
3666
3667 2010-11-10  Richard Guenther  <rguenther@suse.de>
3668
3669         PR tree-optimization/44964
3670         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3671
3672 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3673
3674         PR tree-optimization/46351
3675         PR tree-optimization/46377
3676         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3677         aggregate bit-fields.
3678
3679 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3680
3681         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3682         * doc/tm.texi: Regenerate.
3683         * opts-common.c (tm.h): Don't include.
3684         (target_option_translations): Remove.
3685         (decode_cmdline_options_to_array): Don't handle translating options.
3686         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3687         * config/darwin-driver.c: Don't condition includes on
3688         CROSS_DIRECTORY_STRUCTURE.
3689         (darwin_default_min_version): Make static.
3690         (darwin_driver_init): New.  Call darwin_default_min_version if not
3691         CROSS_DIRECTORY_STRUCTURE.
3692         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3693         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3694         (ASM_SPEC): Add %{static}.
3695         (darwin_default_min_version): Don't declare.
3696         (darwin_driver_init): Declare.
3697         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3698         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3699         * config/darwin.opt (all_load, allowable_client,
3700         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3701         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3702         exported_symbols_list, filelist, findirect-virtual-calls,
3703         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3704         framework, fterminated-vtables, gfull, gused, image_base, init,
3705         install_name, multi_module, multiply_defined,
3706         multiply_defined_unused, no_dead_strip_inits_and_terms,
3707         seg_addr_table, seg_addr_table_filename, segaddr,
3708         segs_read_only_addr, segs_read_write_addr, single_module,
3709         umbrella, unexported_symbols_list, weak_reference_mismatches,
3710         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3711         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3712         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3713         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3714         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3715         (ASM_SPEC): Add %{static}.
3716         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3717         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3718         (DRIVER_SELF_SPECS): Handle options formerly in
3719         TARGET_OPTION_TRANSLATE_TABLE.
3720         * config/mep/mep.opt (mfar): New.
3721         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3722         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3723         TARGET_OPTION_TRANSLATE_TABLE.
3724         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3725         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3726         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3727         ffix-and-continue, findirect-data): New.
3728         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3729         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3730         (mnofpu): Define mask and use Report here.
3731
3732 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3733
3734         * config/s390/s390.c (s390_emit_prologue): Report the stack
3735         size if -fstack-usage is used.
3736
3737 2010-11-10  Richard Guenther  <rguenther@suse.de>
3738
3739         PR tree-optimization/46398
3740         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3741
3742 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3743
3744         PR target/44760
3745         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3746         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3747         GP_REG_OR_PSEUDO_STRICT_P.
3748         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3749         unexpected alternative.
3750         (*movsf_internal): Likewise.
3751         (indirect_jump): Replace call to non-existant function with call to
3752         internal_error.
3753         (tablejump): Likewise.
3754         * config/iq2000/iq2000.c: Include df.h .
3755         (iq2000_function_arg_advance): Use CONST_CAST2.
3756         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3757         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3758         a non-zero function address.
3759         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3760         unexpected value of FROM.
3761         (symbolic_expression_p): Delete.
3762         (iq2000_function_value): Constify func.
3763         (expand_one_builtin): Use expand_normal.
3764         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3765
3766         PR rtl-optimization/44764
3767         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3768
3769         PR target/46407
3770         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3771         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3772         with ATTRIBUTE_UNUSED.
3773         (valid_psw_flag): Constify parameter which.
3774         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3775
3776         PR target/46415
3777         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3778         (mmix_dbx_register_number): Likewise.
3779         * config/mmix/mmix.c: Include df.h .
3780         (mmix_local_alignment): Change argument basic_align and return type
3781         to unsigned.
3782         (mmix_dbx_register_number): Change argument and return type to
3783         unsigned.
3784         (mmix_expand_prologue): Use add_reg_note.
3785
3786         PR target/46417
3787         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3788         (spu_split_store): Use aform.
3789         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3790
3791 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3792
3793         PR/46268
3794         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3795         allocators taking size in bytes, compare with length option.  Add
3796         size calculation example.
3797         (Invoking the garbage collector): Ensure that sentences are
3798         followed by two spaces.  Describe that pointer fields must be
3799         initialized at ggc_collect call.
3800         (Troubleshooting): New section.
3801
3802 2010-11-09  Jan Hubicka  <jh@suse.cz>
3803
3804         PR tree-optimization/40436
3805         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3806         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3807         normal instructions; be sure bultin is not implemented in this file;
3808         compute non-zero return cost.
3809         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3810         * tree-inline.h (eni_weights_d): Add return cost.
3811
3812 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3813
3814         * c-parser.c (c_parser_struct_declaration): Handle declaration
3815         specifiers followed by CPP_CLOSE_BRACE.
3816
3817 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3818
3819         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3820         split occurs before reload, and we allocate memory at the time of
3821         the split, not during expansion.  Add attributes.
3822         (floatsi<mode>2_lfiwax_mem): Ditto.
3823         (floatunssi<mode>2_lfiwzx): Ditto.
3824         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3825         (floatsidf2): Ditto.
3826         (floatunssisf2): Ditto.
3827         (floatunssidf2): Ditto.
3828         (fix_trunc<mode>si2): Ditto.
3829         (fix_trunc<mode>si2_stfiwx): Ditto.
3830         (fix_trunc<mode>si2_internal): Ditto.
3831         (fix_trunc<mode>si2): Ditto.
3832         (fix_trunc<mode>di2): Ditto.
3833         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3834         (floatsisf2): Ditto.
3835         (floatdidf2_mem): Ditto.
3836         (floatunsdidf2_mem): Ditto.
3837         (floatunsdidf2): Ditto.
3838         (floatdisf2_internal1): Ditto.
3839         (floatdisf2_mem): Ditto.
3840         (floatunsdisf2_mem): Ditto.
3841         (floatsi<mode>2_lfiwax_mem2): Delete.
3842         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3843         (fix_trunc<mode>si2_mem): Ditto.
3844         (fixuns_trunc<mode>si2_mem): Ditto.
3845         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
3846         type operations to reduce copying the values to multiple memory slots.
3847         (roundu32<mode>2_fprs): Ditto.
3848
3849         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
3850         PRE_INC, PRE_DEC, PRE_MODIFY.
3851         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
3852
3853         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
3854         Delete prototype.
3855
3856 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3857
3858         PR target/43808
3859         * cfgexpand.c (partition_stack_vars): Call
3860         update_alias_info_with_stack_vars unconditionally.
3861         (update_alias_info_with_stack_vars): Allow unused
3862         unreferenced vars when not optimizing.
3863
3864 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
3865
3866         PR tree-optimization/46036
3867         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
3868         add_to_dst_predicate_list.
3869
3870 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3871
3872         PR debug/46171
3873         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
3874         earlier.
3875         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
3876         argument, call dead_debug_reset when adding REG_UNUSED note.
3877         (dead_debug_reset): New function.
3878         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
3879         df_create_unused_note callers.
3880
3881 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
3882
3883         * config/fr30/fr30.c: Include "df.h".
3884
3885 2010-11-09  Richard Guenther  <rguenther@suse.de>
3886
3887         PR tree-optimization/46355
3888         * tree-loop-distribution.c (tree_loop_distribution): Do not
3889         distribute loops without a single exit.
3890
3891 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3892
3893         PR rtl-optimization/46237
3894         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
3895         saved hard regs if they might get partially clobbered.
3896
3897 2010-11-09  Paul Koning  <ni1d@arrl.net>
3898
3899         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
3900
3901 2010-11-09  Richard Guenther  <rguenther@suse.de>
3902
3903         PR tree-optimization/46177
3904         * tree-loop-distribution.c (prop_phis): Remove.
3905         (generate_builtin): Re-use the old loop exit edge to avoid
3906         needing to update PHI nodes.
3907
3908 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
3909
3910         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
3911         type of args_size to unsigned HOST_WIDE_INT.
3912
3913         PR target/44755
3914         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
3915         * config/t-pnt16-warn: New file.
3916         * config/picochip/picochip.c (picochip_emit_stack_allocate):
3917         Use add_reg_note.
3918         (picochip_emit_save_register): Likewise.
3919         (picochip_emit_restore_register): Remove variable insn.
3920         (picochip_legitimize_address): Don't use C++ style comments.
3921         (picochip_legitimize_reload_address): Likewise.
3922         (reorder_var_tracking_notes): Remove variable vliw_start.
3923         (picochip_reorg): Cast first arguemnt to emit_note_after to
3924         enum insn_note.
3925         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
3926         (picochip_expand_builtin_3op): Likewise.
3927         (picochip_expand_builtin_2opvoid): Likewise.
3928         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
3929         (picochip_expand_array_testport): Likewise.
3930         (picochip_init_builtins): Remove unused variables.
3931         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
3932         to unsigned long, and output it as such.
3933         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
3934         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
3935         (schedType): Cast result of picochip_schedule_type to
3936         enum attr_schedType.
3937
3938         PR target/44759
3939         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
3940         conditional to type of S.
3941         (mn10300_function_arg): Remove unused variable align.
3942         (mn10300_arg_partial_bytes): Likewise.
3943         * config/mn10300/mn10300.md (attribute cpu): Cast value to
3944         enum attr_cpu.
3945
3946 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
3947
3948         PR bootstrap/46392
3949         * gengtype-parse.c (type): Call get_input_file_name to get file name.
3950
3951 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3952
3953         * tree.h (contains_placeholder_p): Fix comment.
3954         (type_contains_placeholder_p): Adjust comment.
3955         * tree.c (contains_placeholder_p): Fix comment.
3956         (type_contains_placeholder_1): Do not recurse on pointed-to types and
3957         adjust comment.
3958         (type_contains_placeholder_p): Add comment.
3959
3960 2010-11-09  Paul Koning  <ni1d@arrl.net>
3961
3962         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
3963         output of byte values.
3964
3965 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3966
3967         PR middle-end/46360
3968         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
3969         not in SSA mode.
3970
3971 2010-11-09  Richard Guenther  <rguenther@suse.de>
3972
3973         PR middle-end/46221
3974         * varasm.c (compute_visible_aliases): New function.
3975         (remove_unreachable_alias_pairs): Aliases make a target available
3976         even though we reclaimed the cgraph node.
3977         (finish_aliases_1): Likewise.
3978         * Makefile.in (varasm.o): Add pointer-set.h dependency.
3979
3980 2010-11-09  Nick Clifton  <nickc@redhat.com>
3981
3982         * config/mn10300/mn10300-modes.def: New file.
3983
3984 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
3985             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3986
3987         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
3988         (plugin_files, get_file_basename, get_file_realbasename)
3989         (get_file_langdir, error_at_line, gt_files, this_file)
3990         (system_h_file, read_input_list, create_field_all)
3991         (get_file_srcdir_relative_path, get_file_basename)
3992         (get_file_langdir, get_file_gtfilename)
3993         (get_output_file_with_visibility, get_output_file_name)
3994         (struct flist, put_mangled_filename, walk_type)
3995         (put_mangled_filename, finish_root_table, write_roots): Use
3996         input_file-s.
3997         (lang_dir_names, num_lang_dirs): Remove static.
3998         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
3999         (main): Use input_file-s.
4000
4001         * gengtype.h: (struct input_file_st, input_file): New type.
4002         (struct fileloc): Use it.
4003         (gt_files, num_gt_files, this_file, system_h_file)
4004         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4005         (get_input_file_name): New function.
4006         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4007         use input_file.
4008         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4009         (get_output_file_name): Ditto.
4010
4011         * gengtype-lex.l (yybegin): Use input_file.
4012
4013         * gengtype-parse.c (parse_error): Use input_file.
4014
4015 2010-11-08  Xinliang David Li  <davidxl@google.com>
4016
4017         PR tree-optimization/46316
4018         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4019         * double-int.h (double_int_mul_with_sign): New function.
4020         * double-int.c (double_int_mul_with_sign): New function.
4021
4022 2010-11-08  Paul Koning  <ni1d@arrl.net>
4023
4024         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4025
4026 2010-11-08  Paul Koning  <ni1d@arrl.net>
4027
4028         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4029
4030 2010-11-08  Paul Koning  <ni1d@arrl.net>
4031
4032         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4033         to 8 bits.
4034
4035 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4036
4037         PR target/46378
4038         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4039         turn on ISA 2.04 rounding instructions for power5.
4040
4041         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4042         not ISA 2.02.
4043
4044         PR target/45585
4045         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4046         in FPR registers.
4047         (movdi_low_st): Ditto.
4048
4049 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4050             Richard Henderson  <rth@redhat.com>
4051
4052         PR target/44758
4053         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4054         (attribute acc_group): Cast value to enum attr_acc_group.
4055         (*movdi_nodouble+6): Use gen_int_mode.
4056         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4057         if RTX_CODE is defined or not.
4058         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4059         struct frv_io.
4060         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4061         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4062         (frv_expand_block_clear): Likewise.
4063         (frv_trampoline_init): Use LCT_NORMAL.
4064         (struct frv_packet_group): New struct, broken out of type of
4065         frv_packet.
4066         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4067         use cast in loop counter increment.
4068         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4069         assigning to io->type.
4070         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4071         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4072         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4073         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4074         (frv_read_argument): Use expand_normal.
4075
4076         PR target/44757
4077         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4078         lm32_legitimate_constant_p.
4079         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4080         * config/lm32/lm32.c (gen_int_relational): Make new block for
4081         LE / LT / LEU / LTU case.  Declare variables at start of block.
4082         (lm32_block_move_inline): Use XALLOCAVEC.
4083
4084 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4085
4086         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4087
4088 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4089
4090         * gengtype (get_output_file_for_structure): Ensure type is union
4091         or struct.
4092         (write_splay_tree_allocator_def): Use
4093         get_output_file_with_visibility.
4094
4095 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4096
4097         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4098         to defined values in case of an error.
4099         (s390_option_override): Skip further processing if the -march
4100         parameter wasn't recognized.
4101
4102 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4103
4104         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4105         assert that REG is a hard register number before using it as an index.
4106
4107         PR bootstrap/46358
4108         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4109         Avoid warnings when HOST_WIDE_INT is 32 bit.
4110
4111 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4112
4113         PR target/46208
4114         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4115         (sparc_promote_prototypes): Likewise.
4116         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4117         (sparc_return_in_memory): Remove superfluous parentheses.
4118         (sparc_struct_value_rtx): Fix long lines.
4119         (sparc_function_value_1): Promote in 32-bit mode as well.
4120
4121 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4122
4123         PR rtl-optimization/45352
4124         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4125         the variable_issue hook is not implemented.
4126         (fill_insns): Remove dead variable stall_iterations.
4127         (init_seqno_1): Force EBB start for resetting sched cycles on any
4128         successor blocks of the rescheduled region.
4129         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4130         (reset_sched_cycles_in_current_ebb): Add debug printing.
4131         New variable issued_insns.  Advance state when we have issued
4132         issue_rate insns.
4133
4134 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4135
4136         * gengtype (main): Get here's position using POS_HERE macro for
4137         do*typedef calls.
4138
4139 2010-11-07  Ian Lance Taylor  <iant@google.com>
4140
4141         PR target/46089
4142         * config/i386/i386.c (split_stack_fn_large): New static variable.
4143         (ix86_expand_split_stack_prologue): Handle large model.
4144
4145 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4146
4147         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4148         all possible addressing modes.
4149
4150 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4151
4152         PR tree-optimization/46346
4153         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4154
4155 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4156
4157         * config/mips/mips.c: Revert previous patch.
4158         * config/mips/mips.md: Likewise.
4159
4160 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4161
4162         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4163         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4164         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4165         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4166         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4167         to use FMA.
4168         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4169         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4170         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4171         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4172
4173 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4174
4175         PR c/43384
4176         * c-decl.c (lookup_label): Labels can only be referenced in a
4177         function's scope.
4178         (store_parm_decls_oldstyle): Skip erroneous parameters.
4179
4180 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4181
4182         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4183         LIBCALL_VALUE): Remove macros.
4184         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4185         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4186         (fr30_function_value_regno_p, fr30_function_value,
4187         fr30_libcall_value): New functions.
4188
4189 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4190
4191         PR middle-end/46314
4192         * target.def (generate_internal_label): New asm_out hook.
4193         * output.h (default_generate_internal_label): Declare.
4194         * varasm.c (default_generate_internal_label): Define.
4195
4196 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4197
4198         PR target/44981
4199         * doc/extend.tex (format): Document NSString extension.
4200         (format_arg): Likewise.
4201         (Darwin Format Checks): New section.
4202         * doc/tm.texi: Document string object hooks (generated).
4203         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
4204         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4205         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4206         * target.def (objc_construct_string_object): Rename, amend
4207         documentation.
4208         (string_object_ref_type_p): New hook.
4209         (check_string_object_format_arg): New hook.
4210         * c-parser.c (c_parser_attributes): Allow objective-c class names as
4211         attribute identifiers.
4212         * config/darwin-c.c (darwin_cfstring_ref_p): New.
4213         (darwin_check_cfstring_format_arg): New.
4214         (darwin_additional_format_types): New.
4215         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
4216         (darwin_check_cfstring_format_arg): New.
4217         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
4218         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4219         (TARGET_N_FORMAT_TYPES): New.
4220         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4221
4222 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4223             Pascal Obry  <obry@adacore.com>
4224
4225         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
4226         in 64-bit mode and 17 otherwise.
4227
4228 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4229
4230         PR debug/45939
4231         * var-tracking.c (emit_note_insn_var_location): Make sure that
4232         call related var location notes come before the normal ones.
4233
4234 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4235
4236         PR target/46326
4237         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
4238         in the last change.
4239
4240 2010-11-05  Ian Lance Taylor  <iant@google.com>
4241
4242         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
4243
4244 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4245
4246         PR c/44772
4247         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
4248         pointer_set_contains if DECL_NAME is NULL.
4249
4250 2010-11-05  Ian Lance Taylor  <iant@google.com>
4251
4252         PR target/46084
4253         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
4254         request enough additional space for alignment, and force alignment.
4255
4256 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
4257
4258         * config/i386/i386.c (legitimate_pic_address_disp_p):
4259         Handle UNSPEC_PCREL.
4260         (ix86_legitimate_address_p): Likewise.
4261         (legitimize_pic_address): Likewise.
4262         (output_pic_addr_const): Likewise.
4263         (ix86_delegitimize_address): Likewise.
4264         (ix86_find_base_term): Likewise.
4265         (memory_address_length): Likewise.
4266         (x86_output_mi_thunk): Handle special case x64
4267         for non local binding.
4268         * config/i386/i386.md (UNSPEC_PCREL): New.
4269         * config/i386/winnt.c (i386_pe_binds_local_p):
4270         Allow weak symbol for x64 windows with non-local binding.
4271
4272 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4273
4274         PR target/45670
4275         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
4276         instead of EXPAND_NORMAL for base expansion.
4277
4278 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
4279
4280         * config.gcc: Support --with-fpmath=avx for x86.
4281         * config/i386/avxmath.h: New.
4282         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
4283
4284 2010-11-05  Ian Lance Taylor  <iant@google.com>
4285
4286         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
4287         * gengtype.c (walk_type): Don't recognize descbits option.
4288
4289 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
4290
4291         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
4292         WORD_SWITCH_TAKES_ARG): Remove.
4293         * doc/options.texi (Args): Document.
4294         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
4295         * doc/tm.texi: Regenerate.
4296         * opt-functions.awk (switch_flags): Handle Args.
4297         * opts-common.c: Update comment on tm.h include.
4298         (decode_cmdline_option): Handle options with multiple arguments.
4299         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
4300         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
4301         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4302         CL_COMMON): Update values.
4303         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
4304         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
4305         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
4306         sectobjectsymbols, sectorder, segcreate, segprot): New.
4307
4308 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4309             Uros Bizjak  <ubizjak@gmail.com>
4310
4311         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
4312         256bit AVX register is used.
4313         (ix86_expand_vector_move_misalign): Likewise.
4314         (ix86_expand_vector_move): Replace use_avx256_p with
4315         VALID_AVX256_REG_MODE.
4316
4317 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
4318
4319          PR target/44750
4320         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
4321         change.  Set $@-warn.o to -Wno-error.
4322
4323         PR bootstrap/44756
4324         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
4325         comparing it to a signed value.
4326
4327         PR middle-end/44766
4328         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
4329         PR bootstrap/44770
4330         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
4331         to i.
4332
4333         PR target/44754
4334         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
4335         (m32c_function_arg).  Add comma between arguments two and three.
4336         (m32c_promote_prototypes): Remove declaration.
4337         (current_function_special_page_vector): Likewise.
4338         (m32c_regno_reg_class): Change return type to enum reg_class.
4339         (m32c_pushm_popm): Use add_reg_note.
4340         (m32c_push_rounding): Change return type to unsigned int.
4341         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
4342         enum reload_type.
4343         (m32c_insert_attributes): Constify variable name.
4344         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
4345         (m32c_prepare_shift): Remove variable lref.
4346         (m32c_expand_movcc): Remove variable cmp.
4347         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
4348         (m32c_compare_redundant): Remove variable op2.
4349         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
4350         (m32c_pragma_memregs): Assign the number to target_memregs.
4351         (m32c_pragma_address): Remove variable var_str.
4352         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
4353         enum reg_class.
4354         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
4355         * config/m32c/bitops.md (andsi3): Add default case to switch.
4356         (iorsi3, xorsi3): Likewise.
4357         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
4358         * config/m32c/jump.md (call, call_value): Likewise.
4359         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
4360         (m32c_regno_reg_class): Likewise.
4361         (current_function_special_page_vector): Declare.
4362
4363 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4364
4365         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
4366
4367         PR tree-optimization/46099
4368         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4369         if it is NULL and uid wasn't found in the hash table.  Just fold the
4370         result if it is NULL otherwise.  Insert other potentially needed
4371         stmts right before current stmt instead of on the entry edge.
4372         (struct elv_data): Add gsi and reset fields.
4373         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4374         failed for debug stmt, set dta->reset and return.
4375         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4376         pass GSI through to the callback, handle resetting of debug stmts.
4377         (eliminate_local_variables): Adjust caller.  Process debug stmts
4378         in second phase.
4379
4380         PR middle-end/43690
4381         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4382         {pre,post}{in,de}crement, fail.
4383
4384         PR debug/46307
4385         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4386         * tree-pretty-print.c (dump_generic_node): Likewise.
4387         (op_code_prio): Likewise.
4388         * cfgexpand.c (expand_debug_expr): Likewise.
4389
4390 2010-11-04  Paul Koning  <ni1d@arrl.net>
4391
4392         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4393         constraints.
4394
4395 2010-11-04  Chao-ying Fu  <fu@mips.com>
4396
4397         * configure.ac: Test assembler support for DSP Rev1 mult.
4398         * configure: Regenerate.
4399         * config.in: Regenerate.
4400         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4401         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4402         (CODE_FOR_mips_multu): New define.
4403         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4404         dspr2_32 to dsp_32.
4405         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4406         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4407         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4408         New define_expand patterns.
4409         * config/mips/constraints.md (ka): Update the constraint to test
4410         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4411         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4412         mips_multu): Delete.
4413         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4414         Change target constraint to "ka".
4415         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4416         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4417         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4418         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4419         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4420         (<u>maddsidi4): Likewise.
4421         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4422         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4423
4424 2010-11-04  Paul Koning  <ni1d@arrl.net>
4425
4426         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4427
4428 2010-11-04  Paul Koning  <ni1d@arrl.net>
4429
4430         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4431
4432 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4433
4434         Fixed using the Objective-C 2.0 dot-syntax with class names.
4435         * c-parser.c (c_parser_next_token_starts_declspecs): In
4436         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4437         (c_parser_next_token_starts_declaration): Same.
4438         (c_parser_postfix_expression): Parse the Objective-C 2.0
4439         dot-syntax with a class name.
4440
4441 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4442
4443         * final.c (compute_alignments): Compute/free loop info all the time.
4444         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4445         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4446         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4447         * config/rs6000/rs6000.c (cfgloop.h): Include.
4448         (can_override_loop_align): New.
4449         (rs6000_option_override_internal): Set it.
4450         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4451         (rs6000_loop_align): New function.
4452         (rs6000_loop_align_max_skip): Likewise.
4453
4454 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4455
4456         PR driver/45703
4457         * collect2.c (main): Print --help output to stdout.  Do not
4458         exit right away, so ld --help is appended.  Add empty lines
4459         to separate output suitably.
4460
4461 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4462
4463         PR tree-optimization/46233
4464         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4465         after calling analyze_function, not before.
4466
4467         PR target/46234
4468         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4469         instead of build_va_arg_indirect_ref.
4470         * config/spu/spu.c (spu_va_start): Likewise.
4471         * config/s390/s390.c (s390_va_start): Likewise.
4472
4473 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4474
4475         PR middle-end/46292
4476         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4477         if the innermode is not vector mode, determine the mode of a subreg
4478         by using mode_for_size of inner_size.
4479
4480 2010-11-04  Richard Guenther  <rguenther@suse.de>
4481
4482         PR rtl-optimization/46183
4483         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4484         (execute_rtl_pre): Likewise.
4485         (execute_rtl_hoist): Likewise.
4486
4487 2010-11-04  Richard Guenther  <rguenther@suse.de>
4488
4489         PR tree-optimization/46068
4490         * ipa-split.c (consider_split): Remove gcc_unreachable.
4491
4492 2010-11-04  Richard Guenther  <rguenther@suse.de>
4493
4494         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4495
4496 2010-11-04  Richard Guenther  <rguenther@suse.de>
4497
4498         PR tree-optimization/45991
4499         * gimplify.c (force_gimple_operand_1): Use the provded test
4500         function in the initial test.
4501
4502 2010-11-04  Jeff Law  <law@redhat.com>
4503
4504         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4505         of readonly memory equivalances for const/pure calls.
4506
4507 2010-11-04  Richard Guenther  <rguenther@suse.de>
4508
4509         PR tree-optimization/45733
4510         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4511         permute builtins function return type.
4512
4513 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4514
4515         PR middle-end/44765
4516         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4517         as an index, check it is not INVALID_REGNUM.
4518
4519         PR bootstrap/44756
4520         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4521         unsignedp.
4522         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4523
4524         PR bootstrap/44756
4525         * function.c (thread_prologue_and_epilogue_insns): Add
4526         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4527
4528         PR bootstrap/44756
4529         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4530
4531         PR target/44750
4532         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4533         (pdp11_preferred_reload_class): Rename class to rclass.
4534         (pdp11_preferred_output_reload_class): Likewise.
4535         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4536         ALL_COMPILERFLAGS .
4537         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4538
4539         PR bootstrap/44756
4540         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4541         iteration variables to enum machine_mode.
4542
4543         PR target/44751
4544         * config/h8300/h8300.c: Include df.h.
4545         (push, pop): Use add_reg_note.
4546         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4547         (compute_a_shift_cc): Likewise.
4548         (expand_a_shift): Argument code has type enum rtx_code.
4549         (struct shift_insn): Member cc_valid has type enum attr_cc.
4550         (struct shift_info) <cc_inline, cc_special>: Likewise.
4551         enum attr_cc.
4552         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4553         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4554
4555 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4556
4557         PR tree-optimization/46213
4558         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4559         MINUS_EXPR only if the first operand is reduction operand.
4560
4561 2010-11-04  Richard Guenther  <rguenther@suse.de>
4562             Richard Henderson  <rth@redhat.com>
4563
4564         * tree.def (FMA_EXPR): New tree code.
4565         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4566         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4567         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4568         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4569         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4570         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4571         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4572         dead stmt removal.  Move TODO flags ...
4573         (pass_optimize_widening_mul): ... here.
4574         * flag-types.h (enum fp_contract_mode): New enum.
4575         * common.opt (flag_fp_contract_mode): New variable.
4576         (-ffp-contract): New option.
4577         * opts.c (common_handle_option): Handle it.
4578         * doc/invoke.texi (-ffp-contract): Document.
4579         * tree.h (fold_fma): Declare.
4580         * builtins.c (fold_fma): New function.
4581         (fold_builtin_fma): Likewise.
4582         (fold_builtin_3): Call it for fma.
4583         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4584         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4585         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4586         New expanders.
4587         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4588         named patterns.
4589         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4590         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4591         (fms_optab, fnma_optab, fnms_optab): New defines.
4592         * gimplify.c (gimplify_expr): Handle binary truth expressions
4593         explicitly.  Handle FMA_EXPR.
4594         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4595         operations.
4596
4597 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4598             Richard Guenther  <rguenther@suse.de>
4599
4600         * passes.c (init_optimization_passes): Move veclower after SSA.
4601         * tree-vect-generic.c (uniform_vector_p): New function.
4602         (expand_vector_operations_1): Handle conversion.
4603         (pass_lower_vector): Update SSA form.
4604
4605 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4606
4607         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4608         plugin capabilities.
4609         * configure: Regenerate.
4610
4611 2010-11-03  Xinliang David Li  <davidxl@google.com>
4612
4613         PR target/46200
4614         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4615         Adjust cbase if the use stmt is after iv update.
4616
4617 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4618
4619         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4620
4621 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4622
4623         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4624         comment.  Pass true to the last argument of output_stack_adjust.
4625
4626 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4627
4628         PR target/46295
4629         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4630         if 256bit AVX register is used.
4631
4632 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4633
4634         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4635         xsmindp/xsmaxdp on VSX for single precision min/max.
4636         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4637         (vsx_sminsf3): Ditto.
4638
4639 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4640
4641         * combine.c (try_combine): Fix formatting issues, improve comments and
4642         fix a pasto.
4643
4644 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4645
4646         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4647         of the result before building binary expressions.
4648
4649 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4650
4651         PR rtl-optimization/45865
4652         * Makefile.in (df-problems.o): Revert revision 164552.
4653         * basic-block.h (enum bb_flags): Likewise.
4654         * cfgcleanup.c (block_was_dirty): Likewise.
4655         (try_forward_edges): Likewise.
4656         (try_crossjump_bb): Likewise.
4657         (try_head_merge_bb): Likewise.
4658         (try_optimize_cfg): Likewise.
4659         (cleanup_cfg): Likewise.
4660         * df-core.c (df_set_bb_dirty): Likewise.
4661         * df-problems.c: Likewise.
4662         (df_simulate_find_uses): Likewise.
4663         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4664         (find_memory, find_memory_store): Likewise.
4665         (can_move_insns_across): Likewise.
4666         * df.h (can_move_insns_across): Likewise.
4667         * ifcvt.c (find_memory): Likewise.
4668         (dead_or_predicable): Likewise.
4669
4670 2010-11-03  Richard Guenther  <rguenther@suse.de>
4671
4672         PR middle-end/46288
4673         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4674         the result is unused.
4675
4676 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4677
4678         PR tree-optimization/46009
4679         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4680         cond_if_else_store_replacement if bb1 and bb2 have the same
4681         single successor.
4682         (cond_store_replacement): Use gimple_assign_single_p, don't
4683         check if rhs is SSA_NAME or invariant.  Call release_defs for
4684         assign.
4685         (cond_if_else_store_replacement): New function.
4686
4687 2010-11-03  Richard Guenther  <rguenther@suse.de>
4688
4689         * opts.c (finish_options): Properly check for all WHOPR
4690         flags before complaining about -flto-partition.
4691
4692 2010-11-04  Alan Modra  <amodra@gmail.com>
4693
4694         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4695         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4696         TARGET_SECURE_PLT.
4697         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4698         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4699         on input, "r" on output.
4700
4701 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4702
4703         Implemented -fobjc-std=objc1 flag.
4704         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4705         option.
4706         * doc/standards.texi (Standards): Updated the section on
4707         Objective-C; mention support for Objective-C 2.0 features and the
4708         new -fstd-objc=objc1 flag to disable them.
4709
4710 2010-11-03  Richard Guenther  <rguenther@suse.de>
4711
4712         PR middle-end/46241
4713         * dwarf2out.c (scope_die_for): Properly detect global scope.
4714
4715 2010-11-03  Richard Guenther  <rguenther@suse.de>
4716
4717         PR tree-optimization/46190
4718         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4719         Properly compute peel iterations.
4720
4721 2010-11-03  Richard Guenther  <rguenther@suse.de>
4722
4723         PR tree-optimization/46286
4724         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4725         re-allocated vector data.
4726
4727 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4728
4729         PR target/46285
4730         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4731         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4732         is completed.
4733
4734 2010-11-03  Richard Guenther  <rguenther@suse.de>
4735
4736         PR tree-optimization/46217
4737         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4738         flag matches.
4739         (execute_update_addresses_taken): Likewise.
4740
4741 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4742
4743         PR bootstrap/44335
4744         * targhooks.c (targhook_words_big_endian): New function.
4745         (targhook_float_words_big_endian): Likewise.
4746         * targhooks.h (targhook_words_big_endian): Declare.
4747         (targhook_float_words_big_endian): Likewise.
4748         * target.def (words_big_endian, float_words_big_endian): New hooks.
4749
4750 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4751
4752         PR tree-optimization/46165
4753         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4754         a normal call into noreturn call.
4755
4756 2010-11-03  Richard Guenther  <rguenther@suse.de>
4757
4758         PR middle-end/46251
4759         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4760         not INDIRECT_REFs.
4761
4762 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4763
4764         PR tree-optimization/46107
4765         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4766         if cfg_hook_duplicate_loop_to_header_edge failed.
4767
4768 2010-11-03  Ian Lance Taylor  <iant@google.com>
4769
4770         PR lto/46273
4771         * config.gcc: Don't set lto_binary_reader.
4772         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4773         (Configuration): Mention --disable-lto.  Remove --with-libelf
4774         paragraph.
4775
4776 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4777
4778         PR debug/46252
4779         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4780         prev_real_insn.
4781         * gcse.c (insert_insn_end_basic_block): Likewise.
4782
4783         PR rtl-optimization/46034
4784         PR rtl-optimization/46212
4785         PR rtl-optimization/46248
4786         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4787         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4788         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4789         argument to subst on i2pat.
4790
4791 2010-11-02  Ian Lance Taylor  <iant@google.com>
4792
4793         * configure.ac: Use AC_SYS_LARGEFILE.
4794         * configure: Rebuild.
4795         * config.in: Rebuild.
4796
4797 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4798
4799         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4800         fold_convert.
4801         * c-typeck.c (build_function_call_vec): Likewise.
4802         * cfgexpand.c (expand_debug_expr): Likewise.
4803         * cgraphunit.c (assemble_thunk): Likewise.
4804         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4805         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4806         (fold_binary_loc, fold_ternary_loc): Likewise.
4807         * gimple-fold.c (get_symbol_constant_value): Likewise.
4808         * gimple-low.c (lower_builtin_setjmp): Likewise.
4809         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4810         * gimplify.c (gimplify_init_constructor): Likewise.
4811         * lambda.h (build_linear_expr): Likewise.
4812         * omp-low.c (omp_reduction_init): Likewise.
4813         * tree-inline.c (remap_ssa_name): Likewise.
4814         * tree-object-size.c (compute_object_sizes): Likewise.
4815         * tree-sra.c (init_subtree_with_zero): Likewise.
4816         (sra_ipa_modify_assign): Likewise.
4817         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4818         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4819         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4820         (undistribute_ops_list): Likewise.
4821         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4822         * tree-vect-stmts.c (vectorizable_call): Likewise.
4823         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4824         (build_zero_cst): Handle more cases directly.  Update comment.
4825
4826 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4827
4828         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4829         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4830
4831         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4832         and call ix86_split_call_vzeroupper instead of
4833         ix86_split_call_pop_vzeroupper.
4834         (*call_pop_1_vzeroupper): Likewise.
4835         (*sibcall_pop_1_vzeroupper): Likewise.
4836         (*call_value_pop_0_vzeroupper): Likewise.
4837         (*call_value_pop_1_vzeroupper): Likewise.
4838         (*sibcall_value_pop_1_vzeroupper): Likewise.
4839
4840 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4841
4842         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4843
4844 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4845
4846         * basic-block.h (insert_insn_end_bb_new): Delete.
4847         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
4848
4849 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
4850             H.J. Lu  <hongjiu.lu@intel.com>
4851
4852         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
4853         (ix86_split_call_pop_vzeroupper): Likewise.
4854
4855         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
4856         (ix86_expand_call): Conditionally decorate calls with
4857         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
4858         (ix86_split_call_vzeroupper): New.
4859         (ix86_split_call_pop_vzeroupper): Likewise.
4860
4861         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
4862         (*call_pop_0_vzeroupper): New insn_and_split pattern.
4863         (*call_pop_1_vzeroupper): Likewise.
4864         (*sibcall_pop_1_vzeroupper): Likewise.
4865         (*call_0_vzeroupper): Likewise.
4866         (*call_1_vzeroupper): Likewise.
4867         (*sibcall_1_vzeroupper): Likewise.
4868         (*call_1_rex64_vzeroupper): Likewise.
4869         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
4870         (*call_1_rex64_large_vzeroupper): Likewise.
4871         (*sibcall_1_rex64_vzeroupper): Likewise.
4872         (*call_value_pop_0_vzeroupper): Likewise.
4873         (*call_value_pop_1_vzeroupper): Likewise.
4874         (*sibcall_value_pop_1_vzeroupper): Likewise.
4875         (*call_value_0_vzeroupper): Likewise.
4876         (*call_value_0_rex64_vzeroupper): Likewise.
4877         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
4878         (*call_value_1_vzeroupper): Likewise.
4879         (*sibcall_value_1_vzeroupper): Likewise.
4880         (*call_value_1_rex64_vzeroupper): Likewise.
4881         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
4882         (*call_value_1_rex64_large_vzeroupper): Likewise.
4883         (*sibcall_value_1_rex64_vzeroupper): Likewise.
4884
4885 2010-11-02  Ian Lance Taylor  <iant@google.com>
4886
4887         PR lto/46273
4888         * config.gcc: Revert last patch: set lto_binary_reader.
4889
4890 2010-11-02  Richard Guenther  <rguenther@suse.de>
4891
4892         PR tree-optimization/46149
4893         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
4894         non-indirect MEM_REF variants.
4895
4896 2010-11-02  Richard Guenther  <rguenther@suse.de>
4897
4898         PR tree-optimization/46216
4899         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4900         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
4901
4902 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4903
4904         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
4905         (*-*-osf*): Likewise.
4906         * configure: Regenerate.
4907
4908 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4909
4910         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
4911         for Intel Core 2 and Core i7.
4912
4913 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
4914
4915         Model decoder of Core 2/i7 for multipass scheduling.
4916
4917         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
4918         New type to hold target-specific data for multipass scheduling.
4919         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4920         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
4921         Core 2/i7.
4922         (core2i7_secondary_decoder_max_insn_size,)
4923         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
4924         New static variables.
4925         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
4926         ([_]ix86_first_cycle_multipass_data): New static variable.
4927         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
4928         Implement targetm.sched hooks.
4929         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
4930         of ...
4931         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
4932         Implement new targetm.sched hooks.
4933         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
4934         targetm.sched hook to install multipass scheduling hooks on demand.
4935
4936         * doc/tm.texi.in: Document new targetm.sched hooks.
4937         * doc/tm.texi: Regenerate.
4938
4939         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4940         (first_cycle_multipass_data_t): New typedef.
4941         (struct choice_entry: target_data): New field.
4942         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
4943         to allow target model restrictions not represented in DFA.
4944         (choose_ready, schedule_block): Update.
4945         (sched_extend_ready_list, sched_finish_ready_list): Call new target
4946         hooks to initialize target-specific data for multipass scheduling.
4947         * sched-int.h (max_issue): Update declaration.
4948         * sel-sched.c (choose_best_insn): Update.
4949         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
4950         (first_cycle_multipass_{init, fini}): Define and document new
4951         targetm.sched hooks.
4952
4953 2010-11-02  Richard Guenther  <rguenther@suse.de>
4954
4955         PR tree-optimization/46184
4956         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
4957         input vector type from the reduction operand as well.
4958
4959 2010-11-02  Richard Guenther  <rguenther@suse.de>
4960
4961         PR tree-optimization/46177
4962         * tree-loop-distribution.c (prop_phis): Use
4963         mark_virtual_phi_result_for_renaming.
4964
4965 2010-11-02  Martin Jambor  <mjambor@suse.cz>
4966
4967         PR middle-end/46120
4968         * tree.c (get_binfo_at_offset): Bail out on artificial
4969         fields.  Identify primary bases according to their offsets.
4970
4971 2010-11-02  Martin Jambor  <mjambor@suse.cz>
4972
4973         PR tree-optimization/45875
4974         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
4975         (gimple_get_relevant_ref_binfo): Detect primary bases according to
4976         their field offset.
4977
4978 2010-11-02  Ian Lance Taylor  <iant@google.com>
4979
4980         * doc/install.texi (Configuration): Note in two places that Java
4981         is not enabled by default.
4982
4983 2010-11-02  Ian Lance Taylor  <iant@google.com>
4984
4985         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4986         (Configuration): Mention --disable-lto.  Remove --with-libelf
4987         paragraph.
4988
4989 2010-11-02  Ian Lance Taylor  <iant@google.com>
4990
4991         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
4992         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
4993         LIBELFINC.  Remove HAVE_libelf.
4994         * config.gcc: Don't set lto_binary_reader.
4995         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
4996         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
4997         (LIBS): Remove $(LIBELFLIBS).
4998         (INCLUDES): Remove $(LIBELFINC).
4999         * configure: Rebuild.
5000         * config.in: Rebuild.
5001
5002 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5003
5004         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5005         (function_arg_advance): Delete.
5006         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5007         (FUNCTION_ARG): Delete.
5008         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5009         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5010         const_tree and a bool.
5011         (function-arg): Rename to...
5012         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5013         and a bool.
5014         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5015         targetm.calls.function_arg_advance.
5016         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5017
5018 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5019
5020         Merge from FSF "apple/trunk" branch.
5021
5022         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5023         * config/darwin.opt: .. to here.
5024         (matt-stubs): New option.
5025         * config/i386/darwin.opt: Delete.
5026         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5027         (MACHO_DYNAMIC_NO_PIC_P): New.
5028         (MACHOPIC_INDIRECT): New.
5029         (MACHOPIC_PURE): New.
5030         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5031         (MACHOPIC_ATT_STUB): New.
5032         (CC1_SPEC): Do not remove mdynamic-no-pic.
5033         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5034         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5035         (FUNCTION_PROFILER): Correct over-length line.
5036         (SUBTARGET_OVERRIDE_OPTIONS): New.
5037         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5038         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5039         (legitimate_constant_p): Handle mdynamic-no-pic.
5040         (ix86_legitimate_address_p): Likewise.
5041         (ix86_legitimize_address): Likewise.
5042         (ix86_expand_move): Likewise.
5043         (machopic_output_stub): Update for ATT-style stubs and
5044         mdynamic-no-pic.
5045         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5046         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5047         TARGET_DYNAMIC_NO_PIC: Remove.
5048         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5049         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5050         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5051         Remove handling of mdynamic-no-pic.
5052         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5053         Define if required.
5054         (machopic_symbol_defined_p): Do not try to use current_function_decl
5055         when generating _get_pc thunks within stubs.
5056         (machopic_indirect_data_reference): Rework for direct conditionals
5057         rather than #ifdefs, add x86 mdynamic-no-pic
5058         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5059         defined value.
5060         (darwin_override_options): Handle mdynamic-no-pic here.
5061         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5062         (machopic_lazy_symbol_ptr3_section): New.
5063         (machopic_picsymbol_stub2_section): New.
5064         (machopic_picsymbol_stub3_section): New.
5065         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5066         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5067         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5068         Moved common definition from x86 and rs6000.
5069         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5070         (MACHOPIC_INDIRECT): Likewise.
5071         (MACHOPIC_PURE): Likewise.
5072         * config.gcc (x86-darwin-*): Remove darwin.opt.
5073
5074 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5075
5076         PR debug/46255
5077         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5078         instead of gsi_last_bb.
5079
5080 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5081             Maxim Kuvyrkov  <maxim@codesourcery.com>
5082
5083         * config/i386/i386.c (cpu_names): Add "corei7".
5084         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5085
5086 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5087             Maxim Kuvyrkov  <maxim@codesourcery.com>
5088
5089         Tune alignment for Intel Core i7
5090
5091         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5092         (enum processor_type): Update comment.  Add entries for Core i7.
5093         * config/i386-c.c (ix86_target_macros_internal): Update.
5094         * config/i386.c (m_COREI7{_32,_64}): New macros.
5095         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5096         (processor_target_table): Tune alignment for Core i7.
5097         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5098
5099         * doc/invoke.texi: Document "corei7" option value.
5100
5101 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5102             Maxim Kuvyrkov  <maxim@codesourcery.com>
5103             H.J. Lu  <hjl.tools@gmail.com>
5104
5105         Basic support for Intel Core i7
5106
5107         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5108         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5109
5110 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5111
5112         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5113         sections and call darwin_asm_dwarf_section() to handle them.
5114         (darwin_asm_dwarf_section): New.
5115         (darwin_file_start): Remove code emitting dwarf section symbols.
5116
5117 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5118
5119         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5120         explicitly disable stack protection when building libgcc.
5121         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5122
5123 2010-11-01  Jason Merrill  <jason@redhat.com>
5124
5125         * fold-const.c (fold_indirect_ref_1): Handle folding
5126         POINTER_PLUS_EXPR to ARRAY_REF.
5127
5128 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5129
5130         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5131         (sh_delegitimize_address): New function.
5132
5133 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5134
5135         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5136         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5137         (CC1_SPEC): Don't handle -target.
5138         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5139         options.
5140         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5141         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5142         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5143         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5144         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5145         Zweak_reference_mismatches, client_name, compatibility_version,
5146         current_version, dylinker_install_name, pagezero_size,
5147         read_only_relocs, seg1addr, segs_read_only_addr,
5148         segs_read_write_addr, sub_library, sub_umbrella): New.
5149         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5150         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5151         * config/freebsd.opt: New.
5152         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5153         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5154         * config/rpath.opt: New.
5155         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5156         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5157         Use rpath.opt.
5158
5159 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5160
5161         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5162         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5163         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5164         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5165         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5166         Document that options in .opt files do not need to be included.
5167         * doc/tm.texi: Regenerate.
5168         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5169         * opts-common.c: Update comment on tm.h include.
5170         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5171         * system.h (SWITCH_TAKES_ARG): Poison.
5172         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5173         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5174         in darwin.opt.
5175         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5176         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5177         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5178         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5179         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5180         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5181         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5182         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5183         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5184         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5185         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5186         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5187         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5188         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5189         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5190         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5191         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5192         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5193         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5194         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5195         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5196         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5197         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5198         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5199
5200 2010-11-01  Paul Koning  <ni1d@arrl.net>
5201
5202         * config/pdp11/pdp11.md: Use iterators.
5203         (addqi3, subqi3, iorsi3, xorsi3): Delete.
5204
5205 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
5206
5207         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
5208         GCC_INSN_FLAGS_H.
5209         * libgcov.c (__gcov_indirect_call_profiler): Set
5210         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
5211         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
5212
5213 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5214
5215         PR tree-optimization/46259
5216
5217         Revert:
5218         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5219         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
5220         build_vector_from_val.
5221
5222 2010-11-01  DJ Delorie  <dj@redhat.com>
5223
5224         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
5225         as well as an assertion.
5226
5227 2010-11-01  Paul Koning  <ni1d@arrl.net>
5228
5229         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
5230         complex modes in memory.
5231
5232 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5233
5234         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
5235
5236 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
5237
5238         PR target/45250
5239         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
5240         (cfa_base_offset): New variable.
5241         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
5242         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
5243         is NULL.
5244         (vt_init_cfa_base): Initialize cfa_base_offset.
5245
5246 2010-11-01  Alan Modra  <amodra@gmail.com>
5247
5248         PR target/46030
5249         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
5250         and savres_strategy.
5251         (stack_info): New file scope var.
5252         (rs6000_init_machine_status): Init stack_info.
5253         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
5254         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5255         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
5256         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
5257         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
5258         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
5259         (rs6000_savres_strategy): Rewrite.
5260         (rs6000_stack_info): Use "stack_info" in place of local "info".
5261         Return cached stack info when reload_completed unless ENABLE_CHECKING
5262         in which case confirm newly calculated stack info matches old info.
5263         Delay calculation of lr_save_p, set it for out of line gp save/restore
5264         as well as fp.  Call rs6000_savres_strategy from here..
5265         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
5266         (rs6000_output_function_prologue): Use info->savres_strategy to
5267         determine whether fp save/restore externs need to be emitted.
5268
5269 2010-10-31  Jason Merrill  <jason@redhat.com>
5270
5271         * tree.h (EXPR_LOC_OR_HERE): New macro.
5272         * builtins.c (c_strlen): Use it.
5273         * c-decl.c (build_enumerator): Likewise.
5274         * gimplify.c (internal_get_tmp_var): Likewise.
5275         (shortcut_cond_expr): Likewise.
5276         (gimplify_one_sizepos): Likewise.
5277
5278 2010-10-31  Richard Henderson  <rth@redhat.com>
5279
5280         * config/i386/cygming.h (TARGET_SEH): New.
5281         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
5282         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
5283         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
5284         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
5285         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
5286         (ASM_DECLARE_FUNCTION_SIZE): New.
5287         * config/i386/i386-protos.h: Update.
5288         * config/i386/i386.c (ix86_option_override_internal): Enable
5289         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
5290         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
5291         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
5292         (ix86_compute_frame_layout): For SEH, disable
5293         use_fast_prologue_epilogue, move frame pointer to the end of
5294         the frame.  Initialize hfp_save_offset.
5295         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
5296         at end of prologue for SEH.
5297         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
5298         emit blockage at beginning of epilogue.
5299         (ix86_expand_binary_operator): After reload, emit LEA if needed.
5300         (ix86_output_call_insn): New.
5301         * config/i386/i386.h (TARGET_SEH): New.
5302         (struct machine_function): Add member seh.
5303         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
5304         * config/i386/winnt.c (struct seh_frame_state): New.
5305         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
5306         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
5307         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
5308         i386_pe_start_function, i386_pe_end_function): New.
5309
5310         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
5311         as CFA_STORE in rules 12 and 13.
5312
5313 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
5314
5315         PR tree-optimization/46142
5316         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
5317         accommodate third function argument.
5318
5319 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5320
5321         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
5322
5323 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5324
5325         * fold-const.c (build_zero_vector): Use build_vector_from_val.
5326         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
5327         (get_initial_def_for_reduction): Likewise.
5328         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5329         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
5330         * tree.c (build_one_cst): Likewise.
5331         (build_vector_from_val): Use types_compatible_p for assert.
5332
5333 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5334
5335         * emit-rtl.c (mark_used_flags): New function.
5336         (set_used_flags, reset_used_flags): Call it.
5337
5338 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
5339
5340         PR middle-end/44569
5341         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
5342         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
5343
5344 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
5345
5346         PR target/46195
5347         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
5348         (ix86_compat_aligned_value_p): This.
5349         (ix86_old_function_arg_boundary): Renamed to ...
5350         (ix86_compat_function_arg_boundary): This.  Updated.
5351         (ix86_contains_aligned_value_p): New.
5352         (ix86_function_arg_boundary): Align long double parameters on
5353         stack to 4byte in 32bit.
5354
5355 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
5356
5357         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
5358         * c-parser.c (c_parser_objc_at_property_declaration): Removed
5359         parsing of RID_COPIES and RID_IVAR.  Updated call to
5360         objc_add_property_declaration.
5361         * c-typecheck.c (build_component_ref): Call
5362         objc_maybe_build_component_ref instead of objc_build_setter_call.
5363         Use objc_is_property_ref to improve Objective-C checks.
5364         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
5365         of objc_build_getter_call.
5366
5367 2010-10-29  Paul Koning  <ni1d@arrl.net>
5368
5369         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5370         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5371         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5372         (REG_OK_STRICT): Move description.
5373
5374 2010-10-29  Paul Koning  <ni1d@arrl.net>
5375
5376         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5377
5378 2010-10-29  Paul Koning  <ni1d@arrl.net>
5379
5380         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5381
5382 2010-10-29  Paul Koning  <ni1d@arrl.net>
5383
5384         PR/41822
5385         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5386
5387 2010-10-29  Richard Henderson  <rth@redhat.com>
5388
5389         PR rtl-opt/46226
5390         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5391         for asm goto.
5392
5393 2010-10-29  Paul Koning  <ni1d@arrl.net>
5394
5395         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5396         register to register move.
5397
5398 2010-10-29  Paul Koning  <ni1d@arrl.net>
5399
5400         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5401         of integer constant addresses, delete vax-only logic.
5402
5403 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5404
5405         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5406         a conditional expression.
5407
5408 2010-10-29  Paul Koning  <ni1d@arrl.net>
5409
5410         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5411         instruction encoding.
5412
5413 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5414             Andrew Pinski  <pinskia@gmail.com>
5415
5416         * tree.h (build_vector_from_val): Declare.
5417         * tree.c (build_vector_from_val): New function.
5418         * c-typeck.c (build_binary_op): Handle vector shifting.
5419         * doc/extend.texi: Description of the vector shifting operation.
5420
5421 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5422
5423         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5424         pdp11_secondary_memory_needed): Declare.
5425         * config/pdp11/predicates.md (float_operand): New predicate.
5426         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5427         (cbranchdf4, movdf): Change predicate.
5428         (movsf): Handle FPU register case.
5429         (truncdfsf2, extendsfdf2): Add FPU register case.
5430         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5431         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5432         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5433         (pdp11_register_move_cost): Update cost matrix.
5434         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5435         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5436         pdp11_secondary_memory_needed): New function.
5437         (pdp11_return_in_memory): Add other float types.
5438         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5439         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5440         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5441         REGISTER_MOVE_COST): Delete.
5442         (BASE_RETURN_VALUE_REG): Add other float types.
5443
5444 2010-10-29  Nick Clifton  <nickc@redhat.com>
5445
5446         * doc/invoke.texi: Document -mam34 and -mtune options.
5447         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5448         (mn10300_tune_cpu): New variable.
5449         (mn10300_handle_option): Handle -mam34 and -mtune options.
5450         (mn10300_option_override): Convert tune string into tune cpu variable.
5451         (mn10300_legitimate_constant_p): Delete unused local variable.
5452         (is_load_insn): New function.
5453         (is_store_insn): New function.
5454         (mn10300_adjust_schedule_cost): New function.
5455         (TARGET_SCHED_ADJUST_COST): Define.
5456         * config/mn10300/mn10300.opt (mam34): New option.
5457         (mtune): New option.
5458         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5459         (enum processor_type): Add AM34.
5460         (TARGET_AM34): Define.
5461         * config/mn10300/mn10300.md (attr cpu): Add am34.
5462         Add pipeline description.
5463         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5464         Remove unneeded alternatives.  Add timing attribute.
5465         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5466         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5467         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5468         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5469         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5470         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5471         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5472         float_conditional_branch, jump, indirect_jump, tablejump,
5473         call_internal, call_value_internal, zero_extendqisi2_am33,
5474         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5475         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5476         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5477         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5478         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5479         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5480         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5481         return_internal_regs, store_movm, return, call_next_insn):
5482         Add timing attribute.
5483         (am33_subsi3): Add missing clobber of CC_REG.
5484         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5485         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5486         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5487         extendqisi2): Fix predicates.
5488         (call_internal, call_internal_value): Separate alternatives.
5489         * config/mn10300/t-mn10300: Add AM34 multilib.
5490
5491 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5492
5493         * config/sh/sh.c (sh_promote_function_mode): Use
5494         default_promote_function_mode if !sh_promote_prototypes.
5495
5496 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5497
5498         * recog.c (split_all_insns): Remove dead code.
5499
5500 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5501
5502         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5503
5504 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5505
5506         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5507         (FUNCTION_ARG_ADVANCE): Delete.
5508         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5509         functions.
5510         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5511         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5512         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5513
5514 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5515
5516         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5517         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5518         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5519         Take a const_tree and a bool.
5520         (mcore_function_arg_advance): New function.
5521         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5522
5523 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5524
5525         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5526         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5527         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5528         Take a const_tree and a bool.
5529         (mcore_function_arg_advance): New function.
5530         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5531
5532 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5533
5534         * config/h8300/h8300-protos.h (function_arg): Delete.
5535         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5536         * config/h8300/h8300.c (function_arg): Rename to...
5537         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5538         a bool.
5539         (h8300_function_arg_advance): New function.
5540         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5541
5542 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5543
5544         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5545         to...
5546         * config/arc/arc.c (arc_function_arg): ...here and...
5547         (arc_function_arg_advance): ...here.  New functions.
5548         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5549
5550 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5551
5552         * config/crx/crx-protos.h (crx_function_arg): Delete.
5553         (crx_function_arg_advance): Delete.
5554         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5555         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5556         const_tree and a bool.
5557         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5558         (enough_regs_for_param): Take a const_tree.
5559         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5560
5561 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5562
5563         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5564         (m68hc11_function_arg_advance): Delete.
5565         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5566         (FUNCTION_ARG_ADVANCE): Delete.
5567         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5568         Take a const_tree and a bool.
5569         (m68hc11_function_arg_advance): Likewise.
5570         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5571
5572 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5573
5574         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5575         (xstormy16_function_arg_advance): Delete.
5576         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5577         (FUNCTION_ARG_ADVANCE): Delete.
5578         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5579         Take a const_tree and a bool.
5580         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5581         the CUM parameter instead.
5582         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5583
5584 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5585
5586         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5587         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5588         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5589         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5590         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5591         (moxie_function_arg_advance): New function.
5592         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5593
5594 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5595
5596         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5597         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5598         (FUNCTION_ARG_ADVANCE): Delete.
5599         * config/mn10300/mn10300.c (function_arg): Rename to...
5600         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5601         and a bool.
5602         (mn10300_function_arg_advance): New function.
5603         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5604
5605 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5606
5607         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5608         (function_arg_advance): Delete.
5609         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5610         * config/iq2000/iq2000.c (function_arg): Rename to...
5611         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5612         a bool.
5613         (function_arg_advance): Rename to...
5614         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5615         const_tree and a bool.
5616         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5617         iq2000_function_arg.
5618         (iq2000_pass_by_reference): Call iq2000_function_arg).
5619         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5620
5621 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5622
5623         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5624         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5625         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5626         const_tree.
5627         (fr30_function_arg): New function.
5628         (fr30_function_arg_advance): New function.
5629         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5630
5631 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5632
5633         * config/frv/frv-protos.h (frv_function_arg): Delete.
5634         (frv_function_arg_advance): Delete.
5635         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5636         * config/frv/frv.c (frv_function_arg): Rename to...
5637         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5638         (frv_function_arg, frv_function_incoming_arg): New functions.
5639         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5640         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5641         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5642
5643 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5644
5645         PR target/46153
5646         * config/i386/sse.md (sse_movhlps_exp): Use destination
5647         returned from ix86_fixup_binary_operands to expand insn.
5648         (sse_movlhps_exp): Ditto.
5649         (sse_loadhps_exp): Ditto.
5650         (sse_loadlps_exp): Ditto.
5651         (sse2_loadhpd_exp): Ditto.
5652         (sse2_loadlpd_exp): Ditto.
5653
5654 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5655
5656         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5657         constants in thumb2.
5658
5659 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5660
5661         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5662         arithmetics in masking operations.
5663         (contains_muldiv): Likewise.
5664         (try_combine): Likewise.
5665         (find_split_point): Likewise.
5666         (combine_simplify_rtx): Likewise.
5667         (simplify_if_then_else): Likewise.
5668         (simplify_set): Likewise.
5669         (expand_compound_operation): Likewise.
5670         (expand_field_assignment): Likewise.
5671         (make_extraction): Likewise.
5672         (extract_left_shift): Likewise.
5673         (make_compound_operation): Likewise.
5674         (force_to_mode): Likewise.
5675         (make_field_assignment): Likewise.
5676         (reg_nonzero_bits_for_combine): Likewise.
5677         (simplify_shift_const_1): Likewise.
5678         (simplify_comparison): Likewise.
5679
5680 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5681
5682         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5683         (ia64_function_arg_advance): Delete.
5684         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5685         (FUNCTION_ARG_ADVANCE): Delete.
5686         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5687         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5688         bool arguments.
5689         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5690         (ia64_function_arg_advance): Make static.  Take a const_tree and
5691         a bool.
5692         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5693         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5694
5695 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5696
5697         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5698         (TARGET_GET_RAW_ARG_MODE): New.
5699         * doc/tm.texi: Regenerate.
5700         * target.def (get_raw_result_mode): New.
5701         (get_raw_arg_mode): New.
5702         * targhooks.c (default_get_reg_raw_mode): New.
5703         * targhooks.h (default_get_reg_raw_mode): New.
5704         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5705         (apply_result_size): Ditto.
5706         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5707         (TARGET_GET_RAW_RESULT_MODE): Define.
5708         (TARGET_GET_RAW_ARG_MODE): Ditto.
5709
5710 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5711
5712         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5713         for newer Solaris 10 release.
5714         (sparc_fallback_frame_state): Likewise.
5715
5716 2010-10-27  Jason Merrill  <jason@redhat.com>
5717
5718         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5719         variables sooner.
5720
5721 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5722             Maxim Kuvyrkov  <maxim@codesourcery.com>
5723
5724         * haifa-sched.c (ISSUE_POINTS): Remove.
5725         (max_issue): Don't issue more than issue_rate instructions.
5726
5727 2010-10-27  Ian Lance Taylor  <iant@google.com>
5728
5729         PR target/46197
5730         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5731         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5732         UNSPECV_SPLIT_STACK_RETURN.
5733
5734 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5735
5736         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5737
5738         * config/i386/i386.c (block_info): New.
5739         (BLOCK_INFO): Likewise.
5740         (call_avx256_state): Likewise.
5741         (check_avx256_stores): Likewise.
5742         (move_or_delete_vzeroupper_2): Likewise.
5743         (move_or_delete_vzeroupper_1): Likewise.
5744         (move_or_delete_vzeroupper): Likewise.
5745         (use_avx256_p): Likewise.
5746         (function_pass_avx256_p): Likewise.
5747         (flag_opts): Add -mvzeroupper.
5748         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5749         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5750         is disabled.
5751         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5752         generate vzeroupper.
5753         (init_cumulative_args): Add an int to indicate caller.  Set
5754         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5755         based on return type.
5756         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5757         caller_pass_avx256_p based on argument type.
5758         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5759         is used, but not returned by caller.
5760         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5761         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5762         is used.
5763         (ix86_minimum_alignment): Likewise.
5764         (ix86_expand_special_args_builtin): Set target to
5765         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5766         (ix86_reorg): Run the vzeroupper optimization if needed.
5767
5768         * config/i386/i386.h (ix86_args): Add caller.
5769         (INIT_CUMULATIVE_ARGS): Updated.
5770         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5771         caller_pass_avx256_p, caller_return_avx256_p,
5772         callee_pass_avx256_p and callee_return_avx256_p.
5773
5774         * config/i386/i386.opt (-mvzeroupper): New.
5775
5776         * config/i386/predicates.md (vzeroupper_operation): Removed.
5777
5778         * config/i386/sse.md (avx_vzeroupper): Removed.
5779         (*avx_vzeroupper): Removed.
5780         (avx_vzeroupper): New.
5781
5782         * doc/invoke.texi: Document -mvzeroupper.
5783
5784 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5785
5786         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5787         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5788         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5789
5790 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5791             Olivier Hainque  <hainque@adacore.com>
5792
5793         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5794         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5795         fs->signal_frame instead.
5796
5797 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5798
5799         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5800         parsing of RID_COPIES and RID_IVAR.
5801
5802 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5803
5804         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5805         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5806         Do not use objc_set_property_attr, but use local variables
5807         instead.  Detect repeated usage of setter, getter and ivar
5808         attributes.  Improved error processing when a setter name does not
5809         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5810         that the token is a keyword.  Updated call to
5811         objc_add_property_declaration.
5812
5813 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5814
5815         * c-parser.c (c_parser_objc_at_property): Renamed to
5816         c_parser_objc_at_property_declaration.  Updated calls to
5817         objc_add_property_variable, now objc_add_property_declaration.
5818         Code rewritten to be much more robust in recovering from syntax
5819         errors.  Added comments.
5820         (c_parser_objc_property_attrlist): Removed.
5821         (c_parser_external_declaration): Updated calls to
5822         c_parser_objc_at_property, now
5823         c_parser_objc_at_property_declaration.
5824         (c_parser_objc_methodprotolist): Same change.
5825
5826 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5827
5828         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5829
5830 2010-10-26  Jan Hubicka  <jh@suse.cz>
5831
5832         * ipa.c (process_references): Enqueue all referenced nodes;
5833         mark as reachable only non-external nodes.
5834         (cgraph_remove_unreachable_nodes): All referenced nodes should
5835         be enqueued; remove bogues node->needed check.
5836
5837 2010-10-26  Jan Hubicka  <jh@suse.cz>
5838
5839         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5840         to represent OMP.
5841
5842 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5843
5844         * config/i386/i386.md (split_stack_return): Replace
5845         unspec_volatile with unspec.
5846
5847 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
5848
5849         * doc/install.texi: Fix typo in --with-sysroot description.
5850
5851 2010-10-26  Jan Hubicka  <jh@suse.cz>
5852
5853         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
5854         Use info provided by linker plugin.
5855
5856 2010-10-26  Jason Merrill  <jason@redhat.com>
5857
5858         * varasm.c (constructor_static_from_elts_p): Don't require a
5859         CONSTRUCTOR to have elements to be suitable for static
5860         initialization.  Allow ARRAY_TYPE as well.
5861
5862 2010-10-26  Jan Hubicka  <jh@suse.cz>
5863
5864         PR middle-end/45736
5865         * cgraph.c (cgraph_set_readonly_flag): Rename to...
5866         (cgraph_set_const_flags) ... this one; get also looping argument;
5867         clear constructor/destructor flags.
5868         (cgraph_set_pure_flag): Likewise.
5869         (cgraph_set_looping_const_or_pure_flag): Remove.
5870         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
5871         to optimize away static ctors/dtors; it does not work on inline clones;
5872         external functions can always be rmeoved.
5873         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
5874         inline clones; in LTO external functions always can go.
5875         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
5876         (cgraph_mark_address_taken_node): Assert that we are not taking
5877         address of inline clone.
5878         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
5879         external functions.
5880         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
5881         address taken.
5882         (ipcp_initialize_node_lattices): Only local functions can be
5883         handled without cloning.
5884         * cgraph.h (cgraph_set_readonly_flag,
5885         cgraph_set_looping_const_or_pure_flag): Remove.
5886         (cgraph_set_const_flag): Declare.
5887         (cgraph_set_pure_flag): Update.
5888         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
5889         flags setting code.
5890         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
5891         look at inline clones; fix handling of external definitions.
5892         (cgraph_postorder): Do not look at inline clones in the first pass.
5893         (function_and_variable_visibility): Drop constructors/destructor
5894         flags at pure and const functions.
5895         * tree-profile.c (tree_profiling): Update.
5896         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
5897         address taken; external functions do not account to whole program size.
5898         (cgraph_decide_inlining): Likewise; do not try to inline
5899         functions already inlined.
5900
5901 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5902
5903         * doc/invoke.texi: Improve documentation of
5904         -fstrict-volatile-bitfields.
5905
5906 2010-10-26  Ira Rosen  <irar@il.ibm.com>
5907
5908         PR tree-optimization/46167
5909         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
5910         is basic block for the statement.
5911
5912 2010-10-26  Paul Koning  <ni1d@arrl.net>
5913
5914         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
5915         current definition of struct_real_format.
5916
5917 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5918
5919         PR target/44948
5920         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
5921         (ix86_function_arg_boundary): Always align parameters on stack
5922         in 64bit and align parameters with alignment >= 16byte on stack
5923         in 32bit.  Warn alignment change.
5924
5925 2010-10-26  Ian Lance Taylor  <iant@google.com>
5926
5927         PR middle-end/45687
5928         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
5929         offset.
5930
5931 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5932
5933         Implement opaque-enum-specifiesr for C++0x
5934         * tree.h (ENUM_IS_OPAQUE): New.
5935         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
5936
5937 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5938
5939         * stor-layout.c (layout_decl): Use the field's type to
5940         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
5941         * config/arm/arm.c (arm_override_options): Default to
5942         -fstrict-volatile-bitfields.
5943
5944 2010-10-25  Paul Koning  <ni1d@arrl.net>
5945
5946         * config/pdp11/pdp11.md: Add define_constants for register
5947         numbers, branch offset limits.
5948         * config/pdp11/pdp11.c: Use named constants instead of numbers.
5949         * config/pdp11.pdp11.h: Ditto.
5950
5951 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
5952
5953         * configure.ac: Use $cpu_type instead of $target to define the nop.
5954         * configure: Regenerate.
5955
5956 2010-10-25  Jie Zhang  <jie@codesourcery.com>
5957
5958         * combine.c (try_combine): If insns need to be kept around, check that
5959         they can be copied in the merged instruction.
5960
5961 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5962
5963         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
5964         has been modified.
5965         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
5966         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
5967         it has been modified.
5968
5969 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5970
5971         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
5972
5973 2010-10-24  Paul Koning  <ni1d@arrl.net>
5974
5975         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
5976         * config/pdp11/pdp11.c (output_jump): Ditto.
5977
5978 2010-10-24  Ian Lance Taylor  <iant@google.com>
5979
5980         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
5981
5982 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5983
5984         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
5985         least one insn with a locus corresponding to an edge's goto_locus,
5986         disregard non-fallthru edges to the exit block and merge the blocks
5987         created for the same goto_locus.
5988
5989 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
5990
5991         * gcc.c (n_switches_alloc_debug_check): New.
5992         (set_option_handlers): New.
5993         (process_command): Use set_option_handlers.
5994         (do_self_spec): Pass spec-generated options through option handlers.
5995         (main): Also save and restore n_switches_alloc when swapping
5996         switch arrays.
5997
5998 2010-10-23  Richard Henderson  <rth@redhat.com>
5999
6000         PR target/46144
6001         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6002         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6003         Honor matching operands when splitting to XOR.
6004
6005 2010-10-23  Ian Lance Taylor  <iant@google.com>
6006
6007         * tree-vrp.c (extract_range_from_binary_expr): If
6008         flag_non_call_exceptions don't eliminate division by zero.
6009         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6010
6011 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6012
6013         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6014         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6015         __ORDER_PDP_ENDIAN__.
6016         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6017         (struct DWstruct): Define based on __BYTE_ORDER__.
6018         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6019         (struct INTstruct): Define based on __BYTE_ORDER__.
6020         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6021         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6022         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6023         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6024         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6025         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6026         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6027         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6028         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6029         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6030         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6031         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6032         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6033         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6034         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6035         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6036         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6037         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6038         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6039         * doc/tm.texi: Regenerate.
6040         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6041         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6042
6043 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6044
6045         PR rtl-optimization/37360
6046         * config/mips/mips.c (cached_can_issue_more): New local variable.
6047         (mips_sched_reorder_1): New.
6048         (mips_sched_reorder): Use mips_sched_reorder_1.
6049         (mips_sched_reorder2): New.
6050         (mips_variable_issue): Set cached_can_issue_more.
6051         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6052         instead of mips_sched_reorder.
6053
6054         Revert:
6055         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6056         PR rtl-optimization/37360
6057         * haifa-sched.c (max_issue): Do not assert that we never issue more
6058         insns than issue_rate.  Add comment.
6059
6060 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6061
6062         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6063         location info of the expression.
6064
6065 2010-10-22  DJ Delorie  <dj@redhat.com>
6066
6067         * doc/extend.texi (Named Address Spaces): Document the M32C named
6068         address space.
6069
6070         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6071         __far address space.
6072         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6073         "__far" address space for R8C and M16C processor variants.
6074         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6075         (far_addr_space_p): New.
6076         (encode_pattern_1): Add sign and zero extend support.
6077         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6078         (m32c_extra_constraint_p2): Add SF constraint.
6079         (m32c_legitimate_address_p): Support __far addresses.
6080         (m32c_addr_space_pointer_mode): New.
6081         (m32c_addr_space_address_mode): New.
6082         (m32c_addr_space_legitimate_address_p): New.
6083         (m32c_addr_space_legitimize_address): New.
6084         (m32c_addr_space_subset_p): New.
6085         (m32c_addr_space_convert): New.
6086         (conversions): Add __far operand patterns.
6087         (m32c_prepare_move): Force constants into registers for __far moves.
6088         (m32c_split_move): __far moves are always split.
6089         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6090         * config/m32c/mov.md (mov<mode>_far_op1): New.
6091         (mov<mode>_far_op2): New.
6092         (movqi_op): Add __far (SF) support.
6093         (movhi_op): Likewise.
6094         (movsi_splittable): Split A1A0 also.
6095
6096 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6097             Andrew Pinski  <pinskia@gmail.com>
6098
6099         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6100         * doc/extend.texi: New paragraph
6101
6102 2010-10-22  Paul Koning  <ni1d@arrl.net>
6103
6104         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6105
6106 2010-10-22  DJ Delorie  <dj@redhat.com>
6107
6108         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6109
6110 2010-10-22  Paul Koning  <ni1d@arrl.net>
6111
6112         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6113
6114 2010-10-22  Richard Henderson  <rth@redhat.com>
6115
6116         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6117         cases for __builtin_fma and __builtin_fmaf.
6118
6119 2010-10-22  Richard Henderson  <rth@redhat.com>
6120
6121         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6122         NEG+USE for vectors as well.
6123         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6124         and splitter.
6125
6126 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6127
6128         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6129         SWITCH_CURTAILS_COMPILATION): Remove.
6130         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6131         * doc/tm.texi: Regenerate.
6132         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6133
6134 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6135
6136         * config/i386/bdver1.md: New file.
6137         * config/i386/i386.md (include "bdver1.md"): Invoke the
6138         pipeline description for bdver1.
6139         (x86_sahf_1): Add "bdver1_decode" attribute.
6140         (*cmpfp_i_mixed): Likewise.
6141         (*cmpfp_i_sse): Likewise.
6142         (*cmpfp_i_i387): Likewise.
6143         (*cmpfp_iu_mixed): Likewise.
6144         (*cmpfp_iu_sse): Likewise.
6145         (*cmpfp_iu_387): Likewise.
6146         (*swap<mode>,*swap<mode>_1): Likewise.
6147         (fixuns_trunc<mode>hi2): Likewise.
6148         (fix_trunc<mode>si_sse): Likewise.
6149         (x86_fnstcw_1): Likewise.
6150         (x86_fldcw_1): Likewise.
6151         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6152         (*floatsi<mode>2_vector_mixed): Likewise.
6153         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6154         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6155         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6156         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6157         (*floatsi<mode>2_vector_sse): Likewise.
6158         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6159         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6160         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6161         (*mul<mode>3_1): Likewise.
6162         (*mulsi3_1_zext): Likewise.
6163         (*mulhi3_1): Likewise.
6164         (*mulqi3_1): Likewise.
6165         (*<u>mul<mode><dwi>3_1): Likewise.
6166         (*<u>mulqihi3_1): Likewise.
6167         (*<s>muldi3_highpart_1): Likewise.
6168         (*<s>mulsi3_highpart_1): Likewise.
6169         (*<s>mulsi3_highpart_zext): Likewise.
6170         (x86_64_shld): Likewise.
6171         (x86_shld): Likewise.
6172         (x86_64_shrd): Likewise.
6173         (x86_shrd): Likewise.
6174         (sqrtxf2): Likewise.
6175         (sqrt_extend<mode>xf2_i387): Likewise.
6176         (*sqrt<mode>2_sse): Likewise.
6177         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6178         (sse_cvtsi2ssq): Likewise.
6179         (sse_cvtss2si): Likewise.
6180         (sse_cvtss2si_2): Likewise.
6181         (sse_cvtss2siq): Likewise.
6182         (sse_cvtss2siq_2): Likewise.
6183         (sse_cvttss2si): Likewise.
6184         (sse_cvttss2siq): Likewise.
6185         (sse2_cvtpi2pd): Likewise.
6186         (sse2_cvttpd2pi): Likewise.
6187         (sse2_cvtsi2sd): Likewise.
6188         (sse2_cvtsi2sdq): Likewise.
6189         (sse2_cvtsd2si): Likewise.
6190         (sse2_cvtsd2si_2): Likewise.
6191         (sse2_cvtsd2siq): Likewise.
6192         (sse2_cvtsd2siq_2): Likewise.
6193         (sse2_cvttsd2si): Likewise.
6194         (sse2_cvttsd2siq): Likewise.
6195         (*sse2_cvtpd2dq): Likewise.
6196         (*sse2_cvttpd2dq): Likewise.
6197         (sse2_cvtsd2ss): Likewise.
6198         (sse2_cvtss2sd): Likewise.
6199         (*sse2_cvtpd2ps): Likewise.
6200         (sse2_cvtps2pd): Likewise.
6201
6202 2010-10-22  Richard Guenther  <rguenther@suse.de>
6203
6204         PR middle-end/46137
6205         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
6206         remove the virtual operands if they are not needed.
6207
6208 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6209
6210         * config/i386/i386.c (processor_costs bdver1_cost): Update
6211         insn costs and architectural parameters for bdver1.
6212
6213 2010-10-22  Richard Guenther  <rguenther@suse.de>
6214
6215         * gimple.h (gimple_register_canonical_type): Declare.
6216         * gimple.c (gimple_canonical_types): New global hashtable.
6217         (struct gimple_type_leader_entry_s): New type.
6218         (gimple_type_leader): New global cache.
6219         (gimple_lookup_type_leader): New function.
6220         (gtc_visit): Query the proper cache.
6221         (gimple_types_compatible_p): Likewise.
6222         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
6223         (gimple_canonical_type_eq): New function.
6224         (gimple_register_canonical_type): Likewise.
6225         (print_gimple_types_stats): Adjust for gimple_canonical_types.
6226         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
6227         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
6228         gimple_types_compatible_p for LTO.
6229
6230 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
6231
6232         PR target/46098
6233         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6234         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6235         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6236         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6237         (<sse>_movu<ssemodesuffix>): New expander.
6238         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6239         (avx_movdqu<avxmodesuffix>): New expander.
6240         (*sse2_movdqu): Rename from sse2_movdqu.
6241         (sse2_movdqu): New expander.
6242
6243 2010-10-22  Richard Guenther  <rguenther@suse.de>
6244
6245         PR tree-optimization/45720
6246         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6247         Handle negative step.
6248         (vect_enhance_data_refs_alignment): Likewise.
6249         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
6250         (vect_create_cond_for_align_checks): Likewise.
6251         (vect_create_cond_for_alias_checks): Likewise.
6252
6253 2010-10-22  Ira Rosen  <irar@il.ibm.com>
6254
6255         PR tree-optimization/46126
6256         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
6257         vectorizable_shift in case of basic block vectorization.
6258
6259 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6260
6261         * target.h (enum opt_levels, struct default_options): New.
6262         * target.def (handle_ofast): Remove hook.
6263         (target_option.optimization): Change to
6264         target_option.optimization_table.
6265         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
6266         TARGET_OPTION_OPTIMIZATION_TABLE.
6267         (CAN_DEBUG_WITHOUT_FP): Remove.
6268         * doc/tm.texi: Regenerate.
6269         * opts.c (maybe_default_option, maybe_default_options,
6270         default_options_table): New.
6271         (default_options_optimization): Take extra parameters.  Don't
6272         assert that global_options and global_options_set are in use.  Use
6273         maybe_default_options.
6274         (decode_options): Pass extra parameters to
6275         default_options_optimization.
6276         * common.opt (falign-loops): Use value 0 with Var.
6277         (frerun-cse-after-loop, ftree-ter): Remove Init.
6278         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
6279         TARGET_OPTION_OPTIMIZATION): Remove.
6280         * targhooks.c (empty_optimization_table): New.
6281         * targhooks.h (empty_optimization_table): Declare.
6282         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
6283         * config/alpha/alpha.c (alpha_option_optimization_table,
6284         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6285         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
6286         * config/arm/arm.c (arm_option_optimization: Change to
6287         arm_option_optimization_table.
6288         (TARGET_OPTION_OPTIMIZATION): Change to
6289         TARGET_OPTION_OPTIMIZATION_TABLE.
6290         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
6291         * config/avr/avr.c (avr_option_optimization_table,
6292         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6293         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
6294         * config/cris/cris.c (cris_option_optimization): Change to
6295         cris_option_optimization_table.
6296         (TARGET_OPTION_OPTIMIZATION): Change to
6297         TARGET_OPTION_OPTIMIZATION_TABLE.
6298         * config/crx/crx.c (crx_option_optimization): Change to
6299         crx_option_optimization_table.
6300         (TARGET_OPTION_OPTIMIZATION): Change to
6301         TARGET_OPTION_OPTIMIZATION_TABLE.
6302         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6303         * config/fr30/fr30.c (fr30_option_optimization_table,
6304         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6305         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
6306         * config/frv/frv.c (frv_option_optimization_table,
6307         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6308         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
6309         * config/h8300/h8300.c (h8300_option_optimization): Change to
6310         h8300_option_optimization_table.
6311         (TARGET_OPTION_OPTIMIZATION): Change to
6312         TARGET_OPTION_OPTIMIZATION_TABLE.
6313         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6314         * config/i386/i386.c (ix86_option_optimization): Change to
6315         ix86_option_optimization_table.
6316         (TARGET_OPTION_OPTIMIZATION): Change to
6317         TARGET_OPTION_OPTIMIZATION_TABLE.
6318         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6319         as initializer.
6320         * config/ia64/ia64.c (ia64_option_optimization): Change to
6321         ia64_option_optimization_table.
6322         (TARGET_OPTION_OPTIMIZATION): Change to
6323         TARGET_OPTION_OPTIMIZATION_TABLE.
6324         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
6325         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
6326         initializer.
6327         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6328         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6329         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6330         * config/lm32/lm32.c (lm32_option_optimization_table,
6331         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6332         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
6333         * config/m32r/m32r.c (m32r_option_optimization): Change to
6334         m32r_option_optimization_table.
6335         (TARGET_OPTION_OPTIMIZATION): Change to
6336         TARGET_OPTION_OPTIMIZATION_TABLE.
6337         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
6338         CAN_DEBUG_WITHOUT_FP): Remove.
6339         * config/mcore/mcore.c (mcore_option_optimization): Change to
6340         mcore_option_optimization_table.
6341         (TARGET_OPTION_OPTIMIZATION): Change to
6342         TARGET_OPTION_OPTIMIZATION_TABLE.
6343         * config/mep/mep.c (mep_option_optimization): Change to
6344         mep_option_optimization_table.
6345         (TARGET_OPTION_OPTIMIZATION): Change to
6346         TARGET_OPTION_OPTIMIZATION_TABLE.
6347         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
6348         * config/microblaze/microblaze.c
6349         (microblaze_option_optimization_table,
6350         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6351         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
6352         * config/mips/mips.c (mips_option_optimization_table,
6353         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6354         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
6355         * config/mmix/mmix.c (mmix_option_optimization): Change to
6356         mmix_option_optimization_table.
6357         (TARGET_OPTION_OPTIMIZATION): Change to
6358         TARGET_OPTION_OPTIMIZATION_TABLE.
6359         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
6360         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6361         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6362         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6363         * config/pa/pa.c (pa_option_optimization_table,
6364         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6365         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6366         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6367         pdp11_option_optimization_table.
6368         (TARGET_OPTION_OPTIMIZATION): Change to
6369         TARGET_OPTION_OPTIMIZATION_TABLE.
6370         * config/picochip/picochip.c (picochip_option_optimization_table,
6371         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6372         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6373         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6374         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6375         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6376         * config/rx/rx.c (rx_option_optimization_table,
6377         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6378         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6379         * config/s390/s390.c (s390_option_optimization): Change to
6380         s390_option_optimization_table.
6381         (s390_option_override): Update comment.
6382         (TARGET_OPTION_OPTIMIZATION): Change to
6383         TARGET_OPTION_OPTIMIZATION_TABLE.
6384         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6385         * config/score/score.c (score_option_optimization_table,
6386         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6387         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6388         * config/sh/sh.c (sh_option_optimization): Change to
6389         sh_option_optimization_table.
6390         (TARGET_OPTION_OPTIMIZATION): Change to
6391         TARGET_OPTION_OPTIMIZATION_TABLE.
6392         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6393         (sh_option_override, expand_block_move, multcosts, find_barrier,
6394         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6395         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6396         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6397         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6398         instead of TARGET_SMALLCODE.
6399         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6400         * config/sparc/sparc.c (sparc_option_optimization_table,
6401         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6402         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6403         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6404         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6405         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6406         * config/v850/v850.c (v850_option_optimization): Change to
6407         v850_option_optimization_table.
6408         (TARGET_OPTION_OPTIMIZATION): Change to
6409         TARGET_OPTION_OPTIMIZATION_TABLE.
6410         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6411         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6412         xtensa_option_optimization_table.
6413         (TARGET_OPTION_OPTIMIZATION): Change to
6414         TARGET_OPTION_OPTIMIZATION_TABLE.
6415         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6416
6417 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6418
6419         Based on the CFString implementation in FSF apple/trunk branch.
6420
6421         * target.def (objc_construct_string): New Hook.
6422         * doc/tm.texi (objc_construct_string): Document.
6423         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6424         * config/t-darwin: Amend build rules for darwin.o.
6425         * config/darwin.opt: Add cfstrings flags.
6426         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6427         (darwin_objc_construct_string): New.
6428         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6429         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6430         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6431         (darwin_fold_builtin): Likewise.
6432         (darwin_build_constant_cfstring): Likewise.
6433         (darwin_objc_construct_string): Likewise.
6434         (darwin_cfstring_p): Likewise.
6435         (darwin_enter_string_into_cfstring_table): Likewise.
6436         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6437         * config/darwin.c (darwin_running_cxx): New var.
6438         (machopic_select_section): Return cfstring_constant_object_section.
6439         (darwin_override_options): Set darwin_running_cxx.
6440         (add_builtin_field_decl): New.
6441         (darwin_init_cfstring_builtins): New.
6442         (darwin_build_constant_cfstring): New.
6443         (darwin_fold_builtin): New.
6444         (cfstring_hash): New.
6445         (cfstring_eq): New.
6446         (darwin_enter_string_into_cfstring_table): New.
6447         * config/darwin-sections.def (cfstring_constant_object_section): New.
6448         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6449         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6450
6451 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6452
6453         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6454         TYPE_STUB_DECL instead of TREE_CHAIN.
6455         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6456         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6457         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6458         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6459         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6460         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6461         Likewise.
6462         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6463
6464 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6465
6466         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6467         (copy_blkmode_from_reg): Likewise.
6468         (read_complex_part): Likewise.
6469         (expand_expr_real_1): Calculate packedp and pass it to
6470         extract_bit_field.
6471         * expr.h (extract_bit_field): Update declaration.
6472         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6473         to extract_bit_field.
6474         * expmed.c (extract_fixed_bit_field): Update calls to
6475         extract_fixed_bit_field.
6476         (store_split_bit_field): Likewise.
6477         (extract_bit_field_1): Add new argument packedp.
6478         (extract_bit_field): Add new argument packedp.
6479         (extract_fixed_bit_field): Add new argument packedp and let
6480         packed attribute override volatile.
6481         * stmt.c (expand_return): Update call to extract_bit_field.
6482
6483 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6484
6485         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6486
6487 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6488
6489         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6490         of gcc_checking_assert.
6491         * sel-sched.c (code_motion_process_successors): Likewise.
6492
6493 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6494
6495         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6496         when stopping because of a different locus on edge or insn.
6497         (try_optimize_cfg): Add comment.
6498         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6499         block is a forwarder block, propagate locus on the edge.
6500         (cfg_layout_merge_blocks): Likewise.
6501
6502 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6503
6504         PR target/45946
6505         * config/i386/i386.md (*pushti2): New insn pattern.
6506         (pushti2 splitter): New insn splitter.
6507         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6508         DWI mode iterator.
6509
6510 2010-10-21  Paul Koning  <ni1d@arrl.net>
6511
6512         * config/pdp11/pdp11-protos.md (arith_operand,
6513         const_immediate_operand, expand_shift_operand,
6514         immediate15_operand): Delete
6515         * config/pdp11/pdp11.c: Ditto.
6516         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6517         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6518         EXTRA_CONSTRAINT): Delete.
6519         * config/pdp11/pdp11.md (various): Use standard constraints
6520         instead of removed ones.
6521         * config/pdp11/constraints.md: New file.
6522         * config/pdp11/predicates.md: New file.
6523
6524 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6525
6526         PR c/45834
6527         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6528         (may_alias_p): Ditto.
6529
6530 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6531
6532         PR tree-optimization/45875
6533         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6534
6535 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6536
6537         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6538         variables.
6539         (create_new_def_for): Likewise.
6540
6541 2010-10-21  Nick Clifton  <nickc@redhat.com>
6542
6543         * config/mn10300/mn10300.c: Fold code to 80-character width.
6544         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6545         MEM, CONST_INT and CONST_DOUBLE.
6546         (targetm): Move initialization to end of file.
6547         (print_operand): Rename to mn10300_print_operand.
6548         (print_operand_address): Rename to mn10300_print_operand_address.
6549         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6550         (expand_prologue): Rename to mn10300_expand_prologue.
6551         (expand_epilogue): Rename to mn10300_expand_epilogue.
6552         (initial_offset): Rename to mn10300_initial_offset.
6553         (function_arg): Rename to mn10300_function_arg.
6554         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6555         (symbolic_operand): Rename to mn10300_symbolic_operand.
6556         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6557         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6558         * config/mn10300/mn10300-protos.h: Update prototypes.
6559         * config/mn10300/mn10300.h: Fold code to 80-character width.
6560         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6561         MEM, CONST_INT and CONST_DOUBLE.
6562         (CPP_SPEC): Move to...
6563         (TARGET_CPU_CPP_BUILTINS): ... here.
6564         * config/mn10300/mn10300.md: Fold code to 80-character width.
6565         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6566         MEM, CONST_INT and CONST_DOUBLE.
6567
6568 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6569
6570         PR tree-optimization/46049
6571         PR tree-optimization/46052
6572         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6573         (vect_get_slp_defs): Add arguments.
6574         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6575         operands to vect_get_slp_defs.
6576         (vectorizable_reduction): Fix comment, pass scalar operands to
6577         vect_get_slp_defs.
6578         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6579         type to determine number of units in the created vector.
6580         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6581         (vectorizable_conversion): Fix comment.
6582         (vectorizable_shift): New function.
6583         (vectorizable_operation): Move code that handles shifts to
6584         vectorizable_shift.
6585         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6586         vect_get_slp_defs.
6587         (vectorizable_type_promotion, vectorizable_store): Likewise.
6588         (vectorizable_condition): Fix comment.
6589         (vect_analyze_stmt): Call vectorizable_shift.
6590         (vect_transform_stmt): Likewise.
6591         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6592         Use it as the operand to create vectors for, except reduction
6593         initial definition and store.  Use operands type.
6594         (vect_get_slp_defs): Add new arguments.  Pass them to
6595          vect_get_constant_vectors.
6596
6597 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6598
6599         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6600         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6601         * cfghooks.c (fixup_reorder_chain): Likewise.
6602         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6603         * cgraph.c (cgraph_add_thunk): Likewise.
6604         (cgraph_create_edge_1): Likewise.
6605         (cgraph_create_virtual_clone): Likewise.
6606         * ddg.c (add_cross_iteration_register_deps): Likewise.
6607         * dwarf2out.c (modified_type_die): Likewise.
6608         * emit-rtl.c (set_mem_alias_set): Likewise.
6609         * ggc-zone.c (zone_allocate_marks): Likewise.
6610         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6611         * gimple.c (iterative_hash_gimple_type): Likewise.
6612         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6613         (create_single_exit_edge): Likewise.
6614         * haifa-sched.c (choose_ready): Likewise.
6615         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6616         * passes.c (execute_todo): Likewise.
6617         * sched-ebb.c (begin_schedule_ready): Likewise.
6618         * sel-sched.c (code_motion_process_successors): Likewise.
6619         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6620         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6621         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6622         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6623         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6624         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6625         (ssa_conflicts_add): Likewise.
6626         * tree-ssa-copy.c (replace_exp): Likewise.
6627         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6628         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6629         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6630         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6631         (compute_antic): Likewise.
6632         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6633         (add_dependence): Likewise.
6634         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6635         * tree-vrp.c (supports_overflow_infinity): Likewise.
6636         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6637         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6638         (process_assert_insertions_for): Likewise.
6639         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6640         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6641         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6642
6643 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6644
6645         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6646         * reload1.c (has_nonexceptional_receiver): Likewise.
6647         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6648         (create_new_def_for): Likewise.
6649         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6650         (merge_phi_nodes): Likewise.
6651         (has_abnormal_incoming_edge_p): Delete.
6652
6653 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6654
6655         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6656
6657 2010-10-21  Richard Guenther  <rguenther@suse.de>
6658             Michael Matz  <matz@suse.de>
6659
6660         PR tree-optimization/45764
6661         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6662         Adjust initial misalignment for negative DR_STEP.
6663         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6664         do not have the same alignment over the whole iteration domain.
6665
6666 2010-10-21  Richard Guenther  <rguenther@suse.de>
6667
6668         PR tree-optimization/46111
6669         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6670
6671 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6672
6673         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6674
6675 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6676
6677         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6678         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6679
6680 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6681
6682         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6683         signal_frame.
6684         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6685
6686 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6687
6688         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6689         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6690
6691 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6692
6693         * basic-block.h (find_fallthru_edge): Define.
6694         * cfgcleanup.c (merge_blocks_move): Use it.
6695         (try_crossjump_bb): Likewise.
6696         * cfglayout.c (fixup_reorder_chains): Likewise.
6697         (fixup_fallthru_exit_predecessor): Likewise.
6698         * cfgrtl.c (rtl_split_edge): Likewise.
6699         (rtl_verify_flow_info): Likewise.
6700         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6701         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6702         * ifcvt.c (block_fallthru): Likewise.
6703         * reload1.c (fixup_abnormal_edges): Likewise.
6704         * sched-ebb.c (being_schedule_ready): Likewise.
6705         (schedule_ebb): Likwise.
6706         * sched-rgn.c (find_single_block_region): Likewise.
6707         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6708         * tree-complex.c (expand_complex_move): Likewise.
6709         * sched-int.h (find_fallthru_edge): Rename to...
6710         (find_fallthru_edge_from): ...this.
6711         * haifa-sched.c (find_fallthru_edge): Rename to...
6712         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6713         (init_before_recovery): Call find_fallthru_edge_from.
6714         * sel-sched-ir.c (merge_fences): Likewise.
6715         * sel-sched.c (in_fallthru_bb_p): Likewise.
6716         (move_cond_jump): Likewise.
6717
6718 2010-10-20  Paul Koning  <ni1d@arrl.net>
6719
6720         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6721         insn to check for target 11/40 or higher.
6722
6723 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6724
6725         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6726         bool instead of a tree.
6727         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6728         objc_build_method_signature.
6729         (c_parser_objc_method_definition): Do not call
6730         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6731         c_parser_objc_method_decl and objc_start_method_definition.
6732         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6733         Updated calls to c_parser_objc_method_type,
6734         c_parser_objc_method_decl and objc_add_method_declaration.
6735
6736 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6737
6738         PR tree-optimization/45919
6739         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6740         array members.
6741
6742         PR tree-optimization/46066
6743         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6744         instead of gsi_last_bb.
6745
6746 2010-10-20  DJ Delorie  <dj@redhat.com>
6747
6748         * config/m32c/m32c.c (m32c_option_override): Always disable
6749         function-cse in 16-bit mode.  Indirect calls are always worse than
6750         direct calls as there is no 16-bit indirect call opcode.
6751         (m32c_override_options_after_change): New, likewise.
6752
6753 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6754
6755         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6756         emitting the conditional move in the inner mode of the SUBREG.
6757
6758 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6759
6760         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6761         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6762         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6763         (ia64_preferred_reload_class): Make static.  Change rclass argument
6764         and result types from enum reg_class to reg_class_t.
6765
6766 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6767
6768         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6769         call for single operand expression.
6770
6771 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6772
6773         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6774         if there is a call statement to pure or const function in the block.
6775
6776 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6777
6778         Fix several build errors for pdp11 target.
6779         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6780         (cbranchdf4): Conditional on TARGET_FPU.
6781         (movdf): Ditto; correct alternatives check.
6782         (movmemhi): Fix predicate and constraint.
6783         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6784
6785 2010-10-20  Richard Guenther  <rguenther@suse.de>
6786
6787         PR lto/45667
6788         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6789         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6790         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6791         when in LTO.
6792
6793 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6794
6795         PR fortran/42169
6796         * ira-emit.c (store_can_be_removed_p): Return false instead of
6797         gcc_unreachable.
6798
6799 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6800
6801         * fold-const.c (fold_binary_loc): New transformation.
6802
6803 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6804
6805         PR target/46085
6806         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6807         (reduc_splus_v4df): Likewise.
6808
6809 2010-10-20  Richard Guenther  <rguenther@suse.de>
6810
6811         PR tree-optimization/45860
6812         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6813         conditional store replacement for non-register type stores.
6814
6815 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6816
6817         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6818         (self_referential_size): Use it instead of skip_simple_arithmetic.
6819
6820 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6821
6822         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6823         If the current function calls eh_return, claim live all registers
6824         that we need to check for liveness otherwise.
6825
6826 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6827
6828         * c-decl.c (c_write_global_declarations): Call
6829         objc_write_global_declarations when compiling Objective-C.
6830         * c-lang.c (finish_file): Removed.
6831
6832 2010-10-19  DJ Delorie  <dj@redhat.com>
6833
6834         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6835         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6836         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6837         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6838         * doc/tm.texi: Regenerate.
6839         * targhooks.h (default_label_align_after_barrier_max_skip,
6840         default_loop_align_max_skip, default_label_align_max_skip,
6841         default_jump_align_max_skip): Declare.
6842         * target.def (label_align_after_barrier_max_skip): New.
6843         (loop_align_max_skip): New.
6844         (label_align_max_skip): New.
6845         (jump_align_max_skip): New.
6846         * system.h (poison): Add those macros to the list.
6847         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
6848         (LOOP_ALIGN_MAX_SKIP): Remove.
6849         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
6850         (JUMP_ALIGN_MAX_SKIP): Remove.
6851         (default_label_align_after_barrier_max_skip): New.
6852         (default_loop_align_max_skip): New.
6853         (default_label_align_max_skip): New.
6854         (default_jump_align_max_skip): New.
6855         (compute_alignments): Use the new hooks.
6856         (shorten_branches): Likewise.
6857
6858 2010-10-19  Richard Henderson  <rth@redhat.com>
6859
6860         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
6861         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
6862         (fma4i_fmadd_<mode>): New.
6863         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
6864         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
6865         standard fma patterns.
6866         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
6867         enable for FMA.
6868         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6869         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6870         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
6871
6872 2010-10-19  Paul Koning  <pkoning@equallogic.com>
6873
6874         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
6875         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
6876
6877 2010-10-19  Richard Henderson  <rth@redhat.com>
6878
6879         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
6880         (fmadf4, *fmsdf4, *nfmadf4): New.
6881         (fmaxf4, *fmsxf4, *nfmaxf4): New.
6882
6883 2010-10-19  Michael Eager  <eager@eagercon.com>
6884
6885         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
6886         Use sjlj unwind info for exceptions.
6887
6888 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
6889
6890         PR fortran/43414
6891         * dwarf2out.c (add_calling_convention_attribute): Flag main
6892         Fortran subroutine with DW_AT_main_subprogram.
6893
6894 2010-10-19  Nick Clifton  <nickc@redhat.com>
6895
6896         * config/rx/rx.c (rx_function_value): Small integer types are
6897         promoted to SImode.
6898         (rx_promote_function_mode): New function.
6899         (TARGET_PROMOTE_FUNCTION_MODE): Define.
6900
6901 2010-10-19  Nick Clifton  <nickc@redhat.com>
6902
6903         * config/mep/mep.c (mep_print_operand): Use
6904         targetm.strip_name_encoding.
6905         (mep_output_aligned_common): Likewise.
6906
6907 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
6908
6909         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
6910
6911 2010-10-18  Richard Henderson  <rth@redhat.com>
6912
6913         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
6914         (fma (neg a) (neg b) c) and (fma a (neg b) c).
6915
6916 2010-10-18  Richard Henderson  <rth@redhat.com>
6917
6918         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
6919         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
6920         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
6921         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
6922         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
6923         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
6924         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
6925         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
6926         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
6927         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
6928         (bdesc_multi_arg): Remove the corresponding builtins.
6929         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
6930         (UNSPEC_FMA4_FMSUBADD): Remove.
6931         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
6932         * config/i386/sse.md (FMA4MODEF4): Remove.
6933         (FMAMODE): Add.
6934         (fma<mode>4): New expander.
6935         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
6936         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
6937         (*fma4i_fmsub_<mode>): Similarly.
6938         (*fma4i_fnmadd_<mode>): Similarly.
6939         (*fma4i_fnmsub_<mode>): Similarly.
6940         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
6941         with the first operand.
6942         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
6943         of explicit arithmetic.  Macroize with AVXMODEF2P.
6944         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
6945         (xop_frcz<mode>2): Macroize with FMAMODE.
6946         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
6947         the first operand.
6948         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
6949         extra negations.
6950         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
6951         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
6952         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
6953         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
6954         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
6955         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
6956         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
6957         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
6958
6959 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
6960
6961         PR rtl-optimization/45966
6962         * combine.c (try_combine): If added_sets_2, deal with the case
6963         where i0 feeds i1 and i1 feeds i2.
6964
6965 2010-10-18  Jan Hubicka  <jh@suse.cz>
6966
6967         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
6968         preserve flags before trying to guess on visibility.
6969         (varpool_externally_visible_p): New function.
6970         (function_and_variable_visibility): Use it.
6971
6972 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6973
6974         Implemented parsing @synthesize and @dynamic for Objective-C.
6975         * c-parser.c (c_parser_external_declaration): Recognize
6976         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
6977         (c_parser_objc_at_synthesize_declaration): New.
6978         (c_parser_objc_at_dynamic_declaration): New.
6979
6980 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6981
6982         * c-parser.c (c_parser_objc_class_declaration): After finding an
6983         error, parse the whole declaration then reset parser->error.
6984
6985 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
6986
6987         PR target/46041
6988         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
6989         * builtins.c (mode_has_fma): Ditto.
6990
6991 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
6992
6993         PR target/36898
6994         PR middle-end/43760
6995         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
6996
6997 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
6998
6999         * config/i386/i386.c (ix86_option_override_internal): Define and
7000         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7001         default.
7002         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7003         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7004
7005 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7006
7007         Merge from 'apple/trunk' branch on FSF servers.
7008         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7009         following Objective-C change:
7010
7011         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7012
7013         Radar 4301047
7014         * c-parse.in (objc_quals): Build objc qualifier list same way
7015         as gcc-3.3
7016
7017 2010-10-18  Jan Hubicka  <jh@suse.cz>
7018
7019         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7020         function_and_variable_visibility): Revert accidental commit.
7021
7022 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7023
7024         Merge from 'apple/trunk' branch on FSF servers.
7025         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7026         the following Objective-C change:
7027
7028         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7029
7030         Radar 4204796
7031         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7032         'volatilized' type used in a typeof operator.
7033
7034 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7035
7036         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7037         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7038         rewrite modelled on gimple_purge_dead_eh_edges.
7039         (gimple_purge_all_dead_abnormal_call_edges): New function.
7040         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7041         directly instead of through gimple_purge_dead_abnormal_call_edges.
7042         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7043         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7044         removed AB side-effects from one of its statements.
7045         (init_pre): Initialize need_ab_cleanup.
7046         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7047         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7048
7049 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7050
7051         PR c/46015
7052         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7053         on computed goto argument.
7054
7055 2010-10-18  Richard Guenther  <rguenther@suse.de>
7056
7057         PR tree-optimization/45967
7058         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7059         (could_have_pointers): Likewise.
7060         (handle_rhs_call, handle_const_call, handle_pure_call,
7061         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7062         (struct fieldoff): Add must_have_pointers field.
7063         (type_must_have_pointers): New function.
7064         (field_must_have_pointers): Likewise.
7065         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7066         Adjust field merging.
7067         (create_function_info_for): May-have-pointers of varinfo is
7068         almost always true.
7069         (create_variable_info_for_1): Likewise.
7070
7071 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7072
7073         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7074         of operands to vec_concat.
7075
7076 2010-10-18  Richard Guenther  <rguenther@suse.de>
7077
7078         PR lto/44950
7079         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7080         also clear references to entries of it.
7081
7082 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7083
7084         PR other/43448
7085         * gccbug.in: Remove.
7086         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7087         (doc, distclean, install-common): Remove reference to gccbug.
7088         * configure: Regenerate.
7089         * configure.ac (all_outputs): Remove gccbug.
7090         * doc/configfiles.texi: Remove references to gccbug.
7091         * doc/sourcebuild.texi: Dito.
7092
7093 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7094
7095         PR middle-end/46019
7096         * fold-const.c (fold_binary_loc): If integer_pow2p has
7097         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7098
7099 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7100             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7101
7102         * gengtype.c (verbosity_level): Add variable.
7103         (set_gc_used): Count variables for verbosity.
7104         (close_output_files): Backing up files, counting written ones
7105         verbosily.
7106         (write_types): Count emitted functions for verbosity. Added
7107         debug messages.
7108         (write_enum_defn): Count structures for verbosity. Added debug
7109         messages.
7110         (gengtype_long_options): Add "verbose" & "backupdir".
7111         (print_usage): Ditto.
7112         (main): Verbose display of parsed files.
7113
7114         * gengtype.h (verbosity_level): Add declaration.
7115
7116 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7117
7118         * gengtype.c (parse_program_options): Add allocation of
7119         plugin_files, and correct test on nb_plugin_files.
7120
7121 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7122
7123         Merge from 'apple/trunk' branch on FSF servers.
7124
7125         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7126
7127         Radar 4133425
7128         * c-decl.c (undeclared_variable): Issue diagnostic on
7129         private 'ivar' access.
7130
7131 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7132
7133         PR target/46051
7134         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7135         generated sequence to match *avx_vperm2f128<mode>_nozero.
7136         (vec_interleave_lowv4df): Ditto.
7137         (vec_interleave_highv8sf): Ditto.
7138         (vec_interleave_lowv8sf): Ditto.
7139
7140 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7141
7142         * libgcov.c (create_file_directory): Enable it for win32 case.
7143         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7144         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7145         (GCOV_PREFIX_SKIP): Likewise.
7146
7147 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7148
7149         * doc/objc.texi (GNU Objective-C runtime API): New section.
7150         (Modern GNU Objective-C runtime API): New section.
7151         (Traditional GNU Objective-C runtime API): New section.
7152         (Executing code before main): Mention that this section is
7153         specific to the GNU Objective-C runtime.
7154         (Garbage Collection): Same.
7155
7156 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7157
7158         * c-parser.c (c_parser_for_statement): Move initialization of
7159         cond and incr before if.
7160
7161 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7162
7163         * target.def (preferred_output_reload_class): New hook.
7164         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7165         * doc/tm.texi: Regenerate.
7166         * targhooks.c (default_preferred_output_reload_class): New function.
7167         * targhooks.h (default_preferred_output_reload_class): Declare.
7168         * reload.c (find_dummy_reload): Change rclass argument type from
7169         enum reg_class to reg_class_t. Change this_alternative array type
7170         from enum reg_class to reg_class_t.
7171         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7172         (push_reload): Change preferred_class variable type to reg_class_t.
7173         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7174         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7175         argument type from enum reg_class to reg_class_t. Use
7176         HARD_REGISTER_NUM_P predicate.
7177         * recog.h (reg_fits_class_p): Update prototype.
7178
7179         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7180         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7181         Remove.
7182         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7183         static. Change regclass argument and result types from enum reg_class
7184         to reg_class_t.
7185         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7186
7187 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7188
7189         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7190         visibility enum, and handle @package.
7191
7192 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7193
7194         * doc/objc.texi (What you can and what you cannot do in +load):
7195         Document that sending messages to constant string objects in +load
7196         is not guaranteed to work.
7197
7198 2010-10-16  Jan Hubicka  <jh@suse.cz>
7199
7200         PR middle-end/44206
7201         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
7202         existence of refrences before removing the function.
7203
7204 2010-10-16  Jan Hubicka  <jh@suse.cz>
7205
7206         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
7207         only_called_at_startup and only_called_at_exit.
7208         (cgraph_propagate_frequency): Compute only_called_at_startup and
7209         only_called_at_exit.
7210         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
7211         only_called_at_exit.
7212         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
7213         flags.
7214         * predict.c (compute_function_frequency): Initialize the new flags.
7215
7216 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7217
7218         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
7219         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
7220         on the bounds of its domain.
7221         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
7222
7223 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
7224
7225         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
7226         * config/avr/avr-protos.h (preferred_reload_class): Remove.
7227         * config/avr/avr.c (preferred_reload_class): Remove.
7228         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
7229         * config/pa/pa.c (emit_move_sequence): Update comment
7230         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
7231         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
7232         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
7233         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
7234         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
7235         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
7236         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
7237         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
7238         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
7239         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
7240         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
7241         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
7242         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
7243
7244 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7245
7246         * opts.c (set_fast_math_flags,
7247         set_unsafe_math_optimizations_flags): Make static.
7248         * toplev.h (set_fast_math_flags,
7249         set_unsafe_math_optimizations_flags): Remove prototypes.
7250
7251 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7252
7253         * config/arm/arm.c (arm_option_optimization): Set
7254         flag_section_anchors to 1 not 2.
7255         * config/i386/i386.c (ix86_option_override_internal): Check
7256         global_options_set.x_flag_zee and
7257         global_options_set.x_flag_omit_frame_pointer.
7258         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
7259         flag_zee to 2.
7260         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7261         global_options_set.x_flag_omit_frame_pointer.
7262         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
7263         opts->x_flag_section_anchors to 1 not 2.
7264         * config/sh/sh.c (sh_option_optimization): Don't set
7265         flag_schedule_insns to 2.
7266         (sh_option_override): Check
7267         global_options_set.x_flag_schedule_insns.
7268         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
7269
7270 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
7271
7272         * configure.ac: Make sure inhibit_libc remains false for mingw targets
7273         as cross.
7274         * configure: Regenerated.
7275
7276 2010-10-15  Xinliang David Li  <davidxl@google.com>
7277
7278         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
7279         function.
7280         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
7281         into a recursive function.
7282
7283 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
7284
7285         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
7286         (*movdfcc_1): ditto.
7287
7288 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7289
7290         * target.def (target_option.init_struct): New hook.
7291         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
7292         * doc/tm.texi: Regenerate.
7293         * hooks.c (hook_void_gcc_optionsp): New.
7294         * hooks.h (hook_void_gcc_optionsp): Declare.
7295         * langhooks-def.h (lhd_init_options_struct): Remove.
7296         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7297         * langhooks.c (lhd_init_options_struct): Remove.
7298         * opts.c (init_options_struct): Also call
7299         targetm.target_option.init_struct.
7300         * config/i386/i386.c (ix86_option_init_struct,
7301         TARGET_OPTION_INIT_STRUCT): New.
7302         (ix86_option_optimization): Move some settings to
7303         ix86_option_init_struct.
7304         * config/pdp11/pdp11.c (pdp11_option_init_struct,
7305         TARGET_OPTION_INIT_STRUCT): New.
7306         (pdp11_option_optimization): Move some settings to
7307         pdp11_option_init_struct.
7308         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
7309         rs6000_option_init_struct.  Use options structure pointer.
7310         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7311         * config/s390/s390.c (s390_option_init_struct,
7312         TARGET_OPTION_INIT_STRUCT): New.
7313         (s390_option_optimization): Don't set
7314         flag_asynchronous_unwind_tables here.
7315         * config/sh/sh.c (sh_option_init_struct,
7316         TARGET_OPTION_INIT_STRUCT): New.
7317         (sh_option_optimization): Don't set flag_finite_math_only here.
7318         * config/spu/spu.c (spu_option_optimization): Replace by
7319         spu_option_optimization.  Use options structure pointer.
7320         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7321
7322 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7323
7324         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
7325
7326         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
7327         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
7328         (Standard names): Document fma.
7329
7330         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
7331         __FP_FAST_FMAF, __FP_FAST_FMAL.
7332
7333         * builitns.c (expand_builtin_mathfn_ternary): New function for
7334         expanding ternary math functions, like fma.
7335         (expand_builtin): Call it for the fma builtins.
7336
7337         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
7338         ops at present.
7339
7340         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
7341         vectorizable functions to support vectorizing fma.
7342
7343         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7344         Handle fma builtins.
7345
7346         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
7347         (UNSPEC_VSX_MSUB): Ditto.
7348         (UNSPEC_VSX_NMADD): Ditto.
7349         (UNSPEC_VSX_NMSUB): Ditto.
7350         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
7351         of UNSPEC. Renumber combiner patterns.
7352         (vsx_fmsub<mode>4*): Ditto.
7353         (vsx_fnmadd<mode>4*): Ditto.
7354         (vsx_fnmsub<mode>4*): Ditto.
7355
7356         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
7357         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
7358         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
7359         (altivec_vmaddfp_1): Ditto.
7360         (altivec_vmaddfp_2): Ditto.
7361         (atlivec_mulv4sf3): Ditto.
7362         (altivec_vnmsubfp): Ditto.
7363         (altivec_vnmsubfp_1): Ditto.
7364         (altivec_vnmsubfp_2): Ditto.
7365         (altivec_vnmsubfp_3): Delete.
7366
7367         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7368         (fmasf4_fpr): Ditto.
7369         (fmssf4_fpr): Ditto.
7370         (fnmasf4_fpr): Ditto.
7371         (fnmssf4_fpr): Ditto.
7372         (fmadf4): Ditto.
7373         (fmadf4_fpr): Ditto.
7374         (fmsdf4_fpr): Ditto.
7375         (fnmadf4_fpr): Ditto.
7376         (fnmsdf4_fpr): Ditto.
7377
7378         * optabs.h (OTI_fma): Add fma optab.
7379         (fma_optab): Ditto.
7380
7381         * genopinit.c (optabs): Set fma optab.
7382
7383         * rtl.def (FMA): Add FMA rtl.
7384
7385         * tree.h (mode_has_fma): New function to return if MODE supports a
7386         fast multiply and add instruction.
7387         * builtins.c (mode_has_fma): Ditto.
7388
7389 2010-10-15  Jan Hubicka  <jh@suse.cz>
7390
7391         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7392         objects instead of bitmap.
7393         (produce_symtab): Likewise; output defined symbols first.
7394
7395 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7396
7397         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7398         Option Summary and Index.
7399
7400 2010-10-15  Richard Guenther  <rguenther@suse.de>
7401
7402         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7403         for automatic variables again.
7404
7405 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7406
7407         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7408         conforming to C99.
7409
7410 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7411
7412         * config/rx/rx.c (rx_option_optimization): Change to
7413         rx_override_options_after_change.  Don't change
7414         flag_lto_compression_level.  Don't check for changes to whether
7415         FPU instructions can be used.  Check and set only
7416         flag_finite_math_only, not other fast-math flags.
7417         (rx_option_override): Call rx_override_options_after_change.
7418         (TARGET_OPTION_OPTIMIZATION): Remove.
7419         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7420
7421 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7422
7423         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7424         disable section anchors for lang_hooks.name[4] != 'O'.
7425
7426 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7427
7428         * config/frv/frv.c (frv_option_optimization,
7429         TARGET_OPTION_OPTIMIZATION): Remove.
7430         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7431
7432 2010-10-15  Michael Matz  <matz@suse.de>
7433
7434         * cgraphunit.c (clone_of_p): Define unconditionally.
7435
7436 2010-10-15  Richard Guenther  <rguenther@suse.de>
7437
7438         PR lto/45957
7439         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7440
7441 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7442
7443         * ifcvt.c (find_active_insn_before): New function.
7444         (find_active_insn_after): New function.
7445         (cond_exec_process_if_block): Use new functions to replace
7446         prev_active_insn() and next_active_insn().
7447
7448 2010-10-14  Yao Qi  <yao@codesourcery.com>
7449
7450         PR target/45447
7451         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7452         va_list_name to TYPE_STUB_DECL (va_list_type).
7453
7454 2010-10-14  Jan Hubicka  <jh@suse.cz>
7455
7456         PR middle-end/45621
7457         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7458         redirected to clone, be happy.
7459         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7460         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7461         former_clone_of unconditionally.
7462
7463 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7464
7465         Merge from FSF apple 'trunk' branch.
7466         2006 Fariborz Jahanian  <fjahanian@apple.com>
7467
7468         Radars 4436866, 4505126, 4506903, 4517826
7469         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7470         (c_lex_one_token): Handle property attributes.
7471         (c_parser_external_declaration): Handle @property.
7472         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7473         @alias, @class, @end and @property objc keywords.
7474         (c_parser_objc_methodprotolist): Handle @property.
7475         (c_parser_objc_property_attrlist): New.
7476         (c_parser_objc_at_property): New.
7477         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7478         (build_modify_expr): Likewise.
7479
7480 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7481
7482         PR tree-optimization/46008
7483         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7484
7485 2010-10-14  Richard Guenther  <rguenther@suse.de>
7486
7487         PR tree-optimization/44913
7488         * tree-data-ref.c (disjoint_objects_p): Remove.
7489         (dr_may_alias_p): Simplify.  Only hand the base object to
7490         the alias-oracle.
7491         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7492         some more trees, bail out instead of asserting.
7493         (ptr_derefs_may_alias_p): Likewise.  Export.
7494         (refs_may_alias_p_1): Handle STRING_CSTs.
7495         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7496
7497 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7498
7499         PR c/45969
7500         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7501         type with excess precision for boolean operations.
7502
7503 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7504             Basile Starynkevitch  <basile@starynkevitch.net>
7505
7506         * gengtype.c:  Include getopt.h and version.h.
7507
7508         (lang_bitmap, struct outf, outf_p)
7509         (get_output_file_with_visibility, oprintf): Definitions moved to
7510         gengtype.h
7511         (output_files, header_file, srcdir, srcdir_len, this_file)
7512         (do_dump): No more static variables.
7513         (do_debug): New.
7514         (dbgprint_count_type_at): Added new function.
7515         (gengtype_long_options): New.
7516         (print_usage, print_version, parse_program_options): New.
7517         (main): Call parse_program_options, and removed old option
7518         handling code.  Added some debug output.
7519
7520         * gengtype.h:  Updated copyright year.
7521         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7522         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7523         Moved from gengtype.c to here.
7524         (do_debug, read_state_filename, write_state_filename): New variables.
7525         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7526
7527         * Makefile.in:
7528         (REVISION): Always defined.
7529         (version.o): Removed ifdef REVISION_c.
7530         (s-gtype): Pass arguments to build/gengtype program.
7531         (build/version.o): Added building rule.
7532         (build/gengtype$(build_exeext)): Added build/version.o.
7533
7534 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7535
7536         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7537         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7538         __strong macros.
7539
7540 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7541
7542         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7543         may_trap_or_fault_p instead of may_trap_p predicate.
7544         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7545         (substitute_placeholder_in_expr): Likewise.
7546         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7547         flag on MEM_REF nodes.
7548         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7549         flags on INDIRECT_REF nodes.
7550
7551 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7552
7553         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7554         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7555         (arm*-*-eabi*) <tm_file>: Likewise.
7556         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7557         (frv-*-*linux*) <tm_file>: Likewise.
7558         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7559         and associated helper macros.
7560         * config/frv/frv-abi.h: Delete.
7561
7562 2010-10-14  Richard Guenther  <rguenther@suse.de>
7563
7564         PR lto/44561
7565         * tree.def (NULLPTR_TYPE): New tree code.
7566         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7567         * dwarf2out.c (is_base_type): Likewise.
7568         (gen_type_die_with_usage): Likewise.
7569         * sdbout.c (plain_type_1): Likewise.
7570         * tree.c (build_int_cst_wide): Likewise.
7571         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7572
7573 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7574
7575         * params.c (params_finished): New.
7576         (add_params): Assert !params_finished.
7577         (finish_params): New.
7578         (set_param_value_internal): Take params and params_set
7579         parameters.  Assert params_finished.
7580         (set_param_value, maybe_set_param_value): Take params and
7581         params_set parameters.  Update calls to set_param_value_internal.
7582         (set_default_param_value): Assert !params_finished.  Don't use
7583         set_param_value_internal.
7584         (default_param_value, init_param_values): New.
7585         * params.h (struct param_info): Change value to default_value.
7586         Remove set.
7587         (set_param_value, maybe_set_param_value): Add params and
7588         params_set parameters.
7589         (PARAM_VALUE): Get parameters from global_options.
7590         (PARAM_SET_P): Remove.
7591         (finish_params, default_param_value, init_param_values): New.
7592         * common.opt (param_values): New Variable.
7593         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7594         maybe_set_param_value.
7595         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7596         arguments to maybe_set_param_value.
7597         * config/picochip/picochip.c (picochip_option_override): Pass
7598         extra arguments to maybe_set_param_value.
7599         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7600         extra arguments to maybe_set_param_value.
7601         * config/s390/s390.c (s390_option_override): Use
7602         maybe_set_param_value instead of set_param_value.  Pass extra
7603         arguments to maybe_set_param_value.
7604         * config/sparc/sparc.c (sparc_option_override): Pass extra
7605         arguments to maybe_set_param_value.
7606         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7607         maybe_set_param_value.
7608         * opts.c (handle_param): Take opts and opts_set parameters.
7609         Update call to set_param_value.
7610         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7611         initial_loop_invariant_max_bbs_in_loop): Remove.
7612         (init_options_once): Don't set them.
7613         (init_options_struct): Initialize parameters structures.
7614         (default_options_optimization): Use default_param_value when
7615         restoring defaults.  Update calls to maybe_set_param_value.
7616         (finish_options): Update calls to maybe_set_param_value.
7617         (common_handle_option): Update calls to handle_param and
7618         set_param_value.
7619         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7620         (general_init): Call finish_params.
7621
7622 2010-10-14  Nick Clifton  <nickc@redhat.com>
7623
7624         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7625         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7626         (FIRST_PSEUDO_REGISTER): Increase by one.
7627         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7628         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7629         (MODES_TIEABLE): Call mn10300_modes_tieable.
7630         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7631         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7632         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7633         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7634         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7635         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7636         (mn10300_cc_status_mdep): Delete.
7637         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7638         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7639         the combine-stack-adjust pass.
7640         (print_operand): Use the mode of the comparison operation to
7641         select the comparison suffix.
7642         (notice_update_cc): Delete.
7643         (mn10300_secondary_reload_class): Remove test for stack pointer
7644         based arithmetic.
7645         (output_tst): Rename to mn10300_output_cmp.
7646         (impossible_plus_operand): Move into predicates.md.
7647         (mn10300_legitimize_address): Make static.
7648         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7649         constant pic operands.
7650         (mn10300_legitimate_constant_p): New function.
7651         (mn10300_case_values_threshold): Make static.
7652         (mn10300_hard_regno_mode_ok): New function.
7653         (mn10300_modes_tieable): New function.
7654         (mn10300_select_cc_mode): New function.
7655         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7656         * config/mn10300/mn10300-protos.h: Tidy.
7657         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7658         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7659         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7660         with clobbers or sets of CC_REG.
7661         (CC_REG): Define.
7662         (mov*): Remove use of CLR instruction.
7663         (cbranch_si4_<code>): New pattern/split.
7664         (integer_conditional_branch): New pattern.
7665         (cbranch_sf4_<code>): New pattern/split.
7666         (float_conditional_branch): New pattern.
7667         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7668         move a value at the same time.
7669         (cc0 peepholes): Remove.
7670
7671 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7672
7673         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7674         on RTX_FRAME_RELATED_P insns and the insn to which
7675         NOTE_INSN_EPILOGUE_BEG is attached.
7676         * sched-vis.c (print_value): Allow NULL value.
7677
7678 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7679
7680         PR rtl-optimization/45570
7681         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7682         assert that we are pipelining outer loops.  Allow returning
7683         zero predecessors.
7684
7685 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7686
7687         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7688         (tidy_control_flow): Tidy vertical space.
7689         (sel_remove_bb): New variable idx.  Use it to remember the basic
7690         block index before deleting the block.
7691         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7692         (sel_merge_blocks): ... here.
7693         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7694
7695 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7696
7697         * cse.c (is_dead_reg): Change into inline function that is not
7698         called through for_each_rtx.
7699         (set_live_p): Adjust caller.
7700         (insn_live_p): Don't reset DEBUG_INSNs here.
7701         (struct dead_debug_insn_data): New data.
7702         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7703         (delete_trivially_dead_insns): If there is just one setter for the
7704         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7705         and add DEBUG_INSN for it right before the removed setter and
7706         use the DEBUG_EXPR instead of the dead pseudo.
7707
7708 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7709
7710         * et-forest.c (et_nca): Return NULL immediately when
7711         the dominance forest has disjoint components.
7712
7713 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7714
7715         * ira.c (setup_class_hard_regs): Fix typo in indexing
7716         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7717
7718 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7719
7720         * graph.c (inbb): New variable.
7721         (start_bb): Set inbb to 1 if output is inside of a building block.
7722         (end_bb): Check if output is inside of a building block.
7723
7724 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7725
7726         PR rtl-optimization/45912
7727         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7728         regno of registers instead of their index to compute the alignment.
7729
7730 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7731
7732         * config/i386/i386.c (ix86_build_const_vector): Check vector
7733         mode instead of scalar mode.
7734         (ix86_build_signbit_mask): Likewise.
7735         (ix86_expand_fp_absneg_operator): Updated.
7736         (ix86_expand_copysign): Likewise.
7737         (ix86_expand_int_vcond): Likewise.
7738         (ix86_emit_swdivsf): Likewise.
7739         (ix86_sse_copysign_to_positive): Likewise.
7740         (ix86_expand_sse_fabs): Likewise.
7741         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7742         * config/i386/sse.md (copysign<mode>3): Likewise.
7743         (sse2_cvtudq2ps): Likewise.
7744         (vec_unpacku_float_hi_v4si): Likewise.
7745         (vec_unpacku_float_lo_v4si): Likewise.
7746
7747         * config/i386/i386.c (ix86_builtins): Add
7748         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7749         (bdesc_args): Likewise.
7750         (ix86_builtin_vectorized_function): Support
7751         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7752         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7753         and IX86_BUILTIN_CVTPS2DQ256.
7754         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7755
7756         * config/i386/sse.md (STORENT_MODE): New.
7757         (VEC_FLOAT_MODE): Likewise.
7758         (VEC_EXTRACT_MODE): Likewise.
7759         (*avx_cvtdq2pd256_2): Likewise.
7760         (vec_pack_trunc_v4df): Likewise.
7761         (vec_interleave_highv8sf): Likewise.
7762         (vec_interleave_lowv8sf): Likewise.
7763         (storent<mode>): Macroized.
7764         (<code><mode>2: absneg): Likewise.
7765         (copysign<mode>3): Likewise.
7766         (vec_extract<mode>): Likewise.
7767
7768         PR target/44180
7769         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7770         for V8SFmode.
7771
7772 2010-10-13  Richard Guenther  <rguenther@suse.de>
7773             H.J. Lu  <hongjiu.lu@intel.com>
7774
7775         * config/i386/sse.md (reduc_splus_v8sf): Add.
7776         (reduc_splus_v4df): Likewise.
7777         (vec_unpacks_hi_v8sf): Likewise.
7778         (vec_unpacks_lo_v8sf): Likewise.
7779         (*avx_cvtps2pd256_2): Likewise.
7780         (vec_unpacks_float_hi_v8si): Likewise.
7781         (vec_unpacks_float_lo_v8si): Likewise.
7782         (vec_interleave_highv4df): Likewise.
7783         (vec_interleave_lowv4df): Likewise.
7784
7785 2010-10-13  Richard Guenther  <rguenther@suse.de>
7786
7787         PR objc/45878
7788         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7789         alone if there are no virtual methods.
7790
7791 2010-10-13  Richard Henderson  <rth@redhat.com>
7792
7793         * expr.c (build_personality_function): Take parameter LANG instead
7794         of parameter NAME.  Build the name based on the lang prefix and the
7795         unwind method in use.
7796         * tree.c (lhd_gcc_personality): Update call to
7797         build_personality_function.
7798
7799 2010-10-13  Richard Guenther  <rguenther@suse.de>
7800
7801         PR objc/45878
7802         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7803
7804 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7805
7806         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7807         Canonicalize input operands of ASM_OPERANDS insns.
7808
7809 2010-10-13  Richard Guenther  <rguenther@suse.de>
7810
7811         PR tree-optimization/45788
7812         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7813         EH update until fixup-cfg.
7814
7815 2010-10-13  Julian Brown  <julian@codesourcery.com>
7816
7817         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7818         from CORE_REGS and GENERAL_REGS classes.
7819         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7820         final constraint for register preferencing.
7821
7822 2010-10-13  Richard Guenther  <rguenther@suse.de>
7823
7824         PR tree-optimization/45970
7825         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7826         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7827         (stmt_kills_ref_p): Likewise.
7828         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7829
7830 2010-10-13  Richard Guenther  <rguenther@suse.de>
7831
7832         PR tree-optimization/45982
7833         * tree-ssa-structalias.c (make_constraints_to): New function.
7834         (make_constraint_to): Implement in terms of make_constraints_to.
7835         (find_func_aliases): Properly make return values of pure/const
7836         functions escape if they assign to sth that is not a pointer.
7837
7838 2010-10-13  Richard Guenther  <rguenther@suse.de>
7839
7840         PR middle-end/45874
7841         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7842         Fixup the CFG when EH was fixed up.
7843
7844 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7845
7846         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
7847         Use operand's type for POINTER_PLUS_EXPR.
7848
7849 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
7850
7851         * c-parser.c (c_parser_for_statement): Initialize incr.
7852
7853 2010-10-12  Xinliang David Li  <davidxl@google.com>
7854
7855         PR tree-optimization/45972
7856         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
7857         with too many arguments.
7858
7859 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7860
7861         PR fortran/45636
7862         * tree-ssa-forwprop.c: Include expr.h.
7863         (constant_pointer_difference, simplify_builtin_call): New functions.
7864         (tree_ssa_forward_propagate_single_use_vars): Call
7865         simplify_builtin_call on builtin calls.
7866
7867 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
7868
7869         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
7870         (*adddi3_extend_sp32): Likewise.
7871         (*subdi3_insn_sp32): Likewise.
7872         (*subdi3_extend_sp32): Likewise.
7873         (*negdi2_sp32): Use negative test for consistency.
7874
7875 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7876
7877         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
7878         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7879         * config/fixed-bit.h: Likewise.
7880         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7881         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7882         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
7883         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
7884         (DF_SIZE): Likewise.
7885         * doc/tm.texi: Regenerate.
7886
7887 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7888
7889         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
7890         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
7891         (*isel_reversed_unsigned_<mode>): New.
7892         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
7893         as valid comparisons and adjust operands and output appropriately.
7894         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
7895
7896 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
7897
7898         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
7899         DATA_ALIGNMENT and add COND parameter. Update comments above.
7900         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
7901         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
7902
7903 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
7904
7905         PR bootstrap/45958
7906         * exec-tool.in: Support '-plugin' as the second option to the linker.
7907
7908 2010-10-12  Richard Henderson  <rth@redhat.com>
7909
7910         PR middle-end/45962
7911         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
7912         (expand_stack_vars): Assert large base allocated when used.
7913
7914 2010-10-12  Richard Guenther  <rguenther@suse.de>
7915
7916         * tree-ssa-structalias.c (get_constraint_for_1): Constants
7917         only point to nonlocal, not anything.
7918
7919 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7920
7921         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
7922         unwind info for exceptions.
7923
7924 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7925
7926         PR testsuite/45851
7927         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
7928         Document optional target selector.
7929
7930 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
7931
7932         * flag-types.h: New.
7933         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
7934         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
7935         options.h.
7936         (OPTIONS_H): Define.
7937         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
7938         of options.h.
7939         * configure.ac (tm_include_list): Include options.h not flags.h.
7940         * configure: Regenerate.
7941         * flags.h: Include flag-types.h.  Include options.h at top of file
7942         again.
7943         (enum debug_info_type, enum debug_info_level, enum
7944         debug_info_usage, enum symbol_visibility, struct visibility_flags,
7945         enum ira_algorithm, enum ira_region, enum excess_precision, enum
7946         graph_dump_types, enum stack_check_type,
7947         enum warn_strict_overflow_code): Move to flag-types.h
7948         * opth-gen.awk: Include flag-types.h in options.h.
7949
7950 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7951
7952         * expr.c (store_expr): Share code for STRING_CST and
7953         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
7954         check if target is a MEM.
7955
7956         * rtl.h: Include hashtab.h.
7957         (iterative_hash_rtx): New prototype.
7958         * rtl.c (iterative_hash_rtx): New function.
7959         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
7960         (output_loc_list): Return immediately if emitted is set, set it.
7961         (hash_loc_operands, hash_locs, hash_loc_list,
7962         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
7963         optimize_location_lists_1, optimize_location_lists): New function.
7964         (dwarf2out_finish): Call optimize_location_lists.
7965         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
7966
7967 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7968
7969         PR testsuite/45974
7970         Revert:
7971         * Makefile.in ($(lang_checks_parallel))
7972         ($(lang_checks_parallelized)): Use single quotes for
7973         $(RUNTESTFLAGS), to allow passing quoted content.
7974
7975 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7976
7977         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
7978         actual_oldval.  Use __builtin_expect.
7979         (SUBWORD_VAL_CAS): Likewise.
7980
7981 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
7982
7983         * recog.c (nonmemory_operand): Call immediate_operand for
7984         CONSTANT_P operands.
7985
7986 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
7987
7988         * config/i386/i386.md (movmem<mode>): Macroize expander from
7989         movmem{si,di} using SWI48 mode iterator.
7990         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
7991         *strmovsi_rex_1 using P mode iterator.
7992         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
7993         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
7994         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
7995         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
7996         (setmem<mode>): Macroize expander from setmem{si,di} using
7997         SWI48 mode iterator.
7998         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
7999         *strsetsi_rex_1 using P mode iterator.
8000         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8001         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8002         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8003         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8004         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8005         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8006         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8007         mode iterator.
8008         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8009         *strlenqi_rex_1 using P mode iterator.
8010
8011 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8012
8013         PR bootstrap/45445
8014         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8015         static functions.
8016         (mark_ref_live, mark_ref_dead): Use them.
8017         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8018         Save the original reg, and use the new functions.
8019         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8020         changed.
8021         (check_and_make_def_conflict): Save the original reg.
8022
8023 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8024
8025         PR middle-end/45699
8026         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8027         thunks.
8028
8029 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8030
8031         * Makefile.in ($(lang_checks_parallel))
8032         ($(lang_checks_parallelized)): Use single quotes for
8033         $(RUNTESTFLAGS), to allow passing quoted content.
8034
8035         PR bootstrap/35855
8036         * opt-functions.awk (BEGIN): New section.
8037         (lower, upper, digit, alnum): New variables.
8038         (static_var, opt_sanitized_name): Use alnum instead of character
8039         classes, for non-C locale.
8040         * optc-gen.awk: Likewise.
8041         * opth-gen.awk: Likewise.
8042
8043 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8044
8045         * target.def (preferred_reload_class): New hook.
8046         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8047         * doc/tm.texi: Regenerate.
8048         * targhooks.c (default_preferred_reload_class): New function.
8049         * targhooks.h (default_preferred_reload_class): Declare.
8050         * reload.c (find_dummy_reload): Change preferred_class variable type
8051         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8052         target hook.
8053         (find_reloads): Change goal_alternative array type from int to
8054         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8055         (push_reload, find_reloads_address_part): Use
8056         TARGET_PREFERRED_RELOAD_CLASS target hook.
8057         * reload1.c (emit_input_reload_insns): Ditto.
8058         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8059         hook. Change rclass argument and secondary_class variable types from
8060         'enum reg_class' to reg_class_t.
8061
8062         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8063         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8064         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8065         Change regclass argument and result types from enum reg_class to
8066         reg_class_t.
8067         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8068
8069 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8070
8071         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8072         in masking operations.
8073         (simplify_const_unary_operation): Likewise.
8074         (simplify_binary_operation_1): Likewise.
8075         (simplify_const_binary_operation): Likewise.
8076         (simplify_const_relational_operation): Likewise.
8077         (simplify_ternary_operation): Likewise.
8078         (simplify_immed_subreg): Likewise.
8079
8080 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8081
8082         PR middle-end/45862
8083         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8084         (TARGET_SUPPORTS_WEAK): New.
8085         * doc/tm.texi: Regenerate.
8086         * defaults.h (SUPPORTS_WEAK): Update comment.
8087         (TARGET_SUPPORTS_WEAK): New.
8088         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8089         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8090         SUPPORTS_WEAK.
8091         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8092         make_decl_one_only): Likewise.
8093         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8094         TARGET_SUPPORTS_WEAK.
8095         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8096         instead of SUPPORTS_WEAK.
8097
8098 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8099
8100         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8101
8102 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8103
8104         * vec.h (VEC_qsort): Define.
8105         * dbxout.c (output_used_types): Use it.
8106         * df-scan.c (df_sort_and_compress_refs): Likewise.
8107         (df_sort_and_compress_mws): Likewise.
8108         * genautomata.c (uniq_sort_alt_states): Likewise.
8109         (evaluate_equiv_classes): Likewise.
8110         (output_trans_table): Likewise.
8111         (output_state): Likewise.
8112         * gimplify.c (compare_case_labels): Likewise.
8113         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8114         * ipa.c (build_cdtor_fns): Likewise.
8115         * lto.c (lto_wpa_write_files): Likewise.
8116         * sel-sched.c (fill_vec_av_set): Likewise.
8117         * tree-predcom.c (determine_roots_comp): Likewise.
8118         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8119         (splice_param_accesses): Likewise.
8120         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8121         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8122         (reassociate_bb): Likewise.
8123         * tree-ssa-sccvn.c (sort_scc): Likewise.
8124         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8125
8126 2010-10-11  Ian Lance Taylor  <iant@google.com>
8127
8128         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8129         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8130         TREE_THIS_NOTRAP when appropriate.
8131         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8132         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8133         newly created MEM_REF.
8134
8135 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8136
8137         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8138         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8139         (picochip_incoming_function_arg): Delete.
8140         (picochip_arg_advance): Delete.
8141         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8142         (FUNCTION_INCOMING_ARG): Delete.
8143         (FUNCTION_ARG_ADVANCE): Delete.
8144         * config/picochip/picochip.c (picochip_function_arg): Take a
8145         const_tree and a bool.
8146         (picochip_incoming_function_arg): Likewise.
8147         (picochip_arg_advance): Likewise.
8148         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8149         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8150
8151 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8152
8153         PR middle-end/45955
8154         * ipa.c (build_cdtor): Delete endless loop.
8155
8156 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8157
8158         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8159         checksum-options.
8160         (checksum-options): Add.
8161         (cc1-dummy): Remove.
8162         (cc1-checksum): Change to run checksum over object files
8163         and options only.
8164         * dummy-checksum.c: Remove.
8165         * genchecksum.c: Update copyright.
8166         (usage): Allow multiple arguments.
8167         (BLOCKSIZE): Add.
8168         (dosum): Change for incremental checksum. Remove C output.
8169         (main): Iterate over all argument files. Add C output.
8170
8171 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8172
8173         * params.c (set_param_value_internal): New.
8174         (set_param_value): Use set_param_value_internal.
8175         (maybe_set_param_value, set_default_param_value): New.
8176         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8177         (maybe_set_param_value, set_default_param_value): Declare.
8178         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8179         * config/i386/i386.c (ix86_option_override_internal): Use
8180         maybe_set_param_value.
8181         * config/ia64/ia64.c (ia64_option_default_params,
8182         TARGET_OPTION_DEFAULT_PARAMS): New.
8183         (ia64_option_optimization): Move some code to
8184         ia64_option_default_params.
8185         * config/picochip/picochip.c (picochip_option_override): Use
8186         maybe_set_param_value.
8187         * config/rs6000/rs6000.c (rs6000_option_default_params,
8188         TARGET_OPTION_DEFAULT_PARAMS): New.
8189         (rs6000_option_override_internal): Use maybe_set_param_value.
8190         (rs6000_option_optimization): Move some code to
8191         rs6000_option_default_params.
8192         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8193         * config/sh/sh.c (sh_option_default_params,
8194         TARGET_OPTION_DEFAULT_PARAMS): New.
8195         (sh_option_optimization): Move some code to sh_option_default_params.
8196         * config/sparc/sparc.c (sparc_option_override): Use
8197         maybe_set_param_value.
8198         * config/spu/spu.c (spu_option_default_params,
8199         TARGET_OPTION_DEFAULT_PARAMS): New.
8200         (spu_option_optimization): Move some code to spu_option_default_params.
8201         (spu_option_override): Use maybe_set_param_value.
8202         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
8203         * doc/tm.texi: Regenerate.
8204         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
8205         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
8206         compiler_params.
8207         (default_options_optimization): Use maybe_set_param_value.
8208         (finish_options): Use maybe_set_param_value.
8209         * target.def (target_option.default_params): New hook.
8210         * toplev.c (general_init): Call targetm.target_option.default_params.
8211
8212 2010-10-11  Ira Rosen  <irar@il.ibm.com>
8213
8214         PR tree-optimization/45902
8215         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
8216         vector type for constants, unless it's a pointer.
8217
8218 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8219
8220         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
8221
8222 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
8223
8224         PR target/45870
8225         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
8226         (ix86_delegitimize_address): Use it.
8227
8228 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8229
8230         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
8231
8232 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
8233
8234         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
8235         to cum struct in the call to function_arg_advance.
8236         (alpha_function_arg_advance): Mark named as unused.
8237
8238 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
8239
8240         * config/mips/mips.c (mips_handle_option): Make "value" with
8241         ATTRIBUTE_UNUSED.
8242
8243 2010-10-09  Richard Henderson  <rth@redhat.com>
8244
8245         PR rtl-opt/33721
8246         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
8247         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
8248         required_align, tidy the code a bit.  Emit split_stack code in the
8249         right place.  Mark the return value with the alignment properly.
8250         * expr.h (allocate_dynamic_stack_space): Update decl.
8251         * builtins.c (expand_builtin_apply): Update call to
8252         allocate_dynamic_stack_space.
8253         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
8254         * calls.c (initialize_argument_information): Update call to
8255         allocate_dynamic_stack_space.
8256         (expand_call): Likewise.
8257
8258         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
8259         Don't update_stack_alignment here.
8260         (alloc_stack_frame_space): Make ALIGN unsigned.
8261         (stack_var_cmp): Sort by alignment too.
8262         (partition_stack_vars): Don't merge large and small alignment vars.
8263         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
8264         Take care when BASE is not virtual_stack_vars_rtx.
8265         (expand_stack_vars): Allocate dynamic stack space for large
8266         alignment variables.
8267         (expand_one_stack_var): Update all to expand_one_stack_var_at.
8268         (defer_stack_allocation): True for large alignment vars.
8269         (update_stack_alignment): Merge into ...
8270         (expand_one_var): ... here.
8271         (gimple_expand_cfg): Place code from expand_stack_vars.
8272
8273 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8274
8275         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8276         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
8277         (pdp11_function_arg_advance): New function.
8278         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8279
8280 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8281
8282         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
8283         * libgcc2.c: Likewise.
8284
8285 2010-10-09  Richard Guenther  <rguenther@suse.de>
8286
8287         PR lto/45956
8288         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
8289         Properly check if a decl is an automatic var.
8290
8291 2010-10-09  Richard Guenther  <rguenther@suse.de>
8292
8293         PR lto/45947
8294         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
8295
8296 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8297
8298         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
8299         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8300         * config/mmix/mmix.c (mmix_function_arg): Rename to...
8301         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
8302         bool arguments.
8303         (mmix_function_arg): New function.
8304         (mmix_function_incoming_arg): New function.
8305         (mmix_function_arg_advance): New function.
8306         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8307         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8308
8309 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8310
8311         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8312         * config/vax/vax.c (vax_function_arg): New function.
8313         (vax_function_arg_advance): New function.
8314         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8315
8316 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8317
8318         * config/pa/pa-protos.h (function_arg): Delete.
8319         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8320         * config/pa/pa.c (function_arg): Rename to...
8321         (pa_function_arg): ...this.  Make static.  Take a const_tree and
8322         a bool.
8323         (pa_function_arg_advance): New function.
8324         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8325
8326 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8327
8328         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8329         * config/m68k/m68k.c (m68k_function_arg): New function.
8330         (m68k_function_arg_advance): New function.
8331         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8332
8333 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8334
8335         * config/avr/avr-protos.h (function_arg): Delete.
8336         (function_arg_advance): Delete.
8337         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8338         * config/avr/avr.c (function_arg): Rename to...
8339         (avr_function_arg): ...this.  Make static.  Take a const_tree and
8340         a bool.
8341         (function_arg_advance): Rename to...
8342         (avr_function_arg_advance): ...this.  Make static.  Take a
8343         const_tree and a bool.
8344         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8345
8346 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8347
8348         * config/alpha/alpha-protos.h (function_arg): Delete.
8349         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8350         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
8351         * config/alpha/alpha.c (function_arg): Rename to...
8352         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
8353         a bool.  Delete TARGET_ABI_UNICOSMK code.
8354         (alpha_function_arg_advance): New function.
8355         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8356
8357 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8358
8359         * config/mep/mep-protos.h (mep_function_arg): Delete.
8360         (mep_function_arg_advance): Delete.
8361         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8362         * config/mep/mep.c (mep_function_arg): Make static.  Take a
8363         const_tree and a bool.
8364         (mep_function_arg_advance): Likewise.
8365         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8366
8367 2010-10-09  Richard Guenther  <rguenther@suse.de>
8368
8369         PR tree-optimization/45945
8370         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8371
8372 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8373
8374         PR tree-optimization/45612
8375         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8376         Test LABEL_DECLs as well.  Fix formatting issues.
8377         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8378         whose label is present in NON_SSA_VARS.
8379         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8380         as well.  Fix formatting issues.
8381         (visit_bb): Fix typos and formatting issue.
8382
8383 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8384
8385         PR tree-optimization/45950
8386         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8387         before initializing vno->op.
8388
8389 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8390
8391         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8392         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8393
8394 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8395
8396         PR target/45913
8397         * config/i386/i386.c (ix86_binary_operator_ok): Support
8398         "andhi/andsi/anddi" as a zero-extending move.
8399
8400 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8401
8402         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8403         into a temporary array.
8404
8405 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8406
8407         PR tree-optimization/45903
8408         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8409         of {A,L}SHIFTRT of MEM.
8410
8411 2010-10-08  Richard Guenther  <rguenther@suse.de>
8412
8413         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8414         Re-construct BLOCK_VARS.
8415         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8416         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8417         * tree.c (free_lang_data_in_block): Remove.
8418         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8419         Do not touch the BLOCK tree.
8420         * expr.c (expand_expr_real_1): Allow externals.
8421
8422 2010-10-08  Richard Guenther  <rguenther@suse.de>
8423
8424         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8425         Do not output BLOCK_SUBBLOCKS.
8426         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8427         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8428         Re-construct BLOCK_SUBBLOCKS of parent block.
8429         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8430         for BINFO_BASE_ACCESSES.
8431
8432 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8433
8434         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8435         (TREE_H): Include $(FLAGS_H) instead of options.h.
8436         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8437         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8438         * common.opt (flag_complex_method, flag_evaluation_order,
8439         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8440         Variable declarations.
8441         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8442         * configure: Regenerate.
8443         * flags.h: Condition out contents for target libraries.  Include
8444         options.h at end of file.
8445         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8446         flag_evaluation_order, flag_warn_unused_result): Remove.
8447         * gcc.c (main): Intialize global_options with global_options_init.
8448         * langhooks-def.h (lhd_init_options_struct): Declare.
8449         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8450         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8451         * langhooks.c (lhd_init_options_struct): New.
8452         * langhooks.h (struct lang_hooks): Add init_options_struct.
8453         Update comment on init_options.
8454         * optc-gen.awk: Generate initializer for global_options_init, not
8455         global_options.
8456         * opth-gen.awk: Condition out structure declarations for target
8457         libraries.  Declare global_options_init.
8458         * opts-common.c: Include flags.h instead of options.h.
8459         * opts.c (flag_warn_unused_result): Remove.
8460         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8461         read_cmdline_option.
8462         (initial_lang_mask, initial_min_crossjump_insns,
8463         initial_max_fields_for_field_sensitive,
8464         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8465         (init_options_once): New.  Split out of decode_options.
8466         (init_options_struct): New.  Split out of decode_options.
8467         (decode_cmdline_options_to_array_default_mask): New.
8468         (default_options_optimization): New.  Split out of decode_options.
8469         (decode_options): Move most code to other functions.  Update call
8470         to read_cmdline_options.
8471         (finish_options): New.  Split out of decode_options.
8472         * opts.h (decode_options): Add gcc_options parameters.
8473         (init_options_once, init_options_struct,
8474         decode_cmdline_options_to_array_default_mask): New.
8475         * toplev.c (flag_complex_method, flag_ira_algorithm,
8476         flag_ira_region, flag_evaluation_order): Remove.
8477         (general_init): Use global_options_init for initial flag values
8478         for global_dc.
8479         (toplev_main): Call init_options_once, init_options_struct,
8480         lang_hooks.init_options_struct,
8481         decode_cmdline_options_to_array_default_mask and
8482         lang_hooks.init_option before decode_options.  Update arguments to
8483         decode_options.
8484         * tree.h: Include flags.h instead of options.h.
8485
8486 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8487
8488         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8489
8490 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8491
8492         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8493         Delete.
8494         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8495         (FUNCTION_INCOMING_ARG): Delete.
8496         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8497         (function_arg_slotno): Likewise.  Take bool arguments.
8498         (sparc_arg_partial_bytes): Update call to it.
8499         (function_arg): Rename to...
8500         (sparc_function_arg_1): ...this.  Take bool arguments.
8501         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8502         (function_arg_advance): Rename to...
8503         (sparc_function_arg_advance): ...this.  Take bool argument.
8504         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8505         (TARGET_FUNCTION_INCOMING_ARG): Define.
8506
8507 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8508
8509         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8510         Delete.
8511         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8512         * config/bfin/bfin.c (function_arg_advance): Rename to...
8513         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8514         and bool arguments.
8515         (function_arg): Rename to...
8516         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8517         arguments.
8518         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8519
8520 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8521
8522         * config/score/score-protos.h (score_function_arg): Delete.
8523         (score_function_arg_advance): Delete.
8524         * config/score/score3.h (score3_function_arg_advance): Take a
8525         const_tree and a bool.
8526         (score3_function_arg): Likewise.
8527         * config/score/score7.h (score7_function_arg_advance): Likewise.
8528         (score7_function_arg): Likewise.
8529         * config/score/score3.c (score3_classify_arg): Likewise.
8530         (score3_function_arg_advance, score3_function_arg): Likewise.
8531         * config/score/score7.c (score7_classify_arg): Likewise.
8532         (score7_function_arg_advance, score7_function_arg): Likewise.
8533         * config/score/score.c (score_function_arg_advance): Likewise.
8534         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8535         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8536
8537 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8538
8539         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8540         (s390_function_arg): Delete.
8541         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8542         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8543         (s390_function_arg_integer): Likewise.
8544         (s390_function_arg_advance): Make static.  Take a const_tree and
8545         a bool.
8546         (s390_function_arg): Likewise.
8547         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8548
8549 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8550
8551         * config/spu/spu-protos.h (spu_function_arg): Delete.
8552         * config/spu/spu.h (FUNCTION_ARG): Delete.
8553         (FUNCTION_ARG_ADVANCE): Move code to ...
8554         * config/spu/spu.c (spu_function_arg_advance): New function.
8555         (spu_function_arg): Make static.  Take a const_tree and a bool.
8556         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8557         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8558
8559 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8560
8561         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8562
8563 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8564
8565         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8566         (init_vn_nary_op_from_op): New function.
8567         (init_vn_nary_op_from_stmt): New function.
8568         (vn_nary_op_lookup_1): New function.
8569         (sizeof_vn_nary_op): New function.
8570         (alloc_vn_nary_op_noinit): New function.
8571         (alloc_vn_nary_op): New function.
8572         (vn_nary_op_insert_into): New function.
8573         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8574         (vn_nary_op_lookup): Likewise.
8575         (vn_nary_op_lookup_stmt): Likewise.
8576         (vn_nary_op_insert_pieces): Likewise.
8577         (vn_nary_op_insert): Likewise.
8578         (vn_nary_op_insert_stmt): Likewise.
8579         (copy_nary): Likewise.
8580         (set_value_id_for_result): New function.
8581         (set_hashtable_value_ids): Call it.
8582
8583 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8584
8585         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8586         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8587
8588 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8589
8590         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8591         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8592
8593 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8594
8595         PR debug/45656
8596         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8597         debug isnsn.  Skip them when searching for cc0 setter.
8598         (set_live_p): Skip debug insns when searching for cc0 user.
8599
8600 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8601
8602         PR debug/45673
8603         PR debug/45604
8604         PR debug/45419
8605         PR debug/45408
8606         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8607         type of MEM_REFs to INTEGER_CSTs.
8608
8609 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8610
8611         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8612         m68hc11_print_operand_address.
8613
8614 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8615
8616         * builtins.c (rewrite_call_expr): Move code to...
8617         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8618         (rewrite_call_expr_array): New function.
8619         (fold_builtin_sprintf_chk_1): New function.
8620         (fold_builtin_sprintf_chk): Call it.
8621         (gimple_fold_builtin_sprintf_chk): Likewise.
8622         (fold_builtin_snprintf_chk_1): New function.
8623         (fold_builtin_snprintf_chk): Call it.
8624         (gimple_fold_builtin_snprintf_chk): Likewise.
8625         (gimple_rewrite_call_expr): Delete.
8626
8627 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8628
8629         * config.host: Update copyright year.
8630
8631 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8632
8633         * config.host (host_lto_plugin_soname): New shell variable.
8634         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8635         * config.in: Regenerate.
8636         * configure: Regenerate.
8637         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8638         LTO plugin shared library.
8639
8640 2010-10-07  Richard Henderson  <rth@redhat.com>
8641
8642         * target.h (enum unwind_info_type): Move ...
8643         * coretypes.h: ... here.
8644
8645 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8646
8647         * doc/objc.texi (Fast enumeration protocol): Mention that
8648         'unsigned int' can also be used instead of 'unsigned long' in
8649         countByEnumeratingWithState:objects:count:.
8650
8651 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8652
8653         * tree-sra.c (struct access): New field grp_assignment_write.
8654         (dump_access): Dump grp_assignment_write.
8655         (build_accesses_from_assign): Set grp_assignment_write.
8656         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8657         (mark_read_status): Renamed to mark_rw_status, individual values
8658         renamed too.
8659         (analyze_access_subtree): Changed type of mark_write to
8660         mark_read_status.  Fixed propagating of mark_read and
8661         mark_write.  Changed benefit estimate.  Updated comment.
8662
8663 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8664
8665         PR Tree-Vect/45847
8666         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8667         check for vectype_out returned by get_vectype_for_scalar_type().
8668
8669 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8670
8671         PR target/45805
8672         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8673         constraint, add register specifier in instruction template.
8674         (neon_vec_pack_trunc_<mode>): Likewise.
8675         (neon_vec_<US>mult_<mode>): Add register specifier to
8676         instruction template.
8677
8678 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8679
8680         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8681         cygwin2.o.
8682         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8683         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8684         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8685         (cygwin2.o): Likewise.
8686         * config/i386/cygwin1.c: Delete file.
8687         * config/i386/cygwin2.c: Likewise.
8688         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8689         make all {%!mno-cygwin} ones unconditional.
8690         (STARTFILE_SPEC): Likewise.
8691         (REAL_LIBGCC_SPEC): Likewise.
8692         (LIB_SPEC): Likewise.
8693         (CXX_WRAP_SPEC): Likewise.
8694         (LINK_SPEC): Likewise.
8695         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8696         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8697         (cygwin_gplusplus_include_dir): Delete now-unused array.
8698         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8699         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8700         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8701         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8702         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8703         (cygwin_local_include_dir): Delete now-unused array.
8704         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8705         (cygwin_cross_include_dir): Delete now-unused array.
8706         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8707         (cygwin_tool_include_dir): Delete now-unused array.
8708         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8709         (cygwin_standard_include_dir): Delete now-unused array.
8710         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8711         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8712         (cvt_to_mingw): Delete now-unused array.
8713         (mingw_scan): Remove prototype of deleted function.
8714         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8715         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8716         * doc/invoke.texi (-mcygwin): Don't document removed option.
8717         (-mno-cygwin): Likewise.
8718
8719 2010-10-07  Richard Guenther  <rguenther@suse.de>
8720
8721         * machmode.h (mode_for_vector): Declare.
8722         * stor-layout.c (mode_for_vector): New function, split out from ...
8723         (layout_type): ... here.
8724         * tree-vectorizer.h (current_vector_size): Declare.
8725         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8726         mask vector type is available.
8727         (get_vectype_for_scalar_type): Rename to ...
8728         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8729         size argument.
8730         (get_vectype_for_scalar_type): New wrapper around
8731         get_vectype_for_scalar_type_and_size using current_vector_size.
8732         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8733         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8734         of vect_analyze_loop here.
8735         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8736         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8737         to autodetect.
8738         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8739         V8SF to V8SI conversion builtin.
8740
8741 2010-10-07  Richard Guenther  <rguenther@suse.de>
8742
8743         * target.def (autovectorize_vector_sizes): New target hook.
8744         * targhooks.c (default_autovectorize_vector_sizes): New function.
8745         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8746         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8747         Document.
8748         * doc/tm.texi: Update.
8749         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8750         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8751
8752 2010-10-07  Richard Guenther  <rguenther@suse.de>
8753
8754         * target.def (units_per_simd_word): Rename to ...
8755         (preferred_simd_mode): ... this.  Return mode instead of size.
8756         * targhooks.c (default_units_per_simd_word): Rename to ...
8757         (default_preferred_simd_mode): ... this.  Return word_mode.
8758         * targhooks.h (default_preferred_simd_mode): Declare.
8759         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8760         (arm_preferred_simd_mode): ... this.  Re-implement.
8761         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8762         (ix86_preferred_simd_mode): ... this.  Re-implement.
8763         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8764         (sparc_preferred_simd_mode): ... this.  Re-implement.
8765         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8766         (mips_preferred_simd_mode): ... this.  Re-implement.
8767         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8768         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8769         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8770         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8771         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8772         * doc/tm.texi: Update.
8773
8774 2010-10-07  Richard Guenther  <rguenther@suse.de>
8775
8776         PR middle-end/45869
8777         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8778         of pointers.
8779
8780 2010-10-07  Alan Modra  <amodra@gmail.com>
8781
8782         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8783         rather than sign extension by hand.
8784
8785 2010-10-07  Jan Hubicka  <jh@suse.cz>
8786
8787         PR middle-end/45926
8788         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8789
8790 2010-10-07  Richard Guenther  <rguenther@suse.de>
8791
8792         PR bootstrap/45914
8793         * configure.ac: Fix typo.
8794         * configure: Regenerated.
8795
8796 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8797
8798         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8799         define_builtin_std where it's unnecessary.
8800         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8801
8802 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8803
8804         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8805         * doc/tm.texi.in: Regenerate.
8806         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8807         * targhooks.c (default_class_likely_spilled_p): Don't use the
8808         CLASS_LIKELY_SPILLED_P macro.
8809
8810         * config/arm/arm.md: Update comment.
8811
8812 2010-10-06  Jan Hubicka  <jh@suse.cz>
8813
8814         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8815         always be removed.
8816         (cgraph_externally_visible_p): We can not bring local comdats that
8817         are known to linker; fix handling of internal visibility.
8818         (function_and_variable_visibility): Likewise.
8819
8820 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8821
8822         PR rtl-optimization/45394
8823         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8824         (struct rtx_subst_pair): Remove AFTER field.
8825         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8826         (propagate_for_debug): Remove MOVE parameter and adjust.
8827         (try_combine): In the special case where I2 is a PARALLEL, combine only
8828         destinations of SETs and set I2SRC to the I2 source.
8829         Adjust calls to propagate_for_debug throughout.
8830         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8831         insns.
8832
8833 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8834
8835         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8836         switch on insn codes as sequence of ifs.
8837
8838 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8839
8840         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8841         be UI_NONE for picochip.
8842         (picochip_option_override): Do not disable exception flags.
8843         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8844         Declare.
8845
8846 2010-10-06  Richard Guenther  <rguenther@suse.de>
8847
8848         * Makefile.in (regmove.o): Depend on $(TARGET_H).
8849
8850 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
8851
8852         Implemented fast enumeration for Objective-C.
8853         * c-parser.c (objc_could_be_foreach_context): New.
8854         (c_lex_one_token): Recognize RID_IN keyword in a potential
8855         Objective-C foreach context.
8856         (c_parser_declaration_or_fndef): Added parameter.  Accept
8857         Objective-C RID_IN keyword as terminating a declaration; in that
8858         case, return the declaration in the new parameter.
8859         (c_parser_extenral_declaration): Updated calls to
8860         c_parser_declaration_or_fndef.
8861         (c_parser_declaration_or_fndef): Same change.
8862         (c_parser_compound_statement_nostart): Same change.
8863         (c_parser_label): Same change.
8864         (c_parser_objc_methodprotolist): Same change.
8865         (c_parser_omp_for_loop): Same change.
8866         (c_parser_for_statement): Detect and parse Objective-C foreach
8867         statements.
8868         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
8869         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
8870         fast enumeration parsing code to turn off the c99 error but still
8871         perform checks on the loop declarations.
8872         * c-tree.h (check_for_loop_decls): Updated declaration.
8873         * doc/objc.texi: Document fast enumeration.
8874
8875 2010-10-06  Nick Clifton  <nickc@redhat.com>
8876
8877         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
8878         (MDR_REGNUM): Define.
8879         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
8880         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
8881         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
8882         (REGISTER_NAMES): Add MDR.
8883         (DWARF2_DEBUGGING_INFO): Define to 1.
8884         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8885         (F): New function.  Sets RTX_FRAME_RELATED_P.
8886         (mn10300_gen_multiple_store): Use F.
8887         (expand_prologue): Use F.  Use gen_movsf() to push floating
8888         point registers.
8889         (expand_epilogue): Use gen_movsf() to pop floating point registers.
8890         (mn10300_option_override): Disable combine stack adjust pass.
8891
8892 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
8893
8894         PR target/45901
8895         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
8896         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
8897
8898 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
8899
8900         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
8901         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
8902         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
8903         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
8904         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
8905         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
8906         BUILT_IN_TOUPPER): Mark as leaf.
8907
8908         PR middle-end/45838
8909         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
8910         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
8911         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
8912         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
8913         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
8914         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
8915         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
8916
8917 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
8918
8919         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
8920         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8921         (m68hc11_class_likely_spilled_p): New function.
8922
8923 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
8924
8925         * c-parser.c (c_parser_objc_method_definition): Updated comment.
8926
8927 2010-10-05  Jan Hubicka  <jh@suse.cz>
8928
8929         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
8930         Document.
8931         * opts.c (decode_options): Handle lto partitions.
8932         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
8933         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
8934
8935 2010-10-05  Jan Hubicka  <jh@suse.cz>
8936
8937         * cgraphunit.c (assemble_function): Output thunks and aliases before
8938         the function itself.
8939
8940 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
8941
8942         * config/picochip/picochip.c (picochip_option_override): Disable
8943         exception flags for picochip.
8944
8945 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
8946
8947         * opts-common.c (handle_option, handle_generated_option,
8948         read_cmdline_option, set_option): Add diagnostic_context
8949         parameter.  Update calls among these functions.
8950         (set_option): Don't use global_dc.
8951         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
8952         (decode_options): Pass global_dc to enable_warning_as_error.
8953         (common_handle_option): Pass global_dc to enable_warning_as_error.
8954         (enable_warning_as_error): Add diagnostic_context parameter.
8955         Document parameters.  Don't use global_dc.  Pass
8956         diagnostic_context parameter to handle_generated_option.
8957         * opts.h (set_option, handle_option, handle_generated_option,
8958         read_cmdline_option, enable_warning_as_error): Add
8959         diagnostic_context parameter.
8960         * Makefile.in (lto-opts.o): Update dependencies.
8961         * coretypes.h (struct diagnostic_context, diagnostic_context):
8962         Declare here.
8963         * diagnostic.h (diagnostic_context): Don't declare typedef here.
8964         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
8965         * langhooks-def.h (struct diagnostic_context): Don't declare here.
8966         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
8967         using diagnostic_context typedef.
8968         * langhooks.c (lhd_initialize_diagnostics): Declare using
8969         diagnostic_context typedef.
8970         * langhooks.h (struct diagnostic_context): Don't declare here.
8971         (initialize_diagnostics, print_error_function): Declare using
8972         diagnostic_context typedef.
8973         * lto-opts.c: Include diagnostic.h.
8974         (lto_reissue_options): Pass global_dc to set_option.  Pass
8975         DK_UNSPECIFIED not 0.
8976         * plugin.c (plugins_internal_error_function): Declare using
8977         diagnostic_context typedef.
8978         * plugin.h (struct diagnostic_context): Don't declare here.
8979         (plugins_internal_error_function): Declare using
8980         diagnostic_context typedef.
8981
8982 2010-10-05  Olivier Hainque  <hainque@adacore.com>
8983             Nicolas Roche  <roche@adacore.com>
8984
8985         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
8986         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
8987
8988 2010-10-05  Ira Rosen  <irar@il.ibm.com>
8989
8990         PR tree-optimization/45752
8991         * tree-vect-slp.c (vect_get_mask_element): Remove static
8992         variables, make them function arguments.
8993         (vect_transform_slp_perm_load): Pass new arguments to
8994         vect_get_mask_element.
8995
8996 2010-10-05  Richard Guenther  <rguenther@suse.de>
8997
8998         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
8999         (gimple_mod_pow2): Likewise.
9000         (gimple_mod_subtract): Likewise.
9001         (gimple_ic): Likewise.
9002         (gimple_stringop_fixed_value): Likewise.
9003         * tree-profile.c (tree_init_edge_profiler): Mark profile
9004         functions nothrow and leaf.
9005         (add_abnormal_goto_call_edges): Remove.
9006         (tree_gen_edge_profiler): Work on SSA form.
9007         (tree_gen_ic_profiler): Likewise.  Simplify.
9008         (do_tree_profiling): Update SSA form.
9009         (pass_tree_profile): Remove.
9010         (do_tree_profiling): Likewise.
9011         (gate_tree_profile_ipa): New function.
9012         (pass_ipa_tree_profile): New.
9013         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9014         state of instrumented functions.
9015         * passes.c (init_optimization_passes): Remove early non-SSA
9016         inlining.  Move profiling after early optimizations.
9017         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9018         (pass_ipa_early_inline): Likewise.
9019         * tree-pass.h (pass_ipa_early_inline): Remove.
9020         (pass_tree_profile): Likewise.
9021         (pass_ipa_tree_profile): Declare.
9022
9023 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9024             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9025
9026         * config/s390/s390.c (z196_cost): New.
9027         (s390_handle_arch_option): Add -march=z196.
9028         (s390_option_override): Use the new cost function and use the z10
9029         defaults also for z196.
9030         (legitimate_reload_constant_p): Adjust comment.
9031         (legitimate_reload_fp_constant_p): New function.
9032         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9033         (preferred_la_operand_p): Avoid la with index on z196.
9034         (s390_adjust_priority): Trigger also for z196.
9035         (s390_issue_rate): Issue rate for z196 is 3.
9036         (s390_z10_fix_long_loop_prediction): Rename to ...
9037         (s390_fix_long_loop_prediction): ... this.
9038         (s390_reorg): Apply the z10 adjustments also for z196.
9039         (s390_loop_unroll_adjust): Do this also for z196.
9040         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9041         (enum processor_flags): Add PF_Z196.
9042         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9043         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9044         * config.gcc: Enable z196 for --with-arch.
9045         * config/s390/2817.md: New file.
9046         * config/s390/2084.md: New type for multiply and add.
9047         * config/s390/2097.md: Likewise.
9048         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9049         (UNSPECV_ATOMIC_OP): New constants.
9050         (fmadddf, fmaddsf): New values for type attribute.
9051         (z196prop): New insn attribute.
9052         (cpu, cpu_facility): Add z196.
9053         (ATOMIC_Z196): New code iterator.
9054         (noxa): New code attribute.
9055         (gk): New mode attribute.
9056         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9057         Support load zero for fp constants.
9058         (fixuns_truncdddi2, fixuns_trunctddi2)
9059         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9060         for z196.
9061         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9062         (popcounthi2, popcountqi2): New expander.
9063         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9064         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9065         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9066         insn definition.
9067         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9068         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9069         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9070         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9071         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9072         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9073         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9074         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9075         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9076         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9077         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9078         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9079         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9080         Support new z196 instructions.
9081
9082 2010-10-05  Richard Guenther  <rguenther@suse.de>
9083
9084         PR middle-end/45877
9085         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9086         case where gimplification optimizes away the stmt.
9087
9088 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9089
9090         PR debug/45849
9091         * var-tracking.c (strip_pointer_flags): New function.
9092         (emit_note_insn_var_location): If rtx_equal_p check failed,
9093         retry on locations simplified with simplify_replace_fn_rtx
9094         and strip_pointer_flags as its callback.
9095
9096 2010-10-04  Jan Hubicka  <jh@suse.cz>
9097
9098         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9099         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9100         value; handle comdats too.
9101         (canonicalize_constructor_val): Use it; handle function_decls
9102         correctly.
9103         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9104         * gimple.c (get_base_address): Accept all kinds of decls.
9105
9106 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9107
9108         * flags.h (g_switch_value, g_switch_set): Remove.
9109         * opts.c (g_switch_value, g_switch_set): Remove.
9110         * config/g.opt (G): Add Var(g_switch_value).
9111         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9112         (alpha_option_override): Check global_options_set.x_g_switch_value
9113         instead of g_switch_set.
9114         (alpha_in_small_data_p): Remove cast in comparison with
9115         g_switch_value.
9116         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9117         g_switch_value to unsigned HOST_WIDE_INT.
9118         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9119         with g_switch_value.
9120         (frv_handle_option): Don't handle -G here.
9121         (frv_option_override): Check global_options_set.x_g_switch_value
9122         instead of g_switch_set.  Don't modify g_switch_set.
9123         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9124         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9125         g_switch_value to unsigned HOST_WIDE_INT.
9126         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9127         (ia64_option_override): Check global_options_set.x_g_switch_value
9128         instead of g_switch_set.
9129         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9130         Remove.
9131         (lm32_in_small_data_p): Remove cast in comparison with
9132         g_switch_value.
9133         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9134         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9135         HOST_WIDE_INT.
9136         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9137         (m32r_init): Check global_options_set.x_g_switch_value instead of
9138         g_switch_set.
9139         (m32r_in_small_data_p): Remove cast in comparison with
9140         g_switch_value.
9141         (m32r_file_start): Format g_switch_value with %d.
9142         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9143         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9144         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9145         handle -G here.
9146         (microblaze_option_override): Check
9147         global_options_set.x_g_switch_value instead of g_switch_set.
9148         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9149         (mips_option_override): Check global_options_set.x_g_switch_value
9150         instead of g_switch_set.
9151         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9152         (rs6000_file_start): Format g_switch_value with %d.
9153         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9154         comparisons with g_switch_value.
9155         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9156         global_options_set.x_g_switch_value instead of g_switch_set.
9157         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9158         global_options_set.x_g_switch_value instead of g_switch_set.
9159         * config/score/score.c (score_handle_option): Don't handle -G here.
9160         * config/score/score3.c (score3_option_override): Check
9161         global_options_set.x_g_switch_value instead of g_switch_set.
9162         * config/score/score7.c (score7_option_override): Check
9163         global_options_set.x_g_switch_value instead of g_switch_set.
9164
9165 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9166
9167         * common.opt (fira-coalesce): Remove.
9168
9169         * doc/invoke.texi (flag_ira_coalesce): Remove.
9170
9171         * ira-color.c (allocno_coalesced_p): Move before
9172         copy_freq_compare_func.
9173         processed_coalesced_allocno_bitmap): Ditto.
9174         (update_conflict_hard_regno_costs): Don't use
9175         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9176         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9177         (assign_hard_reg): Assume no coalesced allocnos.
9178         (get_coalesced_allocnos_attributes): Remove.
9179         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9180         (push_allocno_to_stack): Ditto.
9181         (remove_allocno_from_bucket_and_push): Use
9182         ira_print_expanded_allocno instead of print_coalesced_allocno.
9183         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9184         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9185         all_conflicting_hard_regs.
9186         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9187         (setup_allocno_left_conflicts_size): Ditto.
9188         (put_allocno_into_bucket): Ditto.
9189         (copy_freq_compare_func): Remove.
9190         (copy_freq_compare_func, merge_allocnos): Move before
9191         coalesced_pseudo_reg_freq_compare.
9192         coalesced_allocno_conflict_p): Ditto.
9193         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9194         parameter.  Assume it true.
9195         (color_allocnos): Assume uncoalesced allocnos.  Use
9196         ira_print_expanded_allocno instead of print_coalesced_allocno.
9197         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9198         parameter.
9199
9200         * ira.c: Remove comment about coalescing.
9201
9202 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9203
9204         * config/mips/mips.h (target_flags_explicit): Declare for
9205         GENERATOR_FILE.
9206
9207 2010-10-04  Andi Kleen  <ak@linux.intel.com>
9208
9209         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9210         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
9211
9212 2010-10-04  Matthias Klose  <doko@ubuntu.com>
9213
9214         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
9215         multilib osdirname if it exists.
9216         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
9217
9218 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9219
9220         PR middle-end/45876
9221         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
9222         arg0's type or its unsigned counterpart as utype.  Convert
9223         arg1 to utype unconditionally.
9224
9225 2010-10-04  Julian Brown  <julian@codesourcery.com>
9226
9227         * expr.c (expand_assignment): Add assertion to prevent emitting
9228         null rtx for movmisalign pattern.
9229         (expand_expr_real_1): Likewise.
9230         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
9231         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
9232         (arm_vector_alignment_reachable): New.
9233         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
9234         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
9235         (arm_print_operand): Include alignment qualifier in %A.
9236         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
9237         (movmisalign<mode>): New expander.
9238         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
9239         insn patterns.
9240
9241 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9242
9243         * optc-gen.awk: Define global_options_set.  Don't define
9244         target_flags_explicit.
9245         * opth-gen.awk: Declare global_options_set.  Define
9246         target_flags_explicit as macro.
9247         * opts-common.c (handle_option): Take opts_set and generated_p
9248         parameters.
9249         (handle_generated_option, read_cmdline_option, set_option): Take
9250         opts_set parameter.
9251         (set_option): Use opts_set instead of hardcoding target_flags and
9252         target_flags_explicit.
9253         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
9254         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
9255         flag_value_profile_transformations_set, flag_peel_loops_set,
9256         flag_branch_probabilities_set, flag_inline_functions_set,
9257         flag_ipa_cp_set, flag_ipa_cp_clone_set,
9258         flag_predictive_commoning_set, flag_unswitch_loops_set,
9259         flag_gcse_after_reload_set): Remove.
9260         (common_handle_option, lang_handle_option, target_handle_option):
9261         Take opts_set parameter.  Assert that it is &global_options_set.
9262         (common_handle_option): Don't set _set variables.  Check opts_set
9263         instead of such variables.
9264         (enable_warning_as_error): Pass &global_options_set to
9265         handle_generated_option.
9266         * opts.h (cl_option_handler_func.handler, set_option,
9267         handle_option, handle_generated_option, read_cmdline_option): Add
9268         opts_set parameters.
9269         (handle_option): Add generated_p parameter.
9270         * config/i386/i386.c (ix86_function_specific_save,
9271         ix86_function_specific_restore): Updat for renaming of
9272         target_flags_explicit field.
9273         * config/i386/i386.opt (target_flags_explicit): Rename to
9274         ix86_target_flags_explicit.
9275         * config/ia64/ia64.c (ia64_override_options_after_change): Check
9276         global_options_set.x_flag_selective_scheduling and
9277         global_options_set.x_flag_selective_scheduling2, not
9278         sel_sched_switch_set.
9279         * flags.h (sel_sched_switch_set,
9280         flag_speculative_prefetching_set): Remove.
9281         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
9282         that it is &global_options_set.
9283         (process_command): Pass &global_options_set to read_cmdline_option.
9284         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
9285         set_option.
9286         * toplev.c (target_flags_explicit): Remove.
9287
9288 2010-10-04  Jan Hubicka  <jh@suse.cz>
9289
9290         PR middle-end/45871
9291         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
9292         use get_ref_base_and_offset to handle references.
9293         (fold_const_aggregate_ref): Update.
9294
9295 2010-10-04  Martin Jambor  <mjambor@suse.cz>
9296
9297         PR tree-optimization/45572
9298         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
9299         ipa_check_create_node_params.
9300         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
9301
9302 2010-10-04  Yao Qi  <yao@codesourcery.com>
9303
9304         * doc/passes.texi: Clean up.
9305
9306 2010-10-03  Ian Lance Taylor  <iant@google.com>
9307
9308         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
9309         referring to a field using a typedef name.
9310         (find_anonymous_field_with_type): New static function.
9311         (convert_to_anonymous_field): New static function.
9312         (convert_for_assignment): If -fplan9-extensions, permit converting
9313         pointer to struct to pointer to anonymous field.
9314         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
9315         (is_duplicate_field): New static function.
9316         (detect_field_duplicates_hash): If -fplan9-extensions, check for
9317         typedef names duplicating field names.
9318         (detect_field_duplicates): Likewise.
9319         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
9320         (C Dialect Options): Document -fplan9-extensions.
9321         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
9322
9323 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
9324
9325         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
9326         revision 164914.
9327         (vect_create_data_ref_ptr): Likewise.
9328         * tree-vect-stmts.c (vectorizable_store): Likewise.
9329         (perm_mask_for_reverse): Likewise.
9330         (reverse_vec_elements): Likewise.
9331         (vectorizable_load): Likewise.
9332
9333 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9334
9335         * cppbuiltin.c: New file.
9336         * cppbuiltin.h: New file.
9337         * Makefile.in: Take into account cppbuiltin.{h,c}.
9338
9339 2010-10-03  Andi Kleen  <ak@linux.intel.com>
9340
9341         * lto-cgraph.c (input_cgraph): Check for missing sections.
9342
9343 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
9344
9345         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
9346         to nonimmediate_operand.  Force operand 2 to register when allowed.
9347         (*<shiftrt_insn><mode>3_mask): Ditto.
9348         (*<rotate_insn><mode>3_mask): Ditto.
9349
9350 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
9351
9352         PR tree-optimization/45720
9353         PR tree-optimization/45764
9354         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9355         Don't accept backwards consecutive accesses.
9356         (vect_create_data_ref_ptr): Disallow negative steps.
9357
9358         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
9359         (perm_mask_for_reverse): Removed.
9360         (reverse_vec_elements): Likewise.
9361         (vectorizable_load): Don't handle negative steps.
9362
9363 2010-10-02  Jan Hubicka  <jh@suse.cz>
9364
9365         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
9366         call destination is known.
9367
9368 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9369
9370         PR target/45820
9371         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9372         earlier.
9373
9374 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9375
9376         * doc/install.texi (Configuration): Document build_configargs,
9377         host_configargs, target_configargs.
9378
9379 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9380
9381         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9382         (*<shiftrt_insn><mode>3_mask): Ditto.
9383         (*<rotate_insn><mode>3_mask): Ditto.
9384
9385 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9386
9387         PR tree-optimization/44716
9388         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9389         (HOT_TEXT_SECTION_NAME): Define.
9390
9391 2010-10-01  Nick Clifton  <nickc@redhat.com>
9392
9393         * common.opt: Add -fcombine-stack-adjustments.
9394         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9395         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9396         flag_combine_stack_adjustments.
9397         * doc/invoke.texi: Document the new option.
9398
9399 2010-10-01  Richard Guenther  <rguenther@suse.de>
9400
9401         PR tree-optimization/45854
9402         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9403
9404 2010-10-01  Anthony Green  <green@moxielogic.com>
9405
9406         * config.gcc: Fix moxie-*-rtems* configuration.
9407
9408 2010-10-01  Richard Guenther  <rguenther@suse.de>
9409
9410         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9411         (gen_decl_die): Likewise.
9412
9413 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9414
9415         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9416         to the function code for SPU MD builtins.
9417         (spu_expand_builtin): Update.
9418         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9419
9420 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9421
9422         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9423         sjlj_except_unwind_info.
9424
9425 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9426
9427         * configure.ac: Define the nop insn for avr*-*-*
9428         * configure: Regenerate.
9429
9430 2010-10-01  Alan Modra  <amodra@gmail.com>
9431
9432         PR target/45807
9433         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9434         extend toc_restore_insn.
9435
9436 2010-09-30  Richard Guenther  <rguenther@suse.de>
9437
9438         PR tree-optimization/43959
9439         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9440         create_tmp_var.
9441
9442 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9443
9444         * config/sh/sh.c (sh_expand_prologue): Set
9445         current_function_static_stack_size.
9446
9447 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9448
9449         * configure.ac: Check for Solaris 8 ld with .hidden support.
9450         * configure: Regenerate.
9451
9452 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9453
9454         PR middle-end/45758
9455         * graphite.c (graphite_initialize): Call scev_reset.
9456
9457 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9458
9459         * sese.h (scev_analyzable_p): Return false for real or floating
9460         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9461
9462 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9463
9464         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9465         and ps.
9466         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9467         domain.
9468         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9469         Do not allocate ub_expr, it is passed in initialized.
9470
9471 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9472
9473         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9474         (build_cloog_prog): Dump CLooG input file when
9475         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9476         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9477
9478 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9479
9480         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9481         verify_dominators for CDI_POST_DOMINATORS.
9482         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9483         (recompute_all_dominators): Remove call to free_dominance_info
9484         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9485         for CDI_POST_DOMINATORS.
9486
9487 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9488
9489         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9490         over pbb_dim_iter_domain.
9491
9492 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9493
9494         * graphite-flattening.c: Fix comments.
9495
9496 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9497
9498         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9499         (graphite-flattening.o): New rule.
9500         * common.opt (floop-flatten): New flag.
9501         * doc/invoke.texi (-floop-flatten): Documented.
9502         * graphite-flattening.c: New.
9503         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9504         * graphite-poly.h (flatten_all_loops): Declared.
9505         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9506         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9507         is set, also set flag_graphite.
9508
9509 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9510
9511         * graphite-poly.c (cloog_checksum): New.
9512         * graphite-poly.h (cloog_checksum): Declared.
9513
9514 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9515
9516         * graphite-poly.c (pbb_number_of_iterations): Removed.
9517         (pbb_number_of_iterations_at_time): Correctly compute the number
9518         of iterations in the transformed loop.
9519         * graphite-poly.h (pbb_number_of_iterations): Removed.
9520
9521 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9522
9523         * graphite-poly.h (lst_update_scattering_seq): Removed.
9524         (lst_update_scattering): Correctly handle outermost loop dewey
9525         renumbering.
9526
9527 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9528
9529         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9530         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9531         * graphite-poly.h (lst_niter_for_loop): New.
9532
9533 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9534
9535         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9536         transform read from disk is not legal.  Call fatal_error instead.
9537
9538 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9539
9540         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9541         (print_scop_header): Removed.  Inlined in the only call place...
9542         (print_scop): ... here.
9543
9544 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9545
9546         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9547
9548 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9549
9550         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9551
9552 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9553
9554         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9555         (dot_deps_stmt): Same.
9556         * graphite-poly.c (dot_lst): Same.
9557
9558 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9559
9560         * graphite-blocking.c (scop_do_strip_mine): Do not call
9561         graphite_legal_transform.
9562         (scop_do_block): Same.
9563
9564 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9565
9566         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9567         description.
9568
9569 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9570
9571         * tree-scalar-evolution.c (instantiate_array_ref): New.
9572         (instantiate_scev_r): Also handle ARRAY_REFs.
9573
9574 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9575
9576         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9577         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9578         RESULT_DECL, and FIELD_DECL.  Return false for an
9579         SSA_NAME_IS_DEFAULT_DEF.
9580         (compute_scalar_evolution_in_loop): Do not further analyze the
9581         scalar evolution when no_evolution_in_loop_p returns true.
9582
9583 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9584
9585         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9586         whether CHREC_LEFT is invariant.  A function is affine when
9587         CHREC_RIGHT is invariant.
9588
9589 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9590
9591         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9592         is_gimple_reg.
9593         (rewrite_degenerate_phi): Same.
9594         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9595
9596 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9597
9598         * graphite-scop-detection.c (graphite_can_represent_scev,
9599         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9600         graphite_can_represent_loop): Remove outermost_loop.
9601
9602 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9603
9604         PR middle-end/45229
9605         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9606         handle GIMPLE_CALLs with no LHS.
9607
9608 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9609
9610         * graphite-poly.c (init_graphite_out_file): New.
9611         (init_graphite_in_file): New.
9612         (apply_poly_transforms): Updated to enable reading and writing of
9613         multiple scop files.
9614
9615 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9616
9617         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9618         redundant checks.
9619
9620 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9621
9622         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9623         computation of precision by 1.
9624
9625 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9626
9627         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9628         (openscop_read_polyhedron_matrix): New.
9629         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9630         (openscop_read_N_int): Same.
9631         * graphite-poly.c (openscop_read_N_int): New.
9632         (openscop_read_one_int): New.
9633         (openscop_read_N_string): New.
9634         (openscop_read_one_string): New.
9635         (openscop_read_powerset_matrix): New.
9636         (graphite_read_transforms): Remove.
9637         (graphite_read_scatt): New.
9638         (graphite_read_scop_file): New.
9639         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9640
9641 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9642
9643         * graphite-poly.c: Change include order.
9644
9645 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9646
9647         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9648         (cloog_matrix_nrows): New.
9649
9650 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9651
9652         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9653         from matrix lines.
9654         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9655         (print_scattering_function_1): Same.
9656         (openscop_print_pbb_domain): Same.
9657         (openscop_print_scop_context): Same.
9658         (print_scop_context): Same.
9659
9660 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9661
9662         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9663         (openscop_print_pdr_polyhedron): Print pph.
9664
9665 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9666
9667         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9668         priority signed types.
9669
9670 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9671
9672         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9673         the call to lang_hooks.types.type_for_size.  Call
9674         build_nonstandard_integer_type.
9675
9676 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9677
9678         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9679         (openscop_print_polyhedron_matrix): New.
9680         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9681         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9682         (openscop_print_pdr_powerset): New.
9683         (openscop_print_powerset_matrix): New.
9684         (openscop_print_scattering_function_1): New.
9685         (print_scattering_function): Add support for scattering names and
9686         OpenScop format.
9687         (graphite_write_transforms): Remove.
9688         (print_pdr_access_layout): Updated to support OpenScop format.
9689         (print_pdr): Same.
9690         (openscop_print_pbb_domain): New.
9691         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9692         is not provided.
9693         (print_pbb): Updated to call the new print_pbb_body.
9694         (openscop_print_scop_context): New.
9695         (print_scop_header): New.
9696         (print_scop): Updated to call print_scop_header.
9697         * graphite-poly.h: Document OpenScop format.
9698
9699 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9700
9701         * config/cris/m32c.c (cris_memory_move_cost): New.
9702         (cris_register_move_cost): Make static. Change arguments type from
9703         enum reg_class to reg_class_t.
9704         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9705         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9706         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9707
9708 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9709
9710         PR target/45843
9711         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9712         INTVAL (XEXP (slot, 1)) as prev_size.
9713
9714 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9715
9716         PR target/45837
9717         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9718         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9719         defined.
9720         * config/rs6000/option-defaults.h (toplevel): Change #if
9721         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9722         global option changes.
9723
9724 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9725
9726         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9727
9728         PR tree-optimization/31261
9729         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9730         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9731
9732 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9733
9734         PR bootstrap/45796
9735         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9736         special-casing for generators and turn into ...
9737         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9738         rule, for better error messages in case of toplevel dependency errors.
9739         (genprog): Add hooks, rename to ...
9740         (genprogerr): ... this, and let genprog also contain check,
9741         checksum, condmd.
9742         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9743         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9744         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9745
9746 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9747             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9748
9749         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9750         for GMP, MPFR and MPC.
9751
9752 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9753
9754         * config/sparc/sparc.opt (mimpure-text): Move ...
9755         * config/sol2.opt: ... here.  Correct description.
9756         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9757         * doc/invoke.texi (Option Summary, SPARC Options): Move
9758         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9759         (Option Summary, Solaris 2 Options): ... here.
9760         (Submodel Options, Solaris 2 Options): New menu entry.
9761         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9762         (Solaris 2 Options): ... here.
9763
9764 2010-09-30  Michael Eager  <eager@eagercon.com>
9765
9766         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9767         (save_volatiles): Describe option for MicroBlaze.
9768         * invoke.texi: Add MicroBlaze Options.
9769         * contrib.texi: Add acknowledgment.
9770         * md.texi: Add MicroBlaze d and z constraints.
9771         * install.texi: Add microblaze-*-elf.
9772         * configure.ac: Add microblaze-*-* to target list.
9773         * configure: Regenerate.
9774         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9775         * config/microblaze/microblaze-protos.h: New.
9776         * config/microblaze/crti.s: New.
9777         * config/microblaze/predicates.md: New.
9778         * config/microblaze/linux.h: New.
9779         * config/microblaze/microblaze.md: New.
9780         * config/microblaze/constraints.md: New.
9781         * config/microblaze/crtn.s: New.
9782         * config/microblaze/microblaze.opt: New.
9783         * config/microblaze/microblaze-c.c: New.
9784         * config/microblaze/t-microblaze: New.
9785         * config/microblaze/microblaze.c: New.
9786         * config/microblaze/microblaze.h: New.
9787
9788 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9789
9790         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9791         parse @optional/@required and set the flags as appropriate.
9792
9793 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9794
9795         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9796
9797 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9798
9799         * opt-functions.awk (static_var): Update comment.
9800         (var_ref): Return offsetof expression or -1, not variable address.
9801         * optc-gen.awk: Generate structure field initializers instead of
9802         static variables.  Expect -1 for missing variables instead of null
9803         pointer.  Add gcc_options parameters to generated functions.
9804         * opth-gen.awk: Generate structure fields for static variables.
9805         Add gcc_options parameters to generated functions.
9806         * common.opt (optimize, optimize_size): Add variables.
9807         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9808         &global_options to cl_target_option_restore.
9809         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9810         &global_options to cl_optimization_restore, cl_target_option_save
9811         and cl_target_option_restore.
9812         (ix86_set_current_function): Pass &global_options to
9813         cl_target_option_restore.
9814         * config/pdp11/pdp11.h (optimize): Remove.
9815         * config/rs6000/rs6000.h (optimize): Remove.
9816         * config/sh/sh.h (optimize): Remove.
9817         * config/xtensa/xtensa.h (optimize): Remove.
9818         * coretypes.h (struct gcc_options): Declare.
9819         * diagnostic.c (diagnostic_initialize): Initialize
9820         context->option_state.
9821         (diagnostic_report_diagnostic): Pass option_state to
9822         option_enabled hook.
9823         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9824         parameter.
9825         (diagnostic_context.option_state): New field.
9826         * final.c (final_start_function, final, final_scan_insn): Rename
9827         optimize parameter to optimize_p.
9828         * flags.h (optimize, optimize_size): Remove.
9829         * function.c (invoke_set_current_function_hook): Pass
9830         &global_options to cl_optimization_restore.
9831         * gcc.c (driver_handle_option): Take gcc_options parameter.
9832         Assert that it is &global_options.
9833         (process_command): Pass &global_options to read_cmdline_option.
9834         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9835         option_enabled.
9836         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9837         &global_options to set_option.
9838         * opts-common.c (handle_option, handle_generated_option,
9839         read_cmdline_option, set_option): Take explicit gcc_options
9840         parameters.  Use option_flag_var.
9841         (option_flag_var): New.
9842         * opts.c (common_handle_option, lang_handle_option,
9843         target_handle_option): Take gcc_options parameter.  Assert that it
9844         is &global_options.
9845         (read_cmdline_options): Pass &global_options to read_cmdline_option.
9846         (print_filtered_help): Use option_flag_var.  Pass &global_options
9847         to option_enabled.
9848         (common_handle_option): Use option_flag_var.
9849         (option_enabled): Take opts parameter.  Use option_flag_var.
9850         (get_option_state): Take gcc_options parameter.  Use
9851         option_flag_var.  Pass gcc_options parameter to option_enabled.
9852         (enable_warning_as_error): Pass &global_options to
9853         handle_generated_option.
9854         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
9855         (cl_option_handler_func.handler): Take gcc_options parameter.
9856         (option_enabled, get_option_state, set_option, handle_option,
9857         handle_generated_option, read_cmdline_option): Take gcc_options
9858         parameters.
9859         * toplev.c (optimize, optimize_size): Remove.
9860         (print_switch_values): Pass &global_options to option_enabled.
9861         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
9862         to get_option_state.
9863         (general_init): Initialize global_dc->option_state.
9864         * tree.c (build_optimization_node): Pass &global_options to
9865         cl_optimization_save.
9866         (build_target_option_node): Pass &global_options to
9867         cl_target_option_save.
9868
9869 2010-09-30  Martin Jambor  <mjambor@suse.cz>
9870
9871         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
9872         zero sized bit-fields.
9873
9874 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
9875
9876         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
9877         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
9878         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
9879         (c_parser_objc_class_declaration): Same change.
9880         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
9881         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9882         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
9883         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
9884         and RID_AT_PUBLIC instead of RID_PUBLIC.
9885         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
9886         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9887
9888 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
9889
9890         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
9891         Add links to current providers of packages for Solaris and IRIX.
9892
9893 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9894
9895         Merge from 'apple/trunk' branch on FSF servers.
9896         * c-parser.c: Applied change originally in c-parse.in.
9897
9898         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
9899
9900         Radar 4281748
9901         * c-decl.c (start_decl): Check for redeclaration of class name.
9902         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
9903
9904 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
9905
9906         * config/ia64/ia64.c (ia64_builtin_decl): New.
9907         (TARGET_BUILTIN_DECL): Define.
9908         (ia64_builtins): New.
9909         (ia64_init_builtins): Save decls in ia64_builtins.
9910
9911 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
9912
9913         PR target/40457
9914         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
9915         (move2add_use_add3_insn): Likewise.
9916         (reload_cse_move2add): Likewise.
9917         * rtlanal.c (get_full_rtx_cost): New function.
9918         * rtl.h (struct full_rtx_costs): New.
9919         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
9920         costs_add_n_insns): New inline functions.
9921         (get_full_rtx_cost): Declare.
9922
9923         PR c/45054
9924         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
9925         invariants.  Check for reg_equiv_invariant.
9926         (reload): Assert that spilled_pseudos is empty when returning.
9927
9928 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
9929
9930         * config/i386/mingw32.h (TARGET_64BIT): replaced by
9931         TARGET_64BIT_DEFAULT in #if check.
9932
9933 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
9934
9935         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
9936
9937 2010-09-29  Mike Stump  <mikestump@comcast.net>
9938
9939         * config/darwin.h (flag_mkernel): Remove.
9940         (flag_apple_kext): Likewise.
9941
9942 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9943             Jack Howarth  <howarth@bromo.med.uc.edu>
9944
9945         * config/darwin.opt (undefined): Add.
9946
9947 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
9948
9949         PR testsuite/45664
9950         * configure.ac: Add --enable-indirect-function option.
9951         * config.gcc: Add default_gnu_indirect_function.
9952         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
9953         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
9954         * varasm.c (do_assemble_alias): Adjust for macro name change.
9955         * configure: Rebuilt.
9956         * doc/install.texi: Document --enable-indirect-function.
9957
9958 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9959
9960         * doc/options.texi (Variable, Var, Init): Update documentation
9961         without reference to VarExists.
9962         (VarExists): Remove.
9963         * common.opt, config/i386/i386.opt, config/linux.opt,
9964         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
9965         Don't use VarExists.
9966
9967 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9968
9969         * optc-gen.awk: Generate global_options initializer instead of
9970         individual variables.  Add x_ prefix to names of structure members.
9971         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
9972         names of structure members.
9973         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9974         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
9975         * doc/tm.texi: Regenerate.
9976         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9977         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
9978         * c-parser.c (disable_extension_diagnostics,
9979         restore_extension_diagnostics): Update names of cpp_options members.
9980         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9981         * common.opt (fcompare-debug-second): Don't use Var.
9982         * config/alpha/alpha.h (target_flags): Remove.
9983         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9984         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
9985         * config/bfin/bfin.h (target_flags): Remove.
9986         * config/cris/cris.h (target_flags): Remove.
9987         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
9988         cl_target_option members.
9989         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
9990         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
9991         ix86_can_inline_p): Update names of cl_target_option members.
9992         * config/i386/i386.h (ix86_isa_flags): Remove.
9993         * config/lm32/lm32.h (target_flags): Remove.
9994         * config/mcore/mcore.h (mcore_stack_increment): Remove.
9995         * config/mcore/mcore.md (addsi3): Remove extern declaration of
9996         flag_omit_frame_pointer.
9997         * config/mep/mep.h (target_flags): Remove.
9998         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9999         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10000         * config/mmix/mmix.h (target_flags): Remove.
10001         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10002         flag_expensive_optimizations): Remove.
10003         * config/s390/s390.h (flag_pic): Remove.
10004         * config/score/score-conv.h (target_flags): Remove.
10005         * config/sh/sh.h (sh_fixed_range_str): Remove.
10006         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10007         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10008         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10009         * diagnostic.c (diagnostic_initialize): Update names of
10010         diagnostic_context members.
10011         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10012         warn_system_headers.
10013         (diagnostic_report_warnings_p): Update for new names.
10014         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10015         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10016         HARD_FRAME_POINTER_IS_ARG_POINTER.
10017         * flags.h (flag_compare_debug): Declare.
10018         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10019         * opts.c (flag_compare_debug): Define.
10020         (common_handle_option): Update names of diagnostic_context
10021         members.  Handle -fcompare-debug-second.
10022         (fast_math_flags_struct_set_p): Update names of cl_optimization
10023         members.
10024         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10025         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10026         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10027         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10028         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10029         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10030         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10031         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10032         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10033
10034 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10035
10036         * config/picochip/picochip.c (picochip_output_internal_label):
10037         This function can now be called for debug CFI labels, which can come
10038         in the middle of a vliw instruction.  Postpone until end of vliw.
10039
10040 2010-09-29  Richard Guenther  <rguenther@suse.de>
10041
10042         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10043         (DECL_FILE_SCOPE_P): Use it.
10044         (TYPE_FILE_SCOPE_P): New macro.
10045
10046 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10047
10048         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10049         a CPP_NAME which is a reserved word, clearly separate cases for
10050         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10051
10052 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10053
10054         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10055         token->value with the canonical spelling.  Do exactly like C and
10056         C++ and leave it as it is.
10057
10058 2010-09-28  Richard Henderson  <rth@redhat.com>
10059
10060         * config/alpha/alpha.c (alpha_builtins): New.
10061         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10062         (alpha_builtin_function): New.
10063         (alpha_add_builtins, alpha_init_builtins): Use it.
10064
10065 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10066
10067         * doc/standards.texi (Standards): Expanded the section on
10068         Objective-C and Objective-C++.
10069
10070 2010-09-28  DJ Delorie  <dj@redhat.com>
10071
10072         PR target/45800
10073         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10074         volatile MEMs.
10075
10076 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10077
10078         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10079         attributes on methods.
10080          (c_parser_objc_method_definition): Handle attributes.
10081         (c_parser_objc_methodproto): Likewise.
10082         (c_parser_objc_maybe_method_attributes): New.
10083         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10084         missing definition, similar to that in ObjC++.
10085
10086 2010-09-28  Richard Henderson  <rth@redhat.com>
10087
10088         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10089         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10090         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10091         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10092         (STACK_CHECK_PROTECT): Likewise.
10093         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10094         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10095         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10096         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10097         (dwarf2out_assembly_start): Likewise.
10098         * except.c (init_eh): Use targetm.except_unwind_info.
10099         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10100         (output_one_function_exception_table): Likewise.
10101         * final.c: Unconditionally include dwarf2out.h.
10102         (final_start_function): Unconditionally call dwarf2out routines.
10103         (final_end_function, final_scan_insn): Likewise.
10104         * function.c (expand_function_end): Use targetm.except_unwind_info.
10105         * opts.c (decode_options): Use targetm.except_unwind_info.
10106         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10107         * target.def (debug_unwind_info, except_unwind_info): New.
10108         * target.h (enum unwind_info_type): New.
10109         * targhooks.c (default_debug_unwind_info): New.
10110         (default_except_unwind_info): New.
10111         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10112         * targhooks.h: Declare them.
10113         * tree-tailcall.c: Include "target.h"
10114         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10115         * Makefile.in (tree-tailcall.o): Update.
10116         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10117         (lhd_gcc_personality): Likewise.
10118
10119         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10120         (TARGET_EXCEPT_UNWIND_INFO): New.
10121         (DWARF2_UNWIND_INFO): Update.
10122         (TARGET_DEBUG_UNWIND_INFO): New.
10123         * doc/tm.texi: Rebuild.
10124
10125         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10126         targetm.except_unwind_info.
10127
10128         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10129         (arm_except_unwind_info): New.
10130         (arm_compute_func_type): Use it.
10131         (arm_expand_prologue, thumb_pushpop): Likewise.
10132         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10133         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10134         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10135         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10136         (DWARF2_UNWIND_INFO): Remove.
10137         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10138         (ARM_EABI_UNWIND_TABLES): Remove.
10139
10140         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10141         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10142         (ia64_except_unwind_info): New.
10143         (ia64_output_function_prologue): Use it.
10144         (ia64_add_bundle_selector_before): Likewise.
10145         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10146         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10147         (TARGET_UNWIND_INFO): Remove.
10148
10149         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10150
10151 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10152
10153         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10154         (c_parser_objc_protocol_definition): Likewise.
10155         (c_parser_external_declaration): Provide dummy attribute arguments.
10156         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10157         (c_parser_objc_class_definition): Handle attributes.
10158         (c_parser_objc_protocol_definition): Likewise.
10159
10160 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10161
10162         PR fortran/40569
10163         PR fortran/40568
10164         * toplev.h (save_decoded_options, save_decoded_options_count):
10165         New global variables.
10166         * toplev.c (save_decoded_options, save_decoded_options_count):
10167         Export variables.
10168
10169 2010-09-28  Ian Lance Taylor  <iant@google.com>
10170
10171         * config/i386/i386.c (ix86_supports_split_stack): Test
10172         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10173
10174 2010-09-28  Ian Lance Taylor  <iant@google.com>
10175
10176         PR target/45815
10177         * opts.c (decode_options): Don't test whether the target supports
10178         split stack if flag_split_stack == 0.
10179
10180 2010-09-28  Jan Hubicka  <jh@suse.cz>
10181
10182         * builtin-attrs.def (ATTR_LEAF): New attribute.
10183         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10184         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10185         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10186         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10187         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10188         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10189         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10190         * sync-builtins.def: Annotate all builtins by leaf.
10191         * omp-builtins.def: Annotate all builtins by leaf.
10192         * builtins.def: Annotate relevant builtins with leaf attribute.
10193         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10194         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10195         leaf.
10196
10197 2010-09-28  Jan Hubicka  <jh@suse.cz>
10198
10199         * tree-ssa-ccp.c (fold_ctor_reference): New function.
10200         (fold_const_aggregate_ref): Use it.
10201         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
10202         into external static.
10203
10204 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10205
10206         PR target/44452
10207         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
10208         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
10209         (ix86_solaris_return_in_memory): Remove.
10210         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
10211         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10212         (TARGET_SUBTARGET_DEFAULT): Redefine.
10213         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
10214         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10215         (TARGET_SUBTARGET_DEFAULT): Redefine.
10216         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
10217         -mvect8-ret-in-mem.
10218         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
10219
10220 2010-09-29  Alan Modra  <amodra@gmail.com>
10221
10222         PR target/45807
10223         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
10224         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
10225         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
10226         Delete.
10227         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
10228         (rs6000_emit_prologue): Don't just create frame save info for r2,
10229         actually save r2.
10230
10231 2010-09-28  Richard Henderson  <rth@redhat.com>
10232
10233         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
10234         when 8 bytes are requested.
10235
10236 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10237
10238         * config/avr/avr.c (expand_prologue): Set
10239         current_function_static_stack_size.
10240
10241 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10242
10243         * config/alpha/alpha.md: Change the initial condition of the
10244         probing loop.
10245
10246 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
10247
10248         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
10249         Split from *avx_<maxmin:code><mode>3.
10250         (*avx_<smaxmin:code><mode>3): Ditto.
10251         * config/i386/i386.md (maxmin): Remove code iterator.
10252
10253 2010-09-27  Ian Lance Taylor  <iant@google.com>
10254
10255         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
10256         requires assembler support for CFI directives.
10257
10258 2010-09-27  Richard Henderson  <rth@redhat.com>
10259
10260         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
10261
10262 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10263
10264         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
10265         that AFTER is not in the range FROM..TO, inclusive.
10266
10267 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10268             Bernd Schmidt  <bernds@codesourcery.com>
10269
10270         PR rtl-optimization/45792
10271         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
10272         If not all insns are to be merged, for each edge, stash the
10273         next candidate after the to-be-merged insns before doing the
10274         merge, and use them for the retry at the new insertion point.
10275         Handle CC0 targets when retrying.
10276
10277 2010-09-27  Ian Lance Taylor  <iant@google.com>
10278
10279         * common.opt (fsplit-stack): New option.
10280         * opts.c (decode_options): Set flag_split_stack to final value.
10281         * target.def (supports_split_stack): New hook.
10282         * gcc.c (STACK_SPLIT_SPEC): Define.
10283         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
10284         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
10285         (Code Gen Options): Document -fsplit-stack.
10286         * doc/extend.texi (Function Attributes): Mention no_split_stack.
10287         (Function Attributes): Document no_split_stack.
10288         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
10289         TARGET_SUPPORTS_SPLIT_STACK.
10290         * doc/tm.texi: Rebuild.
10291         * function.c (thread_prologue_and_epilogue_insns): If
10292         flag_split_stack, add split stack prologue.
10293         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
10294         * varasm.c (saw_no_split_stack): New static variable.
10295         (assemble_start_function): Set saw_no_split_stack if the function
10296         has the no_split_stack attribute.
10297         (file_end_indicate_split_stack): New function.
10298         * output.h (file_end_indicate_split_stack): Declare.
10299         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
10300         and function.
10301         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
10302         routines.
10303         * config/i386/i386.c (ix86_option_override_internal): Don't set
10304         expand_builtin_va_start to NULL if -fsplit-stack.
10305         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
10306         -fsplit-stack.
10307         (ix86_va_start): If -fsplit-stack, get overflow pointer from
10308         scratch register set by prologue.
10309         (ix86_code_end): If -fsplit-stack, call
10310         file_end_indicate_split_stack.
10311         (ix86_supports_split_stack): New static function.
10312         (SPLIT_STACK_AVAILABLE): Define.
10313         (split_stack_prologue_scratch_regno): New static function.
10314         (split_stack_fn): New static variable.
10315         (ix86_expand_split_stack_prologue): New function.
10316         (ix86_live_on_entry): New static function.
10317         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
10318         (output_pic_addr_const): Likewise.
10319         (i386_asm_output_addr_const_extra): Likewise.
10320         (ix86_expand_call): Change return type to rtx.  Return the new
10321         call instruction.
10322         (TARGET_SUPPORTS_SPLIT_STACK): Define.
10323         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10324         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
10325         (split_stack_prologue, split_stack_return): New insns.
10326         (split_stack_space_check): New insn.
10327         * config/i386/i386.h (struct machine_function): Add
10328         split_stack_varargs_pointer field.
10329         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
10330         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10331         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
10332         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10333         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
10334         Declare.
10335         (ix86_expand_call): Update declaration.
10336
10337 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10338
10339         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
10340         code.  Added byref, which was missing in the list of codes.
10341         Explain that enumeration values are encoded as the integer type
10342         that the compiler uses to store them.  Explain and make examples
10343         of how 'const' interacts with pointers, and the complication of
10344         the encoding of 'const char *'.
10345         (Legacy type encoding): New subsection, explaining that GCC emits
10346         incorrect type encodings for the NeXT runtime for compatibility
10347         reasons.
10348         (@@encode): New subsection, explaining @encode and particularly
10349         that protocol qualifiers are not recognized inside an @encode()
10350         expression.
10351         (Method signatures): New subsection, explaining how method
10352         signatures are encoded.
10353
10354 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10355
10356         Merge from 'apple/trunk' branch on FSF servers.  Removed small
10357         change in build_conditional_expr that had been added when fixing
10358         PR objc/27377 and which did the same check in a less complete way.
10359
10360         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
10361
10362         Radar 4229905
10363         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
10364         looking for objective-c common pointer types.
10365
10366         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10367
10368         Radar 4154928
10369         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10370         use their ObjC common type.
10371
10372 2010-09-27  Richard Guenther  <rguenther@suse.de>
10373
10374         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10375
10376 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10377
10378         * print-tree.c (print_node): Print in-constant-pool.
10379
10380 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10381
10382         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10383         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10384         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10385         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10386
10387 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10388
10389         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10390         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10391         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10392         pro_epilogue_adjust_stack_<mode>_3.
10393         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10394         renamed pro_epilogue_adjust_stack_{si,di}_add.
10395         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10396         pro_epilogue_adjust_stack_{si,di}_sub.
10397
10398 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10399
10400         * config/i386/i386.md (movmsk_df): New insn.
10401         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10402         sequence for TARGET_SSE_MATH.
10403
10404 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10405
10406         * config/mips/mips.c (mips_builtin_decls): Declare.
10407         (mips_init_builtins): Store function declarations in
10408         mips_builtin_decls.
10409         (mips_builtin_decl): New function.
10410         (TARGET_BUILTIN_DECL): Define.
10411
10412 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10413             Richard Henderson  <rth@redhat.com>
10414
10415         * config/i386/cygwin.asm: Include auto-host.h.
10416         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10417         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10418         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10419         alignment code from the 64-bit path.  Use gas local labels.
10420         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10421         from _di_2.  Remove the useless constant integer argument.
10422         (pro_epilogue_adjust_stack_<mode>_3): New.
10423         (allocate_stack_worker_probe_<mode>): Macroize from
10424         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10425         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10426         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10427         (__chkstk_ms): New function.
10428         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10429         * config/i386/t-interix: Likewise.
10430         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10431         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10432         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10433         * configure, config.in: Rebuild.
10434
10435 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10436
10437         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10438         statements because of the return slot optimization.
10439
10440 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10441
10442         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10443         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10444         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10445         (class_likely_spilled_p): Rename to...
10446         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10447         type to reg_class_t.
10448
10449 2010-09-24  Jan Hubicka  <jh@suse.cz>
10450
10451         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10452         (lto_symtab_resolve_symbols): Set it.
10453         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10454         store resolution field in cgraph/varpool.
10455         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10456         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10457         (cgraph_dump_node): Drop used_from_object_file.
10458         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10459         (cgraph_function_body_availability): Use decl_replaceable_p.
10460         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10461         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10462         cgraph_used_from_object_file_p.
10463         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10464         cgraph_used_from_object_file_p.
10465         (resolution_used_from_other_file_p): New functoin.
10466         (cgraph_used_from_object_file_p): New predicate.
10467         * cgraph.h: Include plugin-api.h
10468         (struct cgraph_local_info): Remove used_from_object_file.
10469         (struct cgraph_node): Add resolution field.
10470         (struct varpool_node): Likewise; remove used_from_object_file;
10471         reove const_value_known.
10472         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10473         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10474         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10475         varpool_used_from_object_file_p): Declare.
10476         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10477         * tree.h (DECL_REPLACEABLE_P): Remove.
10478         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10479         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10480         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10481         input_overwrite_node, input_node, input_varpool_node): Stream
10482         resolution.
10483         * expr.c (expand_expr_real_1): Use const_value_known_p
10484         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10485         const_value_known.
10486         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10487         (function_and_variable_visibility): Set resolution for local vars
10488         and functions; use varpool_used_from_object_file_p.
10489         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10490         static functions.
10491         (default_binds_local_p_1): Use resolutoin info.
10492         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10493         * varpool.c (varpool_get_node): Constify.
10494         (const_value_known_p): Do not use vnode->const_value_known;
10495         use decl_replaceable_p.
10496         (varpool_finalize_decl): Do not set const_value_known.
10497         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10498         (varpool_extra_name_alias): Return new node.
10499         (varpool_used_from_object_file_p): New function.
10500
10501 2010-09-24  Richard Henderson  <rth@redhat.com>
10502
10503         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10504         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10505         (do_spill): Use REG_CFA_OFFSET.
10506         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10507         as appropriate.
10508         (ia64_expand_epilogue): Likewise.
10509         (process_set): Split into ...
10510         (process_cfa_adjust_cfa): this,
10511         (process_cfa_register): this,
10512         (process_cfa_offset): and this new function.
10513         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10514         instead of REG_FRAME_RELATED_EXPR.
10515
10516 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10517
10518         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10519
10520 2010-09-24  Jan Hubicka  <jh@suse.cz>
10521
10522         * doc/extend.texi: (attribute leaf): Document.
10523         * tree.c (local_define_builtin): Handle ECF_LEAF.
10524         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10525         * tree.h (ECF_LEAF): New.
10526         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10527         overwrittable and unavailable functions.
10528         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10529         (copy_global_bitmap): Do not copy all_module_statics.
10530         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10531         (propagate): Handle overwritable and unavailable leaf functions;
10532         initialize global info for overwritable and unavailable leaf functions;
10533         do not free all module statics.
10534         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10535         local statics.
10536         * calls.c (flags_from_decl_or_type): Handle leaf.
10537         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10538         abnormal gotos.
10539
10540 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10541
10542         * gengtype.c: Reindented.
10543         * gengtype.h: Reindented.
10544         * gengtype-parse.c: Reindented.
10545
10546 2010-09-24  Jan Hubicka  <jh@suse.cz>
10547
10548         PR tree-optimization/45738
10549         PR tree-optimization/45741
10550         * expr.c (string_constant): Allow CONST_DECL too;
10551         check that DECL_INITIAL is set.
10552         * varpool.c (const_value_known_p): Only look into VAR_DECL
10553         and CONST_DECL.
10554
10555 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10556
10557         * common.opt (undef): New.
10558
10559 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10560
10561         PR middle-end/45234
10562         * rtl.h (enum global_rtl_index): Add
10563         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10564         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10565         (virtual_preferred_stack_boundary_rtx,
10566         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10567         (LAST_VIRTUAL_REGISTER): Increase by one.
10568         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10569         instead of LAST_VIRTUAL_REGISTER.
10570         * function.c (instantiate_new_reg): Handle
10571         virtual_preferred_stack_boundary_rtx.
10572         * emit-rtl.c (init_virtual_regs): Handle
10573         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10574         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10575         * explow.c (round_push): If crtl->preferred_stack_boundary
10576         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10577         virtual_preferred_stack_boundary_rtx alignment instead of
10578         crtl->preferred_stack_boundary alignment.
10579         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10580         macros.  Never decrease crtl->preferred_stack_boundary,
10581         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10582         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10583         stack_pointer_delta in dynamic allocation, even when size
10584         is constant.
10585         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10586         macro.
10587         * print-rtl.c (print_rtx): Handle
10588         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10589         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10590         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10591         * config/frv/frv.c (frv_emit_movsi): Likewise.
10592         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10593         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10594         Likewise.
10595
10596         Revert:
10597         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10598
10599         PR middle-end/45234
10600         * calls.c (expand_call): Make sure that all variable sized
10601         adjustments are multiple of preferred stack boundary after
10602         stack alignment.
10603
10604 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10605             Dominique Dhumieres  <dominiq@lps.ens.fr>
10606
10607         PR bootstrap/45751
10608         * config/darwin-driver.c (darwin_default_min_version):
10609         Adjust size passed to memcpy in two places.
10610
10611 2010-09-24  Richard Guenther  <rguenther@suse.de>
10612
10613         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10614         Make sure to not call set_type_context with error_mark_node.
10615         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10616
10617 2010-09-24  Richard Guenther  <rguenther@suse.de>
10618
10619         * Makefile.in (OBJS-onestep): Remove.
10620         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10621         (libbackend.a): Remove onestep support.
10622         (libbackend.o): Remove.
10623         * configure.ac (--enable-intermodule): Remove.
10624         * configure: Regenerate.
10625
10626 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10627
10628         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10629         reaching the end of a block if it occurs at a DEBUG_INSN.
10630
10631 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10632
10633         PR target/44242
10634         * config/vms/vms-crt0-64.c: Removed.
10635         * config/vms/vms-crt0.c: Removed.
10636         * config/vms/vms-psxcrt0-64.c: Removed.
10637         * config/vms/vms-psxcrt0.c: Removed.
10638         * config/vms/vms-ucrt0.c: New file.
10639         * config/vms/t-vms64: Removed.
10640         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10641         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10642         * config.gcc (alpha-dec-vms): Use t-vms.
10643
10644 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10645
10646         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10647         underfull hbox in DVI output.
10648         (-fobjc-class-cxx-cdtors): Same change.
10649         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10650         option does, but moved the (lenghty) description of the exception
10651         syntax into objc.texi.
10652         (-fobjc-gc): Explain that the option is not useful with the GNU
10653         runtime.
10654         (-fzero-link): Explain that the GNU runtime always works in
10655         "zero-link" mode.
10656         * doc/objc.texi: All sections: simplified @node declarations
10657         removing specification of next, previous, up node.
10658         (Objective-C): Updated introduction.
10659         (Garbage Collection): Updated.  The bohem-gc library is now
10660         included in gcc itself.  Mention that this section only applies to
10661         the GNU Objective-C runtime.
10662         (compatibility_alias): Small tidy up.
10663         (Exceptions): New section mostly containing text previously in the
10664         description of the -fobjc-exception command-line option.
10665         (Synchronization): Same.
10666
10667 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10668
10669         * config/i386/i386.md (ix86_code_end): Move the initialization of
10670         xops array near the consumer.  Use AX_REG and SP_REG instead of
10671         numerical constants.
10672
10673 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10674
10675         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10676         method [methodname]' for an Objective-C method instead of the less
10677         satisfactory 'too many arguments to function' (with no method name).
10678
10679 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10680
10681         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10682         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10683         (execute_update_addresses_taken): Remove parameter.  Execute the
10684         optimization unconditionally.
10685         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10686         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10687         if TODO_update_address_taken is set.
10688
10689 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10690
10691         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10692         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10693         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10694         (arm_output_addr_const_extra): Make static.
10695
10696 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10697
10698         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10699         define as unspec_volatile.
10700         ("nops"): Define as unspec_volatile. Use fputs to write to
10701         asm_out_file directly.  Output NOPs on separate lines using while loop.
10702         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10703         asm_out_file directly.  Output NOPs on separate lines using while loop.
10704
10705 2010-09-23  Richard Guenther  <rguenther@suse.de>
10706
10707         PR tree-optimization/45565
10708         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10709         Make sure to adjust the fndecl before replacing the stmt.
10710
10711 2010-09-23  Richard Guenther  <rguenther@suse.de>
10712
10713         PR middle-end/45750
10714         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10715         gimplifying MEM_REF.
10716
10717 2010-09-23  Alan Modra  <amodra@gmail.com>
10718
10719         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10720         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10721
10722 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10723
10724         PR rtl-optimization/44374
10725         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10726         * df-core.c (df_set_bb_dirty): Set it.
10727         * ifcvt.c (find_memory): Remove function.
10728         (dead_or_predicable): Use can_move_insns_across.
10729         * df.h (can_move_insns_across): Declare function.
10730         * cfgcleanup.c (block_was_dirty): New static variable.
10731         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10732         than df_get_bb_dirty.
10733         (try_head_merge_bb): New static function.
10734         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10735         is set.
10736         * df-problems.c: Include "target.h"
10737         (df_simulate_find_uses): New static function.
10738         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10739         (find_memory, find_memory_store): New static functions.
10740         (can_move_insns_across): New function.
10741         * Makefile.in (df-problems.o): Update dependencies.
10742
10743 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10744
10745         PR java/44095
10746         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10747         is specified and the suffix of the file isn't ".c".
10748         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10749
10750 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10751
10752         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10753         * doc/cppopts.texi: Fix markup of index entry.
10754         * doc/extend.texi (Constructing Calls): Fix markup of
10755         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10756         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10757         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10758         keywords.
10759         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10760         avoid long lines.
10761         (C Dialect Options, C++ Dialect Options, Warning Options)
10762         (Debugging Options, Spec Files, Darwin Options)
10763         (i386 and x86-64 Options, MIPS Options)
10764         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10765         index entries, avoid abbreviations, allow URLs to wrap, avoid
10766         long lines, avoid overlong pages from long @itemx lists.
10767         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10768         * doc/standards.texi (Standards): Likewise.
10769         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10770
10771 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10772
10773         * opts-common.c (prune_options): Make static.  Work with decoded
10774         options.
10775         (decode_cmdline_options_to_array): Call prune_options.  Don't
10776         resize option array here.
10777         * opts.h (prune_options): Remove prototype.
10778         * gcc.c (process_command): Take decoded options; don't call
10779         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10780         (main): Call decode_cmdline_options_to_array here instead of
10781         prune_options.  Update call to process_command.
10782         * config/darwin-driver.c: Include opts.h.
10783         (darwin_default_min_version): Work with decoded options.  Don't
10784         handle -b or -V here.
10785         * config/darwin.h (darwin_default_min_version): Update prototype.
10786         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10787         darwin_default_min_version.
10788         * config/i386/cygwin.h (mingw_scan): Update prototype.
10789         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10790         * config/i386/cygwin1.c: Include opts.h.
10791         (mingw_scan): Work with decoded options.
10792         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10793         * config/t-darwin (darwin-driver.o): Update dependencies.
10794
10795 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10796
10797         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10798         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10799         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10800         -force-link, -force-link=, -language, -language=,
10801         -library-directory, -library-directory=, -no-canonical-prefixes,
10802         -no-standard-libraries, -no-warnings, -optimize, -output,
10803         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10804         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10805         -print-file-name=, -print-libgcc-file-name,
10806         -print-multi-directory, -print-multi-lib,
10807         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10808         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10809         -profile, -save-temps, -shared, -specs, -specs=, -static,
10810         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10811         symbolic): New.
10812         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10813         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10814         Remove comment.
10815         (cc1_options): Correct specs for passing down --help,
10816         --target-help and --help=*.  Add spec for passing down --version.
10817         (struct option_map, option_map, target_option_translations,
10818         translate_options): Remove.
10819         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10820         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10821         OPT_fhelp_ and OPT_ftarget_help.
10822         (process_command): Don't call translate_options.  Call
10823         decode_cmdline_options_to_array before checking for
10824         -no-canonical-prefixes using decoded options.
10825         * opts-common.c (tm.h): Update comment on #include.
10826         (find_opt): Allow abbreviations of long options.
10827         (struct option_map, option_map): New.
10828         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10829         and -mno handling.
10830         (target_option_translations): New.
10831         (decode_cmdline_options_to_array): Handle
10832         TARGET_OPTION_TRANSLATE_TABLE in driver.
10833         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10834         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10835
10836 2010-09-22  Richard Guenther  <rguenther@suse.de>
10837
10838         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10839         only if we inlined something.  Block compaction and conditional
10840         folding are done by cfg cleanup.  Schedule update-address-taken.
10841         (tree_function_versioning): Remove redundant call to number_blocks.
10842         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10843         folding is done by cfg cleanup.
10844         * passes.c (init_optimization_passes): Remove update-address-taken
10845         pass after IPA inlining.
10846
10847 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10848
10849         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
10850         to update conditions. Fix reg_mode[] check.
10851
10852 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
10853
10854         * config/picochip/picochip.md (movhicc): Use expand to check whether
10855         movhicc is available and split it after reload.
10856
10857 2010-09-22  Richard Guenther  <rguenther@suse.de>
10858
10859         * tree-ssanames.c (release_dead_ssa_names): Do not remove
10860         callee edges here.
10861         * passes.c (init_optimization_passes): Remove early CFG cleanup.
10862         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
10863         (pass_cleanup_cfg): Likewise.
10864         (execute_fixup_cfg): Cleanup.
10865         * tree-pass.h (pass_cleanup_cfg): Remove.
10866
10867 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10868
10869         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
10870         builtins if it is true.
10871         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
10872         parameter.
10873
10874 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10875
10876         * tree-sra.c (struct access): New field grp_no_warning.
10877         (create_access_replacement): Set TREE_NO_WARNING according to
10878          grp_no_warning.
10879         (create_artificial_child_access): Use build_ref_for_model and set
10880         grp_no_warning if build_user_friendly_ref_for_offset fails.
10881         (propagate_subaccesses_across_link): Likewise.
10882
10883 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10884
10885         PR target/35664
10886         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
10887         ('f'): Likewise.
10888
10889 2010-09-22  Tristan Gingold  <gingold@adacore.com>
10890
10891         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
10892
10893 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
10894
10895         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
10896         * config/i386/i386.c (decide_alg): Update for rename.
10897
10898 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
10899
10900         PR rtl-optimization/45739
10901         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
10902         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
10903
10904 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
10905
10906         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
10907         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
10908         Remove.
10909         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
10910         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10911
10912 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10913
10914         PR objc/23710
10915         * c-parser.c (c_parser_objc_method_definition): Check the return
10916         value of objc_start_method_definition and if false is returned,
10917         parse the method definition but emit no code.
10918
10919 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10920
10921         PR objc/25965
10922         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
10923         call objc_get_interface_ivars ().
10924
10925 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
10926
10927         PR target/45694
10928         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
10929         static chain-register is used for 64-bit.
10930
10931 2010-09-21  Richard Guenther  <rguenther@suse.de>
10932
10933         * dwarf2out.c (is_cu_die): New function.
10934         (add_pubtype): Use it.
10935         (gen_subprogram_die): Likewise.
10936         (gen_struct_or_union_type_die): Likewise.
10937         (dwarf2out_finish): Likewise.
10938         (comp_unit_die): Rename to ...
10939         (single_comp_unit_die): ... this.
10940         (comp_unit_die): New function lazily constructing and
10941         returning single_comp_unit_die.
10942         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
10943         base_type_die, subrange_type_die, modified_type_die,
10944         lower_bound_default, add_bound_info, add_prototyped_attribute,
10945         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
10946         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
10947         force_decl_die, gen_namespace_die, dwarf2out_decl,
10948         dwarf2out_start_source_file, dwarf2out_end_source_file,
10949         prune_unused_types, dwarf2out_finish): Use it.
10950         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
10951         the global list of translation-unit decls.
10952         (dwarf2out_init): Do not create single_comp_unit_die here.
10953         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
10954
10955 2010-09-21  Richard Guenther  <rguenther@suse.de>
10956
10957         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
10958         for bool for C++.
10959
10960 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
10961
10962         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
10963         (qhs_extenddi_cstr): Likewise.
10964         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
10965         them for the source operand.
10966
10967 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
10968
10969         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
10970         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
10971         (ix86_split_ashr): Ditto.
10972         (ix86_split_lshr): Ditto.
10973
10974 2010-09-21  Richard Guenther  <rguenther@suse.de>
10975
10976         PR tree-optimization/45580
10977         * tree-ssa-propagate.c (substitute_and_fold): Always replace
10978         regular uses.
10979         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
10980         virtuals fold the call into a regular indirect one.
10981
10982 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
10983
10984         PR rtl-optimization/42775
10985         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
10986         scheduling is enabled.
10987
10988 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10989
10990         PR rtl-optimization/45728
10991         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
10992         gen_lowpart_common first and if that fails, force_reg first
10993         before calling gen_lowpart.
10994
10995         PR middle-end/45678
10996         * cfgexpand.c (expand_one_stack_var_at): Use
10997         crtl->max_used_stack_slot_alignment as max_align, instead
10998         of maximum of that and PREFERRED_STACK_BOUNDARY.
10999         Don't call update_stack_alignment.
11000
11001 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11002
11003         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11004         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11005         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11006         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11007         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11008         (build_nonstandard_integer_type): Likewise.
11009         (build_range_type_1): New function, built from...
11010         (build_range_type): ...this.  Call build_range_type_1.
11011         (build_nonshared_range_type): New function.
11012         (build_array_type_1): New function, built from...
11013         (build_array_type: ...this.  Call build_array_type_1.
11014         (build_nonshared_array_type): New function.
11015         * tree.h (build_nonshared_range_type): Declare.
11016         (build_nonshared_array_type): Likewise.
11017
11018 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11019
11020         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11021         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11022         (arm_class_likely_spilled_p): New function.
11023
11024 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11025
11026         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11027         indirect functions.
11028         (ix86_split_ashl): Ditto.
11029         (ix86_split_ashr): Ditto.
11030         (ix86_split_lshr): Ditto.
11031         (ix86_adjust_counter): Ditto.
11032
11033 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11034
11035         * c-family/c-common.h (constant_string_class): Documented with
11036         comment identical to the one already in c-common.c.
11037
11038 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11039
11040         * dwarf2out.c (any_cfis_emitted): New static variable.
11041         (add_fde_cfi): Set it.
11042         (dwarf2out_frame_debug): Clear it before processing,
11043         if it is set afterwards, flush any queued reg saves.
11044
11045         PR debug/45124
11046         * dwarf2out.c (add_accessibility_attribute): Assume
11047         DW_ACCESS_private as the default for dwarf_version > 2
11048         and DW_TAG_class_type parent.
11049         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11050         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11051
11052 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11053
11054         PR target/45726
11055         * arm.md (arm_movt): Only enable on machines with MOVT.
11056
11057 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11058
11059         * config/arm/arm.c (arm_address_offset_is_imm): New.
11060         (arm_early_store_addr_dep): New.
11061         (arm_early_load_addr_dep): New.
11062         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11063         (arm_early_load_addr_dep): Declare.
11064         (arm_address_offset_is_imm): Declare.
11065         * config/arm/cortex-m4.md: New file.
11066         * config/arm/cortex-m4-fpu.md: New file.
11067         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11068         (attr generic_sched): Exclude cortexm4.
11069         (attr generic_vfp): Exclude cortexm4.
11070
11071 2010-09-20  Richard Guenther  <rguenther@suse.de>
11072
11073         PR middle-end/45704
11074         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11075
11076 2010-09-20  Jan Hubicka  <jh@suse.cz>
11077
11078         PR tree-optimize/45605
11079         * cgraph.h (const_value_known_p): Declare.
11080         (varpool_decide_const_value_known): Remove.
11081         * tree-ssa-ccp.c (get_base_constructor): Use it.
11082         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11083         * expr.c (string_constant): Likewise.
11084         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11085         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11086         function_and_variable_visibility): Likewise.
11087         * gimplify.c (gimplify_call_expr): Likewise.
11088         * gimple-fold.c (get_symbol_constant_value): Likewise.
11089         * varpool.c (varpool_decide_const_value_known): Replace by...
11090         (const_value_known_p): ... this one; handle other kinds of DECLs
11091         too and work for automatic vars.
11092         (varpool_finalize_decl): Use const_value_known_p.
11093
11094 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11095
11096         PR target/45726
11097         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11098
11099 2010-09-20  Richard Guenther  <rguenther@suse.de>
11100
11101         PR tree-optimization/45705
11102         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11103
11104 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11105
11106         PR rtl-optimization/45695
11107         * combine.c (try_combine): When splitting a two set pattern,
11108         make sure the pattern which will be put into i2 doesn't use REGs
11109         or MEMs set by insns in between i2 and i3.
11110
11111 2010-09-19  Jan Hubicka  <jh@suse.cz>
11112
11113         PR lto/44246
11114         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11115         processing same node twice.
11116
11117 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11118
11119         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11120         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11121         (bfin_class_likely_spilled_p): New function
11122
11123 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11124
11125         PR tree-optimization/45714
11126         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11127         created in vectorizable_call instead of the original statement in
11128         def stmt updates.
11129
11130 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11131
11132         * config/i386/i386-protos.h (split_double_mode): New prototype.
11133         (split_di, split_ti): Remove prototypes.
11134         * config/i386/i386.c (split_double_mode): New function.
11135         (split_di, split_ti): Remove.
11136         (ix86_expand_branch): Use split_double_mode.
11137         (ix86_split_to_parts): Ditto.
11138         (ix86_split_ashl): Ditto.
11139         (ix86_split_ashr): Ditto.
11140         (ix86_split_lshr): Ditto.
11141         (ix86_force_to_memory): Ditto.
11142         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11143
11144 2010-09-18  Jan Hubicka  <jh@suse.cz>
11145
11146         PR tree-optimization/45453
11147         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11148         virtual functions are reachable.
11149         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11150         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11151         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11152         when modifying function.
11153
11154 2010-09-18  Jan Hubicka  <jh@suse.cz>
11155
11156         PR tree-optimization/45605
11157         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11158         * gimple-fold.c (static_object_in_other_unit_p): New function.
11159         (canonicalize_constructor_val): Use it.
11160         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11161         returning NULL.
11162         (gimple_fold_obj_type_ref_known_binfo): Use
11163         static_object_in_other_unit_p.
11164
11165 2010-09-18  Richard Guenther  <rguenther@suse.de>
11166
11167         PR tree-optimization/45709
11168         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11169         insertions until after all PHI nodes of the block are processed.
11170
11171 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11172
11173         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11174
11175 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11176
11177         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11178
11179 2010-09-18  Richard Guenther  <rguenther@suse.de>
11180
11181         PR tree-optimization/45709
11182         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11183
11184 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11185
11186         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11187         (dot_deps_stmt): Same.
11188         * graphite-poly.c (dot_lst): Same.
11189         * graphite-scop-detection.c (dot_all_scops): Same.
11190         (dot_scop): Same.
11191
11192 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11193
11194         Revert:
11195         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11196
11197         * tree-data-ref.c (dot_rdg_1): Added back.
11198         (dot_rdg): Same.  Added "#if 0" around system call.
11199
11200 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11201             Richard Henderson  <rth@redhat.com>
11202
11203         * config/i386/i386.c (initial_ix86_tune_features): Add
11204         X86_TUNE_PAD_SHORT_FUNCTION.
11205         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
11206         (ix86_count_insn): New.
11207         (ix86_pad_short_function): Likewise.
11208         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
11209
11210         * config/i386/i386.h (ix86_tune_indices): Add
11211         X86_TUNE_PAD_SHORT_FUNCTION.
11212         (TARGET_PAD_SHORT_FUNCTION): New.
11213
11214         * config/i386/i386.md (UNSPEC_NOPS): New.
11215         (nops): Likewise.
11216
11217 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11218
11219         PR middle-end/45234
11220         * calls.c (expand_call): Make sure that all variable sized
11221         adjustments are multiple of preferred stack boundary after
11222         stack alignment.
11223
11224 2010-09-17  DJ Delorie  <dj@redhat.com>
11225
11226         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
11227         passed an invalid value, print an error instead of ICEing.
11228         (valid_psw_flag): New.
11229         (rx_expand_builtin): Call it for setpsw/clrpsw.
11230         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
11231
11232         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
11233         (bitclr_in_memory): Likewise.
11234         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
11235
11236 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11237
11238         PR middle-end/45678
11239         * cfgexpand.c (update_stack_alignment): New.
11240         (get_decl_align_unit): Use it.
11241         (expand_one_stack_var_at): Call update_stack_alignment.
11242
11243 2010-09-17  Richard Guenther  <rguenther@suse.de>
11244
11245         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
11246         Properly copy the read string.
11247
11248 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
11249
11250         * doc/options.texi (Variable): Document.
11251         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
11252         generate target_flags declarations explicitly.  Don't define
11253         VarExists variables for the driver.
11254         * common.opt (target_flags): New Variable record.
11255         (flag_dump_unnumbered, flag_dump_unnumbered_links,
11256         flag_var_tracking, flag_var_tracking_assignments,
11257         flag_var_tracking_assignments_toggle): Don't mark variables with
11258         VarExists.
11259         * config/i386/i386.c (ix86_isa_flags): Don't define here.
11260         * config/i386/i386.opt (ix86_isa_flags): Define here.
11261         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
11262         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
11263         VarExists.
11264         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
11265         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
11266         Only define for generator programs.
11267         * rtlanal.c (target_flags): Remove.
11268         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
11269         flag_var_tracking_assignments_toggle): Remove.
11270
11271 2010-09-17  Michael Matz  <matz@suse.de>
11272
11273         PR tree-optimization/43432
11274         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11275         Accept backwards consecutive accesses.
11276         (vect_create_data_ref_ptr): If step is negative generate
11277         decreasing IVs.
11278         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
11279         (perm_mask_for_reverse, reverse_vec_elements): New functions.
11280         (vectorizable_load): Handle loads with negative steps when easily
11281         possible.
11282
11283 2010-09-03  Jan Hubicka  <jh@suse.cz>
11284
11285         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
11286
11287 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
11288
11289         * config/v850/v850.c (v850_function_value_regno_p): Make static.
11290         Adjust comments. Declare.
11291         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11292         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
11293
11294 2010-09-17  Richard Guenther  <rguenther@suse.de>
11295
11296         * common.opt (combine): Remove.
11297         * gcc.c (default_compilers): Remove specs testing combine.
11298         The C compilers no longer can combine.
11299         (option_map): Remove -combine.
11300         (display_help): Remove -combine.
11301         (driver_handle_option): Remove OPT_combine handling.
11302         (compile_input_file_p): Remove.
11303         (do_spec): Remove code concerning combine.
11304         (main): Likewise.
11305         * doc/invoke.texi: Remove traces of -combine.
11306         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
11307
11308 2010-09-17  Richard Guenther  <rguenther@suse.de>
11309
11310         PR middle-end/45678
11311         * builtins.c (fold_builtin_memory_op): Always properly adjust
11312         alignment of memory accesses.
11313
11314 2010-09-16  Jan Hubicka  <jh@suse.cz>
11315
11316         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
11317         processing clone.
11318
11319 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
11320
11321         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
11322
11323         * config/i386/i386.c (predict_jump): Add prototype.
11324         (flag_opts): Add -m8bit-idiv.
11325         (ix86_split_idivmod): New.
11326
11327         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
11328         Add 2 splitters for SI/DI mode divide.
11329         (divmod<mode>4_1): New pattern.
11330         (udivmod<mode>4_1): Likewise.
11331         (testdi_ccno_1): Likewise.
11332
11333         * config/i386/i386.opt (m8bit-idiv): New.
11334
11335         * doc/invoke.texi: Document -m8bit-idiv.
11336
11337 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
11338
11339         PR bootstrap/45680
11340         * config/i386/i386.c (min_insn_size): Moved out of the
11341         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
11342
11343 2010-09-16  Jan Hubicka  <jh@suse.cz>
11344
11345         * lto-cgraph.c (lto_output_node): Fix handling of clones.
11346         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
11347         unreachable clones with reachable clones.
11348         * tree-inline.c (copy_bb): Fix sanity checking when producing
11349         unreachable clone.
11350
11351 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
11352
11353         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
11354         (TARGET_MEMORY_MOVE_COST): Define.
11355         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
11356
11357 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
11358
11359         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
11360         maybe_tidy_empty_bb.
11361
11362         Revert:
11363         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11364         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11365
11366 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11367
11368         * target.def (target_option.optimization): New hook.
11369         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11370         TARGET_OPTION_OPTIMIZATION hook.
11371         * doc/tm.texi: Regenerate.
11372         * hooks.c (hook_void_int_int): New.
11373         * hooks.h (hook_void_int_int): Declare.
11374         * opts.c: Don't include tm_p.h.
11375         (decode_options): Use targetm.target_option.optimization instead
11376         of OPTIMIZATION_OPTIONS.
11377         * system.h (OPTIMIZATION_OPTIONS): Poison.
11378         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11379         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11380         (arm_optimization_options): Rename to arm_option_optimization.
11381         Make static.
11382         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11383         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11384         (cris_option_optimization): New.
11385         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11386         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11387         (crx_option_optimization): New.
11388         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11389         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11390         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11391         (frv_optimization_options): Rename to frv_option_optimization.
11392         Make static.
11393         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11394         * config/h8300/h8300.c (h8300_option_optimization): New.
11395         (TARGET_OPTION_OPTIMIZATION): Define.
11396         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11397         * config/i386/i386-protos.h (optimization_options): Remove.
11398         * config/i386/i386.c (optimization_options): Rename to
11399         ix86_option_optimization.  Make static.
11400         (TARGET_OPTION_OPTIMIZATION): Define.
11401         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11402         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11403         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11404         (ia64_optimization_options): Rename to ia64_option_optimization.
11405         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11406         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11407         commented-out definition.
11408         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11409         instead of OPTIMIZATION_OPTIONS.
11410         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11411         (m32r_option_optimization): New.
11412         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11413         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11414         Remove.
11415         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11416         (mcore_option_optimization): New.
11417         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11418         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11419         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11420         (mep_optimization_options): Rename to mep_option_optimization.
11421         Make static.  Take unused level and size parameters.
11422         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11423         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11424         (mmix_option_optimization): New.
11425         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11426         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11427         (pdp11_option_optimization): New.
11428         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11429         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11430         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11431         (optimization_options): Rename to rs6000_option_optimization.
11432         Make static.
11433         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11434         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11435         * config/rx/rx.c (rx_set_optimization_options): Rename to
11436         rx_option_optimization.  Make static.  Take unused level and size
11437         parameters.
11438         (TARGET_OPTION_OPTIMIZATION): Define.
11439         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11440         * config/s390/s390-protos.h (optimization_options): Remove.
11441         * config/s390/s390.c (optimization_options): Rename to
11442         s390_option_optimization.  Make static.  Don't mark size parameter
11443         unused.
11444         (TARGET_OPTION_OPTIMIZATION): Define.
11445         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11446         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11447         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11448         (sh_optimization_options): Rename to sh_option_optimization.  Make
11449         static.  Don't mark parameters unused.
11450         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11451         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11452         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11453         (spu_optimization_options): Rename to spu_option_optimization.
11454         Make static.
11455         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11456         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11457         (v850_option_optimization): New.
11458         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11459         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11460         (xtensa_option_optimization): New.
11461         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11462
11463 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11464
11465         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11466         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11467         * doc/tm.texi: Regenerate.
11468         * system.h (OVERRIDE_OPTIONS): Poison.
11469         * target.def (override): Default to hook_void_void.
11470         * targhooks.c (default_target_option_override): Remove.
11471         * genmodes.c, machmode.def: Update comments mentioning
11472         OVERRIDE_OPTIONS.
11473         * config/alpha/alpha-modes.def: Update comment mentioning
11474         alpha_override_options.
11475         * config/alpha/alpha-protos.h (override_options): Remove.
11476         * config/alpha/alpha.c (override_options): Rename to
11477         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11478         (TARGET_OPTION_OVERRIDE): Define.
11479         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11480         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11481         of OVERRIDE_OPTIONS.
11482         * config/arc/arc-protos.h (arc_init): Remove.
11483         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11484         (arc_init): Rename to arc_option_override.  Make static.
11485         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11486         (OVERRIDE_OPTIONS): Remove.
11487         * config/arm/arm-protos.h (arm_override_options): Remove.
11488         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11489         (arm_override_options): Rename to arm_option_override.  Make
11490         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11491         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11492         * config/arm/arm.md: Update comment referring to arm_override_options.
11493         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11494         instead of OVERRIDE_OPTIONS.
11495         * config/avr/avr-protos.h (avr_override_options): Remove.
11496         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11497         (avr_override_options): Rename to avr_option_override.  Make static.
11498         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11499         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11500         * config/bfin/bfin.c (override_options): Rename to
11501         bfin_option_override.  Make static.
11502         (TARGET_OPTION_OVERRIDE): Define.
11503         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11504         * config/cris/cris-protos.h (cris_override_options): Remove.
11505         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11506         (cris_override_options): Rename to cris_option_override.  Make static.
11507         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11508         * config/frv/frv-protos.h (frv_override_options): Remove.
11509         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11510         (frv_override_options): Rename to frv_option_override.  Make static.
11511         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11512         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11513         * config/h8300/h8300.c (h8300_init_once): Rename to
11514         h8300_option_override.  Make static.
11515         (TARGET_OPTION_OVERRIDE): Define.
11516         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11517         * config/i386/i386-protos.h (override_options): Remove.
11518         * config/i386/i386.c (override_options): Rename to
11519         ix86_option_override_internal.  Make static.  Comments referring
11520         to this function and callers changed.
11521         (ix86_option_override): New.
11522         (TARGET_OPTION_OVERRIDE): Define.
11523         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11524         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11525         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11526         to ia64_override_options.
11527         * config/iq2000/iq2000-protos.h (override_options): Remove.
11528         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11529         (override_options): Rename to iq2000_option_override.  Make static.
11530         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11531         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11532         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11533         (lm32_override_options): Rename to lm32_option_override.  Make static.
11534         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11535         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11536         (m32r_option_override): New.
11537         (m32r_init): Update comment.
11538         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11539         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11540         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11541         (m68hc11_override_options): Rename to m68hc11_option_override.
11542         Make static.  Return void.
11543         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11544         * config/m68k/m68k-protos.h (override_options): Remove.
11545         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11546         (override_options): Rename to m68k_option_override.  Make static.
11547         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11548         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11549         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11550         (mcore_override_options): Rename to mcore_option_override.  Make
11551         static.
11552         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11553         * config/mep/mep-protos.h (mep_override_options): Remove.
11554         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11555         (mep_override_options): Rename to mep_option_override.  Make static.
11556         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11557         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11558         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11559         (mmix_override_options): Rename to mmix_option_override.  Make static.
11560         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11561         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11562         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11563         (mn10300_override_options): Rename to mn10300_option_override.
11564         Make static.
11565         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11566         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11567         * config/moxie/moxie.c (moxie_override_options): Rename to
11568         moxie_option_override.  Make static.
11569         (TARGET_OPTION_OVERRIDE): Define.
11570         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11571         * config/picochip/picochip-protos.h (picochip_override_options):
11572         Remove.  Update comment referring to picochip_override_options.
11573         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11574         (picochip_override_options): Rename to picochip_option_override.
11575         Make static.  Update comment and definition of
11576         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11577         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11578         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11579         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11580         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11581         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11582         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11583         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11584         instead of OVERRIDE_OPTIONS.
11585         * config/rs6000/rs6000-modes.def: Update comment referring to
11586         rs6000_override_options.
11587         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11588         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11589         (rs6000_override_options): Rename to
11590         rs6000_option_override_internal.  Make static.  Commented
11591         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11592         (rs6000_option_override): New.
11593         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11594         instead of OVERRIDE_OPTIONS.
11595         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11596         * config/s390/s390-protos.h (override_options): Remove.
11597         * config/s390/s390.c (override_options): Rename to
11598         s390_option_override.  Make static.
11599         (TARGET_OPTION_OVERRIDE): Define.
11600         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11601         * config/score/score-protos.h (score_override_options): Remove.
11602         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11603         (score_override_options): Rename to score_option_override.  Make
11604         static.
11605         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11606         Update comment referring to override_options.
11607         * config/score/score3.c (score3_override_options): Rename to
11608         score3_option_override.
11609         * config/score/score3.h (score3_override_options): Rename to
11610         score3_option_override.
11611         * config/score/score7.c (score7_override_options): Rename to
11612         score7_option_override.
11613         * config/score/score7.h (score7_override_options): Rename to
11614         score7_option_override.
11615         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11616         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11617         (sparc_override_options): Rename to sparc_option_override.  Make
11618         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11619         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11620         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11621         instead of OVERRIDE_OPTIONS.
11622         * config/spu/spu-protos.h (spu_override_options): Remove.
11623         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11624         (spu_override_options): Rename to spu_option_override.  Make
11625         static.
11626         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11627         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11628         OVERRIDE_OPTIONS.
11629         * config/vax/vax-protos.h (override_options): Remove.
11630         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11631         (override_options): Rename to vax_option_override.  Make static.
11632         Call SUBTARGET_OVERRIDE_OPTIONS.
11633         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11634         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11635         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11636         * config/xtensa/xtensa-protos.h (override_options): Remove.
11637         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11638         (override_options): Rename to xtensa_option_override.  Make static.
11639         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11640
11641 2010-09-16  Richard Guenther  <rguenther@suse.de>
11642
11643         PR tree-optimization/45623
11644         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11645         (get_constraint_for_component_ref): If computing a constraint
11646         for the rhs handle type punning through unions.
11647         (get_constraint_for_address_of): Adjust.
11648         (get_constraint_for_1): Likewise.
11649         (get_constraint_for): Likewise.
11650         (get_constraint_for_rhs): New function.
11651         (do_structure_copy): Adjust.
11652         (make_constraint_to): Likewise.
11653         (handle_const_call): Likewise.
11654         (find_func_aliases): Likewise.
11655         (process_ipa_clobber): Likewise.
11656         (create_variable_info_for): Likewise.
11657
11658 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11659
11660         * tree-vectorizer.c: Fix documentation.
11661         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11662         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11663         is_pattern_stmt_p, is_loop_header_bb_p,
11664         stmt_vinfo_set_inside_of_loop_cost,
11665         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11666         known_alignment_for_access_p): Likewise.
11667         * tree-vect-loop.c: Fix documentation.
11668         (vect_get_cost): Start function name from new line.
11669         * tree-vect-data-refs.c: Fix documentation.
11670         * tree-vect_stmts.c: Likewise.
11671         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11672         (vectorizable_store): Free vec_oprnds if allocated.
11673         (vectorizable_condition): Initialize several variables to avoid
11674         warnings.
11675         * tree-vect-slp.c: Fix documentation.
11676
11677 2010-09-16  Richard Guenther  <rguenther@suse.de>
11678
11679         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11680         is TS_TRANSLATION_UNIT_DECL.
11681         (initialize_tree_contains_struct): Adjust.
11682         (all_translation_units): New global vector.
11683         (build_translation_unit_decl): New function.
11684         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11685         (struct tree_translation_unit_decl): New.
11686         (all_translation_units): Declare.
11687         (union tree_node): Add translation_unit_decl member.
11688         (build_translation_unit_decl): Declare.
11689         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11690         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11691         New function.
11692         (pack_value_fields): Call it.
11693         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11694         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11695         (lto_output_tree_pointers): Call it.
11696         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11697         to TRANSLATION_UNIT_DECL.
11698         (unpack_ts_translation_unit_decl_value_fields): New function.
11699         (unpack_value_fields): Call it.
11700         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11701         (lto_input_tree_pointers): Call it.
11702         * lto-streamer.c (check_handled_ts_structures): Adjust.
11703         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11704         * c-decl.c (all_translation_units): Remove.
11705         (pop_scope): Use build_translation_unit_decl.
11706         (collect_all_refs): Adjust.
11707         (for_each_global_decl): Likewise.
11708         (c_write_global_declarations): Likewise.
11709
11710 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11711
11712         PR bootstrap/45686
11713         * fold-const.c (fold_checksum_tree): Change slot from const void **
11714         to void **, use CONST_CAST_TREE to store into *slot.
11715
11716 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11717
11718         * config/i386/i386.md: Remove unneeded empty conditions and
11719         preparation statements from expanders.
11720         * config/i386/mmx.md: Ditto.
11721         * config/i386/sse.md: Ditto.
11722
11723 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11724
11725         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11726
11727 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11728
11729         PR rtl-optimization/45593
11730         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11731         insns that were in delay slots as stand-alone insns.
11732
11733 2010-09-15  Ian Lance Taylor  <iant@google.com>
11734
11735         * incpath.c (remove_duplicates): If name is not a directory, issue
11736         a warning rather than an error.
11737
11738 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11739
11740         PR middle-end/45644
11741         * tree-sra.c (create_access): Check for bit-fields directly.
11742
11743 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11744
11745         PR tree-optimization/45633
11746         * tree-cfg.c (verify_gimple_assign_binary): Allow
11747         MINUS_EXPR with lhs and rhs1 pointer vector and
11748         rhs2 sizetype vector.
11749         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11750         or vector pointer use TER to optimize pointer subtraction.
11751
11752 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11753
11754         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11755         fcmpd to fcmps.
11756
11757 2010-09-15  Ian Lance Taylor  <iant@google.com>
11758
11759         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11760
11761 2010-09-15  Ian Lance Taylor  <iant@google.com>
11762
11763         * function.c (get_arg_pointer_save_area): Set
11764         arg_pointer_save_area_init to true.
11765
11766 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11767
11768         * tree-sra.c (generate_subtree_copies): Updated comment.
11769         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11770         obtained from the statement iterator instead.
11771         (load_assign_lhs_subreplacements): Removed parameters lhs and
11772         right_offset, which is obtained from top_racc instead.  Parameter lacc
11773         is now expected to be the root of the processed tree rather than root's
11774         first child.  Updated all callers.
11775
11776 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11777
11778         * config/pdp11/pdp11.c (register_move_cost): Rename to
11779         pdp11_register_move_cost.
11780         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11781         pdp11_register_move_cost.
11782         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11783         pdp11_register_move_cost instead of register_move_cost.
11784
11785 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11786
11787         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11788         pattern for vmovn. Expansion in case of non
11789         -mvectorize-with-neon-quad.
11790         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11791         non- -mvectorize-with-neon-quad case.
11792         (move_lo_quad_<mode>): New expansion to vmov into low part.
11793         (move_hi_quad_<mode>): New expansion to vmov into high part.
11794         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11795         (move_lo_quad_v4sf): Likewise.
11796         (move_lo_quad_v8hi): Likewise.
11797         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11798         low part.
11799         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11800         high part.
11801         * config/arm/iterators.md (ANY128): New mode iterator.
11802         (V_narrow_pack): New mode attribute.
11803         (V_HALF): Add attribute.
11804         (V_DOUBLE): Add attribute.
11805         (V_mode_nunits): Add attribute.
11806
11807 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11808
11809         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11810         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11811
11812 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11813             Jose Ruiz  <ruiz@adacore.com>
11814
11815         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11816         * config/alpha/osf5-unwind.h: New file.
11817
11818 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11819
11820         PR bootstrap/45672
11821         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11822         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11823         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11824
11825 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11826
11827         * c-lang.h (struct lang_type): Add variable_size GTY option.
11828
11829 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11830
11831         PR bootstrap/45672
11832         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11833
11834 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11835
11836         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11837         result isn't used in memory address.
11838
11839 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11840
11841         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11842         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11843         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11844         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11845         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
11846         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
11847
11848         * target.def: Add units_per_simd_word to vectorize.
11849
11850         * targhooks.c (default_units_per_simd_word): New.
11851         * targhooks.h (default_units_per_simd_word): Likewise.
11852         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
11853         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11854         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
11855         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11856         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11857         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11858         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11859         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11860
11861         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
11862         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
11863
11864         * tree-vect-stmts.c: Don't include "tm_p.h".
11865         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
11866         with targetm.vectorize.units_per_simd_word.
11867
11868         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
11869
11870         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
11871
11872         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
11873         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11874
11875         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
11876         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
11877
11878         * doc/tm.texi: Regenerated.
11879
11880 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11881
11882         * tree-vect-stmts.c: Include "tm_p.h".
11883
11884         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
11885         out of RTX_CODE.
11886
11887 2010-09-14  Martin Jambor  <mjambor@suse.cz>
11888
11889         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
11890         location of generated statement.  Changed all callers.
11891         (build_ref_for_model): New parameter loc which used to set location of
11892         all generated expressions.  Changed all callers.
11893         (generate_subtree_copies): Likewise.
11894         (init_subtree_with_zero): Likewise.
11895         (sra_modify_expr): Set locations of all generated statements and
11896         expressions to the location the original statement.
11897         (handle_unscalarized_data_in_subtree): Likewise.
11898         (load_assign_lhs_subreplacements): Likewise.
11899         (sra_modify_constructor_assign): Likewise.
11900         (sra_modify_assign): Likewise.
11901
11902 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
11903
11904         PR target/45277
11905         PR target/45363
11906         PR target/45407
11907         * doc/install.texi (sparc*-*-*): New section.
11908         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
11909
11910 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11911
11912         PR middle-end/45567
11913         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
11914         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
11915         (expand_builtin): Adjust caller.
11916         (expand_builtin_unop): Only use subtarget if it has the right mode.
11917
11918 2010-09-14  Tristan Gingold  <gingold@adacore.com>
11919
11920         * configure.ac (plugins): Fix typos.
11921         * configure: Regenerate.
11922
11923 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11924
11925         PR debug/45660
11926         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
11927         gen_type_die for function/method return type.
11928
11929 2010-09-14  Ira Rosen  <irar@il.ibm.com>
11930
11931         PR tree-optimization/45470
11932         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11933         can throw an exception.
11934         * tree-vect-stmts.c (vectorizable_call): Likewise.
11935
11936 2010-09-14  DJ Delorie  <dj@redhat.com>
11937
11938         PR target/44749
11939         * config/mep/mep-protos.h (mep_save_register_info,
11940         mep_reinit_regs, mep_init_regs): Declare.
11941
11942         * config/mep/mep.c: Move all target definitions to the end of the
11943         file to avoid the need for duplicate declarations.
11944         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
11945         (mep_reorg_erepeat): Remove unused variables.
11946         (mep_expand_builtin): Likewise.
11947
11948         * config/mep/mep-pragma.c: Don't include rtl.h.
11949         (INVALID_REGNUM): New.
11950         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
11951         functions.
11952         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
11953         Avoid enum/integer math.
11954
11955 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
11956
11957         PR target/44749
11958         * config/mep/t-mep (GTM_H): Add insn-constants.h.
11959         * config/mep/mep.c (mep_conditional_register_usage): Take no
11960         parameters.
11961         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
11962         prototype.
11963         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
11964         call to mep_conditional_register_usage.
11965
11966 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
11967
11968         PR debug/43937
11969         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
11970         the DECL as well.
11971
11972 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
11973
11974         PR rtl-optimization/45617
11975         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
11976         even if low N bits of X aren't known to be zero.
11977
11978 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
11979
11980         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
11981
11982         * config/i386/i386.c (initial_ix86_tune_features): Add
11983         X86_TUNE_VECTORIZE_DOUBLE.
11984         (ix86_units_per_simd_word): New.
11985
11986         * config/i386/i386.h (ix86_tune_indices): Add
11987         X86_TUNE_VECTORIZE_DOUBLE.
11988         (TARGET_VECTORIZE_DOUBLE): New.
11989         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
11990
11991 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
11992
11993         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
11994         (new_temp_expr_table): Allocate call_cnt vector.
11995         (free_temp_expr_table): Free it.
11996         (process_replaceable): Add call_cnt parm and set in vector.
11997         (find_replaceable_in_bb): Skip replacement if def/use span a call.
11998         (debug_ter): Dump call_cnt value, remove stderr uses.
11999
12000 2010-09-13  Jan Hubicka  <jh@suse.cz>
12001
12002         * tree.c (build_zero_cst): New.
12003         * tree.h (build_zero_cst): Declare.
12004         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12005         (get_base_constructor): Break out from ...
12006         (fold_const_aggregate_ref): Here; handle empty constructors.
12007
12008 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12009
12010         * config/arm/arm.md: (define_attr "conds"): Update comment.
12011         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12012         conds attribute to clob.
12013         (arm_sync_compare_and_swapsi): Likewise.
12014         (arm_sync_compare_and_swap<mode>): Likewise.
12015         (arm_sync_lock_test_and_setsi): Likewise.
12016         (arm_sync_lock_test_and_set<mode>): Likewise.
12017         (arm_sync_new_<sync_optab>si): Likewise.
12018         (arm_sync_new_nandsi): Likewise.
12019         (arm_sync_new_<sync_optab><mode>): Likewise.
12020         (arm_sync_new_nand<mode>): Likewise.
12021         (arm_sync_old_<sync_optab>si): Likewise.
12022         (arm_sync_old_nandsi): Likewise.
12023         (arm_sync_old_<sync_optab><mode>): Likewise.
12024         (arm_sync_old_nand<mode>): Likewise.
12025
12026 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12027
12028         * fwprop.c (forward_propagate_and_simplify): Only attach a
12029         REG_EQUAL note to an insn if the destination is a register.
12030         * gcse.c (try_replace_reg): Likewise.
12031
12032 2010-09-13  Richard Guenther  <rguenther@suse.de>
12033
12034         PR tree-optimization/45611
12035         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12036         (copy_ref_info): Likewise.
12037
12038 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12039
12040         PR debug/45604
12041         PR debug/45419
12042         PR debug/45408
12043         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12044         types of MEM_REF pointer types to the same type.
12045
12046 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12047
12048         PR rtl-optimization/41087
12049         * ifcvt.c (noce_get_condition): Don't allow conditions with
12050         side-effects.
12051
12052 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12053
12054         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12055         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12056         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12057         arguments type to reg_class_t. Add mode argument.
12058         (frv_memory_move_cost): New.
12059         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12060
12061 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12062
12063         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12064         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12065
12066 2010-09-10  Jan Hubicka  <jh@suse.cz>
12067
12068         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12069
12070 2010-09-10  Richard Guenther  <rguenther@suse.de>
12071
12072         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12073         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12074         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12075         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12076         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12077
12078 2010-09-10  Richard Guenther  <rguenther@suse.de>
12079
12080         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12081         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12082         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12083         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12084
12085 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12086
12087         PR middle-end/45634
12088         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12089         of string folding is of integral type.
12090
12091 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12092
12093         * doc/invoke.texi (-x): Fix typo.
12094
12095 2010-09-10  Richard Guenther  <rguenther@suse.de>
12096
12097         PR debug/44115
12098         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12099         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12100         Output DECL_DEBUG_EXPR.
12101         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12102         Input DECL_DEBUG_EXPR.
12103
12104 2010-09-10  Richard Guenther  <rguenther@suse.de>
12105
12106         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12107         (build_index_type): Implement in terms of build_range_type.
12108         (build_range_type): Do not allow NULL_TREE type, improve
12109         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12110         if we didn't hash.
12111         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12112         create a distinct copy of the type.
12113
12114 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12115
12116         * configure: Regenerated.
12117         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12118
12119 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12120
12121         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12122         * config/arm/cortex-a9-neon.md: New and partially generated.
12123         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12124
12125 2010-09-10  Richard Guenther  <rguenther@suse.de>
12126
12127         * tree.h (build_index_2_type): Remove.
12128         * tree.c (build_index_2_type): Remove.
12129
12130 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12131
12132         PR bootstrap/45630
12133         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12134         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12135         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12136
12137 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12138
12139         PR tree-optimization/44972
12140         * tree-sra.c: Include toplev.h.
12141         (build_ref_for_offset): Entirely reimplemented.
12142         (build_ref_for_model): New function.
12143         (build_user_friendly_ref_for_offset): New function.
12144         (analyze_access_subtree): Removed build_ref_for_offset check.
12145         (propagate_subaccesses_across_link): Likewise.
12146         (create_artificial_child_access): Use
12147         build_user_friendly_ref_for_offset.
12148         (propagate_subaccesses_across_link): Likewise.
12149         (ref_expr_for_all_replacements_p): Removed.
12150         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12151         (sra_modify_expr): Use build_ref_for_model.
12152         (load_assign_lhs_subreplacements): Likewise.
12153         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12154         checks for return values of build_ref_for_offset.
12155         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12156         build_ref_for_offset.
12157         * ipa-prop.h: Include gimple.h
12158         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12159         (ipa_analyze_indirect_call_uses): Update comment.
12160         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12161         (IPA_PROP_H): Likewise.
12162
12163 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12164
12165         PR tree-optimization/44972
12166         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12167         calling build_ref_for_offset.
12168
12169 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12170
12171         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12172         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12173         * config/arm/arm-tune.md: Regenerate.
12174         * doc/invoke.texi (ARM Options): Document it.
12175
12176 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12177
12178         * config/i386/i386.c: Include sched-int.h.
12179         (TARGET_SCHED_DISPATCH): Defined.
12180         (TARGET_SCHED_DISPATCH_DO): Defined.
12181         (DISPATCH_WINDOW_SIZE): Defined.
12182         (MAX_DISPATCH_WINDOWS): Defined.
12183         (MAX_INSN): Defined.
12184         (MAX_IMM): Defined.
12185         (MAX_IMM_SIZE): Defined.
12186         (MAX_IMM_32): Defined.
12187         (MAX_IMM_64): Defined.
12188         (MAX_LOAD): Defined.
12189         (MAX_STORE): Defined.
12190         (BIG): Defined.
12191         (dispatch_group): New.
12192         (num_allowable_groups): New.
12193         (group_name): New.
12194         (sched_insn_info_s): New.
12195         (dispatch_windows_s): New.
12196         (imm_info_s): New.
12197         (dispatch_window_list): New.
12198         (dispatch_window_list1): New.
12199         (get_mem_group): New.
12200         (is_cmp): New.
12201         (dispatch_violation): New.
12202         (is_branch): New.
12203         (is_prefetch): New.
12204         (init_window): New.
12205         (allocate_window): New.
12206         (init_dispatch_sched): New.
12207         (is_end_basic_block): New.
12208         (process_end_window): New.
12209         (allocate_next_window): New.
12210         (find_constant_1): New.
12211         (find_constant): New.
12212         (get_num_immediates): New.
12213         (has_immediate): New.
12214         (get_insn_path): New.
12215         (get_insn_group): New.
12216         (count_num_restricted): New.
12217         (fits_dispatch_window): New.
12218         (add_insn_window): New.
12219         (add_to_dispatch_window): New.
12220         (debug_dispatch_window_file): New.
12221         (debug_dispatch_window): New.
12222         (debug_insn_dispatch_info_file): New.
12223         (debug_ready_dispatch): New.
12224         (do_dispatch): New.
12225         (has_dispatch): New.
12226         * config/i386/i386.h (debug_ready_dispatch): Declared.
12227         (debug_dispatch_window): Declared.
12228         * config/i386/i386.opt (mdispatch-scheduler): New flag.
12229         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
12230         (TARGET_SCHED_DISPATCH_DO): New.
12231         * doc/tm.texi: Regererated.
12232         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
12233         ready_remove_first_dispatch
12234         (schedule_block): Call targetm.sched.dispatch and
12235         targetm.sched.dispatch_do.
12236         (sched_init): Call targetm.sched.dispatch and
12237         targetm.sched.dispatch_do.
12238         (ready_remove_first_dispatch): New.
12239         (number_in_ready): New.
12240         (get_ready_element): New.
12241         * hooks.c (hook_bool_rtx_int_false): New.
12242         (hook_void_rtx_int): New.
12243         * hooks.h (hook_bool_rtx_int_false): Declared.
12244         (hook_void_rtx_int): Declared.
12245         * sched-int.h (IS_DISPATCH_ON): Defined.
12246         (IS_CMP): Defined.
12247         (DISPATCH_VIOLATION): Defined.
12248         (FITS_DISPATCH_WINDOW): Defined.
12249         (DISPATCH_INIT): Defined.
12250         (ADD_TO_DISPATCH_WINDOW): Defined.
12251         (get_ready_element): Declared.
12252         (number_in_ready): Declared.
12253         * target.def (dispatch): Defined.
12254         (dispatch_do): Defined.
12255
12256 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12257
12258         PR middle-end/45312
12259         * reload1.c (merge_assigned_reloads): Remove.
12260         (reload_as_needed): Don't call it.
12261
12262 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
12263
12264         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
12265         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12266         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12267
12268 2010-09-09  Matthias Klose  <doko@ubuntu.com>
12269
12270         PR bootstrap/43847
12271         * configure.ac (--enable-plugin): Enhance for cross builds.
12272         * configure: Regenerate.
12273
12274 2010-09-09  Jan Hubicka  <jh@suse.cz>
12275
12276         PR tree-optimization/45598
12277         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
12278         string folding is of integral type.
12279
12280 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12281
12282         * configure.ac (gnu_indirect_function): New test.
12283         * configure: Rebuilt.
12284         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
12285         * defaults.h (IFUNC_ASM_TYPE): Provide default.
12286
12287         * doc/extend.texi (Function Attributes): Document ifunc.
12288         * varasm.c (do_assemble_alias): Deal with ifuncs too.
12289
12290 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12291
12292         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
12293         epilogue instruction move.
12294
12295 2010-09-09  Jan Hubicka  <jh@suse.cz>
12296
12297         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
12298         command line to allow more partitions than input files.
12299
12300 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12301
12302         PR middle-end/44554
12303         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
12304
12305 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12306
12307         PR middle-end/40386
12308         * ira.c (pseudo_for_reload_consideration_p): Don't use
12309         flag_ira_share_spill_slots.
12310
12311 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12312
12313         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
12314         point zero operands that fit into a single GPR.
12315         (s390_preferred_reload_class): Ensure we only return general-purpose
12316         register classes.
12317         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
12318         floating-point zero operands into GPRs.
12319         ("*mov<mode>_64"): Likewise.
12320         ("mov<mode>"): Likewise using lhi.
12321
12322 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12323
12324         * config/s390/s390.c (s390_symref_operand_p): Return false for
12325         literal pool references.
12326         (s390_check_qrst_address): Update caller.
12327
12328 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
12329
12330         * config/i386/predicates.md (ext_register_operand): Check that
12331         SUBREG_REG is really a register before looking for REGNO.
12332         (reg_not_xmm0_operand): Handle SUBREGs correctly.
12333         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
12334
12335 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
12336
12337         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
12338         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
12339         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
12340         * print-rtl.c (print_rtx): Likewise.
12341         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12342         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
12343         for ADDR_EXPR with non-addressable object.
12344         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
12345         (struct dw_val_struct): Add v.val_decl_ref.
12346         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
12347         Handle DW_OP_GNU_implicit_pointer.
12348         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
12349         (get_ref_die_offset_label): New function.
12350         (implicit_ptr_descriptor): New function.
12351         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
12352         (loc_descriptor): Likewise.
12353         (gen_variable_die): Put even definitions into decl_die_table.
12354         (resolve_addr_in_expr): Resolve still unresolved
12355         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
12356         return false.
12357         (dwarf2out_finish): Call output_location_lists after outputting
12358         .debug_info and .debug_abbrev instead of before.
12359
12360 2010-09-09  Roland McGrath  <roland@redhat.com>
12361
12362         * dwarf2out.c (DWARF_REF_SIZE): Define.
12363         (size_of_loc_descr): Use it for DW_OP_call_ref.
12364
12365 2010-09-09  Alan Modra  <amodra@gmail.com>
12366
12367         * doc/invoke.text: Reinstate mcmodel=medium.
12368         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12369         CMODEL_MEDIUM as default.
12370         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12371         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12372         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12373         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12374
12375 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12376
12377         PR target/45250
12378         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12379         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12380         (builtin_longjmp): Likewise.
12381         (allocate_stack): Use hard_frame_pointer_rtx instead of
12382         frame_pointer_rtx.
12383         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12384         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12385         (pa_can_eliminate): Likewise.
12386         (TARGET_INTERNAL_ARG_POINTER): Define.
12387         (TARGET_CAN_ELIMINATE): Define.
12388         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12389         pointer.
12390         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12391         (pa_internal_arg_pointer, pa_can_eliminate,
12392         pa_initial_elimination_offset): New.
12393         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12394         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12395         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12396         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12397         Define.
12398         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12399         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12400         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12401         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12402         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12403         new soft frame pointer.
12404         * config/pa/pa64-regs.h: Likewise.
12405
12406 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12407
12408         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12409         numerical constant.
12410         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12411
12412 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12413
12414         PR debug/45531
12415         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12416
12417 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12418
12419         PR debug/45419
12420         PR debug/45408
12421         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12422         qualifiers in otherwise equal MEM_REF pointer types.
12423         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12424         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12425
12426 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12427
12428         PR target/44392
12429         * config/arm/arm.md (bswapsi2): Handle condition correctly
12430         for armv6 and optimize_size.
12431
12432 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12433
12434         PR other/18555
12435         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12436
12437 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12438
12439         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12440         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12441         ix86_expand_strlen, legitimate_pic_address_disp_p,
12442         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12443         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12444         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12445         prototype to bool.
12446         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12447         return_in_memory_ms_64, ix86_check_movabs,
12448         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12449         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12450         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12451         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12452         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12453         ix86_secondary_memory_needed): Change to bool.  Return
12454         "true" and "false" values.
12455         * config/i386/i386.md: Return "true" and "false" values.
12456
12457 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12458
12459         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12460         run_expensive_tests.
12461
12462 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12463
12464         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12465
12466 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12467
12468         PR other/45443
12469         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12470         at -O3.
12471
12472 2010-09-08  Richard Guenther  <rguenther@suse.de>
12473
12474         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12475         (visit): Adjust.
12476         (iterative_hash_gimple_type): Likewise.
12477         (gimple_type_hash): Likewise.
12478         (gimple_register_type): Likewise.
12479         (print_gimple_types_stats): Likewise.
12480         (free_gimple_type_tables): Likewise.
12481
12482 2010-09-08  Michael Matz  <matz@suse.de>
12483
12484         PR tree-optimization/43430
12485         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12486         copies for conditional statements if it's not part of a reduction.
12487
12488 2010-09-08  Michael Matz  <matz@suse.de>
12489
12490         PR tree-optimization/33244
12491         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12492         empty loop latches.
12493
12494 2010-09-08  Richard Guenther  <rguenther@suse.de>
12495
12496         PR tree-optimization/45578
12497         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12498         Be more careful when transfering alignment information to
12499         the new induction variable.
12500         (copy_ref_info): Likewise.
12501
12502 2010-09-08  Richard Guenther  <rguenther@suse.de>
12503
12504         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12505         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12506
12507 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12508
12509         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12510         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12511
12512 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12513
12514         PR doc/45587
12515         * doc/md.texi: Fixed modes on several standard pattern names.
12516
12517 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12518
12519         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12520         (ashl<mode>3): ...this.
12521         (loongson_psra<V_suffix>): Rename to...
12522         (ashr<mode>3): ...this.
12523         (loongson_psrl<V_suffix>): Rename to...
12524         (lshr<mode>3): ...this.
12525         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12526         (CODE_FOR_loongson_psllw): Define.
12527         (CODE_FOR_loongson_psrlh): Define.
12528         (CODE_FOR_loongson_psrlw): Define.
12529         (CODE_FOR_loongson_psrah): Define.
12530         (CODE_FOR_loongson_psraw): Define.
12531
12532 2010-09-07  Richard Henderson  <rth@redhat.com>
12533
12534         * tree-vect-data-refs.c: Include tm_p.h.
12535         * Makefile.in (tree-vect-data-refs.o): Update deps.
12536         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12537         Move delarations outside #ifdef RTX_CODE.
12538
12539 2010-09-07  Richard Henderson  <rth@redhat.com>
12540
12541         * final.c (rest_of_handle_final): Unconditionally do
12542         output_function_exception_table before assemble_end_function.
12543
12544 2010-09-07  Jan Hubicka  <jh@suse.cz>
12545
12546         * tree-inline.c (tree_inlinable_function_p): Do not test
12547         DECL_REPLACEABLE_P.
12548         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12549         update_callee_keys, cgraph_decide_inlining): Test function availability.
12550         * cif-code.def (OVERWRITABLE): New code.
12551
12552 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12553             Jack Howarth  <howarth@bromo.med.uc.edu>
12554
12555         PR target/36502
12556         PR target/42313
12557         PR target/44651
12558         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12559         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12560         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12561         MAX macro.
12562
12563 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12564
12565         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12566         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12567
12568 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12569
12570         * config.gcc: Don't append t-android for Android targets.
12571
12572         * config/t-android: Removed.
12573
12574 2010-09-07  Richard Henderson  <rth@redhat.com>
12575
12576         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12577         * doc/tm.texi.in: Add doc marker.
12578         * doc/tm.texi: Rebuild.
12579         * except.c (switch_to_exception_section): Always build.
12580         (output_one_function_exception_table): Move section switch,
12581         personality output, and label output ...
12582         (output_function_exception_table): ... here.  Use the new
12583         personality hook.
12584
12585         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12586         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12587         TARGET_ASM_INIT_SECTIONS): New.
12588         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12589         make static.
12590         (TARGET_ASM_UNWIND_EMIT): Update to match.
12591         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12592
12593         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12594         (arm_asm_init_sections): New.
12595         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12596
12597 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12598
12599         * config/arm/arm.md: Remove unused variable.
12600
12601 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12602
12603         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12604         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12605         (m32r_memory_move_cost): New function.
12606
12607 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12608
12609         * config.gcc: Append t-android for Android targets.
12610
12611         * config/t-android: New.
12612
12613 2010-09-07  Richard Henderson  <rth@redhat.com>
12614
12615         * target.def (unwind_emit_before_insn): New hook.
12616         * doc/tm.texi.in: Add @hook marker for it.
12617         * doc/tm.texi: Rebuild.
12618         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12619
12620 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12621
12622         PR fortran/43665
12623         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12624         are any type attributes.
12625
12626 2010-09-07  Jan Hubicka  <jh@suse.cz>
12627
12628         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12629         array_ref_low_bound in string access folding.
12630
12631 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12632
12633         PR target/45206
12634         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12635         eh_return fixup sequence.
12636
12637 2010-09-07  Jan Hubicka  <jh@suse.cz>
12638
12639         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12640         gimple_min_invariant.
12641
12642 2010-09-07  Richard Guenther  <rguenther@suse.de>
12643
12644         PR middle-end/45569
12645         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12646         nor CONSTRUCTOR can trap.
12647         * tree-complex.c (update_complex_assignment): Update EH info.
12648
12649 2010-09-07  Richard Guenther  <rguenther@suse.de>
12650
12651         PR middle-end/45569
12652         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12653         * passes.c (execute_function_todo): Do not verify anything if
12654         we saw errors.
12655
12656 2010-09-07  Richard Guenther  <rguenther@suse.de>
12657
12658         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12659
12660 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12661
12662         PR target/43137
12663         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12664         New define_mode_attrs.
12665         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12666         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12667         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12668         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12669         Remove pool_range attribute.
12670         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12671         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12672         pool_range and neg_pool_range attributes.
12673         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12674         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12675         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12676
12677 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12678
12679         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12680         check glibc.
12681
12682 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12683
12684         PR target/22152
12685         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12686         *mov<mode>_internal_avx, *mov<mode>_internal,
12687         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12688         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12689
12690 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12691
12692         * c-typeck.c (do_warn_double_promotion): Remove.
12693         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12694         Objective-C++ too.
12695
12696 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12697
12698         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12699         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12700         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12701         argument type to reg_class_t. Change result type to bool.
12702         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12703
12704 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12705
12706         PR libobjc/19850
12707         * gthr-posix.h (__gthread_objc_thread_detach): Use
12708         _objc_thread_attribs when detaching a thread.
12709         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12710
12711 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12712
12713         PR target/45524
12714         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12715         * configure: Regenerated.
12716
12717 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12718
12719         * combine.c (try_combine): Set subst_low_luid to i0.
12720
12721 2010-09-06  Richard Guenther  <rguenther@suse.de>
12722
12723         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12724         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12725         (build_aligned_type): Declare.
12726         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12727         (check_aligned_type): New function.
12728         (build_aligned_type): Likewise.
12729         * expr.c (expand_assignment): Handle misaligned stores via
12730         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12731         (expand_expr_real_1): Likewise.
12732         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12733         * tree-vect-stmts.c (vectorizable_store): Do not build
12734         MISALIGNED_INDIRECT_REF but initialize alignment information.
12735         (vectorizable_load): Likewise.
12736         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12737         handling.
12738         * cfgexpand.c (expand_debug_expr): Likewise.
12739         * dwarf2out.c (loc_list_from_tree): Likewise.
12740         * fold-const.c (maybe_lvalue_p): Likewise.
12741         (operand_equal_p): Likewise.
12742         (build_fold_addr_expr_with_type_loc): Likewise.
12743         * gimplify.c (gimplify_addr_expr): Likewise.
12744         (gimplify_expr): Likewise.
12745         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12746         (verify_gimple_assign_single): Likewise.
12747         * tree-dump.c (dequeue_and_dump): Likewise.
12748         (tree_could_trap_p): Likewise.
12749         * tree-predcom.c (ref_at_iteration): Likewise.
12750         * tree-pretty-print.c (dump_generic_node): Likewise.
12751         (op_code_prio): Likewise.
12752         (op_symbol_code): Likewise.
12753         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12754         * tree-ssa-loop-im.c (for_each_index): Likewise.
12755         (gen_lsm_tmp_name): Likewise.
12756         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12757         (find_interesting_uses_address): Likewise.
12758         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12759         * tree-ssa-operands.c (get_expr_operands): Likewise.
12760         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12761         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12762         (ao_ref_init_from_vn_reference): Likewise.
12763         * tree.c (staticp): Likewise.
12764         (build1_stat): Likewise.
12765         (reference_alias_ptr_type): Likewise.
12766         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12767         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12768         MISALIGNED_INDIRECT_REF handling.
12769
12770 2010-09-06  Richard Guenther  <rguenther@suse.de>
12771
12772         PR tree-optimization/45534
12773         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12774         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12775         on the target.
12776         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12777         valid on the target.
12778
12779 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12780
12781         * configure.ac: Quote argument of AC_MSG_WARN.
12782         * configure: Regenerate.
12783
12784 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12785
12786         * sel-sched.c (move_cond_jump): Correct arguments to
12787         maybe_tidy_empty_bb.
12788         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12789
12790 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12791
12792         PR rtl-optimization/44919
12793         * sel-sched.c (move_cond_jump): Remove assert, check that
12794         the several blocks case can only happen with mutually exclusive
12795         insns instead.  Rewrite the movement code to support moving through
12796         several basic blocks.
12797
12798 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12799
12800         * config/i386/i386.md (iptrsize): New mode attribute.
12801         (tp_seg): Ditto.
12802         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12803         mode iterator.
12804         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12805         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12806         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12807         (stack_tls_protect_set_<mode>): Ditto from
12808         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12809         of thread base pointer load.
12810         (stack_tls_protect_test_<mode>): Ditto from
12811         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12812         of thread base pointer load.
12813         (stack_protect_set): Rewrite using indirect functions.
12814         (stack_protect_test): Ditto.
12815         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12816         (ix86_print_operand): Handle '@'.
12817
12818 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12819
12820         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12821         MINUS_EXPR.
12822
12823 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12824
12825         * doc/invoke.texi: Document -Wdouble-promotion.
12826         * c-typeck.c (convert_arguments): Check for implicit conversions
12827         from float to double.
12828         (do_warn_double_promotion): New function.
12829         (build_conditional_expr): Use it.
12830         (build_binary_op): Likewise.
12831
12832 2010-09-05  Richard Guenther  <rguenther@suse.de>
12833
12834         PR tree-optimization/45535
12835         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12836         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12837         dereferencing it.
12838         (indirect_refs_may_alias_p): Likewise.
12839
12840 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12841
12842         * config/sh/sh.c (sh_option_override): Make static.
12843         Adjust comments.  Declare.
12844         (sh_function_value_regno_p): Likewise.
12845         (sh_register_move_cost): Modify the arguments, make static.
12846         Adjust comments.  Declare.
12847         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
12848         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12849         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
12850         REGISTER_MOVE_COST): Delete.
12851         * config/sh/sh-protos.h (sh_override_options): Delete.
12852         (sh_register_move_cost): Delete.
12853         (sh_function_value_regno_p): Delete.
12854
12855 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
12856
12857         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
12858         m32r_function_value_regno_p): New functions.
12859         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12860         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
12861         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
12862         FUNCTION_VALUE_REGNO_P): Remove.
12863
12864 2010-09-04  Jan Hubicka  <jh@suse.cz>
12865
12866         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
12867         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
12868         fold_read_from_constant_string.
12869
12870         * gimple.h (canonicalize_constructor_val): Declare.
12871         * gimple-fold.c (canonicalize_constructor_val): New function.
12872         (get_symbol_constant_value):Use it.
12873         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
12874
12875 2010-09-04  Jan Hubicka  <jh@suse.cz>
12876
12877         * tree-switch-conversion.c (build_one_array): Set constructor to be
12878         static.
12879         * varpool.c (varpool_finalize_decl): Compute const_value_known.
12880
12881 2010-09-04  Richard Guenther  <rguenther@suse.de>
12882
12883         PR bootstrap/45519
12884         * tree-flow.h (force_gimple_operand_1): Declare.
12885         (force_gimple_operand_gsi_1): Likewise.
12886         * gimplify.c (force_gimple_operand_1): New worker taking a
12887         gimple predicate for ...
12888         (force_gimple_operand): ... which now wraps it.
12889         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
12890         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
12891         last change.
12892         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
12893         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
12894         (create_mem_ref): Likewise.
12895
12896 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
12897
12898         * config/i386/predicates.md (sse_reg_operand): New predicate.
12899         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
12900         predicate for operand 1.
12901         (XFmode push splitter): Use fp_register_operand predicate
12902         for operand 1.
12903         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
12904         (SF-DF float_extend push splitter): Add reload_completed insn
12905         predicate.
12906         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
12907         MODEF mode macro.  Add reload_completed insn predicate.
12908
12909 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
12910
12911         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
12912         (struct df_extract_ref): Remove.
12913         (union df_ref_d): Remove extract_ref member.
12914         (df_ref_create): Remove last three arguments.
12915         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
12916         * df-scan.c (df_ref_record): Remove last three arguments, do not
12917         pass them to df_ref_create_structure.
12918         (df_uses_record): Remove first and last three arguments.  Replace
12919         first argument with DF_REF_REGULAR, adjust calls to remove the
12920         width, offset and mode.  Always call recursively on the second
12921         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
12922         (df_ref_create_structure): Remove first argument.
12923         (struct df_scan_problem_data): Remove ref_extract_pool.
12924         (df_scan_free_internal): Do not free it.
12925         (df_scan_alloc): Do not allocate it.
12926         (df_ref_create): Remove last three arguments, do not pass them to
12927         df_ref_create_structure.
12928         (df_free_ref): Remove DF_REF_EXTRACT case.
12929         (df_notes_rescan): Adjust call to df_uses_record.
12930         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
12931         Remove DF_REF_EXTRACT case.
12932         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
12933         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
12934         and SUBREG definitions.
12935         (df_get_conditional_uses): Remove references to width/offset/mode,
12936         adjust call to df_ref_create_structure.
12937         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
12938         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
12939         calls to df_uses_record and df_ref_record.
12940         * fwprop.c (update_df): Remove references to width/offset/mode,
12941         adjust call to df_ref_create.
12942
12943 2010-09-03  Jan Hubicka  <jh@suse.cz>
12944
12945         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
12946         (build_cdtor_fns): Update use of build_cdtor.
12947
12948 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
12949
12950         * doc/options.texi (SeparateAlias): Document.
12951         * opt-functions.awk (switch_flags): Handle SeparateAlias.
12952         * opth-gen.awk: Generate enumeration names for options marked
12953         SeparateAlias, but not for those marked Ignore.
12954         * opts-common.c (generate_canonical_option): Don't output separate
12955         argument for options marked CL_SEPARATE_ALIAS.
12956         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
12957         * opts.h (CL_SEPARATE_ALIAS): New.
12958         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
12959         CL_COMMON): Adjust definitions.
12960         * config/i386/darwin.opt, config/mips/sde.opt: New.
12961         * common.opt (fdump-final-insns): New.
12962         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
12963         i386/darwin.opt.
12964         (mips*-sde-elf*): Add mips/sde.opt.
12965         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
12966         -mno-data-in-code and -mcode-xonly here.
12967         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
12968         * gcc.c (option_map): Add "j" to --dump entry.
12969         (translate_options): Don't translate -d to -foutput-class-dir= here.
12970
12971 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
12972
12973         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
12974         DR_IS_WRITE.
12975         (compute_all_dependences): Same.
12976         (create_rdg_edge_for_ddr): Same.
12977         * tree-data-ref.h (DR_IS_WRITE): New.
12978         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
12979         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
12980         (write_memrefs_written_at_least_once): Same.
12981         * tree-predcom.c (suitable_component_p): Same.
12982         (determine_roots_comp): Same.
12983         (execute_load_motion): Same.
12984         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
12985         (vect_enhance_data_refs_alignment): Same.
12986         (vect_analyze_group_access): Same.
12987
12988 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
12989
12990         PR testsuite/42843
12991         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
12992         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
12993
12994 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
12995
12996         * dwarf2out.c (file scope): Remove #if0'd code.
12997         (gen_subprogram_die): Same.
12998
12999 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13000
13001         PR middle-end/45484
13002         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13003         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13004         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13005         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13006         * config/i386/i386.c (output_set_got): Call it.
13007
13008 2010-09-03  Michael Matz  <matz@suse.de>
13009
13010         PR middle-end/45415
13011         * tree-sra.c (sra_modify_assign): If we modify the statement,
13012         say so.
13013
13014         * tree-ssa.c (verify_ssa): Check number of operands and links
13015         per statement to agree.
13016
13017 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13018             Iain Sandoe  <iains@gcc.gnu.org>
13019
13020         PR target/45476
13021         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13022         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13023         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13024
13025 2010-09-03  Richard Guenther  <rguenther@suse.de>
13026
13027         * lto-streamer-out.c (output_function): Output function
13028         start and end loci.
13029         * lto-streamer-in.c (input_function): Input function start
13030         and end loci.
13031
13032 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13033
13034         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13035         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13036         * configure: Regenerate.
13037         * aclocal.m4: Regenerate.
13038
13039 2010-09-03  Jan Hubicka  <jh@suse.cz>
13040
13041         PR lto/44812
13042         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13043         on functions/variables in other partition.
13044
13045 2010-09-03  Jan Hubicka  <jh@suse.cz>
13046
13047         * cgraph.h (struct varpool_node): Add const_value_known.
13048         (varpool_decide_const_value_known): Declare.
13049         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13050         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13051         (input_varpool_node): Restore const_value_known.
13052         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13053         initializer folding.
13054         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13055         function_and_variable_visibility): Compute const_value_known.
13056         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13057         initializer folding.
13058         * varpool.c (varpool_decide_const_value_known): New function.
13059
13060 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13061
13062         * config/i386/i386.md: Remove empty preparation statements
13063         from splitters.
13064
13065 2010-09-03  Jan Hubicka  <jh@suse.cz>
13066
13067         * passes.c (rest_of_decl_compilation): Do not add local vars into
13068         varpool.
13069         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13070         static or extern vars are in varpool.
13071         (varpool_finalize_decl): Sanity check that only static vars are
13072         finalized.
13073
13074 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13075
13076         PR debug/45500
13077         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13078         not just generic vectors with BLKmode.
13079
13080 2010-09-03  Richard Guenther  <rguenther@suse.de>
13081
13082         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13083         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13084         * tree.h (TMR_SYMBOL): Remove.
13085         (TMR_BASE, TMR_OFFSET): Adjust.
13086         (TMR_INDEX2): New.
13087         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13088         * builtins.c (get_object_alignment): Merge TMR_BASE and
13089         TMR_SYMBOL handling.
13090         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13091         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13092         handling.  Also allow TARGET_MEM_REF as base address.
13093         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13094         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13095         base.  Gimplify TMR_INDEX2.
13096         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13097         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13098         (get_addr_base_and_unit_offset): Likewise.
13099         * tree-eh.c (tree_could_trap_p): Likewise.
13100         * tree-pretty-print.c (dump_generic_node): Likewise.
13101         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13102         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13103         base to index2.
13104         (get_address_description): Reconstruct addres description
13105         from merged TMR_BASE and TMR_INDEX2.
13106         (maybe_fold_tmr): Fold propagated addresses.
13107         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13108         MEM_REF and TARGET_MEM_REF paths.
13109         (indirect_refs_may_alias_p): Likewise.
13110         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13111         instead of TMR_SYMBOL.
13112         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13113         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13114         according to changes ...
13115         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13116         Split TARGET_MEM_REF into two fields plus the base.
13117         * tree.c (mem_ref_offset): Simplify.
13118         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13119         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13120         Strip NOPs when folding MEM_REF addresses.
13121         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13122         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13123         (fold_gimple_assign): ... not here.
13124
13125 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13126
13127         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13128         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13129         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13130
13131 2010-09-02  Richard Henderson  <rth@redhat.com>
13132
13133         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13134         instead of readelf in the test.
13135         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13136         in the .debug_frame section for coff targets.
13137         * configure: Rebuild.
13138
13139 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13140
13141         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13142         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13143         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13144         (m32c_class_likely_spilled_p): Make static. Change argument type to
13145         reg_class_t. Change result type to bool.
13146
13147 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13148
13149         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13150         to convert (double)(long) into a single FRIZ instruction or not
13151         when -ffast-math is used.
13152
13153         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13154         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13155         or FRIZ instruction if -ffast-math.
13156         * config/rs6000/rs6000.md (friz): Ditto.
13157
13158         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13159
13160 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13161
13162         * opth-gen.awk (quote, comma): Remove unused variables.
13163
13164 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13165
13166         * arm.c (arm_override_options): Correct fall-back code to use
13167         SUBTARGET_CPU_DEFAULT.
13168
13169 2010-09-02  Julian Brown  <julian@codesourcery.com>
13170
13171         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13172         unspecs.
13173         (vcond<mode>, vcondu<mode>): New expanders.
13174         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13175         comparisons with zero.
13176         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13177         * config/arm/constraints.md (Dz): New constraint.
13178
13179 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13180
13181         * target.def (class_likely_spilled_p): New hook.
13182         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13183         * doc/tm.texi: Regenerate.
13184         * targhooks.c (default_class_likely_spilled_p): New function.
13185         * targhooks.h (default_class_likely_spilled_p): Declare.
13186         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13187         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13188         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13189         Use fixed_reg_set instead of fixed_regs.
13190         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13191         * calls.c (avoid_likely_spilled_reg): Ditto.
13192         * ira-conflicts.c (ira_build_conflicts): Ditto.
13193         * ira.c (update_equiv_regs): Ditto.
13194         * mode-switching.c (create_pre_exit): Ditto.
13195         * regmove.c (find_matches): Ditto.
13196         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13197         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13198         (small_register_class_p): New inline function.
13199         (push_secondary_reload, find_reusable_reload, find_reloads): Use
13200         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
13201
13202         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
13203         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
13204         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13205
13206 2010-09-02  Richard Guenther  <rguenther@suse.de>
13207
13208         PR tree-optimization/44937
13209         PR tree-optimization/45412
13210         * ipa-split.c (split_function): Properly remove PHI nodes.
13211
13212 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13213
13214         * opts.h (struct cl_option): Add warn_message field.
13215         (struct cl_decoded_option): Add warn_message field.
13216         * doc/options.texi (Ignore, Warn): Document.
13217         * opt-functions.awk (needs_state_p): Don't consider aliases or
13218         ignored options to need state saved.
13219         * optc-gen.awk: Handle Warn and Ignore.
13220         * opth-gen.awk: Output OPT_SPECIAL_ignore.
13221         * opts-common.c (decode_cmdline_option): Set warn_message field.
13222         Handle ignored options.
13223         (decode_cmdline_options_to_array, generate_option,
13224         generate_option_input_file): Set warn_message field.
13225         (read_cmdline_option): Generate warnings from warn_message field.
13226         Handle ignored options.
13227         * common.opt (Wunreachable-code, fargument-alias,
13228         fargument-noalias, fargument-noalias-global,
13229         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
13230         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
13231         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
13232         ftree-salias): Mark Ignore.
13233         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
13234         -mintel-syntax and -mno-intel-syntax here.
13235         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
13236         using Warn.
13237         * opts.c (common_handle_option): Don't handle options marked as
13238         ignored.
13239         (enable_warning_as_error): Handle ignored options.
13240
13241 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13242
13243         PR driver/44076
13244         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
13245         alias_target fields.
13246         * opt-functions.awk (opt_sanitized_name): Don't handle
13247         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
13248         * optc-gen.awk: Generate alias fields.
13249         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
13250         Don't generate such constants for aliases.
13251         * opts-common.c (generate_canonical_option): New.
13252         (decode_cmdline_option): Handle aliases.  Use
13253         generate_canonical_option for known options instead of copying the
13254         input option text.
13255         * doc/options.texi (Alias): Document.
13256         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
13257         fstack-check, specs): Mark as aliases.
13258         * gcc.c (driver_handle_option): Canonicalize -L options to joined
13259         arguments.
13260         (driver_handle_option): Don't handle OPT_specs.
13261         * opts.c (common_handle_option): Don't handle options marked as
13262         aliases.
13263         (enable_warning_as_error): Handle aliases.
13264         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
13265         OPT_Wlarger_than_eq.
13266         * tree-optimize.c (tree_rest_of_compilation): Use
13267         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
13268
13269 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13270
13271         * config/i386/i386.md (nonmemory_operand): New mode attribute.
13272         (push memory peephole2): Macroize peepholes using SWI mode iterator.
13273         (move immediate to memory peephole2): Macroize peepholes using
13274         SWI124 mode iterator.
13275         (non-pairable NOT peephole2): Macroize peepholes using SWI124
13276         mode iterator.
13277         (simple lea add peephole2): Macroize peepholes using SWI48
13278         mode iterator.
13279         (simple lea mult peephole2): Ditto.
13280         (imul by 3,5,9 to lea peephole2): Ditto.
13281         (mov $-1, reg peephole2): Macroize peepholes using SWI248
13282         mode iterator.
13283         (imul $32bit_imm,mem,reg peephole2): Ditto.
13284         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
13285
13286 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
13287
13288         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
13289
13290 2010-09-02  Olivier Hainque  <hainque@adacore.com>
13291
13292         PR middle-end/44763
13293         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
13294         (allocno_priority_compare_func): Use it instead of a straight
13295         difference computation over priorities.
13296
13297 2010-09-02  Andi Kleen  <ak@linux.intel.com>
13298
13299         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
13300
13301 2010-09-02  Ira Rosen  <irar@il.ibm.com>
13302
13303         * tree-vectorizer.h (get_later_stmt): New function.
13304         (vect_analyze_data_ref_dependences): Add argument.
13305         * tree-vect-loop.c (vect_analyze_loop): Update call to
13306         vect_analyze_data_ref_dependences.
13307         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
13308         New function.
13309         (vect_analyze_data_ref_dependence): Add argument for basic block
13310         dependencies. Check dependencies in basic block vectorization.
13311         (vect_analyze_data_ref_dependences): Add argument and update call to
13312         vect_analyze_data_ref_dependences.
13313         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
13314         (vect_bb_vectorizable_with_dependencies): New.
13315         (vect_slp_analyze_bb): Check dependencies in basic block.
13316         (vect_schedule_slp_instance): Insert stores before the last store in
13317         SLP instance.
13318
13319 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13320
13321         PR target/45476
13322         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
13323         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13324
13325 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
13326
13327         PR middle-end/45458
13328         * bb-reorder.c (add_labels_and_missing_jumps): Treat
13329         bbs ending with throwing insns like blocks ending with a call.
13330         (fix_up_fall_thru_edges): Likewise.
13331
13332 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
13333
13334         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
13335         (m32c_function_arg_advance): Delete.
13336         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13337         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
13338         comments.  Take a const_tree and a bool.  Declare.
13339         (m32c_function_arg_advance): Likewise.
13340         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13341
13342 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13343
13344         PR target/45476
13345         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
13346         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
13347         * config/i386/mingw32.h: ... here.
13348
13349 2010-09-01  Andi Kleen  <ak@linux.intel.com>
13350
13351         PR lto/45475
13352         * lto-streamer-in.c (lto_input_ts_target_option): Add.
13353         (lto_input_tree_pointers): Call lto_input_ts_target_option.
13354         * lto-streamer-out (lto_output_ts_target_option): Add.
13355         (lto_output_tree_pointers): Call lto_output_ts_target_option.
13356
13357 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
13358
13359         PR/target 45452
13360         * config/i386/cygwin.h: Change order of specified import libraries.
13361         * config/i386/mingw32.h: Likewise.
13362         * config/i386/t-cygwin: Likewise.
13363         * config/i386/t-mingw32: Likewise.
13364         * config/i386/t-mingw-w32: Likewise.
13365         * config/i386/t-mingw-w64: Likewise.
13366
13367 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13368
13369         * config/arm/neon-schedgen.ml (core): New type.
13370         (allCores): List of supported cores.
13371         (availability_table): Add supported cores.
13372         (collate_bypasses): Accept core as a parameter.
13373         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13374         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13375         and coreStr to get tune attribute and prefix for functional units.
13376         (emit_bypasses): Accept core name and use it.
13377         (calculate_per_core_availability_table): New.
13378         (filter_core): New.
13379         (calculate_core_availability_table): New.
13380         (main): Use calculate_core_availablity_table.
13381         * config/arm/cortex-a8-neon.md: Update copyright year.
13382         Regenerated from ml file and merged in.
13383         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13384         cortex_a8_neon_mrc.
13385
13386 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13387
13388         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13389
13390 2010-09-01  Richard Guenther  <rguenther@suse.de>
13391
13392         * alias.c (ao_ref_from_mem): Adjust.
13393         * builtins.c (get_object_alignment): Likewise.
13394         * cfgexpand.c (expand_debug_expr): Likewise.
13395         * gimple.c (get_base_address): Likewise.
13396         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13397         (get_addr_base_and_unit_offset): Likewise.  Fix for
13398         both TMR_SYMBOL and TMR_BASE being set.
13399         * tree-eh.c (tree_could_trap_p): Likewise.
13400         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13401         TMR_SYMBOL.  Always gimplify TMR_BASE.
13402         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13403         TMR_BASE if there is a TMR_SYMBOL.
13404         * tree-pretty-print.c (dump_generic_node): Adjust.
13405         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13406         (tree_mem_ref_addr): Likewise.
13407         (create_mem_ref_raw): Likewise.
13408         (move_fixed_address_to_symbol): Likewise.
13409         (create_mem_ref): Likewise.
13410         (dump_mem_address): Likewise.
13411         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13412         Fix for both TMR_SYMBOL and TMR_BASE being set.
13413         (indirect_refs_may_alias_p): Likewise.
13414         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13415         * tree.def (TARGET_MEM_REF): Adjust documentation.
13416
13417 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13418
13419         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13420         Rename from X86_TUNE_ADD_ESP_4.
13421         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13422         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13423         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13424         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13425         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13426         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13427         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13428         * config/i386/i386.c (initial_ix86_tune_features)
13429         <X86_TUNE_SINGLE_POP>: Invert members.
13430         <X86_TUNE_DOUBLE_POP>: Ditto.
13431         <X86_TUNE_SINGLE_PUSH>: Ditto.
13432         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13433         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13434         No longer exported.
13435         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13436         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13437         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13438         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13439
13440 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13441
13442         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13443         a volatile LHS if the constructor has only one element.
13444
13445 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13446
13447         PR bootstrap/45321
13448         * tree.c (stdarg_p): Make fntype parameter const.
13449         * tree.h (stdarg_p): Likewise.
13450         (function_args_iterator): Remove unused fntype field.
13451         (function_args_iter_init): Do not initialize fntype
13452         field.  Make fntype parameter const.
13453
13454 2010-09-01  Richard Guenther  <rguenther@suse.de>
13455
13456         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13457         estimate.
13458         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13459         (execute_vrp): Compute number of iteration estimates.
13460         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13461         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13462         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13463         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13464         Infer loop bounds from undefined behavior based on a new parameter.
13465         (estimate_numbers_of_iterations): Likewise.
13466         (scev_probably_wraps_p): Adjust.
13467         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13468
13469 2010-09-01  Nick Clifton  <nickc@redhat.com>
13470
13471         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13472         where appropriate.
13473         (xstormy16_legitimate_address_p): Use true and false instead of 1
13474         and 0.
13475         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13476         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13477         magic constant 2.
13478         (xstormy16_expand_call): Fix comment at start of function.
13479
13480 2010-09-01  Nick Clifton  <nickc@redhat.com>
13481
13482         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13483         when pushing accumulator register.
13484         (rx_get_stack_layout): Always save call clobbered registers inside
13485         interrupt handlers.
13486         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13487
13488 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13489
13490         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13491         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13492
13493         * libgcc-std.ver (GCC_4.6.0): Define version.
13494
13495 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13496
13497         * tree-nested.c (convert_all_function_calls): Iterate until after the
13498         sum of static chains in the nest doesn't change.
13499
13500 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13501
13502         * config/m32c/m32c.c (classes_intersect): Remove.
13503         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13504         reg_classes_intersect_p instead of classes_intersect.
13505         (class_can_hold_mode): Change arguments type from enum reg_class to
13506         reg_class_t.  Use reg_class_contents instead of class_contents.
13507         (m32c_register_move_cost): Make static. Change arguments type from
13508         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13509         classes_intersect. Use reg_class_contents instead of class_contents.
13510         (m32c_memory_move_cost): Make static. Change arguments type from
13511         enum reg_class to reg_class_t.
13512         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13513         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13514         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13515         m32c_memory_move_cost): Remove.
13516
13517 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13518
13519         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13520         (arm_function_arg): Delete.
13521         (arm_needs_doubleword_align): Take a const_tree.
13522         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13523         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13524         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13525         (arm_function_arg): Make static.  Take a const_tree and a bool.
13526         (arm_function_arg_advance): Likewise.
13527         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13528
13529 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13530
13531         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13532         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13533         * lto-wrapper.c (run_gcc): Add jobserver mode.
13534         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13535         argument.
13536
13537 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13538
13539         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13540         (popsi1): Ditto.
13541         (*popdi1_epilogue): Ditto.
13542         (*popsi1_epilogue): Ditto.
13543         (popsi, popdi peephole2 patterns): Update peepholes for changed
13544         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13545
13546         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13547         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13548
13549         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13550         (override_options): Do not initialize removed ix86_gen_pop1.
13551         (gen_pop): New static function.
13552         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13553         (release_scratch_register_on_entry): Ditto.
13554         (ix86_restore_reg_using_pop): Ditto.
13555         (ix86_expand_epilogue): Ditto.
13556
13557 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13558
13559         PR middle-end/45461
13560         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13561
13562 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13563
13564         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13565         semicolons.
13566
13567 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13568
13569         * doc/extend.texi: Fix documentation of the return value of
13570         __builtin_choose_expr.
13571
13572 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13573
13574         * config/v850/v850-protos.h (function_arg): Delete.
13575         * config/v850/v850.h (FUNCTION_ARG): Delete.
13576         (FUNCTION_ARG_ADVANCE): Move code to...
13577         * config/v850/v850.c (v850_function_arg_advance): ...here.
13578         (v850_function_arg): Make static.  Take a const_tree and a bool.
13579         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13580
13581 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13582
13583         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13584         these...
13585         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13586         ...and these...
13587         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13588         ..to here..
13589         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13590         ...and here.
13591         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13592
13593 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13594
13595         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13596         Delete.
13597         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13598         * config/rx/rx.c (rx_function_arg_size): Make static.
13599         (rx_function_arg): Likewise.
13600         (rx_function_arg_advance): New function.
13601         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13602
13603 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13604
13605         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13606         Fix indentation.
13607
13608 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13609
13610         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13611         (dwarf2out_decl) <CONST_DECL>: Likewise.
13612
13613 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13614
13615         Stack usage support
13616         * common.opt (-fstack-usage): New option.
13617         * doc/invoke.texi (Debugging options): Document it.
13618         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13619         allocate_dynamic_stack_space.
13620         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13621         and propagate it to allocate_dynamic_stack_space.
13622         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13623         * calls.c (initialize_argument_information): Pass TRUE as 4th
13624         argument to allocate_dynamic_stack_space.
13625         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13626         to 1 when pushing a variable-sized argument onto the stack.  Pass
13627         TRUE as 4th argument to allocate_dynamic_stack_space.
13628         Update current_function_pushed_stack_size.
13629         (emit_library_call_value_1): Likewise.
13630         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13631         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13632         attempt to find an upper bound.  Remove redundant code for the
13633         SETJMP_VIA_SAVE_AREA case.
13634         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13635         * function.h (struct stack_usage): New structure.
13636         (current_function_static_stack_size): New macro.
13637         (current_function_dynamic_stack_size): Likewise.
13638         (current_function_pushed_stack_size): Likewise.
13639         (current_function_dynamic_alloc_count): Likewise.
13640         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13641         (current_function_allocates_dynamic_stack_space): Likewise.
13642         (struct function): Add new field 'su'.
13643         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13644         add the value of the dynamic offset to the dynamic stack usage.
13645         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13646         for variable-sized objects.
13647         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13648         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13649         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13650         BUILT_IN_ALLOCA for variable-sized objects.
13651         * output.h (output_stack_usage): Declare.
13652         * toplev.c (stack_usage_file): New file pointer.
13653         (output_stack_usage): New function.
13654         (open_auxiliary_file): Likewise.
13655         (lang_dependent_init): Open file if flag_stack_usage is set.
13656         (finalize): Close file if stack_usage_file is not null.
13657         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13658         * config/alpha/alpha.c (compute_frame_size): New function.
13659         (alpha_expand_prologue): Use it.
13660         (alpha_start_function): Likewise.
13661         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13662         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13663         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13664         * config/mips/mips.c (mips_expand_prologue): Likewise.
13665         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13666         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13667         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13668
13669 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13670
13671         PR tree-optimization/45427
13672         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13673         Handle the case that the exit is never taken correctly.
13674         (number_of_iterations_ne): Pass exit_must_be_taken to
13675         number_of_iterations_ne_max.
13676
13677 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13678
13679         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13680         Infer -mdspr2 for the the 74K.
13681
13682 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13683
13684         PR debug/45419
13685         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13686
13687         PR middle-end/45423
13688         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13689         and TRUTH_{AND,OR,XOR}_EXPR.
13690         * c-parser.c (c_parser_omp_atomic): Handle boolean
13691         {PRE,POST}_{INC,DEC}REMENT.
13692
13693 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13694
13695         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13696         (function_arg): Delete.
13697         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13698         (FUNCTION_INCOMING_ARG): Delete.
13699         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13700         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13701         and a bool.
13702         (function_arg): Rename to...
13703         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13704         a bool.
13705         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13706         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13707         (TARGET_FUNCTION_INCOMING_ARG): Define.
13708
13709 2010-08-30  Richard Guenther  <rguenther@suse.de>
13710
13711         PR tree-optimization/21602
13712         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13713         using points-to information.
13714
13715 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13716
13717         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13718
13719 2010-08-30  Richard Guenther  <rguenther@suse.de>
13720
13721         PR tree-optimization/45449
13722         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13723         variables.
13724
13725 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13726
13727         * opts.h (CL_ERR_NEGATIVE): Define.
13728         * opts.c (unknown_option_callback): Don't postpone warnings for
13729         options marked with CL_ERR_NEGATIVE.
13730         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13731         for negative versions of CL_REJECT_NEGATIVE options.
13732
13733 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13734
13735         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13736         zero_extendsidi2_32.
13737         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13738         using SWI12 mode iterator.
13739         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13740         to define_insn_and_split pattern.
13741         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13742         using SWI24 mode iterator.
13743         (*zero_extendqi<mode>2_and): Macroize insn from
13744         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13745         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13746         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13747         SWI24 mode iterator.
13748         (*zero_extendqi<mode>2_movzbl): Ditto from
13749         *zero_extendqi{hi,si}2_movzbl.
13750         (extendsidi2_1): Rename from extendsidi2_32.
13751         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13752         SWI12 mode iterator.
13753
13754 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13755
13756         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13757         general purpose registers.
13758         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13759         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13760         with general purpose registers and memory operands.  Add associated
13761         CCImode post-reload splitter.
13762         * config/ia64/div.md: Change BImode to CCImode throughout.
13763
13764 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13765
13766         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13767
13768 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13769
13770         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13771         function was dropping debug insns which caused PR45299.
13772
13773 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13774
13775         * config/i386/sse.md (extsuffix): New code attribute.
13776         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13777         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13778         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13779         and sse4_1_zero_extendv4qiv4si2.
13780         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13781         and sse4_1_zero_extendv2qiv2di2.
13782         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13783         and sse4_1_zero_extendv4hiv4si2.
13784         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13785         and sse4_1_zero_extendv2hiv2di2.
13786         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13787         and sse4_1_zero_extendv2siv2di2
13788
13789         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13790         using any_extend code iterator.
13791         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13792         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13793         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13794
13795         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13796         gen_sse4_1_sign_extend* functions.
13797         (struct builtin_description bdesc_args): Ditto.
13798
13799 2010-08-27  Xinliang David Li  <davidxl@google.com>
13800
13801         PR/45422
13802         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13803         (iv_ca_set_no_cp): Update used inv expr count.
13804         (iv_ca_set_cp): Ditto.
13805         (iv_ca_new): Initialize new member.
13806         (iv_ca_free): Free memory.
13807
13808 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13809
13810         * config/sh/sh-protos.h (sh_function_arg): Delete.
13811         (sh_function_arg_advance): Delete.
13812         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13813         (PASS_IN_REG_P): Eliminate cast.
13814         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13815         const_tree and a bool.
13816         (sh_function_arg): Likewise.
13817         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13818         sh_function_arg.
13819         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13820
13821 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13822             Kaz Kojima  <kkojima@gcc.gnu.org>
13823
13824         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13825         when possible.
13826         (sh_expand_epilogue): Likewise.
13827         * config/sh/sh.md (movml_push_banked): New insn.
13828         (movml_pop_banked): Likewise.
13829
13830 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13831
13832         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13833         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13834         in vector element 0 rather than the original string when there's
13835         only one element.
13836         (gen_regexp): Remove extra semicolon.
13837
13838         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13839         thumb2_movsf_vfp): Set attribute "insn".
13840         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13841         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13842         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13843         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13844         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13845         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
13846         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
13847         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
13848         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
13849         if_not_arith, if_arith_not, cond_move_not): Likewise.
13850
13851 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13852
13853         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
13854         New declaration.
13855         (rs6000_allocate_stack_temp): Ditto.
13856         (rs6000_expand_convert_si_to_sfdf): Ditto.
13857
13858         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
13859         line.  Update the options set if power6 or power7 server/embedded
13860         type options are used.  If we give a warning for no vsx under
13861         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
13862         (rs6000_allocate_stack_temp): New function to allocate a stack
13863         tempoary and adjust the address so it meets either REG+OFFSET or
13864         REG+REG addressing requirements.
13865         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
13866         that they can be used with the LFIWAX/LFIWZX instrucitons.
13867         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
13868         converting signed/unsigned SImode to either SFmode/DFmode.
13869
13870         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
13871         whether certain instructions can be generated.
13872         (TARGET_FCTIDZ): Ditto.
13873         (TARGET_STFIWX): Ditto.
13874         (TARGET_LFIWAX): Ditto.
13875         (TARGET_LFIWZX): Ditto.
13876         (TARGET_FCFIDS): Ditto.
13877         (TARGET_FCFIDU): Ditto.
13878         (TARGET_FCFIDUS): Ditto.
13879         (TARGET_FCTIDUZ): Ditto.
13880         (TARGET_FCTIWUZ): Ditto.
13881
13882         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
13883         (UNSPEC_FCTID): Ditto.
13884         (UNSPEC_LFIWAX): Ditto.
13885         (UNSPEC_LFIWZX): Ditto.
13886         (UNSPEC_FCTIWUZ): Ditto.
13887         (rreg): Use correct constraints.
13888         (SI_CONVERT_FP): New mode attribute for floating point conversion
13889         tests.
13890         (E500_CONVERT): Ditto.
13891         (lfiwax): New insns for converting from integer to floating point
13892         utilizing newer instructions.  Attempt to optimize conversions
13893         that come from memory so that we don't load the value into a GPR,
13894         spill it to the stack and reload it into a FPR.
13895         (floatsi<mode>2_lfiwax): Ditto.
13896         (floatsi<mode>2_lfiwax_mem): Ditto.
13897         (floatsi<mode>2_lfiwax_mem2): Ditto.
13898         (lfiwzx): Ditto.
13899         (floatunssi<mode>2_lfiwzx): Ditto.
13900         (floatunssi<mode>2_lfiwzx_mem): Ditto.
13901         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
13902         (floatdidf2_mem): Ditto.
13903         (floatunsdidf2_fcfidu): Ditto.
13904         (floatunsdidf2_mem): Ditto.
13905         (floatunsdisf2): Ditto.
13906         (floatunsdisf2_fcfidus): Ditto.
13907         (floatunsdisf2_mem): Ditto.
13908         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
13909         Use FCFID on 32-bit hosts that support it.
13910         (floatsidf2_internal): Ditto.
13911         (floatunssisf2): Ditto.
13912         (floatunssidf2): Ditto.
13913         (floatunssidf2_internal): Ditto.
13914         (floatsisf2): Ditto.
13915         (floatdidf2): Ditto.
13916         (floatdidf2_fpr): Ditto.
13917         (floatunsdidf2): Ditto.
13918         (floatdisf2): Ditto.
13919         (floatdisf2_fcfids): Ditto.
13920         (floatdisf2_internal1): Ditto.
13921         (fixuns_truncsfsi2): Delete, merge into common pattern for both
13922         SF/DF.  Add power7 support.
13923         (fix_truncsfsi2): Ditto.
13924         (fixuns_truncdfsi2): Ditto.
13925         (fixuns_truncdfdi2): Ditto.
13926         (fix_truncdfsi2): Ditto.
13927         (fix_truncdfsi2_internal): Ditto.
13928         (fix_truncdfsi2_internal_gfxopt): Ditto.
13929         (fix_truncdfsi2_mfpgpr): Ditto.
13930         (fctiwz): Ditto.
13931         (btruncdf2): Ditto.
13932         (btruncdf2_fpr): Ditto.
13933         (btructsf2): Ditto.
13934         (ceildf2): Ditto.
13935         (ceildf2_fpr): Ditto.
13936         (ceilsf2): Ditto.
13937         (floordf2): Ditto.
13938         (floordf2_fpr): Ditto.
13939         (floorsf2): Ditto.
13940         (rounddf2): Ditto.
13941         (rounddf2_fpr): Ditto.
13942         (roundsf2): Ditto.
13943         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
13944         (fix_trunc<mode>di2): Ditto.
13945         (fixuns_trunc<mode>si2): Ditto.
13946         (fixuns_trunc<mode>di2): Ditto.
13947         (fctiwz_<mode>): Ditto.
13948         (btrunc<mode>2): Ditto.
13949         (btrunc<mode>2_fpr): Ditto.
13950         (ceil<mode>2): Ditto.
13951         (ceil<mode>2_fpr): Ditto.
13952         (floor<mode>2): Ditto.
13953         (float<mode>2_fpr): Ditto.
13954         (round<mode>2): Ditto.
13955         (round<mode>2_fpr): Ditto.
13956         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
13957         (fixuns_trunc<mode>si2_stfiwx): Ditto.
13958         (fix_truncdfsi2_internal): Ditto.
13959         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
13960         converted value on stack, loaded into GPR, and then stored into
13961         the final destination.
13962         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
13963         FCTIDZ.
13964         (lrint<mode>di2): New insn, provide the lrint builtin functions.
13965         (ftruncdf2): Delete, unused.
13966         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
13967
13968         * config/rs6000/vsx.md (toplevel): Update copyright year.
13969         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
13970         (VSr3): Ditto.
13971
13972 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
13973             Jeremie Salvucci  <jeremie.salvucci@free.fr>
13974
13975         * gengtype.c (output_type_enum): Test the right union member.
13976
13977 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
13978
13979         PR target/41484
13980         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
13981         operands for operand 1.
13982         (sse4_1_extendv4qiv4si2): Ditto.
13983         (sse4_1_extendv2qiv2di2): Ditto.
13984         (sse4_1_extendv4hiv4si2): Ditto.
13985         (sse4_1_extendv2hiv2di2): Ditto.
13986         (sse4_1_extendv2siv2di2): Ditto.
13987         (sse4_1_zero_extendv8qiv8hi2): Ditto.
13988         (sse4_1_zero_extendv4qiv4si2): Ditto.
13989         (sse4_1_zero_extendv2qiv2di2): Ditto.
13990         (sse4_1_zero_extendv4hiv4si2): Ditto.
13991         (sse4_1_zero_extendv2hiv2di2): Ditto.
13992         (sse4_1_zero_extendv2siv2di2): Ditto.
13993         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
13994         (*sse4_1_extendv4qiv4si2): Ditto.
13995         (*sse4_1_extendv2qiv2di2): Ditto.
13996         (*sse4_1_extendv4hiv4si2): Ditto.
13997         (*sse4_1_extendv2hiv2di2): Ditto.
13998         (*sse4_1_extendv2siv2di2): Ditto.
13999         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14000         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14001         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14002         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14003         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14004         (*sse4_1_zero_extendv2siv2di2): Ditto.
14005
14006 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14007
14008         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14009         (mips_function_arg): Delete.
14010         (mips_function_arg_boundary): Take a const_tree.
14011         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14012         (mips_arg_info): Likewise.
14013         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14014         instead of FUNCTION_ARG_ADVANCE.
14015         (mips_function_arg_advance): Adjust prototype.  Make static.
14016         (mips_function_arg): Likewise.
14017         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14018         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14019
14020 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14021
14022         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14023         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14024         (function_arg): Delete.
14025         (function_arg_boundary): Take a const_tree.
14026         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14027         (rs6000_spe_function_arg): Likewise.
14028         (rs6000_parm_start): Likewise.
14029         (rs6000_arg_size): Likewise.
14030         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14031         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14032         (rs6000_mixed_function_arg): Likewise.
14033         (function_arg): Rename to...
14034         (rs6000_function_arg): ...this.
14035         (function_arg_advance): Rename to...
14036         (rs6000_function_arg_advance_1): ...this
14037         (rs6000_function_arg_advance): New function.  Call it.
14038         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14039         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14040         (rs6000_function_value): Likewise.
14041         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14042
14043 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14044
14045         * config/arm/arm.md (enabled): Test the value of arch_enabled
14046         rather than just using it.
14047
14048 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14049             Eric Botcazou  <ebotcazou@adacore.com>
14050
14051         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14052         cover all the possible offsets from this base.
14053         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14054
14055 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14056
14057         PR tree-optimization/44485
14058         * calls.c (flags_from_decl_or_type): For const or pure
14059         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14060         together with ECF_CONST resp. ECF_PURE.
14061         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14062         instead of querying flags directly.
14063         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14064         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14065
14066 2010-08-26  Richard Guenther  <rguenther@suse.de>
14067
14068         PR tree-optimization/45255
14069         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14070         and externals are also invariant.
14071
14072 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14073
14074         PR rtl-optimization/44858
14075         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14076         newi2pat, make sure they don't affect newpat.
14077
14078         PR rtl-optimization/45400
14079         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14080         SUBREG_REG if both modes are of MODE_INT class.
14081
14082 2010-08-25  Julian Brown  <julian@codesourcery.com>
14083
14084         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14085         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14086         (generic_vfp): Likewise.
14087         (cortex-a5.md): Include.
14088         * config/arm/cortex-a5.md: New.
14089
14090 2010-08-25  Richard Guenther  <rguenther@suse.de>
14091
14092         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14093         * gimple.c (gimple_get_alias_set): Remove special handling
14094         for pointers.
14095
14096 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14097
14098         PR middle-end/45355
14099         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14100         dead_or_set_p when computing i0_feeds_i2_n.
14101
14102         * combine.c (find_split_point): Undo canonicalization of multiply-add
14103         to (minus x (mult)) when it seems likely that this will increase the
14104         chances of a split.
14105
14106 2010-08-25  Richard Guenther  <rguenther@suse.de>
14107
14108         PR lto/44562
14109         * lto-streamer.c (lto_record_common_node): Do not mess with
14110         TYPE_CANONICAL when not in lto.
14111         * gimple.c (gimple_register_type): Likewise.
14112
14113 2010-08-25  Richard Guenther  <rguenther@suse.de>
14114
14115         PR tree-optimization/45316
14116         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14117
14118 2010-08-25  Richard Guenther  <rguenther@suse.de>
14119
14120         PR tree-optimization/45393
14121         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14122         and clean EH info.  Avoid SSA update.
14123         (execute_cse_sincos): Cleanup the CFG if it has changed.
14124
14125 2010-08-25  Richard Guenther  <rguenther@suse.de>
14126
14127         PR middle-end/45379
14128         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14129         TARGET_MEM_REF in alignment computation.
14130
14131 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14132
14133         PR tree-optimization/45059
14134         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14135         type conversions from newop{1,2}.  Assert t is a comparison and
14136         newop{1,2} after the stripping are gimple vals.
14137
14138 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14139
14140         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14141         (V_unpack, US): New.
14142         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14143         (vec_unpack<US>_lo_<mode>): Likewise.
14144         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14145         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14146         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14147         (vec_widen_<US>mult_hi_<mode>): Likewise.
14148         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14149         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14150         (neon_unpack<US>_<mode>): Widening move intermediate step for
14151         vectorizing without -mvectorize-with-neon-quad.
14152         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14153         for vectorizing without -mvectorize-with-neon-quad.
14154         * config/arm/predicates.md (vect_par_constant_high): Check for
14155         high-half lanes of a vector.
14156         (vect_par_constant_low): Check for low-half lanes of a vector.
14157
14158 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14159
14160         * tree-if-conv.c (struct ifc_dr): New.
14161         (IFC_DR): New.
14162         (DR_WRITTEN_AT_LEAST_ONCE): New.
14163         (DR_RW_UNCONDITIONALLY): New.
14164         (memref_read_or_written_unconditionally): Use the cached values
14165         when possible.
14166         (write_memref_written_at_least_once): Same.
14167         (if_convertible_loop_p): Initialize and free DR->aux fields.
14168
14169 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14170
14171         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14172         Pass an extra bool parameter include_mem.
14173         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14174         (gimple_assign_rhs_could_trap_p): Same.
14175         * gimple.h (gimple_could_trap_p_1): Declared.
14176         * tree-data-ref.h (same_data_refs_base_objects): New.
14177         (same_data_refs): New.
14178         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14179         (write_memrefs_written_at_least_once): New.
14180         (ifcvt_memrefs_wont_trap): New.
14181         (operations_could_trap): New.
14182         (ifcvt_could_trap_p): New.
14183         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14184         Gets a vector of data refs.
14185         (if_convertible_stmt_p): Same.
14186         (if_convertible_loop_p_1): New.
14187         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14188
14189 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14190
14191         * common.opt (ftree-loop-if-convert-stores): New flag.
14192         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14193         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14194         the created statement before GSI.
14195         (if_convertible_phi_p): Allow virtual phi nodes when
14196         flag_loop_if_convert_stores is set.
14197         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14198         Do not handle types that do not match is_gimple_reg_type.
14199         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
14200         when flag_loop_if_convert_stores is set, as LHS can contain
14201         memory refs.
14202         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
14203         to if_convertible_gimple_assign_stmt_p.
14204         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
14205         (replace_phi_with_cond_gimple_assign_stmt): Renamed
14206         predicate_scalar_phi.  Do not handle virtual phi nodes.
14207         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
14208         Call predicate_scalar_phi.
14209         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
14210         just after the labels for flag_loop_if_convert_stores, otherwise
14211         insert the predicate in the end of the BB.
14212         (predicate_mem_writes): New.
14213         (combine_blocks): Call predicate_all_scalar_phis.  When
14214         flag_loop_if_convert_stores is set, call predicate_mem_writes.
14215         (tree_if_conversion): Call mark_sym_for_renaming when
14216         flag_loop_if_convert_stores is set.
14217         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
14218         flag_loop_if_convert_stores is set.
14219
14220 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
14221
14222         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
14223         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
14224         (pa_function_value): Make static.
14225         (override_options): Rename to...
14226         (pa_option_override): ...this. Make static.
14227         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
14228         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
14229         TARGET_OPTION_OVERRIDE): Define.
14230         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
14231         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
14232         Remove.
14233         * config/pa/pa-protos.h (override_options): Remove.
14234
14235 2010-08-24  Richard Guenther  <rguenther@suse.de>
14236
14237         PR middle-end/45379
14238         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
14239         if addr->index is NULL or zero.
14240         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
14241         TARGET_MEM_REF more properly.
14242         (indirect_ref_may_alias_decl_p): Likewise.
14243         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
14244         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
14245
14246 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
14247
14248         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
14249         (m32c_override_options): Rename to...
14250         (m32c_option_override): ...this. Make static.
14251         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
14252         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
14253         Remove.
14254         * config/m32c/m32c-protos.h (m32c_override_options,
14255         m32c_function_value_regno_p): Remove.
14256
14257 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14258
14259         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
14260         Fix a typo in a previous commit.
14261
14262 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
14263
14264         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
14265         Pre-initialize innerloop_iters to one.
14266
14267 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14268
14269         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
14270         existing static function global.
14271
14272         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
14273         is changed to global.
14274
14275         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
14276         may_be_nonaddressable_p on base, and don't collect this reference
14277         if the address of the base could not be taken.
14278
14279 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14280
14281         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
14282         enable the compiler to autovectorize mathmetical functions for
14283         power7 using the Mathematical Acceleration Subsystem library.
14284
14285         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
14286         handle which vector math library we have.
14287         (rs6000_override_options): Add -mveclibabi=mass support.
14288         (rs6000_builtin_vectorized_libmass): New function to handle auto
14289         vectorizing math functions that are in the MASS library.
14290         (rs6000_builtin_vectorized_function): Call it.
14291
14292         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14293         -mveclibabi=mass.
14294
14295 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14296
14297         PR boehm-gc/34544
14298         * gthr-posix.h (__gthread_active_init): Delete.
14299         (__gthread_active_p): Do activity check here.
14300         Don't include errno.h on hppa-hpux.  Update comment.
14301         * gthr-posix95.h (__gthread_active_init): Delete.
14302         (__gthread_active_p): Do activity check here.
14303         Don't include errno.h on hppa-hpux.  Update comment.
14304         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
14305         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
14306         add -lpthread when -mt or -pthread is specified.
14307         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
14308         (LINK_GCC_C_SEQUENCE_SPEC): Define.
14309         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
14310         (stublib.c, pthread_default_stacksize_np-stub.o,
14311         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
14312         $(T)libgcc_stub.a): Add methods.
14313         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
14314         (stublib.c, pthread_default_stacksize_np-stub.o,
14315         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
14316         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14317         pthread_mutex_unlock): New stubs.
14318
14319 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
14320
14321         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
14322         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
14323         options.
14324         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
14325         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
14326         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
14327         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
14328         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
14329         "-l".
14330         * cppspec.c: Include opts.h.
14331         (lang_specific_driver): Use cl_decoded_option structures.
14332         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
14333         * doc/tm.texi: Regenerate.
14334         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
14335         (driver_handle_option): Allow driver options needing no special
14336         processing.
14337         (process_command): Decode options before call to
14338         lang_specific_driver.  Pass decoded options to
14339         lang_specific_driver.
14340         * gcc.h (lang_specific_driver): Update prototype.
14341         * gccspec.c: Include opts.h.
14342         (lang_specific_driver): Use cl_decoded_option structures.
14343         * opts-common.c (option_ok_for_language, generate_option,
14344         generate_option_input_file): New.
14345         (decode_cmdline_option): Use option_ok_for_language.
14346         (decode_cmdline_options_to_array): Use generate_option_input_file.
14347         (handle_generated_option): Use generate_option.
14348         * opts.h (generate_option, generate_option_input_file): Declare.
14349
14350 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
14351
14352         * config/mips/mips.c (mips_override_options): Rename to...
14353         (mips_option_override): ...this. Make static.
14354         (TARGET_OPTION_OVERRIDE): Define.
14355         (mips_in_small_data_p): Update comment.
14356         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
14357         (FIXED_REGISTERS): Update comment.
14358         * config/mips/mips-protos.h (mips_override_options): Remove.
14359
14360 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14361
14362         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
14363
14364 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14365
14366         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14367         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14368
14369 2010-08-20  Jan Hubicka  <jh@suse.cz>
14370
14371         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14372         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14373         heap allocated.
14374         (record_cdtor_fn): Move to ipa.c; do not test for
14375         have_ctors_dtors.
14376         (build_cdtor): Move to ipa.c; add code avoiding construction
14377         when target have ctors/dtors and there is only one ctor/dtor at given
14378         priority.
14379         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14380         sort; reverse order of constructors.
14381         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14382         (cgraph_finalize_function): Do not call record_cdtor_fn.
14383         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14384         (cgraph_build_static_cdtor): Move to ipa.c.
14385         * ipa.c: Include target.h and tree-iterator.h.
14386         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14387         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14388         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14389         pass_ipa_cdtor_merge): New.
14390         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14391         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14392         bounds access.
14393
14394 2010-08-20  Jan Hubicka  <jh@suse.cz>
14395
14396         PR c++/45307
14397         PR c++/17736
14398         * cgraph.h (cgraph_only_called_directly_p,
14399         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14400         static cdtors.
14401         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14402         are not needed.
14403         (cgraph_finalize_function): Static cdtors are reachable.
14404         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14405
14406 2010-08-20  Jan Hubicka  <jh@suse.cz>
14407
14408         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14409         flag_wpa.
14410         * lto-streamer-out.c (lto_output): Likewise.
14411         * passes.c (ipa_write_optimization_summaries): Initialize statement
14412         uids.
14413
14414 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14415
14416         * tree.h (alias_diag_flags): New enum.
14417         (alias_pair): Add an 'emitted_diags' field.
14418         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14419         (assemble_alias): Initialize emitted_diags of new pairs.
14420
14421 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14422
14423         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14424         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14425         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14426         (STACK_CHECK_PROTECT): Define.
14427         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14428         (output_probe_stack_range): Likewise.
14429         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14430         builtin stack checking is enabled.
14431         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14432         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14433         (probe_stack_range): New insn.
14434
14435 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14436
14437         PR target/45336
14438         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14439         short first.
14440
14441         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14442         char first.
14443
14444 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14445
14446         PR target/45336
14447         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14448         to cover zero extension into 64-bit register.
14449         (*sse2_pextrw): Likewise.
14450         (*sse4_1_pextrd_zext): New insn.
14451
14452 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14453
14454         revert r163410, partially revert r163267.
14455         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14456         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14457         Darwin versions.
14458
14459 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14460
14461         PR middle-end/44974
14462         * builtins.c (expand_builtin): Don't optimize away
14463         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14464
14465 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14466
14467         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14468         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14469         alternative 1 of operand 2.
14470
14471 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14472             Paolo Bonzini  <bonzini@gnu.org>
14473
14474         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14475         (sign_extend (zero_extend (...)) and
14476         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14477
14478 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14479
14480         PR rtl-optimization/45353
14481         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14482         after bb_note is a BARRIER.
14483
14484 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14485
14486         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14487         linking libgcc.a.
14488
14489 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14490             Michael Matz  <matz@suse.de>
14491
14492         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14493
14494 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14495
14496         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14497         (ggc_mark_roots): ...here.
14498
14499 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14500
14501         * vec.h (FOR_EACH_VEC_ELT): Define.
14502         * c-decl.c: Use it.
14503         * cfgloop.c: Likewise.
14504         * cfgloopmanip.c: Likewise.
14505         * cgraph.c: Likewise.
14506         * cgraphunit.c: Likewise.
14507         * combine.c: Likewise.
14508         * config/bfin/bfin.c: Likewise.
14509         * config/mips/mips.c: Likewise.
14510         * config/rs6000/rs6000.c: Likewise.
14511         * dbxout.c: Likewise.
14512         * df-scan.c: Likewise.
14513         * dominance.c: Likewise.
14514         * dse.c: Likewise.
14515         * dwarf2out.c: Likewise.
14516         * except.c: Likewise.
14517         * expr.c: Likewise.
14518         * function.c: Likewise.
14519         * gcse.c: Likewise.
14520         * genattr.c: Likewise.
14521         * ggc-common.c: Likewise.
14522         * gimplify.c: Likewise.
14523         * graphite-blocking.c: Likewise.
14524         * graphite-clast-to-gimple.c: Likewise.
14525         * graphite-dependences.c: Likewise.
14526         * graphite-interchange.c: Likewise.
14527         * graphite-poly.c: Likewise.
14528         * graphite-scop-detection.c: Likewise.
14529         * graphite-sese-to-poly.c: Likewise.
14530         * graphite.c: Likewise.
14531         * haifa-sched.c: Likewise.
14532         * ifcvt.c: Likewise.
14533         * implicit-zee.c: Likewise.
14534         * ipa-prop.c: Likewise.
14535         * ipa-struct-reorg.c: Likewise.
14536         * ipa.c: Likewise.
14537         * ira-build.c: Likewise.
14538         * ira-color.c: Likewise.
14539         * ira-emit.c: Likewise.
14540         * lambda-code.c: Likewise.
14541         * loop-invariant.c: Likewise.
14542         * loop-unroll.c: Likewise.
14543         * lower-subreg.c: Likewise.
14544         * lto-cgraph.c: Likewise.
14545         * lto-opts.c: Likewise.
14546         * lto-streamer-in.c: Likewise.
14547         * lto-streamer-out.c: Likewise.
14548         * lto-streamer.c: Likewise.
14549         * lto-symtab.c: Likewise.
14550         * matrix-reorg.c: Likewise.
14551         * opts.c: Likewise.
14552         * predict.c: Likewise.
14553         * print-tree.c: Likewise.
14554         * sdbout.c: Likewise.
14555         * sel-sched-dump.c: Likewise.
14556         * sel-sched-ir.c: Likewise.
14557         * sel-sched.c: Likewise.
14558         * sese.c: Likewise.
14559         * stor-layout.c: Likewise.
14560         * tree-cfg.c: Likewise.
14561         * tree-cfgcleanup.c: Likewise.
14562         * tree-chrec.c: Likewise.
14563         * tree-data-ref.c: Likewise.
14564         * tree-emutls.c: Likewise.
14565         * tree-inline.c: Likewise.
14566         * tree-into-ssa.c: Likewise.
14567         * tree-loop-distribution.c: Likewise.
14568         * tree-loop-linear.c: Likewise.
14569         * tree-mudflap.c: Likewise.
14570         * tree-outof-ssa.c: Likewise.
14571         * tree-parloops.c: Likewise.
14572         * tree-predcom.c: Likewise.
14573         * tree-pretty-print.c: Likewise.
14574         * tree-scalar-evolution.c: Likewise.
14575         * tree-ssa-live.c: Likewise.
14576         * tree-ssa-loop-im.c: Likewise.
14577         * tree-ssa-loop-ivcanon.c: Likewise.
14578         * tree-ssa-loop-ivopts.c: Likewise.
14579         * tree-ssa-loop-manip.c: Likewise.
14580         * tree-ssa-loop-niter.c: Likewise.
14581         * tree-ssa-loop-prefetch.c: Likewise.
14582         * tree-ssa-phiprop.c: Likewise.
14583         * tree-ssa-pre.c: Likewise.
14584         * tree-ssa-reassoc.c: Likewise.
14585         * tree-ssa-sccvn.c: Likewise.
14586         * tree-ssa-structalias.c: Likewise.
14587         * tree-ssa.c: Likewise.
14588         * tree-vect-data-refs.c: Likewise.
14589         * tree-vect-loop-manip.c: Likewise.
14590         * tree-vect-loop.c: Likewise.
14591         * tree-vect-patterns.c: Likewise.
14592         * tree-vect-slp.c: Likewise.
14593         * tree-vect-stmts.c: Likewise.
14594         * tree-vrp.c: Likewise.
14595         * tree.c: Likewise.
14596         * value-prof.c: Likewise.
14597         * var-tracking.c: Likewise.
14598         * varasm.c: Likewise.
14599         * vmsdbgout.c: Likewise.
14600
14601 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14602             Richard Guenther  <richard.guenther@gmail.com>
14603
14604         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14605         copy the src value and return a copy.
14606         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14607         (C++ Volatiles): Adjust to describe C++ semantics only.
14608
14609 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14610
14611         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14612         be zero or nonzero.
14613         * doc/tm.texi: Regenerate.
14614         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14615         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14616         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14617         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14618         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14619         to 1.
14620
14621 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14622
14623         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14624         an extra nop past a sibling call at the very end.
14625
14626 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14627
14628         PR bootstrap/45350
14629         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14630         a comment.
14631
14632 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14633
14634         * target.def (function_arg, function_incoming_arg): Remove const
14635         qualifier on CUMULATIVE_ARGS parameter.
14636         * targhooks.h (default_function_arg, default_function_incoming_arg):
14637         Likewise.
14638         * targhooks.c (default_function_arg, default_function_incoming_arg):
14639         Likewise.
14640         * config/i386/i386.c (ix86_function_arg): Likewise.
14641
14642 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14643
14644         PR target/45336
14645         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14646         SIGN_EXTENDs or ZERO_EXTENDs.
14647
14648 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14649
14650         PR target/42172
14651         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14652         Take its cost into account if nonnull.
14653         (insn_a_feeds_b): New static function.
14654         (combine_instructions): Look for four-insn combinations.
14655         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14656         them into account when computing all_adjacent and looking for other
14657         uses.
14658         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14659         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14660         (try_combine): New arg I0.  Handle four-insn combinations.
14661         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14662         like ELIM_I1.
14663
14664 2010-08-19  Jason Merrill  <jason@redhat.com>
14665
14666         PR c++/45307
14667         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14668         if ctor is empty.
14669         (gimplify_modify_expr_rhs): Adjust.
14670
14671 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14672
14673         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14674         bitmap_bit_p.
14675         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14676         * dominance.c (iterate_fix_dominators): Likewise.
14677         * dse.c (set_usage_bits): Likewise.
14678         (set_position_unneeded, record_store): Likewise.
14679         * gimple-fold.c (get_maxval_strlen): Likewise.
14680         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14681         * ipa-inline.c (update_caller_keys): Likewise.
14682         * ipa-split.c (verify_non_ssa_vars): Likewise.
14683         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14684         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14685         (close_addressof_down): Likewise.
14686         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14687         (setup_allocno_left_conflicts_size): Likewise.
14688         (ira_reassign_conflict_allocnos): Likewise.
14689         (ira_reassign_pseudos): Likewise.
14690         * ira-emit.c (change_loop): Likewise.
14691         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14692         * lto-streamer-out.c (write_symbol): Likewise.
14693         * predict.c (expr_expected_value_1): Likewise.
14694         * regstat.c (regstat_bb_compute_ri): Likewise.
14695         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14696         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14697         * stmt.c (expand_case): Likewise.
14698         * tree-eh.c (emit_eh_dispatch): Likewise.
14699         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14700         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14701         Likewise.
14702         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14703         (rdg_build_components): Likewise.
14704         * tree-object-size.c (collect_object_sizes_for): Likewise.
14705         * tree-sra.c (convert_callers): Likewise.
14706         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14707         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14708         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14709
14710 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14711
14712         * config/i386/i386.md (*lea_1): Use P mode iterator.
14713         (lea add splitter): Also handle DImode operands.
14714         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14715         predicate.  Do not use ix86_lea_for_add_ok.
14716         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14717         (lea ashift splitter): Also handle DImode operands.
14718         (DImode lea ashift splitter): Remove splitter.
14719
14720 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14721
14722         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14723         ix86_binary_operator_ok.
14724
14725 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14726
14727         PR rtl-optimization/44691
14728         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14729         is not a register.
14730
14731 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14732
14733         PR target/45070
14734         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14735          value of size 1-3 is handled correctly.
14736
14737 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14738
14739         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14740         type for the conditional has wide enough range.
14741
14742 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14743
14744         PR target/45327
14745         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14746         ix86_binary_operator_ok.
14747
14748 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14749
14750         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14751         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14752         code to output insn mnemonic.  Fix comment.
14753         (*addsi_1_zext): Add r-r-0 alternative 1.
14754         <TYPE_LEA>: Split insn to lea.
14755         <default>: Handle alternative 1.
14756         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14757         multi-level if_then_else RTX to set "type" attribute.
14758         <default>: Handle alternative 2.
14759         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14760         Use cond RTX instead of multi-level if_then_else RTX to set
14761         "type" attribute.
14762         <default>: Handle alternatives 2 and 4.
14763         (lea splitters): Update calls to ix86_lea_for_add_ok.
14764
14765         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14766         argument.
14767         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14768
14769 2010-08-18  Richard Guenther  <rguenther@suse.de>
14770
14771         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14772         use operand helpers.
14773
14774 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14775
14776         PR middle-end/45292
14777         * optabs.c (expand_bool_compare_and_swap): Expand pending
14778         pops before trying the optab.
14779
14780 2010-08-18  Yao Qi  <yao@codesourcery.com>
14781
14782         PR target/45094
14783         * config/arm/arm.c (output_move_double): Fix typo generating
14784         instructions ('ldr'->'str').
14785
14786 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14787
14788         PR rtl-optimization/42575
14789         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14790         live ranges.
14791
14792 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14793
14794         * config/arm/arm-protos.h (arm_expand_sync): New.
14795         (arm_output_memory_barrier, arm_output_sync_insn): New.
14796         (arm_sync_loop_insns): New.
14797         * config/arm/arm.c (FL_ARCH7): New.
14798         (FL_FOR_ARCH7): Include FL_ARCH7.
14799         (arm_arch7): New.
14800         (arm_print_operand): Support %C markup.
14801         (arm_legitimize_sync_memory): New.
14802         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14803         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14804         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14805         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14806         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14807         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14808         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14809         * config/arm/arm.h (struct arm_sync_generator): New.
14810         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14811         (TARGET_HAVE_MEMORY_BARRIER): New.
14812         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14813         * config/arm/arm.md: Include sync.md.
14814         (UNSPEC_MEMORY_BARRIER): New.
14815         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14816         (VUNSPEC_SYNC_OP):New.
14817         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14818         (sync_result, sync_memory, sync_required_value): New attributes.
14819         (sync_new_value, sync_t1, sync_t2): Likewise.
14820         (sync_release_barrier, sync_op): Likewise.
14821         (length): Add logic to length attribute defintion to call
14822         arm_sync_loop_insns when appropriate.
14823         * config/arm/sync.md: New file.
14824
14825 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14826
14827         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14828         ENABLE_TREE_CHECKING.
14829         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14830         and GCC >= 4.3.
14831
14832 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14833
14834         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14835         or optimizing for size, always avoid lea if possible.
14836
14837         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14838
14839 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14840
14841         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14842         Dunmmy function with NULL return unless the target is
14843         OSX >= 10.6 (Darwin10).
14844
14845 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
14846
14847         * gcc.c (spec_function): Add remove-outfile.
14848         (remove_outfile_spec_function): New function.
14849         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
14850         * invoke.texi (replace-outfile): Document.
14851
14852 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
14853
14854         PR target/45296
14855         * reginfo.c (globalize_reg): Reject stack registers.
14856
14857 2010-08-17  Richard Guenther  <rguenther@suse.de>
14858
14859         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
14860         list of conditional equivalences.
14861         (free_all_edge_infos): Adjust.
14862         (record_equivalences_from_incoming_edge): Likewise.
14863         (record_cond): Likewise.
14864         (build_and_record_new_cond): Likewise.
14865         (record_conditions): Likewise.
14866         (dom_opt_leave_block): Likewise.
14867
14868 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
14869
14870         * doc/invoke.texi (ms-extension): Add documentation.
14871
14872 2010-08-17  Richard Guenther  <rguenther@suse.de>
14873
14874         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
14875
14876 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
14877
14878         PR c/40563
14879         * c-decl.c (diagnose_uninitialized_cst_member): New function.
14880         (finish_decl): Use it to issue a -Wc++-compat warning about
14881         uninitialized const field in struct or union.
14882
14883         (finish_struct): Use strip_array_types.
14884
14885 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14886
14887         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
14888         functions.
14889         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
14890         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
14891         call block_nreverse here.
14892         (blocks_nreverse): Rename decl temporary to block.
14893
14894 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
14895
14896         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
14897         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
14898         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
14899         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
14900         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
14901         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
14902         thumb2_iorsi3): Delete.
14903         (orsi_notsi_si): No longer a named pattern.
14904         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
14905         * config/arm/predicates.md (shift_amount_operand): New.
14906         (mult_operator): New.
14907         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
14908         attr enabled): New.
14909         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
14910         arch matches t2.
14911         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
14912         (not_shiftsi_compare0): Likewise, renamed from
14913         arm_notsi_shiftsi_compare0.
14914         (not_shiftsi_compare0_scratch): Likweise, renamed from
14915         arm_notsi_shiftsi_compare0_scratch.
14916         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
14917         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
14918         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
14919         so that the register alternative is disabled when the shift_operator
14920         is MULT.  Use "M" as the constraint for constants.
14921         (arith_shiftsi splitter): Enable for TARGET_32BIT.
14922         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
14923         constraint for constants.
14924         (arith_shiftsi_compare0_scratch): Likewise.
14925         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
14926         Handle Thumb2 alternative.
14927
14928 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14929
14930         * doc/options.texi (NoDriverArg): Document.
14931         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
14932         -MDX and -MMDX.
14933         * opt-functions.awk (switch_flags): Handle NoDriverArg.
14934         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
14935         marking for CL_NO_DRIVER_ARG options when in the driver.
14936         * opts.h (CL_NO_DRIVER_ARG): Define.
14937         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
14938         CL_COMMON): Update values.
14939
14940 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14941
14942         * common.opt: Add driver options.
14943         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
14944         * doc/options.texi (Driver, RejectDriver): Document.
14945         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
14946         print_prog_name, print_multi_directory, print_sysroot,
14947         print_multi_os_directory, print_multi_lib,
14948         print_sysroot_headers_suffix, report_times, combine_flag,
14949         use_pipes, wrapper_string): Remove.
14950         (save_switch, driver_unknown_option_callback,
14951         driver_wrong_lang_callback, driver_post_handling_callback,
14952         driver_handle_option): New.
14953         (spec_lang, last_language_n_infiles): Make file-scope static
14954         instead of local to process_command.
14955         (process_command): Use decode_cmdline_options_to_array and
14956         read_cmdline_option for option processing.  Compute have_c in
14957         prescan of decoded options.
14958         * opt-functions.awk (switch_flags): Handle Driver and
14959         RejectDriver.
14960         (var_type, var_type_struct): Handle Separate options as generating
14961         const char * variables.
14962         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
14963         CL_TARGET to be passed by caller if required.
14964         (decode_cmdline_options_to_array): Update comment.
14965         * opts.c (complain_wrong_lang): Handle options only valid for the
14966         driver.
14967         (decode_options): Update call to decode_cmdline_options_to_array.
14968         (print_filtered_help): Ignore driver-only options.
14969         (print_specific_help): Ignore CL_DRIVER.
14970         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
14971         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
14972         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
14973         Update values.
14974
14975 2010-08-16  Richard Guenther  <rguenther@suse.de>
14976
14977         * tree-cfg.c (verify_types_in_gimple_reference): Verify
14978         TARGET_MEM_REF a bit.
14979         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
14980         (create_mem_ref_raw): Always create TMR_OFFSET, store the
14981         alias pointer type via it.
14982         (copy_mem_ref_info): Adjust.
14983         (maybe_fold_tmr): Likewise.
14984         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
14985         (reference_alias_ptr_type): Likewise.
14986         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
14987         adjust documentation of TMR_OFFSET operand.
14988         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
14989         use the alias pointer type.
14990         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
14991         initialize mem attrs but the TMR itself.
14992         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
14993         similar to MEM_REF.
14994         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
14995         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
14996         (unshare_and_remove_ssa_names): Likewise.
14997         (copy_ref_info): Adjust.
14998         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
14999         TARGET_MEM_REF case.
15000         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15001         at TMR_ORIGINAL.
15002         * tree.h (TMR_ORIGINAL): Remove.
15003         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15004         symbol return that.
15005         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15006         with a symbol.
15007         (get_addr_base_and_unit_offset): Likewise.
15008         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15009         TARGET_MEM_REFs.
15010         (indirect_ref_may_alias_decl_p): Likewise.
15011         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15012
15013 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15014
15015         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15016         with GCC version 4.6, the default setting (when not optimizing
15017         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15018         been changed to -fomit-frame-pointer.
15019
15020 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15021
15022         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15023         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15024
15025 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15026
15027         * doc/invoke.texi (Warning Options): Fix terminology and markup
15028         in the description of how unknown warning options are handled.
15029
15030 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15031
15032         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15033         in basic blocks.
15034         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15035         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15036         data references.
15037         (vect_bb_vectorization_profitable_p): New function.
15038         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15039         check if it's worthwhile to vectorize the basic block.
15040
15041 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15042
15043         * reload.h (register_move_cost, memory_move_secondary_cost,
15044         secondary_reload_class): Adjust prototype.
15045         * rtl.h (reg_class_subset_p): Adjust prototype.
15046         * reload.c (secondary_reload_class): Change arguments type from
15047         enum reg_class to reg_class_t. Change result type to reg_class_t.
15048         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15049         arguments type from enum reg_class to reg_class_t.
15050         (memory_move_secondary_cost): Change arguments type from
15051         enum reg_class to reg_class_t. Change type of saved_flags to
15052         reg_class_t.
15053
15054         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15055         Remove macros.
15056         (mips_cost): Remove.
15057         (struct mips_rtx_cost_data): Moved to mips.c.
15058         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15059         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15060         (mips_cost): Make static.
15061         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15062         Change result type to reg_class_t.
15063         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15064         type from enum reg_class to reg_class_t.
15065         (mips_register_move_cost): Make static. Change arguments
15066         type from enum reg_class to reg_class_t.
15067         (mips_memory_move_cost): New function.
15068         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15069
15070 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15071
15072         PR rtl-optimization/43358
15073         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15074         of a single hard register, using simplify_subreg_regno to decide
15075         what that register should be.
15076
15077 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15078
15079         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15080         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15081         (loongson_pmull<V_suffix>): Rename to...
15082         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15083
15084 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15085
15086         * configure.ac: Enable -fomit-frame-pointer on darwin
15087         which support dwarf2.
15088         * config/i386/i386.c (override_options): Same.
15089
15090 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15091
15092         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15093
15094 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15095
15096         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15097         -MMD.
15098
15099 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15100
15101         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15102         up dot_prod pattern searching if a stmt is outside the loop.
15103
15104 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15105             Uros Bizjak  <ubizjak@gmail.com>
15106
15107         * config.gcc: Handle --enable-frame-pointer.
15108
15109         * configure.ac: Add --enable-frame-pointer.
15110         * configure: Regenerated.
15111
15112         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15113         (override_options): If not configured with --enable-frame-pointer,
15114         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15115         optimizing for size), -fasynchronous-unwind-tables and
15116         -maccumulate-outgoing-args by default.
15117
15118 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15119
15120         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15121
15122         PR middle-end/45262
15123         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15124         -a overflows.  Normalize the range.
15125
15126 2010-08-12  Richard Guenther  <rguenther@suse.de>
15127
15128         PR tree-optimization/45232
15129         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15130         for types with undefined overflow.
15131         (reassociate_bb): Allow re-associating of bit and min/max
15132         operations for types with undefined overflow.
15133         * tree-ssa-forwprop.c (associate_plusminus): New function.
15134         (tree_ssa_forward_propagate_single_use_vars): Call it.
15135
15136 2010-08-12  Richard Guenther  <rguenther@suse.de>
15137
15138         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15139         * tree-ssa-alias.c (get_ptr_info): Move ...
15140         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15141         align and misalign fields conservatively.
15142         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15143         derive alignment information.
15144         (evaluate_stmt): Derive alignment information from memory
15145         allocation functions.
15146         * tree.h (get_pointer_alignment): Make unsigned.
15147         * builtins.c (get_object_alignment): Use alignment information we
15148         have computed for pointers.
15149         (get_pointer_alignment): Likewise.  Make conservative, return
15150         and unsigned value.
15151         (expand_builtin_strlen): Adjust.
15152         (expand_builtin_memcmp): Likewise.
15153         (expand_builtin_strcmp): Likewise.
15154         (expand_builtin_strncmp): Likewise.
15155         (get_builtin_sync_mem): Use at least mode alignment.
15156         (fold_builtin_memset): Adjust.
15157         (fold_builtin_memory_op): Likewise.
15158         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15159         information also dump pointer alignment knowledge.
15160         (dump_gimple_stmt): Likewise.
15161
15162 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15163
15164         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15165         (EMPTY_FIELD_BOUNDARY): Remove.
15166         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15167
15168 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15169
15170         PR debug/45259
15171         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15172         DEBUG_INSNs if n_regs_saved.
15173
15174 2010-08-12  Wei Guozhi  <carrot@google.com>
15175
15176         PR target/44999
15177         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15178         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15179
15180 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15181
15182         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15183
15184         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15185
15186 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15187
15188         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15189         the case removed in the previous patch, when the only phi argument
15190         is defined in the same loop as the phi node itself.  Handle it
15191         separately from the invariant case by both propagating it outside
15192         the region and replacing the phi node with an assign.
15193
15194 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15195
15196         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15197         constant phi nodes with one argument are is_gimple_min_invariant
15198         and SSA_NAME_IS_DEFAULT_DEF.
15199
15200 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15201
15202         * graphite-cloog-util.c (oppose_constraint):
15203         Extend loop counter's value range (CLOOG_ORG).
15204         (cloog_matrix_to_ppl_constraint): Same.
15205         (new_Constraint_System_from_Cloog_matrix): Same.
15206         * graphite-cloog-compat.h (matrix_num_type): New.
15207
15208 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15209
15210         * graphite.c (graphite_initialize): Do not initialize
15211         CLooG and initialize the Parma Polyhedra Library
15212         manually when using CLOOG_ORG.
15213         (graphite_finalize): Do not finalize CLooG and finalize
15214         the Parma Polyhedra Library manually when using CLOOG_ORG.
15215         * graphite-cloog-compat.h (cloog_initialize): Hide function
15216         when using CLOOG_ORG.
15217         (cloog_finalize): Same.
15218
15219 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15220
15221         * graphite-clast-to-gimple.c (free_scattering): Change
15222         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
15223         (CLOOG_ORG).
15224         (build_cloog_prog): Same.
15225         * graphite-cloog-compat.h (cloog_domain): Removed.
15226         (cloog_scattering): New.
15227         (cloog_set_domain): Removed.
15228         (cloog_set_scattering): New.
15229         (cloog_next_domain): Removed.
15230         (cloog_next_scattering): New.
15231         (cloog_set_next_domain): Removed.
15232         (cloog_set_next_scattering): New.
15233         (CloogScatteringList): New.
15234         (CloogScattering): New.
15235         (cloog_scattering_free): New.
15236         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
15237         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
15238         New.
15239
15240 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15241
15242         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
15243         CloogState.
15244         (set_cloog_options): Same.
15245         (print_clast_stmt): Same.
15246         (scop_to_clast): Same.
15247         (print_generated_program): Same.
15248         (gloog): Same.
15249         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
15250         (scop_to_clast): Extend with CloogState.
15251         * graphite-cloog-util.c: Include graphite-cloog-compat.h
15252         (new_Cloog_Domain_from_ppl_Polyhedron):
15253         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
15254         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
15255         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15256         * graphite-cloog-util.h (build_cloog_prog): Same.
15257         * graphite-cloog-copat.h (build_cloog_prog): New.
15258         (CloogState): New.
15259         (cloog_state_malloc): New.
15260         (cloog_state_free): New.
15261         (cloog_loop_malloc): New.
15262         (cloog_options_malloc): New.
15263         (cloog_statement_alloc): New.
15264         (cloog_domain_from_cloog_matrix): New.
15265         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
15266         (new_Cloog_Domain_from_ppl_Polyhedron): New.
15267
15268 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15269
15270         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
15271         type of NAME now depends on used CLooG version.
15272         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
15273         (gcc_type_for_clast_expr): Same.
15274         (print_clast_stmt): Replace pprint with clast_pprint.
15275         * graphite-cloog-compat.h: Provide compatibility macros for
15276         CLooG Legacy.
15277         (clast_name_p): New.
15278         (clast_expr_term): New.
15279         (clast_expr_red): New.
15280         (clast_expr_bin): New.
15281         (clast_pprint): New.
15282
15283 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15284
15285         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
15286         compatible to newer CLooG releases (CLOOG_ORG).
15287         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
15288         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
15289         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
15290         (build_cloog_prog) : New.
15291         (cloog_program_extract_scalars): New.
15292         (cloog_program_scatter): New.
15293
15294 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15295
15296         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
15297         conditionally (CLOOG_ORG).
15298         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
15299         (cloog_statement_usr): New.
15300         (cloog_domain): Same.
15301         (cloog_set_domain): Same.
15302         (cloog_next_domain): Same.
15303         (cloog_set_next_domain): Same.
15304         (cloog_program_nb_scattdims): Same.
15305         (cloog_program_set_nb_scattdims): Same.
15306         (cloog_program_names): Same.
15307         (cloog_program_set_names): Same.
15308         (cloog_program_set_context): Same.
15309         (cloog_program_set_loop): Same.
15310         (cloog_program_blocklist): Same.
15311         (cloog_program_set_blocklist): Same.
15312         (cloog_program_scaldims): Same.
15313         (cloog_program_set_scaldims): Same.
15314         (cloog_names_nb_parameters): Same.
15315         (cloog_names_set_nb_parameters): Same.
15316         (cloog_names_parameters): Same.
15317         (cloog_names_set_parameters): Same.
15318         (cloog_names_set_nb_iterators): Same.
15319         (cloog_names_set_iterators): Same.
15320         (cloog_names_set_nb_scattering): Same.
15321         (cloog_names_set_scattering): Same.
15322         (cloog_statement_set_usr): Same.
15323         (cloog_loop_set_next): Same.
15324         (cloog_loop_set_domain): Same.
15325         (cloog_loop_set_block): Same.
15326         (cloog_block_list_next): Same.
15327         (cloog_block_list_set_next):
15328         (cloog_block_list_set_block): Same.
15329
15330 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15331
15332         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
15333         a bool.
15334         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
15335         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
15336         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
15337         when something has been changed.
15338         (rewrite_commutative_reductions_out_of_ssa): Same.
15339
15340 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15341
15342         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
15343         handle the case when def is in the sese region.
15344         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
15345         for invariant expressions.
15346         (rewrite_cross_bb_phi_deps): Removed.
15347         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
15348         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
15349         rewrite_cross_bb_phi_deps.
15350
15351 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15352
15353         * graphite-sese-to-poly.c
15354         (rewrite_commutative_reductions_out_of_ssa_loop): Call
15355         scev_analyzable_p only on is_gimple_reg
15356
15357 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15358
15359         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
15360         (rewrite_close_phi_out_of_ssa): Propagate constant values or
15361         parametric expressions outside the scop region.
15362         (rewrite_cross_bb_scalar_deps): Same.
15363         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
15364
15365 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15366
15367         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15368         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15369
15370 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15371
15372         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15373         instantiate default definitions.
15374
15375 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15376             Sebastian Pop  <sebastian.pop@amd.com>
15377
15378         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15379         (loop_exits_from_bb_p): New.
15380         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15381         (loop_exits_from_bb_p): Declared.
15382         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15383         loop_exits_to_bb_p.
15384
15385 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15386
15387         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15388         extra parameter for the region.  Call scev_analyzable_p.
15389         (rewrite_reductions_out_of_ssa): Update call to
15390         rewrite_close_phi_out_of_ssa.
15391         (rewrite_cross_bb_phi_deps): Same.
15392         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15393         parameter for the region.  Call scev_analyzable_p.
15394         (rewrite_commutative_reductions_out_of_ssa): Update call to
15395         rewrite_commutative_reductions_out_of_ssa_loop.
15396
15397 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15398
15399         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15400
15401 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15402
15403         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15404         SSA scalar phi nodes that can be scev_analyzable_p.
15405
15406 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15407
15408         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15409         handle SSA_NAME_IS_DEFAULT_DEF.
15410
15411 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15412
15413         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15414
15415 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15416
15417         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15418         case non close-phi nodes with one argument.
15419
15420 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15421
15422         * sese.h (scev_analyzable_p): Scevs could be expressions without
15423         chrecs and still be scev_analyzable_p.
15424
15425 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15426
15427         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15428
15429 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15430
15431         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15432         * cfgloop.h (struct loop): Remove single_iv field.
15433         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15434         (scop_canonicalize_loops): Removed.
15435         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15436         over all the loop phi nodes in loop->header.
15437         (build_poly_scop): Remove use of scop_canonicalize_loops.
15438
15439 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15440
15441         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15442         handle GIMPLE_CALL.
15443
15444 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15445
15446         * tree-chrec.c (chrec_apply): Should only apply to the specified
15447         variable.  Also handle multivariate chains of recurrences that
15448         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15449
15450 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15451
15452         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15453         (debug_clast_name_indexes_1): Removed.
15454         (debug_clast_name_indexes): Removed.
15455         (pbb_to_depth_to_oldiv): Removed.
15456         (build_iv_mapping): Replace the use of rename_map with iv_map.
15457         (translate_clast_user): Remove uses of rename_map.  Allocate and
15458         free iv_map.
15459         (translate_clast_for_loop): Remove uses of rename_map.
15460         (translate_clast_for): Same.
15461         (translate_clast_guard): Same.
15462         (translate_clast): Same.
15463         (gloog): Same.
15464         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15465         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15466         * sese.c (set_rename): Now static.
15467         (rename_variables_in_stmt): Removed.
15468         (rename_uses): New.
15469         (is_parameter): Removed.
15470         (is_iv): Removed.
15471         (expand_scalar_variables_call): Removed.
15472         (expand_scalar_variables_ssa_name): Removed.
15473         (expand_scalar_variables_expr): Removed.
15474         (expand_scalar_variables_stmt): Removed.
15475         (expand_scalar_variables): Removed.
15476         (rename_variables): Removed.
15477         (remove_condition): Removed.
15478         (get_true_edge_from_guard_bb): Removed.
15479         (get_false_edge_from_guard_bb): Removed.
15480         (struct igp): Removed.
15481         (default_before_guard): Removed.
15482         (convert_for_phi_arg): Removed.
15483         (add_guard_exit_phis): Removed.
15484         (insert_guard_phis): Removed.
15485         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15486         region.  Do not copy conditions.  Do not copy induction variables.
15487         Call rename_uses.
15488         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15489         the translated statement.  Use the iv_map for the induction
15490         variable renaming.
15491         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15492         (set_rename): Removed declaration.
15493         (scev_analyzable_p): ...here.
15494         * tree-chrec.c (chrec_apply_map): New.
15495         * tree-chrec.h (chrec_apply_map): Declared.
15496
15497 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15498
15499         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15500         insert_loop_close_phis.
15501         * sese.c (name_defined_in_loop_p): Removed.
15502         (expr_defined_in_loop_p): Removed.
15503         (alive_after_loop): Removed.
15504         (close_phi_not_yet_inserted_p): Removed.
15505         (struct alep): Removed.
15506         (add_loop_exit_phis): Removed.
15507         (insert_loop_close_phis): Removed.
15508
15509 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15510
15511         * graphite-cloog-util.c
15512         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15513         * graphite-poly.c
15514         (psct_scattering_dim_for_loop_depth): Same.
15515
15516 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15517
15518         * graphite-cloog-util.h: Added cloog.h.
15519         * graphite-blocking.c: Removed cloog.h.
15520         * graphite-dependences.c: Same.
15521         * graphite-interchange.c: Same.
15522         * graphite-poly.c: Same.
15523         * graphite-ppl.c: Same.
15524         * graphite-scop-detection.c: Same.
15525         * graphite-sese-to-poly.c:
15526         Removed cloog.h.
15527         Removed graphite-clast-to-gimple.h.
15528         (check_poly_representation): Removed (unused).
15529         * graphite-sese-to-poly.h
15530         (check_poly_representation): Removed (unused).
15531
15532 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15533
15534         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15535         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15536         (graphite-cloog-util.o): New.
15537         (graphite-ppl.o): Added graphite-cloog-util.h.
15538         * graphite-clast-to-gimple.c:
15539         Added graphite-cloog-util.h to include statements.
15540         * graphite-cloog-util.c: New.
15541         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15542         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15543         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15544         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15545         (insert_constraint_into_matrix): Same.
15546         (ppl_Constrain_System_number_of_constraints): Same.
15547         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15548         (oppose_constraint): Same.
15549         (cloog_matrix_to_ppl_constraint): Same.
15550         (new_Constraint_System_from_Cloog_Matrix): Same.
15551         * graphite-cloog-util.h: New.
15552         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15553         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15554         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15555         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15556         (insert_constraint_into_matrix): Same.
15557         * graphite-ppl.c:
15558         Added graphite-cloog-util.h to include statements.
15559         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15560         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15561         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15562         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15563         (insert_constraint_into_matrix): Same.
15564         (ppl_Constrain_System_number_of_constraints): Same.
15565         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15566         (oppose_constraint): Same.
15567         (cloog_matrix_to_ppl_constraint): Same.
15568         (new_Constraint_System_from_Cloog_Matrix): Same.
15569         * graphite-ppl.h:
15570         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15571         graphite-cloog-util.h.
15572         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15573         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15574         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15575         (insert_constraint_into_matrix): Same.
15576
15577 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15578
15579         * graphite-clast-to-gimple.c
15580         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15581         (precision_for_interval): Same.
15582         (gcc_type_for_interval): Same.
15583         (compute_type_for_level): Same.
15584         * graphite-interchange.c
15585         (lst_interchange_profitable_p): Same.
15586         * graphite-poly.c
15587         (psct_scattering_dim_for_loop_depth): Same.
15588         * graphite-ppl.c
15589         (ppl_max_for_le_pointset): Same.
15590         (ppl_min_for_le_pointset): Same.
15591
15592 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15593
15594         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15595         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15596
15597 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15598
15599         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15600         rewrite_close_phi_out_of_ssa.
15601
15602 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15603
15604         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15605
15606 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15607
15608         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15609         rename_map.
15610         * sese.c (debug_rename_map): Same.
15611         (get_rename): Same.
15612         (set_rename): Same.
15613         (rename_variables_in_stmt): Same.
15614         (expand_scalar_variables_call): Same.
15615         (expand_scalar_variables_ssa_name): Same.
15616         (expand_scalar_variables_expr): Same.
15617         (expand_scalar_variables_stmt): Same.
15618         (expand_scalar_variables): Same.
15619         (rename_variables): Same.
15620         (graphite_copy_stmts_from_block): Same.
15621         (copy_bb_and_scalar_dependences): Same.
15622
15623 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15624
15625         * graphite-clast-to-gimple.c (copy_renames): Removed.
15626         (translate_clast_for): Do not call copy_renames.
15627         (translate_clast_guard): Same.
15628
15629 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15630
15631         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15632         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15633         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15634         before rewrite_cross_bb_scalar_deps.
15635
15636 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15637
15638         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15639         Early return in when flag_associative_math is not set.
15640
15641 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15642
15643         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15644         of SSA copies on edges except for loop->latch.
15645
15646 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15647
15648         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15649         Split out of rewrite_reductions_out_of_ssa.
15650         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15651         Declared.
15652         * graphite.c (graphite_transform_loops): Call it.
15653
15654 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15655
15656         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15657
15658 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15659
15660         * dbgcnt.def (graphite_scop): New counter.
15661         * graphite.c: Include dbgcnt.h.
15662         (graphite_transform_loops): Use new counter to limit transformations.
15663         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15664
15665 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15666
15667         * passes.c (init_optimization_passes): Add pass_graphite.
15668         Schedule a pass_copy_prop before pass_graphite_transforms.
15669         * timevar.def (TV_GRAPHITE): Declared.
15670         * tree-pass.h (pass_graphite): Declared.
15671         * tree-ssa-loop.c (pass_graphite): New.
15672
15673 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15674
15675         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15676         Remove calls to rename_nb_iterations and rename_sese_parameters.
15677         * graphite-clast-to-gimple.h (gloog): Update declaration.
15678         * graphite.c (graphite_transform_loops): Update call to gloog.
15679         * sese.c (rename_variables_in_expr): Removed.
15680         (rename_nb_iterations): Removed.
15681         (rename_sese_parameters): Removed.
15682         * sese.h (rename_nb_iterations): Removed.
15683         (rename_sese_parameters): Removed.
15684
15685 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15686
15687         * graphite-clast-to-gimple.c (gloog): Remove call to
15688         sese_adjust_liveout_phis.
15689         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15690         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15691         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15692         rewrite_phi_out_of_ssa.
15693         * sese.c (get_vdef_before_sese): Removed.
15694         (sese_adjust_vphi): Removed.
15695         (sese_adjust_liveout_phis): Removed.
15696         * sese.h (sese_adjust_liveout_phis): Removed.
15697
15698 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15699
15700         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15701         argument for the place after which to insert the out of SSA copy.
15702         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15703         (rewrite_phi_out_of_ssa): Same.
15704         (rewrite_cross_bb_scalar_deps): Same.
15705         (insert_copyout): Removed.
15706         (insert_copyin): Removed.
15707         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15708         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15709         insert_copyin.
15710
15711 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15712
15713         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15714         (rewrite_reductions_out_of_ssa): Same.
15715         (rewrite_commutative_reductions_out_of_ssa): Same.
15716         (build_poly_scop): Do not call these functions.
15717         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15718         (rewrite_reductions_out_of_ssa): Declared.
15719         (rewrite_commutative_reductions_out_of_ssa): Declared.
15720         * graphite.c (graphite_transform_loops): Call on every scop
15721         rewrite_commutative_reductions_out_of_ssa before calling
15722         rewrite_reductions_out_of_ssa and build_scop_bbs.
15723
15724 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15725
15726         * graphite-dependences.c (dot_deps): Make system call to dotty run
15727         in background.
15728         (dot_deps_stmt): Same.
15729         * graphite-poly.c (dot_lst): Same.
15730
15731 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15732
15733         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15734         phi_arg_in_outermost_loop.
15735         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15736         (remove_invariant_phi): Same.
15737
15738 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15739
15740         * target.def (output_addr_const_extra): New hook.
15741         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15742         * doc/tm.texi: Regenerate.
15743         * targhooks.c (default_asm_output_addr_const_extra): New function.
15744         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15745         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15746         target hook.
15747
15748         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15749         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15750         * config/i386/i386.h (output_addr_const_extra): Rename to...
15751         (i386_asm_output_addr_const_extra): ...this. Make static.
15752         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15753
15754 2010-08-11  Richard Henderson  <rth@redhat.com>
15755
15756         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15757
15758 2010-08-11  Nick Clifton  <nickc@redhat.com>
15759
15760         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15761         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15762         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15763         stormy16-lib2-cmpsi.c.
15764
15765         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15766         -O2.
15767
15768 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15769
15770         * opts.h (struct cl_option_handler_func): Make handler take
15771         cl_decoded_option structure as parameter, not individual elements.
15772         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15773         structure as parameter, not individual elements.
15774         (handle_option): Take cl_decoded_option structure as parameter,
15775         not individual elements.
15776         (handle_generated_option): Declare.
15777         * opts-common.c (handle_option): Take cl_decoded_option structure
15778         as parameter, not individual elements.  Update calls to callback
15779         and handler functions.
15780         (handle_generated_option): New.
15781         (read_cmdline_option): Update calls to callback functions and
15782         handle_option.
15783         * opts.c (common_handle_option, complain_wrong_lang,
15784         unknown_option_callback, post_handling_callback,
15785         lang_handle_option, target_handle_option): Take cl_decoded_option
15786         structure as parameter, not individual elements.
15787         (lang_handle_option, target_handle_option, common_handle_option):
15788         Assert option has at most one argument.
15789         (enable_warning_as_error): Call handle_generated_option instead of
15790         handle_option.  Do not pass -Werror argument as argument of
15791         generated option.
15792
15793 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15794
15795         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15796         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15797         (SUBWORD_BOOL_CAS): Likewise.
15798         (SUBWORD_SYNC_OP): Likewise.
15799         (SUBWORD_TEST_AND_SET): Likewise.
15800         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15801         (SUBWORD_SYNC_OP): Likewise.
15802         (OP_AND_FETCH_WORD): Likewise.
15803
15804 2010-08-10  Xinliang David Li  <davidxl@google.com>
15805
15806         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15807         compute max/min offset in address.
15808
15809 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15810
15811         * ira-live.c: Include sbitmap.h.
15812         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15813         Compress live ranges even more.
15814
15815 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15816
15817         * coverage.c (ctr_labels): Delete.
15818
15819 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15820
15821         PR bootstrap/45177
15822         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15823         test here from arm_gen_load_multiple_1.
15824         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15825         multiple_operation_profitable_p.
15826
15827 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15828
15829         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15830         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15831
15832 2010-08-10  Richard Henderson  <rth@redhat.com>
15833
15834         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15835         after saving registers.  Assert that SSE registers are only saved
15836         with a sufficiently aligned frame.
15837         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15838         remove stack_realign_fp handling.
15839         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15840         and do not mark the stack alignment as frame related.
15841         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15842
15843         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15844         saves when re-aligning the stack.
15845
15846 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15847
15848         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
15849         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
15850         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
15851
15852 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15853
15854         * dwarf2out.c (struct die_struct): Move die_tag to the end.
15855
15856 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
15857
15858         * config/arm/iterators.md: New file.
15859         * config/arm/arm.md: Include iterators.md.
15860         (QHSI): Move to new file.
15861         (LTUGEU, cnb, optab, ior_xor): Likewise.
15862         * config/arm/iwmmxt.md (VMMX): Move to new file.
15863         (VSHFT, MMX_char): Likewise.
15864         * config/arm/neon.md (VD): Move to new file.
15865         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
15866         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
15867         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
15868         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
15869         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
15870         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
15871         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
15872         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
15873         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
15874         (Is_d_reg, V_mode_nunits): Likewise.
15875         * config/arm/vec-common.md (VALL): Move to new file.
15876         (VALLW, VINT, VINTW): Likewise.
15877
15878 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15879
15880         PR middle-end/45182
15881         * combine.c (make_compound_operation): Don't try to convert
15882         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
15883
15884 2010-08-10  Richard Guenther  <rguenther@suse.de>
15885
15886         * tree.h (get_object_alignment): Adjust prototype.
15887         * builtins.c (get_object_alignment): Return unsigned int,
15888         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
15889         and TARGET_MEM_REF properly.
15890         (get_pointer_alignment): Adjust.
15891         * emit-rtl.c (get_mem_align_offset): Adjust comment.
15892         (set_mem_attributes_minus_bitpos): Adjust.
15893         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
15894
15895 2010-08-10  Richard Guenther  <rguenther@suse.de>
15896
15897         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
15898         (copy_prop_visit_assignment): Simplify.
15899         (copy_prop_visit_stmt): Also visit assignments from
15900         constants.
15901         (copy_prop_visit_phi_node): Use operand_equal_p.
15902
15903 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15904
15905         * ipa-split.c (find_split_points): Free stack.
15906
15907 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15908
15909         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
15910         * tree.c (tree_node_kind): Delete corresponding entries.
15911
15912 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
15913
15914         * alias.c (may_alias_p): Remove unused ret.
15915
15916 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
15917
15918         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
15919         alias_sets_conflict_p.
15920         (walk_mems_1): Moved from alias.c.
15921         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
15922         in alias.c.
15923         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
15924         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
15925         * alias.c (walk_mems_2): Moved to ddg.c.
15926         (walk_mems_1): Ditto.
15927         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
15928         to ddg.c.
15929         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
15930         disambiguation.
15931         *(may_alias_p): New function to check whether two memory expression
15932         may alias or not. Currently used in buidling inter-iteration memory
15933         dependence.
15934         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
15935         (insn_alias_sets_conflict_p): Removed
15936         *rtl.h (may_alias_p): New function prototype.
15937
15938 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15939
15940         * tree.c (nreverse): Assert that we don't have a BLOCK.
15941
15942 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15943
15944         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
15945         * config/arm/arm.c (arm_get_pcs_model): Likewise.
15946         * config/avr/avr.c (init_cumulative_args): Likewise.
15947         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
15948         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
15949         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
15950         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
15951         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
15952         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15953         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
15954         * dwarf2out.c (gen_subprogram_die): Likewise.
15955         * function.c (allocate_struct_function): Likewise.
15956         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
15957         (deserves_ellipsis): Delete.
15958
15959 2010-08-09  Richard Guenther  <rguenther@suse.de>
15960
15961         * tree-ssa-copy.c (cached_last_copy_of): Remove.
15962         (valueize_val): New function.
15963         (get_last_copy_of): Remove.
15964         (set_copy_of_val): Simplify.
15965         (dump_copy_of): Likewise.
15966         (copy_prop_visit_cond_stmt): Use valueize_val.
15967         (copy_prop_visit_phi_node): Properly handle unvisited names.
15968         Drop code managing copy-of chains.
15969         (init_copy_prop): Adjust.
15970         (fini_copy_prop): Likewise.
15971         (execute_copy_prop): Remove obsolete comment.
15972
15973 2010-08-09  Richard Guenther  <rguenther@suse.de>
15974
15975         PR middle-end/44632
15976         * function.c (gimplify_parameters): Do not clear addressable
15977         bit of the original parameter.
15978
15979 2010-08-09  Richard Guenther  <rguenther@suse.de>
15980
15981         PR middle-end/45212
15982         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
15983         alignment from MEM_REF offset only if we took it from the
15984         base object.
15985
15986 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
15987
15988         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
15989
15990 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15991
15992         * c-tree.h (build_arg_info): Declare.
15993         * c-decl.c (build_arg_info): Define.
15994         (get_parm_info): Call it.  Delete initialization code.
15995         * c-parser.c (c_parser_parms_declarator): Likewise.
15996         (c_parser_parms_list_declaractor): Likewise.
15997
15998 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15999
16000         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16001         (struct c_arg_info): Change type of tags field.
16002         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16003         (get_parm_info): Likewise.
16004         (store_parm_decls_newstyle): Likewise.
16005
16006 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16007
16008         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16009         (branch_island_list): Delete.
16010         (branch_islands): Declare.
16011         (add_compiler_branch_island): Adjust for branch_islands instead of
16012         branch_island_list.
16013         (macho_branch_islands): Likewise.
16014         (no_previous_def): Likewise.
16015         (get_prev_label): Likewise.
16016
16017 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16018
16019         PR boehm-gc/34544
16020         * gthr-posix.h (__gthread_start): Delete.
16021         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16022         pthread_create to determine if hpux pthreads are active.
16023         * gthr-posix95.h (__gthread_start): Delete.
16024         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16025
16026 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16027
16028         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16029         _WIN64 not expanded.
16030
16031 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16032             H.J. Lu  <hongjiu.lu@intel.com>
16033
16034         PR target/45213
16035         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16036         to output 32bit SFmode immediate as 8 byte sign extended value.
16037
16038 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16039
16040         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16041         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16042         (SUBWORD_BOOL_CAS): Likewise.
16043         (SUBWORD_SYNC_OP): Likewise.
16044         (SUBWORD_TEST_AND_SET): Likewise.
16045         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16046         (SUBWORD_SYNC_OP): Likewise.
16047         (OP_AND_FETCH_WORD): Likewise.
16048
16049 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16050
16051         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16052         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16053         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16054         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16055         generic part.
16056         (cortex_a9_sched_adjust_cost): New function.
16057         (xscale_sched_adjust_cost): New function.
16058         * config/arm/arm-protos.h (struct tune_params): New field
16059         sched_adjust_cost.
16060         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16061
16062 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16063
16064         PR target/44942
16065         * config/sparc/sparc.c (function_arg_advance): Always take into account
16066         the padding, if any.
16067
16068 2010-08-06  Richard Guenther  <rguenther@suse.de>
16069
16070         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16071         (dump_lattice_value): Dump it.
16072         (get_default_value): Adjust.
16073         (get_constant_value): Likewise.
16074         (set_value_varying): Likewise.
16075         (set_lattice_value): Make sure to not go up the lattice
16076         with bitwise constant values.
16077         (get_value_for_expr): Handle ADDR_EXPRs.
16078         (value_to_double_int): New function.
16079         (get_value_from_alignment): Likewise.
16080         (do_dbg_cnt): Adjust.
16081         (ccp_lattice_meet): Handle partially constant values.
16082         (bit_value_unop_1): New function.
16083         (bit_value_binop_1): Likewise.
16084         (bit_value_unop): Likewise.
16085         (bit_value_binop): Likewise.
16086         (evaluate_stmt): Track partially constant values if
16087         flag_tree_bit_ccp is set.
16088         (ccp_fold_stmt): Dump if we folded a predicate.
16089         (ccp_visit_stmt): Adjust.
16090         * common.opt (ftree-bit-ccp): New flag.
16091         * doc/invoke.texi (ftree-bit-ccp): Document.
16092         * opts.c (decode_options): Enable bit-CCP at -O1.
16093
16094 2010-08-06  Alan Modra  <amodra@gmail.com>
16095
16096         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16097         and -mrelocatable-lib description.
16098
16099 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16100
16101         From Martin Thuresson  <martint@google.com>
16102         * postreload.c (reload_cse_simplify_operands): Use
16103         SET_REGNO_RAW instead of SET_REGNO.
16104         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16105         SET_REGNO.
16106         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16107         instead of SET_REGNO.
16108         * rtl.h (SET_REGNO_RAW): New macro.
16109
16110 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16111
16112         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16113         computations.  Fix formatting issues.
16114         (num_sign_bit_copies1): Likewise.
16115         (canonicalize_condition): Likewise.
16116
16117 2010-08-05  Richard Henderson  <rth@redhat.com>
16118
16119         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16120         (floor_log2): Use clz_hwi.
16121         (exact_log2): Use ctz_hwi.
16122         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16123         * builtins.c (fold_builtin_bitop): Use them.
16124         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16125         * combine.c (get_pos_from_mask): Use ctz_hwi.
16126         * double-int.c (double_int_ctz): Likewise.
16127         * explow.c (force_reg): Likewise.
16128         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16129
16130 2010-08-05  Richard Henderson  <rth@redhat.com>
16131
16132         PR target/45189
16133         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16134         the alignment constant is properly sign-extended.
16135
16136 2010-08-05  Richard Guenther  <rguenther@suse.de>
16137
16138         * expr.c (store_expr): Use emit_block_move only if both
16139         source and target are MEMs.  Use store_bit_field if only
16140         the target is a MEM.
16141
16142 2010-08-05  Richard Henderson  <rth@redhat.com>
16143
16144         PR debug/45188
16145         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16146         (INCOMING_RETURN_ADDR_RTX): Likewise.
16147         (dwarf2out_do_frame): Remove conditional compilation.
16148         (dwarf2out_frame_init): Likewise.
16149
16150 2010-08-05  Nicolas Setton  <setton@adacore.com>
16151
16152         * gcov.c (flag_display_progress): New static variable.
16153         (main): Display progress info on standard output if requested.
16154         (options): Add -d/--display-progress.
16155         (print_usage): Print them.
16156         (process_args): Handle them.
16157         * doc/gcov.texi: Document them.
16158
16159 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16160
16161         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16162         (ipcp_insert_stage): Redirect only edges not flagged with
16163         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16164         discovered constants.
16165
16166 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16167
16168         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16169         (struct ipa_param_descriptor): New fields types and
16170         cannot_devirtualize.
16171         (ipa_param_cannot_devirtualize_p): New function.
16172         (ipa_param_types_vec_empty): Likewise.
16173         (ipa_make_edge_direct_to_target): Declare.
16174         * ipa-cp.c: Fixed first stage driver name in initial comment,
16175         described devirtualization there too.
16176         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16177         (ipcp_print_all_lattices): Print devirtualization info.
16178         (ipa_set_param_cannot_devirtualize): New function.
16179         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16180         lattice to BOTTOM.
16181         (ipcp_init_stage): Merged into...
16182         (ipcp_generate_summary): ...its caller.
16183         (ipcp_change_tops_to_bottom): Also process type lists.
16184         (ipcp_add_param_type): New function.
16185         (ipcp_copy_types): Likewise.
16186         (ipcp_propagate_types): Likewise.
16187         (ipcp_propagate_stage): Also propagate types.
16188         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16189         Also return true if propagated types require it.
16190         (ipcp_update_callgraph): Dump redirection info.
16191         (ipcp_process_devirtualization_opportunities): New function.
16192         (ipcp_const_param_count): Include known type information.
16193         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16194         on new node.  Fixed formatting.
16195         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16196         ipa_make_edge_direct_to_target and changed all callers.  Made
16197         externally visible.
16198         (ipa_node_duplication_hook): Duplicate types vector.
16199         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
16200         redirect outgoing calls for which we can't get a decl from the
16201         statement.  Check that we can get a decl from the call statement.
16202         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16203         ipa_analyze_params_uses only when ipa-cp is disabled.
16204         * tree-inline.c (get_indirect_callee_fndecl): Removed.
16205         (expand_call_inline): Do not call get_indirect_callee_fndecl.
16206         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
16207         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
16208
16209 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16210
16211         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
16212         temporary. Emit move from temporary to accum, so REG_EQUAL note will
16213         be attached to this insn in correct mode.
16214
16215 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16216
16217         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
16218         using REGNO of base_reg directly.
16219
16220 2010-08-05  Jie Zhang  <jie@codesourcery.com>
16221
16222         PR tree-optimization/45144
16223         * tree-sra.c (type_consists_of_records_p): Return false
16224         if the record contains bit-field.
16225
16226 2010-08-04  Richard Henderson  <rth@redhat.com>
16227
16228         * config/i386/i386.c (struct ix86_frame): Remove padding and
16229         to_allocate members.
16230         (ix86_compute_frame_layout): Don't store them.
16231         (ix86_can_use_return_insn_p): Use a more direct and more obviously
16232         correct condition for the position of the stack pointer.
16233         (ix86_expand_prologue): Compute remaining stack allocation based
16234         on the ultimate stack pointer offset.
16235         (ix86_expand_epilogue): Use more obvious expressions testing for
16236         the stack pointer already pointing to the saved registers.
16237
16238         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
16239         duplication deconstructing the frame pointer.  Simplify
16240         deallocation of the local stack frame.
16241
16242         * reg-notes.def (CFA_EXPRESSION): New.
16243         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
16244         (dwarf2out_frame_debug_cfa_expression): New.
16245         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
16246
16247         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
16248         * config/i386/i386.c (ix86_expand_prologue): Set it.
16249         (ix86_expand_epilogue): Clear it.
16250         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
16251         context, add REG_CFA_EXPRESSION notes.
16252
16253         * config/i386/i386.h (struct machine_frame_state): Rename from
16254         machine_cfa_state.  Add members tracking SP and FP regardless
16255         of the current CFA register.
16256         (ix86_cfa_state): Remove.
16257         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
16258         and sse_reg_save_offset members.
16259         (ix86_compute_frame_layout): Set them.
16260         (gen_push): Increment sp_offset too.
16261         (choose_baseaddr_len, choose_baseaddr): New.
16262         (ix86_emit_save_reg_using_mov): New.
16263         (ix86_emit_save_regs_using_mov): Use it.
16264         (ix86_emit_save_sse_regs_using_mov): Likewise.
16265         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
16266         compare vs the saved red_zone_offset.
16267         (pro_epilogue_adjust_stack): Adjust sp_offset.
16268         (ix86_adjust_stack_and_probe): Likewise.
16269         (ix86_expand_prologue): Set up, use, and validate the new
16270         frame_state_info members.  Use gen_frame_mem.
16271         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
16272         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
16273         new frame_state_info members.
16274         (ix86_emit_leave): Likewise.
16275         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
16276         out-of-range stack pointer offsets here.
16277         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16278         (ix86_expand_epilogue): Use and validate the new frame_state_info
16279         members.  Break up and simplify the logic selecting the
16280         restore_regs_via_mov code path.  Ensure that there will be no
16281         out-of-range stack pointer offsets.
16282
16283         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
16284
16285         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
16286         argument name to reflect the expected tree; fix indentation.
16287         (ix86_asm_output_function_label): Output the entire 32-bit
16288         ms_hook here as bytes ...
16289         (ix86_expand_prologue): ... not here as insns.  Attach the
16290         unwind info for the ms_hook to a blockage insn.
16291         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
16292         (ix86_ms_bitfield_layout_p): Fix indentation.
16293         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
16294
16295         * config/i386/i386.c (ix86_using_red_zone): New.
16296         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
16297         ix86_expand_prologue, ix86_force_to_memory): Use it.
16298
16299         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
16300         saving the int registers.
16301
16302         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
16303         and DWARF2_UNWIND_INFO conditional compilation.
16304
16305 2010-08-04  Richard Henderson  <rth@redhat.com>
16306
16307         PR debug/45171
16308         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
16309         an is_naming_typedef_decl.
16310
16311 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
16312
16313         PR rtl-optimization/45162
16314         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
16315         * dce.c (word_dce_process_block): Likewise.
16316
16317 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
16318
16319         PR target/44583
16320         * config/ia64/constraints.md (Z): New.
16321         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
16322         (xfreg_or_signed_fp01_operand): New.
16323         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
16324         with fr_reg_or_signed_fp01_operand and constraint G with Z.
16325         (subsf3): Ditto.
16326         (*maddsf4): Ditto.
16327         (*msubsf4): Ditto.
16328         (adddf3): Ditto.
16329         (adddf3_trunc): Ditto.
16330         (subdf3): Ditto.
16331         (*subdf3_trunc): Ditto.
16332         (*madddf4): Ditto.
16333         (*madddf4_trunc): Ditto.
16334         (*msubdf4): Ditto.
16335         (*msubdf4_trunc): Ditto.
16336         (addxf3): Replace xfreg_or_fp01_operand with
16337         xfreg_or_signed_fp01_operand and constraint G with Z.
16338         (*addxf3_truncsf): Ditto.
16339         (*addxf3_truncdf): Ditto.
16340         (subxf3): Ditto.
16341         (*subxf3_truncsf): Ditto.
16342         (*subxf3_truncdf): Ditto.
16343         (*maddxf4): Ditto.
16344         (*maddxf4_truncsf): Ditto.
16345         (*maddxf4_truncdf): Ditto.
16346         (*msubxf4): Ditto.
16347         (*msubxf4_truncsf): Ditto.
16348         (*msubxf4_truncdf): Ditto.
16349
16350 2010-08-04  Richard Guenther  <rguenther@suse.de>
16351
16352         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
16353         if either alias-set is zero.
16354
16355 2010-08-04  Richard Guenther  <rguenther@suse.de>
16356
16357         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
16358         * tree-ssa-ccp.c: ... here.
16359         * tree-ssa-copy.c: ... and here.
16360         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
16361         value_range_t): Move ...
16362         * tree-vrp.c: ... here.
16363         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
16364         (substitute_and_fold): Adjust prototype.
16365         * tree-ssa-propagate.c (replace_uses_in): Adjust.
16366         (replace_phi_args_in): Likewise.
16367         (substitute_and_fold): Take callback to query lattice instead
16368         of pointer to lattice.  Replace SSA name defs with lattice
16369         values first.
16370         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16371         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16372         (get_value): New function.
16373         (fini_copy_prop): Adjust.
16374         * tree-vrp.c (vrp_finalize): Adjust.
16375
16376 2010-08-04  Richard Guenther  <rguenther@suse.de>
16377
16378         PR middle-end/45176
16379         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16380         points-to set for original MEM_REF.
16381
16382 2010-08-04  Richard Guenther  <rguenther@suse.de>
16383
16384         * tree-ssa-ccp.c (get_constant_value): New function.
16385         (get_rhs_assign_op_for_ccp): Remove.
16386         (valueize_op): New function.
16387         (ccp_fold): Use get_constant_value and valueize_op.
16388         (fold_const_aggregate_ref): Likewise.
16389         (ccp_fold_stmt): Likewise.
16390         (visit_assignment): Simplify.
16391
16392 2010-08-04  Richard Guenther  <rguenther@suse.de>
16393
16394         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16395         * double-int.h (double_int_ctz): Declare.
16396         * double-int.c (double_int_ctz): New function.
16397
16398 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16399
16400         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16401         Define.
16402         picochip_expand_movmemhi : Expand movmem pattern.
16403         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16404         Declare.
16405         * config/picochip/picochip.md (movmemhi) : New pattern.
16406
16407 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16408
16409         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16410
16411 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16412
16413         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16414         NEG as operand of a MULT by merging it with the other operand.
16415         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16416         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16417         MULT.
16418         * config/arm/constraints.md (M): Examine only 32 bits of a
16419         HOST_WIDE_INT.
16420         * config/arm/predicates.md (power_of_two_operand): Likewise.
16421
16422 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16423
16424         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16425         non-NOTE insns.
16426
16427 2010-08-03  Jan Hubicka  <jh@suse.cz>
16428
16429         * ipa-split.c (struct split_point): Add split_part_set_retval.
16430         (find_retval): Forward declare.
16431         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16432         (consider_split): Compute current->split_part_set_retval.
16433         (visit_bb): Do not look into return value.
16434         (split_function): Handle !split_part_set_retval
16435
16436 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16437
16438         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16439         its own access->expr intead of using build_ref_for_offset.
16440
16441 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16442
16443         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16444         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16445         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16446         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16447         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16448         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16449         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16450         DEFAULT_SWITCH_TAKES_ARG.
16451         * config/rx/rx.opt (-patch=): Remove option.
16452         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16453         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16454         * doc/invoke.texi (RX Options): Remove -patch=.
16455         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16456         (option_map): Remove --profile-blocks, --quiet and --silent.
16457
16458 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16459
16460         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16461         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16462         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16463         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16464         Update calls to ix86_expand_compare and ix86_expand_branch.
16465         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16466         ix86_expand_compare.
16467         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16468         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16469         Make static.
16470         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16471         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16472         (ix86_expand_int_movcc): Ditto.
16473         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16474         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16475         (ix86_expand_setcc): Ditto.
16476         (ix86_expand_compare): Remove prototype.
16477         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16478         ix86_compare_op0 and ix86_compare_op1.  Update calls
16479         to ix86_expand_branch to directly pass operands[1] and operands[2].
16480         (cbranchxf4): Ditto.
16481         (cbranch<MODEF:mode>4): Ditto.
16482         (cbranchcc4): Ditto.
16483         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16484         Update calls to ix86_expand_setcc to directly pass operands[2] and
16485         operands[3].
16486         (cstorexf4): Ditto.
16487         (cstore<MODEF:mode>4): Ditto.
16488         (cstorecc4): Ditto.
16489
16490 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16491
16492         PR target/45063
16493         * caller-save.c (save_call_clobbered_regs): Remove regs from
16494         hard_regs_saved when they are set.
16495
16496 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16497
16498         PR target/41089
16499         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16500         as volatile.
16501
16502 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16503
16504         * common.opt (ftree-loop-distribute-patterns): New.
16505         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16506         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16507         at -O3.
16508         * tree-data-ref.c (stores_zero_from_loop): New.
16509         * tree-data-ref.h (stores_zero_from_loop): Declared.
16510         * tree-loop-distribution.c (tree_loop_distribution): Call
16511         stores_zero_from_loop.
16512         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16513
16514 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16515
16516         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16517         into account.
16518
16519         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16520         * config/arm/arm.c (thumb1_code): New variable.
16521         (arm_override_options): Set it.
16522         (thumb1_final_prescan_insn): Keep track of condition code status.
16523         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16524         jumps that depend on them.
16525         * config/arm/arm.h (thumb1_code): Declare variable.
16526         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16527         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16528         thumb1_cc_mode.
16529         (CC_STATUS_INIT): New macro.
16530         * config/arm/constraints.md (Pd): New constraint.
16531         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16532         * config/arm/arm.md (is_thumb1): New define_attr.
16533         (conds): Set default to "clob" when generating Thumb1 code.
16534         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16535         code are set.  Use two-operand assembly syntax.
16536         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16537         pattern.
16538         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16539         codes are set.  Use two-operand assembly syntax.
16540         (zero_extendhisi splitter): Remove constraints.
16541         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16542         thumb1_movsf_insn): Set conds attribute as appropriate.
16543         (cbranchsi4_insn): Use condition code status from struct
16544         machine_function to determine whether the comparison can be eliminated.
16545         Discourage the alternative using high registers.
16546         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16547         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16548         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16549         subsi3_cbranch): Delete.
16550         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16551         one subtract and one cbranch insn.
16552
16553         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16554         thumb2_movdf_soft_insn): Delete patterns.
16555         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16556         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16557         (pool_range, neg_pool_range): Use them to define defaults.
16558         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16559         and allow for TARGET_32BIT.
16560
16561         PR target/40457
16562         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16563         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16564         load_multiple_sequence, store_multiple_sequence): Delete
16565         declarations.
16566         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16567         declarations.
16568         * config/arm/ldmstm.md: New file.
16569         * config/arm/arm.c (arm_regs_in_sequence): New array.
16570         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16571         CHECK_REGS.  All callers changed.
16572         If SAVED_ORDER is nonnull, copy the computed order into it.
16573         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16574         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16575         SAVED_ORDER, REG_RTXS and 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.  Set up REG_RTXS just
16578         like REGS.  Handle Thumb mode.
16579         (arm_gen_load_multiple_1): New function, broken out of
16580         arm_gen_load_multiple.
16581         (arm_gen_store_multiple_1): New function, broken out of
16582         arm_gen_store_multiple.
16583         (arm_gen_multiple_op): New function, with code from
16584         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16585         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16586         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16587         changed.
16588         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16589         * config/arm/predicates.md (commutative_binary_operator): New.
16590         (load_multiple_operation, store_multiple_operation): Handle more
16591         variants of these patterns with different starting offsets.  Handle
16592         Thumb-1.
16593         * config/arm/arm.md: Include "ldmstm.md".
16594         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16595         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16596         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16597         peepholes): Delete.
16598         * config/arm/ldmstm.md: New file.
16599         * config/arm/arm-ldmstm.ml: New file.
16600
16601         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16602         if statement which adds extra costs to frame-related expressions.
16603
16604 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16605
16606         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16607
16608 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16609
16610         PR target/45142
16611         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16612         alternative 2.
16613         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16614         split V4SI operands.
16615
16616 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16617
16618         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16619         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16620         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16621         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16622
16623 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16624
16625         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16626         LOCAL_INCLUDE_DIR.
16627
16628 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16629
16630         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16631         used in the call to optab_for_tree_code.  Fix the second
16632         is_widening_mult_p call.  Check that both unwidened operands
16633         have the same sign.
16634
16635 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16636
16637         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16638
16639 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16640
16641         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16642
16643 2010-07-30  DJ Delorie  <dj@redhat.com>
16644
16645         * config/rx/predicates.md (rx_constshift_operand): New.
16646         * config/rx/rx.md (zs_cond): New.
16647         (cbranchsi4): Remove mode.
16648         (*cbranchsi4_<code>): Likewise.
16649         (*tstbranchsi4_<code>): New.
16650         (*tstbranchsi4r_<code>): New.
16651         (*tstbranchsi4m_eq): New.
16652         (*tstbranchsi4m_ne): New.
16653         (cbranchsf4): Remove mode.
16654         (*cbranchsf4_<code>): Likewise.
16655
16656 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16657
16658         * rtlanal.c (simplify_subreg_regno): Don't treat
16659         HARD_FRAME_POINTER_REGNUM specially.
16660
16661 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16662
16663         * common.opt (-G): Don't define option here.
16664         * config/g.opt: New.
16665         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16666         rs6000/powerpc and score targets.
16667         * opts.c (common_handle_option): Don't handle -G here.
16668         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16669         * config/frv/frv.c (frv_handle_option): Handle -G.
16670         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16671         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16672         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16673         * config/mips/mips.c (mips_handle_option): Handle -G.
16674         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16675         * config/score/score.c (score_handle_option): Handle -G.
16676
16677 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16678
16679         * config/mmix/mmix.c: Include basic-block.h.
16680
16681 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16682
16683         PR debug/45055
16684         PR rtl-optimization/45137
16685         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16686         prototypes.
16687         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16688         New functions.
16689         * combine.c (next_nonnote_nondebug_insn): Removed.
16690         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16691         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16692         * sched-deps.c (sched_analyze_insn): Likewise.
16693         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16694         * rtlanal.c (canonicalize_condition): Likewise.
16695         * postreload.c (reload_combine_recognize_pattern): Likewise.
16696         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16697
16698 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16699
16700         * config/i386/i386.md (int_cond): Remove code iterator.
16701         (fp_cond): Ditto.
16702         (cbranch<mode>4): Use ordered_comparison_operator predicate
16703         for operator0.
16704         (cstore<mode>4): Ditto for operator1.
16705         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16706         (add<mode>cc): ditto.
16707
16708 2010-07-30  Richard Guenther  <rguenther@suse.de>
16709
16710         PR middle-end/45141
16711         * expr.c (expand_expr_real_1): Check for not handled base address.
16712
16713 2010-07-30  Richard Guenther  <rguenther@suse.de>
16714
16715         * ipa-prop.c (ipa_modify_formal_parameters): Use
16716         build_distinct_type_copy.
16717
16718 2010-07-30  Anthony Green  <green@moxielogic.com>
16719
16720         * config/moxie/rtems.h: New file.
16721         * config.gcc: Add moxie-rtems support.
16722
16723 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16724
16725         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16726         df flags as in run_fast_df_dce.
16727
16728 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16729
16730         Revert:
16731         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16732
16733         * rtl.def (NOTE): Swap operands 4 and 5.
16734         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16735         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16736         Adjust accordingly.
16737         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16738
16739 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16740
16741         PR debug/45110
16742         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16743         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16744         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16745         formal parameters.
16746         (gen_decl_die): Change return type to dw_die_ref, return what
16747         gen_formal_parameter_die returned.
16748
16749 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16750
16751         * dbgcnt.def (eipa_sra): New counter.
16752         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16753
16754 2010-07-29  Xinliang David Li  <davidxl@google.com>
16755
16756         PR bootstrap/45119
16757         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16758         in revision 162652.
16759
16760 2010-07-29  Richard Guenther  <rguenther@suse.de>
16761
16762         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16763         (TV_TREE_STORE_CCP): Likewise.
16764         (TV_TREE_REDPHI): Likewise.
16765
16766 2010-07-29  Richard Guenther  <rguenther@suse.de>
16767
16768         * double-int.h (double_int_and_not): New function.
16769         * combine.c (try_combine): Use it.
16770         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16771
16772 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16773
16774         PR rtl-optimization/42575
16775         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16776         Argument AU removed.  All callers changed.  Ignore artificial refs.
16777         Use return value of df_word_lr_simulate_defs to decide whether an insn
16778         is necessary.
16779         (fast_dce): Rename arg to WORD_LEVEL.
16780         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16781         static.
16782         (pass_fast_rtl_byte_dce): Delete.
16783         * dce.h (run_word_dce): Declare.
16784         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16785         All callers changed.  Simplify code to only deal with two-word regs.
16786         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16787         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16788         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16789         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16790         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16791         (df_word_lr_mark_ref): Declare.
16792         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16793         df_word_lr_simulate_uses): Declare or rename from byte variants.
16794         (df_byte_lr_simulate_artificial_refs_at_top,
16795         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16796         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16797         declarations.
16798         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16799         (enum df_mm): Delete.
16800         * df-byte-scan.c: Delete file.
16801         * df-problems.c (df_word_lr_problem_data): Renamed from
16802         df_byte_lr_problem_data, all members deleted except for
16803         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16804         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16805         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16806         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16807         df_byte_lr_confluence_0): Delete functions.
16808         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16809         callers changed.
16810         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16811         Don't initialize members that were deleted, don't try to discover data
16812         about registers.  Ignore hard regs.
16813         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16814         (df_word_lr_mark_ref): New function.
16815         (df_word_lr_bb_local_compute): Renamed from
16816         df_byte_bb_lr_local_compute; all callers changed.  Use
16817         df_word_lr_mark_ref.  Assert that artificial refs don't include
16818         pseudos.  Ignore hard registers.
16819         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16820         Assert that exit block uses don't contain pseudos.
16821         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16822         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16823         callers changed.  Ignore hard regs.
16824         (df_word_lr_transfer_function): Renamed from
16825         df_byte_lr_transfer_function; all callers changed.
16826         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16827         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16828         changed.
16829         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16830         callers changed.
16831         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16832         confluence operator 0 set to NULL.
16833         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16834         callers changed.
16835         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16836         Return bool, true if bitmap changed or insn otherwise necessary.
16837         All callers changed.  Simplify using df_word_lr_mark_ref.
16838         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16839         all callers changed.  Simplify using df_word_lr_mark_ref.
16840         * lower-subreg.c: Include "dce.h"
16841         (decompose_multiword_subregs): Call run_word_dce if df available.
16842         * Makefile.in (lower-subreg.o): Adjust dependencies.
16843         (df-byte-scan.o): Delete.
16844         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16845
16846 2010-07-29  Richard Guenther  <rguenther@suse.de>
16847
16848         * tree.c (build_vector): Assert that the vector constant
16849         has enough elements.
16850         (build_vector_from_ctor): Pad with trailing zeros.
16851
16852 2010-07-29  Richard Guenther  <rguenther@suse.de>
16853
16854         PR tree-optimization/45120
16855         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16856         Handle offset in DEREFs properly.
16857         (get_constraint_for_1): Handle MEM_REF offset properly.
16858
16859 2010-07-29  Richard Guenther  <rguenther@suse.de>
16860
16861         PR middle-end/45034
16862         * convert.c (convert_to_integer): Always use an unsigned
16863         type for narrowed negate and bitwise not.
16864
16865 2010-07-29  Ira Rosen  <irar@il.ibm.com>
16866
16867         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
16868         to outer loop when creating reduction epilogue for double reduction,
16869         and switch back to the inner loop when updating the phi nodes.
16870         Update uses of outer loop exit phi nodes in double reduction (instead
16871         of uses of reduction).
16872
16873 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
16874
16875         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
16876         popcount on power7 and parity on power6 systems.
16877         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
16878         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
16879         instructions.
16880
16881         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
16882         (UNSPEC_PARITY): Ditto.
16883         (SFDF): New iterator for SF/DF.
16884         (rreg2): New mode attribute for floating register constraint.
16885         (TARGET_FLOAT): New mode attribute for whether single/double float
16886         is supported.
16887         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
16888         pattern.
16889         (parity<mode>2_cmpb): New insn for parity on power6 and newer
16890         machines.
16891         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
16892         pattern.  Add support for fcpsgn instruction added in power6.
16893         (copysignsf3): Delete.
16894         (copysigndf3): Delete.
16895         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
16896         instead of if_then_else in RTL to avoid problems with -0.
16897
16898         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
16899         of if_then_else to mirror scalar code.
16900         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
16901         rs6000.md.
16902
16903         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
16904         instead of if_then_else.
16905
16906 2010-07-28  Xinliang David Li  <davidxl@google.com>
16907
16908         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
16909         (dump_cand): Dump var_before/after.
16910         (htab_inv_expr_eq): New function.
16911         (htab_inv_expr_hash): New function.
16912         (tree_ssa_iv_optimize_init): Support pseudo invariants.
16913         (add_candidate_1): consider base type precision.
16914         (set_use_iv_cost): New parameter.
16915         (adjust_setup_cost): Use profile information.
16916         (get_address_cost): Do not hard code width in computing address
16917         offset limits.
16918         (compare_aff_trees): New function.
16919         (get_loop_invariant_expr_id): New function.
16920         (get_computation_cost_at): New parameter and use profile information.
16921         (get_computation_cost): New parameter.
16922         (determine_use_iv_cost_generic): Pass new parameter.
16923         (determine_use_iv_cost_address): Ditto.
16924         (determine_use_iv_cost_condition): Ditto.
16925         (autoinc_possible_for_pair): Ditto.
16926         (determine_use_iv_costs): More dumps.
16927         (iv_ca_get_num_inv_exprs): New function.
16928         (iv_ca_recount_cost): Consider loop invariants in register pressure
16929         cost.
16930         (iv_ca_add_use): New parameter.
16931         (iv_ca_dump): Better dumping.
16932         (iv_ca_extend): New parameter.
16933         (try_add_cand_for): Attempt to get better partial solution.
16934         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
16935         (create_new-ivs): More dumps.
16936         (rewrite_use_compare): Ditto.
16937         (free_loop_data): More cleanup.
16938         (treee_ssa_iv_optimize_finalize): Ditto.
16939
16940 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
16941
16942         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
16943         * config/i386/i386.c (ix86_profile_before_prologue): New.
16944         (override_options): Add special handling for -mfentry.
16945         (ix86_function_regparm): Likewise.
16946         (ix86_function_sseregparm): Likewise.
16947         (ix86_frame_pointer_required): Likewise.
16948         (ix86_expand_prologue): Check for ms_hook_prologue.
16949         (x86_function_profiler): Adjust mcount output.
16950         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
16951         * config/i386/i386.opt (mfentry): New.
16952         * doc/invoke.texi (mfentry): Add documentation.
16953         * doc/tm.texi: Regenerated..
16954         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
16955         * final.c (final_start_function): Replace macro
16956         PROFILE_BEFORE_PROLOGUE by target hook.
16957         * function.c (thread_prologue_and_epilogue_insns): Likewise.
16958         * target.def (profile_before_prologue): New hook.
16959         * targhooks.c (default_profile_before_prologue): New.
16960         * targhooks.h (default_profile_before_prologue): New.
16961
16962 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
16963
16964         PR debug/45105
16965         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
16966
16967         PR debug/45103
16968         * dwarf2out.c (dwarf2out_var_location): Always consider
16969         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
16970
16971 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
16972
16973         PR rtl-optimization/45107
16974         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
16975
16976 2010-07-28  Richard Guenther  <rguenther@suse.de>
16977
16978         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
16979         (set_lattice_value): Do not query an old default value.
16980         (get_value_for_expr): New function.  Properly canonicalize
16981         float values.
16982         (ccp_visit_phi_node): Use it.
16983
16984 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
16985
16986         * config/arm/arm.c (arm_pcs_default): Remove static.
16987         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
16988         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
16989         (arm_pcs_default): Declare.
16990
16991 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
16992
16993         * config/rs6000/rs6000.c (rs6000_override_options):
16994         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
16995         ... to darwin_rs6000_override_options.
16996         (rs6000_return_in_memory): Update preceding comment for darwin
16997         64 bit ABI.  Use TARGET_MACHO inline.
16998         (rs6000_darwin64_struct_check_p): New.
16999         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17000         (function_arg): Likewise.
17001         (rs6000_arg_partial_bytes): Likewise.
17002         (rs6000_function_value): Likewise.
17003
17004 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17005
17006         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17007
17008 2010-07-28  Richard Guenther  <rguenther@suse.de>
17009
17010         PR middle-end/44903
17011         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17012         targets try harder to not generate unaligned accesses.
17013
17014 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17015
17016         PR rtl-optimization/45101
17017         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17018         for gcse-las.
17019
17020 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17021
17022         PR tree-optimization/44885
17023         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17024         with non-aliased component.
17025
17026 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17027
17028         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17029         WORD_SWITCH_TAKES_ARG): Remove.
17030         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17031         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17032         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17033         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17034         definitions from gcc.c.
17035         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17036         defaults.h.
17037         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17038         Move to defaults.h.
17039         * opts-common.c: Include tm.h.
17040         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17041         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17042         Handle more than one argument.  Set canonical_option_num_elements.
17043         (decode_cmdline_options_to_array): Set
17044         canonical_option_num_elements and trailing elements of
17045         canonical_option.
17046         * opts.h (struct cl_decoded_option): Allow four elements in
17047         canonical_option.  Add field canonical_option_num_elements.
17048         * Makefile.in (opts-common.o): Update dependencies.
17049
17050 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17051
17052         PR middle-end/44790
17053         PR middle-end/44993
17054         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17055         sure the base has address_mode before adding the offset.
17056
17057 2010-07-27  Xinliang David Li  <davidxl@google.com>
17058
17059         * tree-flow.h (create_mem_ref): Add one new parameter.
17060         * tree-ssa-address.c (create_mem_ref): New parameter.
17061         (addr_to_parts): Ditto.
17062         (move_variant_to_index): New function.
17063         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17064
17065 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17066
17067         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17068         4 and 5.
17069         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17070         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17071         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17072         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17073         CODE_LABELs and NOTEs.
17074         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17075         * combine.c (try_combine): Likewise.
17076         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17077         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17078
17079 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17080
17081         * coretypes.h (struct cl_option_handlers): Declare.
17082         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17083         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17084         * langhooks-def.h (lhd_handle_option): Declare.
17085         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17086         * langhooks.c (lhd_handle_option): New.
17087         * langhooks.h (struct lang_hooks): Update prototype and return
17088         value type of handle_option hook.
17089         * optc-gen.awk: Generate target_flags_explicit definition for the
17090         driver.
17091         * opts-common.c: Include diagnostic.h.
17092         (handle_option): Move from opts.c.  Update prototype and return
17093         value type.  Use handlers structure.
17094         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17095         handlers structure.
17096         (set_option): Move from opts.c.
17097         * opts.c (common_handle_option): Update prototype and return value
17098         type.  Update calls to handle_option and enable_warning_as_error.
17099         (unknown_option_callback, post_handling_callback,
17100         lang_handle_option, target_handle_option): New.
17101         (handle_option, read_cmdline_option): Move to opts-common.c.
17102         (read_cmdline_options): Update prototype.  Update call to
17103         read_cmdline_option.
17104         (decode_options): Initialize and use handlers structure.
17105         (set_option): Move to opts-common.c.
17106         (enable_warning_as_error): Update prototype.  Update call to
17107         handle_option.
17108         * opts.h (struct cl_option_handler_func, struct
17109         cl_option_handlers): New.
17110         (handle_option, enable_warning_as_error): Update prototypes.
17111         (read_cmdline_option): Declare.
17112         * Makefile.in (opts-common.o): Update dependencies.
17113
17114 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17115
17116         * config/arm/arm.c (params.h): Include.
17117         (arm_override_options): Tune gcse-unrestricted-cost.
17118         * config/arm/t-arm (arm.o): Define dependencies.
17119
17120 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17121
17122         PR target/42495
17123         PR middle-end/42574
17124         * basic-block.h (get_dominated_to_depth): Declare.
17125         * dominance.c (get_dominated_to_depth): New function, use
17126         get_all_dominated_blocks as a base.
17127         (get_all_dominated_blocks): Use get_dominated_to_depth.
17128
17129         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17130         (hoist_exprs): Remove.
17131         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17132         (compute_code_hoist_vbeinout): Add debug print outs.
17133         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17134
17135         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17136         quadratic behavior.
17137         * params.h (MAX_HOIST_DEPTH): New macro.
17138         * doc/invoke.texi (max-hoist-depth): Document.
17139
17140 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17141
17142         PR rtl-optimization/40956
17143         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17144         constants.
17145
17146 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17147
17148         PR target/42495
17149         PR middle-end/42574
17150         * config/arm/arm.c (legitimize_pic_address): Use
17151         gen_calculate_pic_address pattern to emit calculation of PIC address.
17152         (will_be_in_index_register): New function.
17153         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17154         (thumb1_legitimate_address_p): Use it provided !strict_p.
17155         * config/arm/arm.md (calculate_pic_address): New expand and split.
17156
17157 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17158
17159         PR target/42495
17160         PR middle-end/42574
17161         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17162         * config/arm/arm.md (define_split "J", define_split "K"): Make
17163         IRA/reload friendly.
17164
17165 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17166
17167         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17168         unused checks.
17169         (pre_edge_insert, hoist_code): Update.
17170
17171 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17172
17173         PR target/42495
17174         PR middle-end/42574
17175         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17176
17177 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17178
17179         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17180
17181 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17182
17183         PR rtl-optimization/40956
17184         PR target/42495
17185         PR middle-end/42574
17186         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17187         for hoisting.
17188         (hoist_code): Count occurences in current block too.
17189
17190 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17191
17192         * gcse.c (struct expr:max_distance): New field.
17193         (doing_code_hoisting_p): New static variable.
17194         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17195         simple expressions, don't change behavior for PRE.  Set max_distance.
17196         (insert_expr_in_table): Set new max_distance field.
17197         (hash_scan_set): Update.
17198         (hoist_expr_reaches_here_p): Stop search after max_distance
17199         instructions.
17200         (find_occr_in_bb): New static function.  Use it in ...
17201         (hoist_code): Calculate sizes of basic block before any changes are
17202         done.  Pass max_distance to hoist_expr_reaches_here_p.
17203         (one_code_hoisting_pass): Set doing_code_hoisting_p.
17204
17205         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
17206         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
17207         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
17208         macros.
17209         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
17210         Document.
17211
17212 2010-07-27  Jeff Law  <law@redhat.com>
17213             Maxim Kuvyrkov  <maxim@codesourcery.com>
17214
17215         * gcse.c (compute_transpout, transpout): Remove, move logic
17216         to prune_expressions.
17217         (compute_pre_data): Move pruning of trapping expressions ...
17218         (prune_expressions): ... here.  New static function.
17219         (compute_code_hoist_data): Use it.
17220         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
17221
17222 2010-07-27  Xinliang David Li  <davidxl@google.com>
17223
17224         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
17225         (rewrite_use_address): Adjust iv update position when needed.
17226
17227 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17228
17229         * dbgcnt.def (hoist_insn): New debug counter.
17230         * gcse.c (hoist_code): Use it.
17231
17232 2010-07-27  Xinliang David Li  <davidxl@google.com>
17233
17234         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
17235         (niter_for_single_dom_exit): Passes additional parameter.
17236         (iv_period): Fix comments.
17237         (may_eliminate_iv): Handles multiple exit loops properly.
17238         (free_tree_niter_desc): New function.
17239         (free_loop_data): Frees up loop iteration descriptors.
17240
17241 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17242
17243         PR target/44542
17244         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
17245         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
17246         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
17247         (expand_one_var): Don't consider DECL_ALIGN for variables for
17248         which expand_one_stack_var_at has been already called.
17249
17250         PR testsuite/44701
17251         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
17252         constraints on IA-64.
17253
17254 2010-07-27  Jie Zhang  <jie@codesourcery.com>
17255
17256         PR target/44290
17257         Revert:
17258         2010-07-23  Jie Zhang  <jie@codesourcery.com>
17259
17260         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17261         false if ! tree_versionable_function_p.
17262
17263 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17264
17265         * dwarf2out.c (add_data_member_location_attribute): Use
17266         add_AT_unsigned instead of add_AT_int if offset is non-negative.
17267
17268 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17269
17270         * postreload.c (try_replace_in_use): New static function.
17271         (reload_combine_recognize_const_pattern): Use it here.  Allow
17272         substituting into a final add insn, and substituting into a memory
17273         reference in an insn that sets the reg.
17274
17275 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17276
17277         * common.opt (o): Add MissingArgError.
17278         * doc/options.texi (MissingArgError): Document.
17279         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
17280         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
17281         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
17282         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
17283         * langhooks.h (struct lang_hooks): Remove missing_argument.
17284         * optc-gen.awk: Handle MissingArgError and output new structure
17285         field initializers.
17286         * opts.c (read_cmdline_option): Use missing_argument_error field
17287         instead of missing_argument langhook.
17288         * opts.h (struct cl_option): Add missing_argument_error field.
17289         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
17290
17291 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17292
17293         PR target/29090
17294         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
17295         Darwin64 ABI, for zero-sized objects.
17296
17297 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17298
17299         PR target/35491
17300         PR target/29090
17301
17302         Merge from Apple local 4.2.1.
17303         2005-05-11  Stan Shebs  <shebs@apple.com>
17304         Fix 64-bit varargs for Darwin (Radar 4028089).
17305         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
17306         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
17307         Add argument, add case for 8-byte register half-filled with a float.
17308         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
17309         single-precision floats specially.
17310
17311 2010-07-27  Ira Rosen  <irar@il.ibm.com>
17312
17313         PR tree-optimization/44152
17314         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
17315         complex numbers for further check.
17316         (vect_supported_load_permutation_p): Check nodes with
17317         complex numbers.
17318
17319 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17320
17321         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
17322         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
17323         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
17324         (LANG_HOOKS_INITIALIZER): Add new hooks.
17325         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
17326         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
17327         and complain_wrong_lang_p.  Update init_options prototype.
17328         * c-objc-common.c (c_initialize_diagnostics): First call
17329         c_common_initialize_diagnostics.
17330         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
17331         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
17332         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
17333         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
17334         (hook_uint_void_0): New.
17335         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
17336         (hook_uint_void_0): New.
17337         * opts-common.c (decode_cmdline_option,
17338         decode_cmdline_options_to_array): Also fill in canonical_option field.
17339         * opts.c (complain_wrong_lang): Use langhook to determine whether
17340         to complain instead of special-casing LTO.
17341         (decode_options): Separate lang_mask determination with
17342         option_lang_mask hook from call of init_options hook.
17343         * opts.h (struct cl_decoded_option): Add canonical_option.
17344
17345 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17346
17347         PR tree-optimization/45083
17348         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
17349
17350 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17351
17352         * postreload.c (reload_combine_recognize_const_pattern): Move test
17353         for limiting the insn movement to the right scope.
17354
17355         PR rtl-optimization/45051
17356         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
17357         than reg_mentioned_p.
17358
17359 2010-07-26  Richard Henderson  <rth@redhat.com>
17360
17361         PR target/44132
17362         * tree-emutls.c: New file.
17363         * Makefile.in (OBJS-common): Add it.
17364         * tree-pass.h (pass_ipa_lower_emutls): Declare.
17365         * passes.c (init_optimization_passes): Add it.
17366
17367         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17368         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17369         * expr.c (emutls_var_address): Delete.
17370         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17371         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17372         (emutls_finish): Delete.
17373         * toplev.c (compile_file): Don't call it.
17374         * tree.h (emutls_decl): Delete.
17375         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17376         (emutls_finish, emutls_finalize_control_var): Delete.
17377         (emutls_object_type): Move to tree-emutls.c.
17378         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17379         default_emutls_var_fields, get_emutls_object_type,
17380         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17381         default_emutls_var_init): Likewise.
17382         (get_variable_section): Don't special case emutls.
17383         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17384         default_elf_select_section, default_unique_section,
17385         default_encode_section_info): Likewise.
17386         * varpool.c (decide_is_variable_needed): Likewise.
17387         * gimple-iterator.c (update_call_edge_frequencies): New
17388         (gsi_insert_on_edge_immediate): Use it.
17389         (gsi_insert_seq_on_edge_immediate): Likewise.
17390         (gsi_commit_one_edge_insert): Likewise.
17391
17392         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17393         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17394         (x86_64_elf_unique_section): Likewise.
17395
17396 2010-07-26  Jan Hubicka  <jh@suse.cz>
17397
17398         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17399         GTY((skip)).
17400
17401 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17402
17403         * target.def (output_source_filename): New hook.
17404         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17405         * doc/tm.texi: Regenerate.
17406         * toplev.c (output_file_directive) Remove function.
17407         * toplev.h (output_file_directive) Remove.
17408         * output.h (default_asm_output_source_filename,
17409         output_file_directive): Declare.
17410         * varasm.h (default_asm_output_source_filename,
17411         output_file_directive): New functions.
17412
17413         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17414         * config/mips/mips-protos.h (mips_output_filename): Remove.
17415         * config/mips/mips.c (mips_output_filename): Make Static.
17416         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17417
17418 2010-07-26  Richard Guenther  <rguenther@suse.de>
17419
17420         PR tree-optimization/43784
17421         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17422         if the destination is used by the call.
17423
17424 2010-07-26  Richard Guenther  <rguenther@suse.de>
17425
17426         PR middle-end/45073
17427         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17428         SSA updating on being in SSA form.
17429
17430 2010-07-26  Richard Guenther  <rguenther@suse.de>
17431
17432         PR middle-end/45056
17433         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17434
17435 2010-07-26  Richard Guenther  <rguenther@suse.de>
17436
17437         PR tree-optimization/45071
17438         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17439         adjust op->opcode.
17440
17441 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17442
17443         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17444         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17445         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17446         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17447         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17448         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17449         save_r31, return_r31, save_interrupt, return_interrupt,
17450         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17451         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17452         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17453         new ABI requirements.
17454         (save_r6_r9, L_callt_save_r6_r9): Remove.
17455         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17456         const_float_1_operand const_float_0_operand): New Predicates.
17457         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17458         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17459         * config/v850/t-v850: Update multilibs for new target variants.
17460         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17461         * config/v850/t-v850e: Likewise.
17462         * config/v850/v850.c (v850_issue_rate): New.
17463         (v850_strict_argument_naming): New.
17464         (function_arg): Modify to generate a different ABI.
17465         (print_operand): Update case 'z' to support float modes.
17466         (output_move_single): Modify to generate appropriate and better
17467         assembly.
17468         (v850_float_z_comparison_operator, v850_select_cc_mode,
17469         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17470         v850_gen_compare): New functions to support comparison of float values.
17471         (ep_memory_offset): Add support for V850E2 targets.
17472         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17473         (INTERRUPT_REGPARM_NUM): Remove.
17474         (compute_register_save_size): Add extra case to save/restore long call.
17475         (use_prolog_function): New function to support prologue.
17476         (expand_prologue): Add support for V850E2 targets and modified
17477         as per the current ABI requirements.
17478         (expand_epilogue): Likewise.
17479         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17480         (construct_save_jarl): Likewise.
17481         (construct_dispose_instruction): Update as per the current ABI
17482         requirements.
17483         (construct_prepare_instruction): Likewise.
17484         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17485         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17486         (CPP_SPEC): Updated to support v850e2 targets.
17487         (STRICT_ALIGNMENT): Modified.
17488         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17489         (FIXED_REGISTERS): Likewise.
17490         (CALL_USED_REGISTERS): Likewise.
17491         (CONDITIONAL_REGISTER_USAGE): Updated.
17492         (HARD_REGNO_MODE_OK): Updated.
17493         (reg_class): Updated to add even registers.
17494         (REG_CLASS_NAMES): Likewise.
17495         (REG_CLASS_CONTENTS): Likewise.
17496         (REGNO_REG_CLASS): Updated for CC registers.
17497         (REG_CLASS_FROM_LETTER): Added support for even registers.
17498         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17499         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17500         ARG_POINTER_REGNUM): Updated.
17501         (FUNCTION_ARG_ADVANCE): Define.
17502         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17503         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17504         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17505         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17506         (SELECT_CC_MODE): Define.
17507         (REGISTER_NAMES): Updated to add psw and fcc registers.
17508         (ADDITIONAL_REGISTER_NAMES): Updated.
17509         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17510         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17511         * config/v850/v850.md (define_constants): Define new constants.
17512         (type): Update store,bit1,macc,div,fpu and single attributes.
17513         (cpu): New attribute.
17514         (cc): Add set_z attribute.
17515         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17516         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17517         23word_store): New instructions for 23-bit displacement load and store.
17518         (movqi_internal, movhi_internal): Update the attributes.
17519         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17520         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17521         the attributes.
17522         (v850_tst1): Modified using CC_REGNUM.
17523         (tstsi): Remove.
17524         (cmpsi): Modified as define_expand from define_insn.
17525         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17526         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17527         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17528         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17529         one_cmplsi2): Clobber the CC_REGNUM register.
17530         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17531         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17532         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17533         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17534         v850e2v3 target.
17535         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17536         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17537         targets.
17538         (sasf_1, sasf_2): Remove.
17539         (sasf): New instruction.
17540         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17541         targets. CC_REGNUM register is clobbered and attributes are
17542         updated.
17543         (branch_z_normal, branch_z_invert, branch_nz_normal,
17544         branch_nz_invert): New branch related instructions.
17545         (jump): Updated the attributes.
17546         (switch): Update to support new targets. CC_REGNUM register is
17547         clobbered and attributes are updated.
17548         (call_internal_short, call_internal_long, call_value_internal_short,
17549         call_value_internal_long): Updated the attributes.
17550         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17551         clobbered and attributes are updated.
17552         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17553         Update to support new targets. CC_REGNUM register is clobbered.
17554         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17555         instructions.
17556         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17557         are updated.
17558         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17559         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17560         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17561         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17562         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17563         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17564         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17565         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17566         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17567         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17568         point instructions defined for V850e2v3 target.
17569         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17570         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17571         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17572         support for new targets.
17573         * config/v850/v850-modes.def: New file.
17574         * config/v850/v850.opt(mstrict-align): Remove.
17575         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17576         mv850e2v3): New command line options for V850.
17577         * config.gcc: Update the newly added files.
17578         * doc/invoke.texi: Update the newly added command line options for
17579         V850 target.
17580
17581 2010-07-26  Richard Guenther  <rguenther@suse.de>
17582
17583         PR tree-optimization/45052
17584         * ipa-pure-const.c (check_stmt): Check volatileness.
17585
17586 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17587
17588         PR target/44707
17589         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17590         * config/sparc/sparc.c: Include reload.h.
17591         (legitimize_tls_address): Rename into...
17592         (sparc_legitimize_tls_address): ...this.
17593         (legitimize_pic_address): Rename into...
17594         (sparc_legitimize_pic_address): ...this.
17595         (sparc_expand_move): Adjust to above renaming.
17596         (sparc_tls_referenced_p): Likewise.
17597         (sparc_legitimize_tls_address): Likewise.
17598         (sparc_legitimize_pic_address): Likewise.
17599         (sparc_legitimize_address): Likewise.
17600         (sparc_output_mi_thunk): Likewise.
17601         (sparc_legitimize_reload_address): New global function.  Recognize
17602         (lo_sum (high ...) ...) patterns generated by earlier passes.
17603         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17604
17605 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17606
17607         PR target/44484
17608         * config/sparc/predicates.md (memory_reg_operand): Delete.
17609         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17610         (*sync_compare_and_swap): Encode the address form in the pattern.
17611         (*sync_compare_and_swapdi_v8plus): Likewise.
17612
17613 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17614
17615         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17616         Streamline paragraph on compatibility with the system compiler.
17617
17618 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17619
17620         PR middle-end/45035
17621         * alias.c (true_dependence_1): Fix thinko in merge of old
17622         true_dependence and canon_true_dependence.
17623
17624 2010-07-23  Jan Hubicka  <jh@suse.cz>
17625
17626         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17627         references.
17628
17629 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17630
17631         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17632         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17633         and an unnecessary assignment.
17634         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17635         self-assign warning.
17636         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17637         unnecessary self-init.
17638
17639 2010-07-23  Richard Guenther  <rguenther@suse.de>
17640
17641         PR lto/43071
17642         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17643         for -flto and -fwhopr.
17644
17645 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17646
17647         PR target/41943
17648         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17649         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17650         * config.gcc (user_headers_inc_next_pre): New.
17651         (user_headers_inc_next_post): Likewise.
17652         (*-w64-mingw*): Use for float.h post-fixing, and for
17653         stddef.h/stdarg.h pre-fixing by include_next.
17654         * configure.ac (user_headers_inc_next_post): New.
17655         (user_headers_inc_next_pre): New.
17656         * configure: Regenerated.
17657
17658 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17659
17660         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17661         Set tga_func for Solaris 2/x86 resp. SPARC.
17662         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17663         (LIB_THREAD_LDFLAGS_SPEC): Define.
17664         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17665         * configure: Regenerate.
17666         * config.in: Regenerate.
17667         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17668         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17669         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17670         alternate thread libraries on Solaris 8.
17671         Document TLS patch requirements.
17672         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17673         Document tls.
17674
17675         PR target/18788
17676         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17677         -shared.
17678
17679 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17680
17681         * tree.h (struct tree_base): Add nameless_flag bitfield.
17682         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17683         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17684         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17685         DECL_ARTIFICIAL where needed.
17686         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17687         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17688         has DECL_NAMELESS set.
17689
17690 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17691
17692         PR tree-optimization/44915
17693         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17694         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17695         (analyze_function): Likewise.
17696
17697 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17698
17699         PR tree-optimization/44914
17700         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17701         changed, add purging dead eh edges.
17702         (ipa_sra_modify_function_body): Return true if CFG was changed,
17703         simplify purging dead eh edges.
17704         (modify_function): Return true if CFG was changed.
17705         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17706         was changed.
17707         (ipa_early_sra): Likewise.
17708
17709 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17710
17711         PR target/44290
17712         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17713         if "naked".
17714         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17715         false if ! tree_versionable_function_p.
17716
17717 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17718
17719         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17720         * ipa-pure-const.c (special_builtlin_state): Remove
17721         BUILT_IN_ARGS_INFO case.
17722         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17723         * builtins.c (expand_builtin): Likewise.
17724         (expand_builtin_args_info): Remove.
17725         * doc/tm.texi (__builtin_args_info): Remove.
17726         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17727         * doc/tm.text.in: Likewise.
17728
17729 2010-07-23  Richard Guenther  <rguenther@suse.de>
17730
17731         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17732         (lto_symtab_merge_decls_2): Likewise.
17733         * tree-ssa.c (useless_type_conversion_p): Likewise.
17734         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17735         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17736         (struct type_pair_d): Make same_p an array indexed by mode.
17737         Update comment.
17738         (lookup_type_pair): Update initialization.
17739         (struct sccs): Adjust same_p type.
17740         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17741         Adjust.
17742         (print_gimple_types_stats): Likewise.
17743         * gimple.h (enum gtc_mode): New.
17744         (gimple_types_compatible_p): Adjust prototype.
17745
17746 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17747
17748         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17749         again after processing insn.
17750
17751 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17752
17753         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17754         proper words when !tree_versionable_function_p.
17755
17756 2010-07-23  Richard Guenther  <rguenther@suse.de>
17757
17758         PR tree-optimization/45037
17759         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17760
17761 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17762
17763         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17764         Add MCORE instead.
17765
17766 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17767
17768         PR lto/44992
17769         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17770         lto_get_section_name.
17771         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17772         * lto-streamer-out.c (produce_asm): Likewise.
17773         (copy_function): Likewise.
17774         (produce_symtab): Likewise.
17775         (produce_asm_for_decls): Likewise.
17776         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17777         Rewrite to add random postfix to LTO sections.
17778         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17779         (lto_get_section_name): Add file_data argument to prototype.
17780
17781 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17782
17783         * lto-section-in.c (lto_section_name): Synchronize names
17784         with lto_get_section_name.
17785
17786 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17787
17788         * lto-opts.c (lto_read_file_options): Check for missing section.
17789
17790 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17791
17792         * ira.c (check_allocation): Correctly handle the case where an allocno
17793         with two objects was allocated to a single reg.
17794
17795 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17796
17797         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17798         (is_widening_mult_p): Likewise.
17799         (convert_to_widen): Use them.
17800         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17801         well as integer ones.
17802
17803 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17804
17805         * alias.c (true_dependence_1): New function, merged version of
17806         true_dependence and canon_true_dependence.
17807         (true_dependence): Simplify.
17808         (canon_true_dependence): Simplify.
17809
17810 2010-07-22  Richard Henderson  <rth@redhat.com>
17811
17812         PR target/45027
17813         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17814         of V4SFmode for the SSE saves; increase stack alignment if needed.
17815         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17816
17817 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17818
17819         PR bootstrap/45028
17820         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17821         call cprop_find_used_regs again via note_uses.
17822
17823 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17824
17825         * alias.c (get_alias_set): Fix formatting issues.
17826
17827 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17828
17829         PR middle-end/44878
17830         * stmt.c (expand_value_return):  Call promote_function_mode with
17831         a for_return argument of 2 when returning by reference.
17832
17833 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17834
17835         PR debug/45024
17836         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17837         unit DIE if we can find the scope DIE.
17838
17839 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17840
17841         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17842         changed.  Initialize OBJECT_SUBWORD.
17843         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17844         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17845         all callers changed.
17846         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
17847         (finish_allocno): Likewise.
17848         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
17849         (remove_low_level_allocnos): Likewise.
17850         (update_bad_spill_attribute): Likewise.
17851         (setup_min_max_allocno_live_range_point): Likewise.
17852         (sort_conflict_id_map): Likewise.
17853         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
17854         (ior_hard_reg_conflicts): New function.
17855         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
17856         (compress_conflict_vecs): Iterate over objects, not allocnos.
17857         (ira_add_live_range_to_object): New function.
17858         (object_range_compare_func): Renamed from allocno_range_compare_func.
17859         All callers changed.
17860         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
17861         subobjects, widen the min/max range of the lowest-order object to
17862         potentially include all other such low-order objects.
17863         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
17864         (check_allocation): Likewise.  Use more fine-grained tests for register
17865         conflicts.
17866         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
17867         allocno subobjects.
17868         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
17869         choices about which bits to set in each set.  Don't use
17870         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
17871         using the multiple sets we computed.
17872         (push_allocno_to_stack): Iterate over allocno subobjects.
17873         (all_conflicting_hard_regs_coalesced): New static function.
17874         (setup_allocno_available_regs_num): Use it.
17875         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
17876         subobjects.
17877         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
17878         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
17879         by ALLOCNO_NUM_OBJECTS.
17880         (calculate_spill_cost): Likewise.
17881         (color_pass): Express if statement in a more normal way.
17882         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
17883         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
17884         (setup_slot_coalesced_allocno_live_ranges): Likewise.
17885         (allocno_reload_assign): Likewise.
17886         (ira_reassign_pseudos): Likewise.
17887         (fast_allocation): Likewise.
17888         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17889         (print_allocno_conflicts): Likewise.
17890         (ira_build_conflicts): Likewise.
17891         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
17892         callers changed.  Test subword 0 of each allocno for conflicts.
17893         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
17894         callers changed.  Iterate over allocno subobjects.
17895         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
17896         * ira-int.h (struct ira_allocno): New member: num_objects.
17897         Rename object to objects and change it into an array.
17898         (ALLOCNO_OBJECT): Add new argument N.
17899         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
17900         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
17901         (ior_hard_reg_conflicts): Declare.
17902         (ira_add_live_range_to_object): Declare.
17903         (ira_allocno_object_iterator): New.
17904         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
17905         (FOR_EACH_ALLOCNO_OBJECT): New macro.
17906         * ira-lives.c (objects_live): Renamed from allocnos_live; all
17907         uses changed.
17908         (allocnos_processed): New sparseset.
17909         (make_object_born): Renamed from make_allocno_born; take an
17910         ira_object_t argument.  All callers changed.
17911         (make_object_dead): Renamed from make_allocno_dead; take an
17912         ira_object_t argument.  All callers changed.
17913         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
17914         All callers changed.
17915         (mark_pseudo_regno_live): Iterate over allocno subobjects.
17916         (mark_pseudo_regno_dead): Likewise.
17917         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
17918         functions.
17919         (mark_ref_live): Detect subword accesses and call
17920         mark_pseudo_regno_subword_live as appropriate.
17921         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
17922         (process_bb_nodes_live): Deal with object-related updates first; set
17923         and test bits in allocnos_processed to avoid computing allocno
17924         statistics more than once.
17925         (create_start_finish_chains): Iterate over objects, not allocnos.
17926         (print_object_live_ranges): New function.
17927         (print_allocno_live_ranges): Use it.
17928         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
17929         and objects_live.
17930
17931 2010-07-22  Richard Guenther  <rguenther@suse.de>
17932
17933         PR lto/42451
17934         * gimple.c (gtc_next_dfs_num): New global.
17935         (struct sccs): Make value a union, add integer same_p member.
17936         (gtc_visit): New function.
17937         (gimple_types_compatible_p_1): New function, split out from ...
17938         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
17939         (iterative_hash_gimple_type): Adjust for sccs change.
17940
17941 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17942
17943         PR tree-optimization/44891
17944         * tree-sra.c: Include gimple-pretty-print.h.
17945         (replace_uses_with_default_def_ssa_name): Renamed to
17946         get_repl_default_def_ssa_name, return the new SSA name instead of
17947         replacing the old one.
17948         (sra_modify_assign): Dump a message when removing a load, if the LHS
17949         is an SSA_NAME, do not do any propagation, just set the RHS to a
17950         default definition SSA NAME, type convert if necessary.
17951         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
17952
17953 2010-07-22  Richard Guenther  <rguenther@suse.de>
17954
17955         PR tree-optimization/45017
17956         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
17957         TYPE_PRECISION of integral types in addition to size.
17958
17959 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
17960
17961         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
17962         when no C library is specified.
17963
17964 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17965
17966         * ipa-prop.h (struct ipa_node_params): Updated comment.
17967         (struct ipa_edge_args): Likewise.
17968         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
17969
17970 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17971
17972         * cgraphunit.c (verify_edge_count_and_frequency): New function.
17973         (verify_cgraph_node): Verify frequencies of indirect edges.
17974         * tree-inline.c (tree_function_versioning): Update frequencies of
17975         indirect edges.
17976
17977 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17978
17979         PR target/43698
17980         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
17981         Set *arm_rev to be predicable.
17982
17983 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
17984
17985         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
17986         (LINK_COMMAND_SPEC_A): New.
17987         (DSYMUTIL): New.
17988         (DSYMUTIL_SPEC): New.
17989         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
17990         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
17991
17992 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
17993
17994         * calls.c (load_register_parameters): Move check for zero
17995         sized items so that only the call to
17996         mem_overlaps_already_clobbered_arg_p () is protected.
17997
17998 2010-07-22  Jan Hubicka  <jh@suse.cz>
17999
18000         * ipa-pure-const.c (varying_state): Break out from ...
18001         (get_function_state): ... here; always return varying_state
18002         when state would be NULL otherwise.
18003         (remove_node_data): Do not free varying state.
18004
18005 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18006
18007         PR bootstrap/44970
18008         PR middle-end/45009
18009         * postreload.c: Include "target.h".
18010         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18011         into account.
18012         (fixup_debug_insns): Don't copy the rtx.
18013         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18014         Don't copy when replacing.  Call fixup_debug_insns in the case where
18015         we merged one add with another.
18016         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18017         Try harder to determine whether we're picking a valid index register.
18018         Don't set store_ruid for an insn we're going to scan in the
18019         next iteration.
18020         (reload_combine): Remove unused code.
18021         (reload_combine_note_use): When updating use information for
18022         an old insn, ignore a use that occurs after store_ruid.
18023         * Makefile.in (postreload.o): Update dependencies.
18024
18025         * function.c (record_hard_reg_sets): Restrict the previous change
18026         to cases where the incoming nominal mode is the same as the
18027         incoming promoted mode and everything happens in MODE_INT.
18028
18029 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18030
18031         PR debug/45015
18032         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18033         ASM_OPERANDS_OUTPUT_IDX.
18034         (adjust_insn): For inline asm with multiple sets ensure first
18035         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18036         the insn.
18037
18038 2010-07-21  Richard Henderson  <rth@redhat.com>
18039
18040         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18041         comparison for avoiding xmm register saves.  Emit the xmm register
18042         saves explicitly.
18043         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18044         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18045         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18046         Remove patterns and the associated splitters.
18047
18048 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18049
18050         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18051         and imagine parts of a complex, so that they can have the same
18052         base and fall into the same group.
18053
18054 2010-07-21  Richard Guenther  <rguenther@suse.de>
18055
18056         PR lto/45018
18057         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18058         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18059         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18060
18061 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18062
18063         PR tree-optimization/44900
18064         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18065         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18066
18067 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18068
18069         PR middle-end/44738
18070         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18071
18072 2010-07-21  Richard Guenther  <rguenther@suse.de>
18073
18074         PR middle-end/45013
18075         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18076         gimple_types_compatible_p only when in lto.
18077         * gimple.c (gimple_types_compatible_p): Use canonical types
18078         to speed up comparison.
18079
18080 2010-07-21  Richard Guenther  <rguenther@suse.de>
18081
18082         * tree-flow.h (referenced_var): Move define ...
18083         * tree-flow-inline.h (referenced_var): ... here as an inline
18084         function.  Assert here ...
18085         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18086         * tree-ssa.c (maybe_optimize_var): Check if the variable
18087         is in referenced vars.
18088         (execute_update_addresses_taken): Remove old broken check.
18089         * gimple-pretty-print.c (pp_points_to_solution): Use
18090         referenced_var_lookup.
18091         * tree-into-ssa.c (dump_decl_set): Likewise.
18092
18093 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18094
18095         PR debug/45003
18096         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18097         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18098         ZERO_EXTEND here.
18099
18100 2010-07-20  Richard Henderson  <rth@redhat.com>
18101
18102         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18103
18104 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18105
18106         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18107         computing the sum of the stack pointer and a large constant.
18108         * config/arm/constraints.md (M): Remove superfluous parentheses.
18109         (Pc): New constraint.
18110
18111 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18112
18113         PR debug/45006
18114         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18115         operand's type if exp is tcc_unary class tree.
18116
18117 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18118
18119         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18120         Reverse sense of if_then_else condition.
18121
18122 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18123
18124         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18125         * config/rs6000/rs6000.c (rs6000_override_options): Set
18126         rs6000_block_move_inline_limit appropriately.
18127         (expand_block_move): Use rs6000_block_move_inline_limit.
18128         * doc/invoke.texi (mblock-move-inline-limit): Document.
18129
18130 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18131
18132         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18133         FROM and TO.  All callers changed.  Don't look for tracked uses,
18134         just scan the RTL for DEBUG_INSNs and substitute.
18135         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18136         (reload_combine): Ignore DEBUG_INSNs.
18137
18138 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18139
18140         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18141         depth to 8 from 5.
18142
18143         PR debug/45003
18144         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18145         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18146         instead of the result's type.
18147
18148 2010-07-20  Richard Guenther  <rguenther@suse.de>
18149
18150         PR tree-optimization/44977
18151         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18152         SSA form.
18153
18154 2010-07-20  Richard Guenther  <rguenther@suse.de>
18155
18156         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18157         (lto_symtab_merge_decls_2): Likewise.
18158         * gimple.h (gimple_types_compatible_p): Declare.
18159         * gimple.c (gimple_queue_type_fixup): Remove.
18160         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18161         (gimple_compatible_complete_and_incomplete_type_p): New function.
18162         (gimple_types_compatible_p): Adjust.
18163         (gimple_register_type): Remove type fixup code.
18164         (print_gimple_types_stats): Adjust.
18165         (free_gimple_type_tables): Likewise.
18166         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18167         * tree-ssa.c (useless_type_conversion_p): Likewise.
18168
18169 2010-07-20  Richard Guenther  <rguenther@suse.de>
18170
18171         PR middle-end/44971
18172         PR middle-end/44988
18173         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18174         (execute_update_addresses_taken): ... here.
18175         (non_rewritable_mem_ref_base): Likewise.
18176         (execute_update_addresses_taken): Do not iterate over all referenced
18177         vars but just all local decls and parms.
18178         Properly check call and asm arguments and rewrite call arguments.
18179
18180 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18181
18182         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18183         to top level.
18184         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18185         definitions ...
18186         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18187         New macro.
18188         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18189
18190 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18191
18192         * gengtype.c (start_root_entry): New function, split out from
18193         write_root.  Check whether V is null and raise an error if so.
18194         (write_field_root): Check for V being null.  Don't raise an error here;
18195         set V to null instead.
18196         (write_root): Update comment above function.  Use start_root_entry.
18197
18198 2010-07-19  Xinliang David Li  <davidxl@google.com>
18199
18200         PR testsuite/44932
18201         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
18202         def edges.
18203         (find_uninit_use): Add dump.
18204         (is_use_properly_guarded): Ditto.
18205         (warn_uninitialized_phi): Ditto.
18206         (execute_late_warn_uninitialized): Ditto.
18207
18208 2010-07-19  Richard Guenther  <rguenther@suse.de>
18209
18210         PR middle-end/44941
18211         * expr.c (emit_block_move_hints): Move zero size check first.
18212         Move asserts to more useful places.
18213         * calls.c (load_register_parameters): Check for zero size.
18214
18215 2010-07-19  Richard Henderson  <rth@redhat.com>
18216
18217         * tree-optimize.c (execute_all_early_local_passes): New.  Change
18218         cgraph_state here ...
18219         (execute_early_local_optimizations): ... not here.  Remove.
18220         (pass_early_local_passes, pass_all_early_optimizations): Update.
18221
18222 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
18223
18224         * postreload.c (reload_combine_closest_single_use): Ignore the
18225         number of uses for DEBUG_INSNs.
18226         (fixup_debug_insns): New static function.
18227         (reload_combine_recognize_const_pattern): Use it.  Don't let the
18228         main loop be affected by DEBUG_INSNs.
18229         Really disallow moving adds past a jump insn.
18230         (reload_combine_recognize_pattern): Don't update use_ruid here.
18231         (reload_combine_note_use): Do it here.
18232         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
18233
18234 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
18235
18236         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
18237         of a loop.
18238         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
18239
18240 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
18241
18242         * config/i386/darwin.h: Define darwin_emit_branch_islands.
18243         (TARGET_MACHO_BRANCH_ISLANDS): New.
18244         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
18245         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
18246         default value.
18247         * config/i386/i386.c (output_pic_addr_const): Do not emit
18248         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
18249         (x86_output_mi_thunk): Adjust symbol creation.
18250         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
18251         Remove out of date comment.
18252         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
18253         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18254         (DARWIN_GENERATE_ISLANDS): Ditto.
18255         (output_call):  Do not emit branch islands unless
18256         darwin_emit_branch_islands is set.
18257         * config/darwin.c: Declare darwin_emit_branch_islands.
18258         (machopic_indirect_data_reference): Do not emit unless
18259         darwin_emit_branch_islands is set.
18260         (darwin_override_options): Set darwin_emit_branch_islands
18261         where it is needed.
18262         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18263
18264 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18265
18266         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18267         sse_runtime, sse2_runtime.
18268
18269 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
18270
18271         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
18272         low half of a single-register SCmode return value before ORing
18273         it with the high half.
18274         * config/mips/mips16.S (MERGE_GPRf): Likewise.
18275
18276 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18277
18278         PR target/44805
18279         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
18280         on all targets.
18281
18282 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
18283
18284         PR target/42235
18285         * postreload.c (reload_cse_move2add): Return bool, true if anything.
18286         changed.  All callers changed.
18287         (move2add_use_add2_insn): Likewise.
18288         (move2add_use_add3_insn): Likewise.
18289         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
18290         reload_combine.
18291         (RELOAD_COMBINE_MAX_USES): Bump to 16.
18292         (last_jump_ruid): New static variable.
18293         (struct reg_use): New members CONTAINING_MEM and RUID.
18294         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
18295         (reload_combine_split_one_ruid, reload_combine_split_ruids,
18296         reload_combine_purge_insn_uses, reload_combine_closest_single_use
18297         reload_combine_purge_reg_uses_after_ruid,
18298         reload_combine_recognize_const_pattern): New static functions.
18299         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
18300         is true for our reg and that we have available index regs.
18301         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
18302         callers changed.  Use them to initialize fields in struct reg_use.
18303         (reload_combine): Initialize last_jump_ruid.  Be careful when to
18304         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
18305         Call reload_combine_recognize_const_pattern.
18306         (reload_combine_note_store): Update REAL_STORE_RUID field.
18307
18308 2010-07-16  Jason Merrill  <jason@redhat.com>
18309
18310         * Makefile.in (opts-common.o): Depend on options.h.
18311
18312 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18313
18314         * tree.c (build_common_builtin_nodes): Use build_function_type_list
18315         instead of build_function_type.
18316         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
18317         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
18318
18319 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18320
18321         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
18322         do all the work.
18323         (rs6000_emit_int_cmove): Use function pointers for insn generation.
18324         Don't force values into registers unnecessarily.
18325         (output_isel): Assert that we're not given conditions we can't handle.
18326         Delete corresponding code.
18327         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
18328         scc_comparison_operator constraint.  Permit 0 for the consequent
18329         operand.  Permit any GPR for the alternative operand.
18330         (isel_unsigned_<mode>): Likewise.
18331
18332 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
18333
18334         PR target/44942
18335         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
18336         argument to const_tree.
18337         * config/i386/i386.c (function_arg_advance): If padding needs to be
18338         inserted before argument, increment cum->words by number of padding
18339         words as well.
18340         (contains_aligned_value_p): Change argument to const_tree.
18341         (ix86_function_arg_boundary): Change second argument to const_tree.
18342
18343 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
18344
18345         PR target/42235
18346         * function.c (record_hard_reg_sets): New static function.
18347         (assign_parm_setup_reg): If an optab for extending exists and the
18348         generated code clobbbers no hard regs, emit the insn directly and
18349         create a REG_EQUIV note.
18350
18351 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18352
18353         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
18354         TREE_CHAIN.
18355         * c-typeck.c (push_init_level): Likewise.
18356         (process_init_element): Likewise.
18357
18358 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
18359
18360         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
18361         (integer_three_node): Add.
18362         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
18363         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
18364         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
18365         of call build_int_cst.
18366         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18367         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18368         (find_interesting_uses_address): Ditto.
18369         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18370         * tree-eh.c (lower_eh_constructs_2): Ditto.
18371         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18372         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18373         * expmed.c (expand_divmod): Ditto.
18374         * tree-mudflap.c (mx_register_decls): Ditto.
18375         * varasm.c (array_size_for_constructor): Ditto.
18376         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18377         * c-parser.c (c_parser_postfix_expression): Ditto.
18378
18379 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18380
18381         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18382         New static variables.
18383         (reload_combine_recognize_pattern): New static function, broken out
18384         of reload_combine.
18385         (reload_combine): Use it.  Only initialize first_index_reg and
18386         last_index_reg once.
18387
18388 2010-07-15  Richard Henderson  <rth@redhat.com>
18389
18390         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18391         when done.
18392
18393 2010-07-15  Jan Hubicka  <jh@suse.cz>
18394
18395         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18396         comdats for broken gold.
18397         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18398
18399 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18400
18401         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18402
18403 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18404
18405         * tree.h (DECL_CHAIN): Define.
18406         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18407         * c-decl.c: Likewise.
18408         * c-parser.c: Likewise.
18409         * c-typeck.c: Likewise.
18410         * cfgexpand.c: Likewise.
18411         * cgraph.c: Likewise.
18412         * cgraphunit.c: Likewise.
18413         * combine.c: Likewise.
18414         * config/alpha/alpha.c: Likewise.
18415         * config/arm/arm.c: Likewise.
18416         * config/frv/frv.c: Likewise.
18417         * config/i386/i386.c: Likewise.
18418         * config/i386/winnt-cxx.c: Likewise.
18419         * config/ia64/ia64.c: Likewise.
18420         * config/iq2000/iq2000.c: Likewise.
18421         * config/mep/mep.c: Likewise.
18422         * config/mips/mips.c: Likewise.
18423         * config/pa/som.h: Likewise.
18424         * config/rs6000/rs6000.c: Likewise.
18425         * config/s390/s390.c: Likewise.
18426         * config/sh/sh.c: Likewise.
18427         * config/sh/symbian-cxx.c: Likewise.
18428         * config/sparc/sparc.c: Likewise.
18429         * config/spu/spu.c: Likewise.
18430         * config/stormy16/stormy16.c: Likewise.
18431         * config/vxworks.c: Likewise.
18432         * config/xtensa/xtensa.c: Likewise.
18433         * coverage.c: Likewise.
18434         * dbxout.c: Likewise.
18435         * dwarf2out.c: Likewise.
18436         * emit-rtl.c: Likewise.
18437         * expr.c: Likewise.
18438         * function.c: Likewise.
18439         * gimple-low.c: Likewise.
18440         * gimple-pretty-print.c: Likewise.
18441         * gimplify.c: Likewise.
18442         * integrate.c: Likewise.
18443         * ipa-inline.c: Likewise.
18444         * ipa-prop.c: Likewise.
18445         * ipa-split.c: Likewise.
18446         * ipa-struct-reorg.c: Likewise.
18447         * ipa-type-escape.c: Likewise.
18448         * langhooks.c: Likewise.
18449         * lto-cgraph.c: Likewise.
18450         * omp-low.c: Likewise.
18451         * stor-layout.c: Likewise.
18452         * tree-cfg.c: Likewise.
18453         * tree-complex.c: Likewise.
18454         * tree-dfa.c: Likewise.
18455         * tree-dump.c: Likewise.
18456         * tree-inline.c: Likewise.
18457         * tree-mudflap.c: Likewise.
18458         * tree-nested.c: Likewise.
18459         * tree-object-size.c: Likewise.
18460         * tree-pretty-print.c: Likewise.
18461         * tree-sra.c: Likewise.
18462         * tree-ssa-live.c: Likewise.
18463         * tree-ssa-loop-niter.c: Likewise.
18464         * tree-ssa-math-opts.c: Likewise.
18465         * tree-ssa-reassoc.c: Likewise.
18466         * tree-ssa-sccvn.c: Likewise.
18467         * tree-ssa-structalias.c: Likewise.
18468         * tree-tailcall.c: Likewise.
18469         * tree-vrp.c: Likewise.
18470         * tree.c: Likewise.
18471         * var-tracking.c: Likewise.
18472         * varasm.c: Likewise.
18473
18474 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18475
18476         PR target/44877
18477         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18478         (as well as pointers) as argument to mask_for_load builtins.
18479
18480 2010-07-15  Richard Guenther  <rguenther@suse.de>
18481
18482         PR tree-optimization/44946
18483         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18484         with accessing only padding properly.
18485
18486 2010-07-15  Jan Hubicka  <jh@suse.cz>
18487
18488         * ipa.c (function_and_variable_visibility): Variables marked as used
18489         should not be localized.
18490
18491 2010-07-15  Jan Hubicka  <jh@suse.cz>
18492
18493         * cgraph.c: Include lto-streamer.h
18494         (change_decl_assembler_name): Work when assembler name hash is at place.
18495         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18496         be sure to rename it to avoid name clash.
18497         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18498         Localize hidden symbols only when locally defined.
18499
18500 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18501
18502         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18503
18504 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18505             Kevin F. Quinn  <kevquinn@gentoo.org>
18506
18507         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18508         * common.opt: Add -Wtrampolines.
18509         * doc/invoke.texi: Add -Wtrampolines.
18510
18511 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18512
18513         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18514         cortex_a8_issue_ls.
18515
18516 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18517
18518         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18519         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18520
18521 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18522
18523         * config/spu/spu.c (reg_names): Remove prototype.
18524         (call_used_regs): Likewise.
18525
18526 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18527
18528         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18529         "unused" with attribute "used".
18530         (__JCR_END__): Likewise.
18531         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18532         "used" attribute.
18533         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18534
18535 2010-07-14  Richard Guenther  <rguenther@suse.de>
18536
18537         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18538         (maybe_fixup_decls): Likewise.
18539         (input_gimple_stmt): Do not fixup anything.
18540         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18541         non-automatic variable uses are wrapped inside a MEM_REF.
18542
18543 2010-07-14  Richard Henderson  <rth@redhat.com>
18544
18545         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18546         for functions.
18547         * varasm.c (assemble_variable): Remove early exit for functions;
18548         assert that we're given a variable.
18549
18550 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18551
18552         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18553         cortex_a8_default when neon_type is not none.
18554
18555 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18556
18557         * lower-subreg.c (subreg_context): New static bitmap.
18558         (decompose_multiword_subregs): Allocate and free it.
18559         (find_decomposable_subregs): Set a bit in it for a register that
18560         occurs in a subreg that changes mode but not size.
18561         (can_decompose_p): Test it instead of non_decomposable_context.
18562
18563 2010-07-14  Richard Guenther  <rguenther@suse.de>
18564
18565         PR tree-optimization/44824
18566         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18567         is_gimple_mem_ref_addr.
18568         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18569         non-decl_address_invariant_p addresses.
18570
18571 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18572
18573         * reload.c (find_reloads): Revert code to penalize small register
18574         classes that was brought in with the IRA merge.
18575
18576 2010-07-14  Richard Guenther  <rguenther@suse.de>
18577
18578         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18579         as base of ARRAY_REFs.
18580
18581 2010-07-14  Richard Guenther  <rguenther@suse.de>
18582
18583         PR middle-end/44930
18584         * tree-pretty-print.c (do_niy): Do not print a newline.
18585
18586 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18587
18588         * ira-int.h (struct ira_object): New.
18589         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18590         (struct ira_allocno): Remove members min, max,
18591         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18592         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18593         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18594         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18595         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18596         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18597         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18598         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18599         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18600         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18601         an ira_object_t rather than ira_allocno_t.  All uses changed.
18602         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18603         contains a vector of ira_object_t; all uses changed.
18604         (ira_objects_num): Declare variable.
18605         (ira_create_allocno_object): Declare function.
18606         (ira_conflict_vector_profitable_p): Adjust prototype.
18607         (ira_allocate_conflict_vec): Renamed from
18608         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18609         (ira_allocate_object_conflicts): Renamed from
18610         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18611         (struct ira_object_iterator): New.
18612         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18613         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18614         to conflict_vec_p.  All uses changed.
18615         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18616         Changed to take into account that conflicts are now tracked for
18617         objects.
18618         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18619         Args changed to accept ira_object_t.  All uses changed.
18620         (allocnos_conflict_p): New static function.
18621         (collected_conflict_objects): Renamed from collected_allocno_objects;
18622         now a vector of ira_object_t.  All uses changed.
18623         (build_conflict_bit_table): Changed to take into account that
18624         conflicts are now tracked for objects.
18625         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18626         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18627         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18628         setup_allocno_left_conflicts_size, allocno_reload_assign,
18629         fast_allocation): Likewise.
18630         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18631         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18632         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18633         Likewise.
18634         * ira-build.c (ira_objects_num): New variable.
18635         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18636         contains a vector of ira_object_t; all uses changed.
18637         (ira_object_id_map_vec): Corresponding change.
18638         (object_pool): New static variable.
18639         (initiate_allocnos): Initialize it.
18640         (finish_allocnos): Free it.
18641         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18642         New functions.
18643         (ira_create_allocno): Don't set members that were removed.
18644         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18645         (merge_hard_reg_conflicts): Changed to take into account that
18646         conflicts are now tracked for objects.
18647         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18648         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18649         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18650         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18651         setup_min_max_conflict_allocno_ids, ):  Likewise.
18652         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18653         to ira_object_t; all callers changed.
18654         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18655         to ira_object_t, all callers changed.
18656         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18657         to ira_object_t, all callers changed.
18658         (conflict_check, curr_conflict_check_tick): Renamed from
18659         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18660         changed.
18661         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18662         arg changed to ira_object_t, all callers changed.
18663         (create_cap_allocno): Call ira_create_allocno_object.
18664         (finish_allocno): Free the corresponding object.
18665         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18666         callers changed.  Adjusted for dealing with objects.
18667         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18668         dealing with objects.
18669         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18670
18671         * ira-int.h (struct live_range): Rename allocno member to object
18672         and change type to ira_object_t.
18673         (struct ira_object): New member live_ranges.
18674         (struct ira_allocno): Remove member live_ranges.
18675         (ALLOCNO_LIVE_RANGES): Remove.
18676         (OBJECT_LIVE_RANGES): New macro.
18677         (ira_create_live_range, ira_copy_live_range_list,
18678         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18679         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18680         * ira-build.c (ira_create_object): Initialize live ranges here.
18681         (ira_create_allocno): Not here.
18682         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18683         changed to ira_object_t, all callers changed.
18684         (copy_live_range): Rename from copy_allocno_live_range, all callers
18685         changed.
18686         (ira_copy_live_range_list): Rename from
18687         ira_copy_allocno_live_range_list, all callers changed.
18688         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18689         all callers changed.
18690         (ira_live_ranges_intersect_p): Rename from
18691         ira_allocno_live_ranges_intersect_p, all callers changed.
18692         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18693         callers changed.
18694         (ira_finish_live_range_list): Rename from
18695         ira_finish_allocno_live_range_list, all callers changed.
18696         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18697         last arg changed to ira_object_t, all callers changed.
18698         (finish_allocno): Changed to expect live ranges in the allocno's object.
18699         (move_allocno_live_ranges, copy_allocno_live_ranges,
18700         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18701         ira_flattening, ira_build): Likewise.
18702         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18703         slot_coalesced_allocno_live_ranges_intersect,
18704         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18705         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18706         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18707         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18708         make_allocno_dead, create_start_finish_chains,
18709         remove_some_program_points_and_update_live_ranges,
18710         ira_debug_live_range_list): Likewise.
18711
18712         * ira-int.h (ira_object_conflict_iterator): Rename from
18713         ira_allocno_conflict_iterator.
18714         (ira_object_conflict_iter_init): Rename from
18715         ira_allocno_conflict_iter_init, second arg changed to
18716         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18717         FOR_EACH_ALLOCNO_CONFLICT.
18718         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18719         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18720         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18721         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18722
18723 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18724
18725         PR other/44874
18726         * tree-dump.c (dump_options): Add enumerate_locals entry.
18727         Add TDF_NOID exclusion to all entry.
18728         * tree-dump.h (dump_enumerated_decls): Declare.
18729         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18730         Don't display type uid.
18731         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18732         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18733         * tree-ssa-live.c: Include gimple.h.
18734         (numbered_tree_d): New struct.
18735         (numbered_tree): New typedef.
18736         (DEF_VEC_O (numbered_tree): New.
18737         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18738         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18739         (dump_enumerated_decls): Likewise.
18740         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18741         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18742         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18743         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18744
18745 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18746
18747         * expmed.h (MAX_BITS_PER_WORD): Move to...
18748         * defaults.h (MAX_BITS_PER_WORD): ...here.
18749
18750 2010-07-13  DJ Delorie  <dj@redhat.com>
18751
18752         * config/h8300/h8300.c (h8300_init_once): Default to
18753         -fstrict_volatile_bitfields.
18754
18755         * config/sh/sh.c (sh_override_options): Default to
18756         -fstrict_volatile_bitfields.
18757
18758         * config/rx/rx.c (rx_option_override): New.
18759
18760         * config/m32c/m32c.c (m32c_override_options): Default to
18761         -fstrict_volatile_bitfields.
18762
18763 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18764
18765         * tree.h (build_function_call_expr): Delete.
18766         (build_call_expr_loc_array): New function.
18767         (build_call_expr_loc_vec): New function.
18768         * tree-flow.h (struct omp_region): Change type of ws_args field
18769         to a VEC.
18770         * builtins.c (build_function_call_expr): Delete.
18771         (build_call_expr_loc_array): New function.
18772         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18773         (build_call_expr): Likewise.
18774         (build_call_expr_loc_vec): New function.
18775         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18776         build_function_call_expr.
18777         * expr.c (emutls_var_address): Likewise.
18778         * varasm.c (emutls_common_1): Likewise.
18779         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18780         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18781         (get_ws_args_for): Return a VEC instead of a tree.
18782         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18783         build_function_call_expr.
18784         * stor-layout.c (self_referential_size): Likewise.
18785
18786 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18787
18788         PR testsuite/44701
18789         * recog.c (constrain_operands): Allow side-effects in memory
18790         operands if either < or > constraint is used, rather than if
18791         both < and > is used.
18792
18793 2010-07-13  Richard Guenther  <rguenther@suse.de>
18794
18795         PR middle-end/44911
18796         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18797         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18798         without name.
18799
18800 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18801
18802         PR target/44761
18803         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18804         to variable emited.
18805         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18806         * config/sh/sh.md (symGOT_load): Likewise.
18807         (symDTPOFF2reg): Likewise.
18808         (symTPOFF2reg): Likewise.
18809
18810 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18811
18812         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18813         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18814
18815 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18816
18817         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18818         explanation.
18819         Find ucontext_t * on Solaris 11.
18820         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18821         Handle new Solaris 11 __sighndlr patterns.
18822
18823 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18824
18825         PR debug/44901
18826         * vec.h (VEC_block_remove): Fix comment.
18827         * tree-ssa-live.c (remove_unused_locals): Don't use
18828         VEC_unordered_remove on local_decls, instead replace a single
18829         vector element in each iteration if at least one element had
18830         to be removed and VEC_truncate at the end.
18831         * omp-low.c (expand_omp_taskreg): Likewise.
18832
18833 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18834
18835         * c-decl.c (finish_function): Fix typo in comment.
18836
18837 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18838
18839         PR bootstrap/44921
18840         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18841         on min_regno.
18842
18843 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18844
18845         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
18846         (simplify_stmt_using_ranges): Use it.
18847
18848 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18849
18850         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
18851         member.  Do not mark as GTY(()).
18852         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
18853         (spu_builtin_decls): New static variable.
18854         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
18855         (spu_init_builtins): Likewise.
18856         (spu_builtin_mul_widen_even): Likewise.
18857         (spu_builtin_mul_widen_odd): Likewise.
18858         (spu_builtin_mask_for_load): Likewise.
18859         (spu_builtin_vec_perm): Likewise.
18860         * config/spu/spu-c.c: Include "target.h".
18861         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
18862         of using spu_builtins[].fndecl.
18863
18864 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18865
18866         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
18867         imply -minterlink-mips16.
18868
18869 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18870
18871         * config/mips/mips.h (mips16_globals): Declare.
18872         (SWITCHABLE_TARGET): Define.
18873         * config/mips/mips.c: Include target-globals.h.
18874         (mips16_globals): New variable.
18875         (mips_set_mips16_mode): Use save_target_globals and
18876         restore_target_globals instead of target_reinit.
18877
18878 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18879
18880         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
18881         to say that the function can be called more than once.
18882         * target-globals.c (save_target_globals): Call init_reg_sets.
18883
18884 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18885
18886         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
18887         * bb-reorder.h: New file.
18888         * bb-reorder.c (default_target_bb_reorder): New variable.
18889         (this_target_bb_reorder): New conditional variable.
18890         (uncond_jump_length): Redefine as a macro.
18891         * target-globals.h (this_target_bb_reorder): Declare.
18892         (target_globals): Add a bb_reorder field.
18893         (restore_target_globals): Copy the bb_reorder field to
18894         this_target_bb-reorder.
18895         * target-globals.c: Include bb-reorder.h.
18896         (default_target_globals): Initialize the bb_reorder field.
18897         (save_target_globals): Likewise.
18898
18899 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18900
18901         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
18902         * gcse.h: New file.
18903         * gcse.c: Include gcse.h.
18904         (default_target_gcse): New variable.
18905         (this_target_gcse): New conditional variable.
18906         (can_copy): Redefine as a macro.
18907         (can_copy_init_p): New macro.
18908         (can_copy_p): Remove can_copy_init_p.
18909         * target-globals.h (this_target_gcse): Declare.
18910         (target_globals): Add a gcse field.
18911         (restore_target_globals): Copy the gcse field to this_target_gcse.
18912         * target-globals.c: Include gcse.h.
18913         (default_target_globals): Initialize the gcse field.
18914         (save_target_globals): Likewise.
18915
18916 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18917
18918         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
18919         and x_ira_prohibited_mode_move_regs_initialized_p.
18920         (ira_prohibited_mode_move_regs): Redefine as a macro.
18921         * ira.c (ira_prohibited_mode_move_regs): Delete.
18922         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
18923
18924 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18925
18926         * reload.h (target_reload): Add x_cached_reg_save_code and
18927         x_cached_reg_restore_code.
18928         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
18929         Redefine as macros.
18930
18931 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18932
18933         * Makefile.in (target-globals.o): Depend on builtins.h.
18934         * builtins.h: New file.
18935         * builtins.c: Include builtins.h.
18936         (default_target_builtins): New variable.
18937         (this_target_builtins): New conditional variable.
18938         (apply_args_mode, apply_result_mode): Redefine as macros.
18939         * target-globals.h (this_target_builtins): Declare.
18940         (target_globals): Add a builtins field.
18941         (restore_target_globals): Copy the builtins field to
18942         this_target_builtins.
18943         * target-globals.c: Include builtins.h.
18944         (default_target_globals): Initialize the builtins field.
18945         (save_target_globals): Likewise.
18946
18947 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18948
18949         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
18950         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
18951         from expmed.c.
18952         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
18953         (alg_hash, alg_hash_used_p): New macros.
18954         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
18955         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
18956         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
18957
18958 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18959
18960         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
18961         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
18962         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
18963         (this_op_costs, costs_classes): Redefine as macros.
18964         (record_reg_classes): Don't take op_costs as a parameter.
18965         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
18966         (scan_one_insn): Update call to record_operand_costs.
18967
18968 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18969
18970         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
18971         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
18972         (target_ira_int): New structure.
18973         (default_target_ira_int): Declare.
18974         (this_target_ira_int): Declare as a variable or define as a macro.
18975         (ira_reg_mode_hard_regset, ira_register_move_cost)
18976         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
18977         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
18978         (prohibited_class_mode_regs, ira_important_classes_num)
18979         (ira_important_classes, ira_reg_class_intersect)
18980         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
18981         (ira_reg_class_union): Redefine as macros.
18982         * ira.h (target_ira): New structure.
18983         (default_target_ira): Declare.
18984         (this_target_ira): Declare as a variable or define as a macro.
18985         (ira_available_class_regs, ira_hard_regno_cover_class)
18986         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
18987         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
18988         (ira_class_hard_regs_num): Redefine as macros.
18989         * ira.c (default_target_ira, default_target_ira_int): New variables.
18990         (this_target_ira, this_target_ira_int): New conditional variables.
18991         (ira_reg_mode_hard_regset, ira_memory_move_cost)
18992         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
18993         (ira_class_subset_p): Delete.
18994         (no_unit_alloc_regs): Redefine as a macro.
18995         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
18996         (ira_class_hard_regs_num, ira_class_hard_reg_index)
18997         (ira_available_class_regs): Delete.
18998         (alloc_reg_class_subclasses): Redefine as a macro.
18999         (ira_reg_class_cover_size, ira_reg_class_cover)
19000         (ira_important_classes_num, ira_important_classes)
19001         (ira_important_class_nums, ira_class_translate): Delete.
19002         (cover_class_order): Document the variable's lifetime.
19003         (reorder_important_classes): Don't set ira_important_class_nums.
19004         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19005         (ira_reg_class_super_classes, ira_reg_class_union)
19006         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19007         Delete.
19008         (setup_reg_class_nregs): Don't set ira_max_regs.
19009         (prohibited_class_mode_regs): Delete.
19010         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19011         (target_globals): Add ira and ira_int fields.
19012         (restore_target_globals): Copy the ira field to this_target_ira
19013         and the ira_int field to this_target_ira_int.
19014         * target-globals.c: Include ira-int.h.
19015         (default_target_globals): Initialize the ira and ira_int fields.
19016         (save_target_globals): Likewise.
19017
19018 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19019
19020         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19021         * cfgloop.h (target_cfgloop): New structure.
19022         (default_target_cfgloop): Declare.
19023         (this_target_cfgloop): Declare as a variable or define as a macro.
19024         (target_avail_regs, target_clobbered_regs, target_res_regs)
19025         (target_reg_cost, target_spill_cost): Redefine as macros.
19026         * cfgloopanal.c (default_target_cfgloop): New variable.
19027         (this_target_cfgloop): New conditional variable.
19028         (target_avail_regs, target_clobbered_regs, target_res_regs)
19029         (target_reg_cost, target_spill_cost): Delete.
19030         * target-globals.h (this_target_cfgloop): Declare.
19031         (target_globals): Add a cfgloop field.
19032         (restore_target_globals): Copy the cfgloop field to
19033         this_target_cfgloop.
19034         * target-globals.c: Include cfgloop.h.
19035         (default_target_globals): Initialize the cfgloop field.
19036         (save_target_globals): Likewise.
19037
19038 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19039
19040         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19041         x_float_extend_from_mem.
19042         (direct_load, direct_store, float_extend_from_mem): New macros.
19043         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19044
19045 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19046
19047         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19048         (target-globals.o): Depend on $(LIBFUNCS_H).
19049         * libfuncs.h: Include hashtab.h.
19050         (libfunc_entry): Moved from optabs.c.
19051         (target_libfuncs): New structure.
19052         (default_target_libfuncs): Declare.
19053         (this_target_libfuncs): Declare as a variable or define as a macro.
19054         (libfunc_table): Redefine as a macro.
19055         * optabs.c (default_target_libfuncs): New variable.
19056         (this_target_libfuncs): New conditional variable.
19057         (libfunc_table): Delete.
19058         (libfunc_entry): Moved to optabs.h.
19059         (libfunc_hash): Redefine as a macro.
19060         (hash_libfunc, eq_libfunc): Fix comments.
19061         (init_optabs): Use libfunc_hash to detect cases where the function
19062         has already been called.  Clear the hash table instead of
19063         recreating it.
19064         * target-globals.h (this_target_libfuncs): Declare.
19065         (target_globals): Add a libfuncs field.
19066         (restore_target_globals): Copy the libfuncs field to
19067         this_target_libfuncs.
19068         * target-globals.c: Include libfuncs.h.
19069         (default_target_globals): Initialize the libfuncs field.
19070         (save_target_globals): Likewise.
19071
19072 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19073
19074         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19075         in all dependency lists.
19076
19077 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19078
19079         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19080         * optabs.h (target_optabs): New structure.
19081         (default_target_optabs): Declare.
19082         (this_target_optabs): Declare as a variable or define as a macro.
19083         (optab_table, convert_optab_table, direct_optab_table): Redefine
19084         as macros.
19085         * optabs.c (default_target_optabs): New variable.
19086         (this_target_optabs): New conditional variable.
19087         (optab_table, convert_optab_table, direct_optab_table): Delete.
19088         * target-globals.h (this_target_optabs): Declare.
19089         (target_globals): Add a optabs field.
19090         (restore_target_globals): Copy the optabs field to
19091         this_target_optabs.
19092         * target-globals.c: Include expr.h and optabs.h.
19093         (default_target_globals): Initialize the optabs field.
19094         (save_target_globals): Likewise.
19095
19096 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19097
19098         * flags.h (target_flagstate): Add x_flag_excess_precision.
19099         (flag_excess_precision): Redefine as a macro.
19100         * toplev.c (flag_excess_precision): Delete.
19101
19102 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19103
19104         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19105         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19106         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19107         (no_caller_save_reg_set): Redefine as a macro.
19108         * reload.h (target_reload): Add x_caller_save_initialized_p and
19109         x_regno_save_mode.
19110         (caller_save_initialized_p): Redefine as a macro.
19111         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19112         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19113         (regno_save_mode): Redefine as a macro.
19114
19115 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19116
19117         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19118         * expmed.h: New file.
19119         * expmed.c (default_target_costs): New variable.
19120         (this_target_costs): New conditional variable.
19121         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19122         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19123         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19124         * target-globals.h (this_target_expmed): Declare.
19125         (target_globals): Add a expmed field.
19126         (restore_target_globals): Copy the expmed field to
19127         this_target_expmed.
19128         * target-globals.c: Include expmed.h.
19129         (default_target_globals): Initialize the expmed field.
19130         (save_target_globals): Likewise.
19131
19132 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19133
19134         * Makefile.in (target-globals.o): Depend on reload.h.
19135         * reload.h (target_reload): New structure.
19136         (default_target_reload): Declare.
19137         (this_target_reload): Declare as a variable or define as a macro.
19138         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19139         * reload1.c (default_target_reload): New variable
19140         (this_target_reload): New conditional variable.
19141         (indirect_symref_ok, double_reg_address_ok): Delete.
19142         (spill_indirect_levels): Redefine as a macro.
19143         * target-globals.h (this_target_reload): Declare.
19144         (target_globals): Add a reload field.
19145         (restore_target_globals): Copy the reload field to
19146         this_target_reload.
19147         * target-globals.c: Include hard-reg-set.h.
19148         (default_target_globals): Initialize the reload field.
19149         (save_target_globals): Likewise.
19150
19151 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19152
19153         * rtl.h (target_rtl): Add x_static_reg_base_value.
19154         * alias.c (static_reg_base_value): Redefine as a macro.
19155
19156 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19157
19158         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19159         (GTFILES): Remove reginfo.c.
19160         * rtl.h (target_rtl): Add x_top_of_stack.
19161         (top_of_stack): New macro.
19162         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19163         (top_of_stack): Delete.
19164
19165 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19166
19167         * regs.h (target_regs): Add x_hard_regs_of_mode,
19168         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19169         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19170         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19171         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19172         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19173         (may_move_in_cost, may_move_out_cost): Delete.
19174         (last_mode_for_init_move_cost): Redefine as a macro.
19175
19176 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19177
19178         * hard-reg-set.h (target_hard_regs): New structure.
19179         (default_target_hard_regs): Declare.
19180         (this_target_hard_regs): Declare as a variable or define as a macro.
19181         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19182         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19183         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19184         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19185         (reg_class_superunion, reg_names): Redefine as macros.
19186         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19187         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19188         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19189         (reg_class_contents, reg_class_size, reg_class_subclasses)
19190         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19191         (default_target_hard_regs): New variable
19192         (this_target_hard_regs, initial_call_really_used_regs)
19193         (initial_reg_alloc_order): New conditional variables.
19194         (initial_reg_names): New variable.
19195         (init_reg_sets): Assert that initial_call_really_used_regs,
19196         initial_reg_alloc_order and initial_reg_names
19197         are all the same size as their variable counterparts.  Use them to
19198         initialize those counterparts.
19199         * target-globals.h (this_target_hard_regs): Declare.
19200         (target_globals): Add a hard_regs field.
19201         (restore_target_globals): Copy the hard_regs field to
19202         this_target_hard_regs.
19203         * target-globals.c: Include hard-reg-set.h.
19204         (default_target_globals): Initialize the hard_regs field.
19205         (save_target_globals): Likewise.
19206
19207 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19208
19209         * Makefile.in (target-globals.o): Depend on $(RTL_H).
19210         * rtl.h (target_rtl): New structure.
19211         (default_target_rtl): Declare.
19212         (this_target_rtl): Declare as a variable or define as a macro.
19213         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
19214         Redefine as macros.
19215         * emit-rtl.c (default_target_rtl): New variable.
19216         (this_target_rtl): New conditional variable.
19217         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
19218         (return_address_pointer_rtx): Delete.
19219         (initial_regno_reg_rtx): New macro.
19220         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
19221         (init_emit_regs): Likewise.
19222         * target-globals.h (this_target_rtl): Declare.
19223         (target_globals): Add a rtl field.
19224         (restore_target_globals): Copy the rtl field to this_target_rtl.
19225         * target-globals.c: Include rtl.h.
19226         (default_target_globals): Initialize the rtl field.
19227         (save_target_globals): Likewise.
19228
19229 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19230
19231         * Makefile.in (target-globals.o): Depend on $(REGS_H).
19232         * regs.h (target_reg_modes): New structure.
19233         (default_target_reg_modes): Declare.
19234         (this_target_reg_modes): Declare as a variable or define as a macro.
19235         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
19236         * reginfo.c (default_target_reg_modes): New variable.
19237         (this_target_reg_modes): New conditional variable.
19238         (hard_regno_nregs, reg_raw_mode): Delete.
19239         * target-globals.h (this_target_regs): Declare.
19240         (target_globals): Add a regs field.
19241         (restore_target_globals): Copy the regs field to this_target_regs.
19242         * target-globals.c: Include regs.h.
19243         (default_target_globals): Initialize the regs field.
19244         (save_target_globals): Likewise.
19245
19246 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19247
19248         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
19249         * doc/tm.texi: Regenerate.
19250         * Makefile.in (OBJS-common): Add target-globals.o.
19251         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
19252         and target-globals.h.
19253         (target-globals.o): New rule.
19254         (GTFILES): Include $(srcdir)/target-globals.h.
19255         * defaults.h (SWITCHABLE_TARGET): Define.
19256         * gengtype.c (open_base_files): Add target-globals.h to the
19257         list of includes.
19258         * target-globals.h: New file.
19259         * target-globals.c: Likewise.
19260
19261         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
19262         * flags.h (target_flag_state): New structure.
19263         (default_target_flag_state): Declare.
19264         (this_target_flag_state): Declare as a variable or define as a macro.
19265         (align_loops_log): Redefine as a macro.
19266         (align_loops_max_skip, align_jumps_log): Likewise.
19267         (align_jumps_max_skip, align_labels_log): Likewise.
19268         (align_labels_max_skip, align_functions_log): Likewise.
19269         * toplev.c (default_target_flag_state): New variable.
19270         (this_target_flag_state): New conditional variable.
19271         (align_loops_log): Delete.
19272         (align_loops_max_skip, align_jumps_log): Likewise.
19273         (align_jumps_max_skip, align_labels_log): Likewise.
19274         (align_labels_max_skip, align_functions_log): Likewise.
19275         * target-globals.h (this_target_flag_state): Declare.
19276         (target_globals): Add a flag_state field.
19277         (restore_target_globals): Copy the flag_state field to
19278         this_target_flag_state.
19279         * target-globals.c: Include flags.h.
19280         (default_target_globals): Initialize the flag_state field.
19281         (save_target_globals): Likewise.
19282
19283 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19284
19285         * postreload.c (reg_symbol_ref[]): New.
19286         (move2add_use_add2_insn): New.
19287         (move2add_use_add3_insn): New.
19288         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
19289         (move2add_note_store): Likewise.
19290
19291 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
19292
19293         PR rtl-optimization/44752
19294         * genautomata.c (main): Don't emit an empty file even if there
19295         is no automaton.
19296
19297 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19298
19299         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
19300         ix86_solaris_return_in_memory.
19301         * config/i386-protos.h: Reflect this.
19302         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19303         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19304         Move ...
19305         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
19306
19307 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19308
19309         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
19310         align the stack when it's going to be saved.
19311
19312 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19313
19314         PR pch/14940
19315         * config/host-solaris.c (mmap_fixed): New function.
19316         (sol_gt_pch_get_address): Use it.
19317         (sol_gt_pch_use_address): Likewise.
19318
19319 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19320
19321         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19322         pentiumpro on Solaris 8 and 9/x86.
19323         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
19324         Document SSE/SSE2 support.
19325         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
19326
19327 2010-07-12  Andi Kleen  <ak@linux.intel.com>
19328
19329         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
19330         instead of gcc_assert to print better error message for multiple
19331         prevailing defs.
19332
19333 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
19334
19335         * config/i386/i386.c (ix86_asm_output_function_label): Change format
19336         string placeholder from 0x%x to %#x.
19337         (ix86_code_end): Use putc to output '\n'.
19338         (ix86_print_operand) <case ';'>: Use putc to output ';'.
19339
19340 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
19341
19342         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
19343         in directive -export.
19344
19345 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
19346
19347         * reginfo.h (reg_classes_intersect_p): Change arguments type to
19348         reg_class_t.
19349         * rtl.h (reg_classes_intersect_p): Adjust prototype.
19350
19351         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19352         Remove macros.
19353         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
19354         rs6000_memory_move_cost): Remove
19355         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
19356         TARGET_MEMORY_MOVE_COST): Define.
19357         (rs6000_register_move_cost): Make static. Change arguments type from
19358         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
19359         (rs6000_memory_move_cost): Make static. Change arguments type from
19360         'enum reg_class' to reg_class_t.
19361
19362 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
19363
19364         PR middle-end/42505
19365         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
19366         lookup code into....
19367         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19368         new functions.
19369         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19370         * cfgloopanal.c (target_clobbered_regs): Define.
19371         (init_set_costs): Initialize target_clobbered_regs.
19372         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19373         adjust the number of available registers to exclude the
19374         call-clobbered registers.
19375         * cfgloop.h (target_clobbered_regs): Declare.
19376         (estimate_reg_pressure_cost): Adjust declaration.
19377         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19378         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19379         (determine_set_costs): Dump target_clobbered_regs.
19380         (loop_body_includes_call): New function.
19381         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19382         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19383         call_p flag through.
19384         (best_gain_for_invariant): Likewise.
19385         (find_invariants_to_move): Likewise.
19386         (move_single_loop_invariants): Likewise, using already-computed
19387         has_call field.
19388
19389 2010-07-10  Richard Guenther  <rguenther@suse.de>
19390             Joern Rennecke  <joern.rennecke@embecosm.com>
19391
19392         PR debug/44832
19393         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19394         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19395         unless they have DECL_IGNORED_P set.
19396
19397 2010-07-10  Richard Guenther  <rguenther@suse.de>
19398
19399         PR lto/44889
19400         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19401         helper function.
19402         (gimple_types_compatible_p): Similar to pointed-to
19403         types allow and merge a mix of complete and incomplete aggregate.
19404         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19405         (iterative_hash_gimple_type): Adjust for that.
19406
19407 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19408
19409         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19410
19411 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19412
19413         PR objc/44140
19414         * config/darwin.c (output_objc_section_asm_op): Save and restore
19415         section when outputting ObjC section list.
19416
19417 2010-07-09  Jan Hubicka  <jh@suse.cz>
19418
19419         * lto-streamer-out.c (produce_symtab): Do not write alias
19420         cgraph/varpool nodes.
19421
19422 2010-07-09  Jan Hubicka  <jh@suse.cz>
19423
19424         * tree-inline.c (declare_return_variable): Fix ICE while
19425         inlining DECL_BY_VALUE function not in SSA form
19426
19427 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19428
19429         PR tree-optimization/44576
19430         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19431         New.  Pull out from is_loop_prefetching_profitable to implement
19432         the trip count to ahead ratio heuristic.
19433         (mem_ref_count_reasonable_p): New.  Pull out from
19434         is_loop_prefetching_profitable to implement the instruction to
19435         memory reference ratio heuristic.  Also consider not reasonable if
19436         the memory reference count is above a threshold (to avoid
19437         explosive compilation time.
19438         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19439         is_loop_prefetching_profitable to implement the instruction to
19440         prefetch ratio heuristic.
19441         (is_loop_prefetching_profitable): Removed.
19442         (loop_prefetch_arrays): Distribute the cost analysis across the
19443         function to allow early exit of the prefetch analysis.
19444         is_loop_prefetching_profitable is splitted into three functions,
19445         with each one called as early as possible.
19446         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19447         number of memory references in a loop is considered too many.
19448
19449 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19450
19451         * reload.c (find_reloads): Don't clear badop if we have a winreg
19452         alternative, but not win, and the class only has fixed regs.
19453         * hard-reg-set.h (class_only_fixed_regs): Declare.
19454         * reginfo.c (class_only_fixed_regs): New array.
19455         (init_reg_sets_1): Initialize it.
19456         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19457         discourage alternatives using the stack pointer.
19458
19459         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19460
19461         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19462
19463         * config/arm/arm.md (cbranchqi4): Fix array size.
19464         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19465         calculating length.
19466
19467 2010-07-09  Richard Guenther  <rguenther@suse.de>
19468
19469         * gimple.c (struct type_fixup_s): New struct and VEC type.
19470         (gimple_register_type_fixups): New static global.
19471         (gimple_queue_type_fixup): New function.
19472         (gimple_types_compatible_p): Queue type fixups instead of
19473         applying them here.
19474         (gimple_register_type): Apply queued fixups for the
19475         canonical type.  Empty the type fixup queue.
19476
19477 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19478
19479         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19480         * configure: Regenerate.
19481         * config.in: Ditto.
19482
19483 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19484             Denys Vlasenko  <dvlasenk@redhat.com>
19485             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19486
19487         PR tree-optimization/28632
19488         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19489         (extract_range_from_binary_expr): Further optimize
19490         BIT_AND_EXPR and BIT_IOR_EXPR.
19491
19492 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19493
19494         * tree-if-conv.c (fold_or_predicates): New.
19495         (add_to_predicate_list): Call it.
19496
19497 2010-07-09  Richard Guenther  <rguenther@suse.de>
19498
19499         PR middle-end/44890
19500         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19501         if base is a pointer.
19502         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19503
19504 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19505
19506         PR target/44877
19507         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19508         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19509         builtin mask for load/store builtins.
19510
19511 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19512
19513         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19514         for "lock addl".
19515         * configure: Regenerate.
19516         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19517         Remove TARGET_MACHO.
19518
19519 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19520
19521         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19522         default ISA flags.
19523         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19524
19525 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19526
19527         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19528
19529 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19530
19531         * config/picochip/picochip.md (commsTestPort): Emit more
19532         efficient sequence for tstport instruction.
19533
19534 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19535
19536         * config/i386/i386.c (ix86_veclib_handler): Make static.
19537
19538 2010-07-09  Richard Guenther  <rguenther@suse.de>
19539
19540         PR tree-optimization/44852
19541         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19542         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19543         in MEM_REF.
19544         (indirect_refs_may_alias_p): Likewise.
19545         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19546
19547 2010-07-09  Richard Guenther  <rguenther@suse.de>
19548
19549         PR tree-optimization/44882
19550         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19551         sets do conflict.
19552         (vectorizable_load): Likewise.
19553
19554 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19555
19556         PR target/40657
19557         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19558         All callers changed.
19559         Handle the case when we're called for the epilogue.
19560         (thumb_unexpanded_epilogue): Use it.
19561         (thumb1_expand_epilogue): Likewise.
19562
19563 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19564
19565         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19566         both ranges are range_int_cst_p with non-negative minimum,
19567         try harder to derive smaller range.
19568
19569 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19570
19571         * genrecog.c: Include diagnostic-core.h before toplev.h.
19572         * genoutput.c: Likewise.
19573         * genextract.c: Likewise.
19574         * genautomata.c: Likewise.
19575         * genemit.c: Likewise.
19576         * genpeep.c: Likewise.
19577         * genattrtab.c: Likewise.
19578         * genconditions.c: Likewise.
19579         * genpreds.c: Likewise.
19580
19581 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19582
19583         * lto-section-in.c (lto_section_name): Add missing comma.
19584
19585 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19586
19587         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19588         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19589         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19590         (ia64_override_options): Rename to...
19591         (ia64_option_override): ... this one. Make static.
19592
19593 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19594
19595         PR middle-end/44843
19596         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19597         pointed-to type of the offset in a MEM_REF to compute the alignment.
19598
19599 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19600
19601         * final.c (final_scan_insn): Replace
19602         TARGET_UNWIND_INFO macro check by unwind_emit
19603         hook NULL check.
19604         * targhooks.c (default_unwind_emit): Removed.
19605         * targhooks.h (default_unwind_emit): Likewise.
19606         * target.def (unwind_emit): Set default value to NULL.
19607
19608         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19609         New prototype.
19610         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19611         for NULL fntype argument and allow 64-bit targets.
19612         (ix86_asm_output_function_label): New function.
19613         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19614         (ix86_handle_fndecl_attribute): Likewise.
19615         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19616         * doc/doc/tm.texi: Regenerated.
19617         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19618         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19619         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19620         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19621         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19622         * config/elfos.h: Likewise.
19623         * config/i386/cygming.h: Likewise.
19624         * config/netbsd-aout.h: Likewise.
19625         * config/openbsd.h: Likewise.
19626         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19627         by ix86_asm_output_function_label function call.
19628         * varasm.c (assemble_start_function): Use
19629         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19630
19631 2010-07-08  Jan Hubicka  <jh@suse.cz>
19632
19633         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19634         New function.
19635         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19636         Declare.
19637         * ipa-cp.c (ipcp_estimate_growth): Use it.
19638         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19639         Likewise.
19640
19641 2010-07-08  Jan Hubicka  <jh@suse.cz>
19642
19643         * tree-inline.c (declare_return_variable): Allocate annotation for new
19644         temporary.
19645
19646 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19647
19648         PR tree-optimization/44710
19649         * tree-if-conv.c (parse_predicate): New.
19650         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19651         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19652
19653 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19654
19655         * common.opt (ftree-loop-if-convert): New flag.
19656         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19657         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19658         when flag_tree_loop_if_convert is set.
19659
19660 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19661
19662         * config/i386/i386.c: Use short syntax for function calls
19663         through function pointers.
19664         * config/i386/i386.md: Ditto.
19665
19666 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19667
19668         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19669
19670 2010-07-08  Richard Guenther  <rguenther@suse.de>
19671
19672         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19673         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19674
19675 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19676
19677         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19678         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19679         (loc_list_from_tree): Likewise.
19680         (output_loc_operands): Handle outputting DW_OP_const[48]u
19681         with loc->dtprel set.
19682         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19683
19684 2010-07-08  Jan Hubicka  <jh@suse.cz>
19685
19686         * ipa.c: Include pointer-set.h
19687         (cgraph_externally_visible_p): New attribute ALIASED;
19688         when in LTO, hidden symbols are local unless they are aliased.
19689         (function_and_variable_visibility): Compute aliased nodes;
19690         handle LTO and hidden symbol on functions and vars.
19691         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19692         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19693
19694 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19695
19696         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19697         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19698         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19699         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19700         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19701         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19702         (ix86_gen_probe_stack_range): Likewise.
19703         (override_options): Set them.
19704         (ix86_target_stack_probe): New function.
19705         (ix86_compute_frame_layout): Force use of push instructions to
19706         save registers if stack checking with probes is enabled.
19707         (get_scratch_register_on_entry): New function.
19708         (release_scratch_register_on_entry): Likewise.
19709         (ix86_adjust_stack_and_probe): Likewise.
19710         (output_adjust_stack_and_probe): Likewise.
19711         (ix86_emit_probe_stack_range): Likewise.
19712         (output_probe_stack_range): Likewise.
19713         (ix86_expand_prologue): Emit stack checking code if static built-in
19714         stack checking is enabled.
19715         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19716         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19717         (output_adjust_stack_and_probe): Likewise.
19718         (output_probe_stack_range): Likewise.
19719         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19720         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19721         TARGET_STACK_PROBE.
19722         (allocate_stack_worker_64): Likewise.
19723         (allocate_stack): Likewise.
19724         (adjust_stack_and_probe): New insn.
19725         (probe_stack_range): Likewise.
19726
19727 2010-07-08  Richard Guenther  <rguenther@suse.de>
19728
19729         PR tree-optimization/44831
19730         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19731         a MEM_REF preserving TBAA info of the original dereference.
19732         Dereference the original pointer if the address is not invariant.
19733         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19734         at least one invariant address that we are going to dereference.
19735
19736 2010-07-08  Richard Guenther  <rguenther@suse.de>
19737
19738         PR tree-optimization/44861
19739         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19740         information when building MEM_REFs.
19741         (vectorizable_load): Likewise.
19742         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19743
19744 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19745
19746         * config/sol2-c.c: Do not include diagnostic-core.h.
19747
19748 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19749
19750         PR bootstrap/44768
19751         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19752         with respect to current_function_decl. Pass decl of the function.
19753         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19754         * ipa-inline.c (compute_inline_parameters): Pass decl to
19755         estimated_stack_frame_size.
19756
19757 2010-07-08  Richard Guenther  <rguenther@suse.de>
19758
19759         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19760         New function.
19761         (valueize_refs): Call it.
19762
19763 2010-07-08  Richard Guenther  <rguenther@suse.de>
19764
19765         PR rtl-optimization/44838
19766         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19767         SSA form do not use pointer equivalence.
19768
19769 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19770
19771         * dwarf2out.c (AT_linkage_name): Delete.
19772         (add_linkage_attr): New function.
19773         (add_linkage_name): Call it to emit the linkage attribute.
19774         (dwarf2out_finish): Likewise.
19775         (move_linkage_attr): Explicitly accept both attribute variants.
19776
19777 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19778
19779         * toplev.h: Do not include diagnostic-core.h.
19780         Include diagnostic-core.h in every file that includes toplev.h.
19781         * c-tree.h: Do not include toplev.h.
19782         * pretty-print.h: Update comment.
19783         * Makefile.in: Update dependencies.
19784         * alias.c: Include diagnostic-core.h in every file that includes
19785         toplev.h.
19786         * attribs.c: Likewise.
19787         * auto-inc-dec.c: Likewise.
19788         * bb-reorder.c: Likewise.
19789         * bt-load.c: Likewise.
19790         * caller-save.c: Likewise.
19791         * calls.c: Likewise.
19792         * cfg.c: Likewise.
19793         * cfganal.c: Likewise.
19794         * cfgbuild.c: Likewise.
19795         * cfgcleanup.c: Likewise.
19796         * cfghooks.c: Likewise.
19797         * cfgloop.c: Likewise.
19798         * combine.c: Likewise.
19799         * config/alpha/alpha.c: Likewise.
19800         * config/arc/arc.c: Likewise.
19801         * config/arm/arm.c: Likewise.
19802         * config/arm/pe.c: Likewise.
19803         * config/avr/avr.c: Likewise.
19804         * config/bfin/bfin.c: Likewise.
19805         * config/cris/cris.c: Likewise.
19806         * config/crx/crx.c: Likewise.
19807         * config/darwin-c.c: Likewise.
19808         * config/darwin.c: Likewise.
19809         * config/fr30/fr30.c: Likewise.
19810         * config/frv/frv.c: Likewise.
19811         * config/h8300/h8300.c: Likewise.
19812         * config/host-darwin.c: Likewise.
19813         * config/i386/i386.c: Likewise.
19814         * config/i386/netware.c: Likewise.
19815         * config/i386/nwld.c: Likewise.
19816         * config/i386/winnt-cxx.c: Likewise.
19817         * config/i386/winnt-stubs.c: Likewise.
19818         * config/i386/winnt.c: Likewise.
19819         * config/ia64/ia64-c.c: Likewise.
19820         * config/ia64/ia64.c: Likewise.
19821         * config/iq2000/iq2000.c: Likewise.
19822         * config/lm32/lm32.c: Likewise.
19823         * config/m32c/m32c-pragma.c: Likewise.
19824         * config/m32c/m32c.c: Likewise.
19825         * config/m32r/m32r.c: Likewise.
19826         * config/m68hc11/m68hc11.c: Likewise.
19827         * config/m68k/m68k.c: Likewise.
19828         * config/mcore/mcore.c: Likewise.
19829         * config/mep/mep-pragma.c: Likewise.
19830         * config/mep/mep.c: Likewise.
19831         * config/mmix/mmix.c: Likewise.
19832         * config/mn10300/mn10300.c: Likewise.
19833         * config/moxie/moxie.c: Likewise.
19834         * config/pa/pa.c: Likewise.
19835         * config/pdp11/pdp11.c: Likewise.
19836         * config/picochip/picochip.c: Likewise.
19837         * config/rs6000/rs6000-c.c: Likewise.
19838         * config/rs6000/rs6000.c: Likewise.
19839         * config/rx/rx.c: Likewise.
19840         * config/s390/s390.c: Likewise.
19841         * config/score/score.c: Likewise.
19842         * config/score/score3.c: Likewise.
19843         * config/score/score7.c: Likewise.
19844         * config/sh/sh.c: Likewise.
19845         * config/sh/symbian-base.c: Likewise.
19846         * config/sh/symbian-c.c: Likewise.
19847         * config/sh/symbian-cxx.c: Likewise.
19848         * config/sol2-c.c: Likewise.
19849         * config/sol2.c: Likewise.
19850         * config/sparc/sparc.c: Likewise.
19851         * config/spu/spu.c: Likewise.
19852         * config/stormy16/stormy16.c: Likewise.
19853         * config/v850/v850-c.c: Likewise.
19854         * config/v850/v850.c: Likewise.
19855         * config/vax/vax.c: Likewise.
19856         * config/vxworks.c: Likewise.
19857         * config/xtensa/xtensa.c: Likewise.
19858         * convert.c: Likewise.
19859         * cse.c: Likewise.
19860         * cselib.c: Likewise.
19861         * dbgcnt.c: Likewise.
19862         * dbxout.c: Likewise.
19863         * ddg.c: Likewise.
19864         * dominance.c: Likewise.
19865         * emit-rtl.c: Likewise.
19866         * explow.c: Likewise.
19867         * expmed.c: Likewise.
19868         * fixed-value.c: Likewise.
19869         * fold-const.c: Likewise.
19870         * fwprop.c: Likewise.
19871         * gcse.c: Likewise.
19872         * ggc-common.c: Likewise.
19873         * ggc-page.c: Likewise.
19874         * ggc-zone.c: Likewise.
19875         * gimple-low.c: Likewise.
19876         * gimplify.c: Likewise.
19877         * graph.c: Likewise.
19878         * haifa-sched.c: Likewise.
19879         * ifcvt.c: Likewise.
19880         * implicit-zee.c: Likewise.
19881         * integrate.c: Likewise.
19882         * ira-build.c: Likewise.
19883         * ira-color.c: Likewise.
19884         * ira-conflicts.c: Likewise.
19885         * ira-costs.c: Likewise.
19886         * ira-lives.c: Likewise.
19887         * ira.c: Likewise.
19888         * lists.c: Likewise.
19889         * loop-doloop.c: Likewise.
19890         * loop-iv.c: Likewise.
19891         * lto-opts.c: Likewise.
19892         * lto-symtab.c: Likewise.
19893         * main.c: Likewise.
19894         * modulo-sched.c: Likewise.
19895         * optabs.c: Likewise.
19896         * params.c: Likewise.
19897         * plugin.c: Likewise.
19898         * postreload-gcse.c: Likewise.
19899         * postreload.c: Likewise.
19900         * predict.c: Likewise.
19901         * profile.c: Likewise.
19902         * real.c: Likewise.
19903         * regcprop.c: Likewise.
19904         * reginfo.c: Likewise.
19905         * regmove.c: Likewise.
19906         * reorg.c: Likewise.
19907         * resource.c: Likewise.
19908         * rtl.c: Likewise.
19909         * rtlanal.c: Likewise.
19910         * sched-deps.c: Likewise.
19911         * sched-ebb.c: Likewise.
19912         * sched-rgn.c: Likewise.
19913         * sdbout.c: Likewise.
19914         * sel-sched-dump.c: Likewise.
19915         * sel-sched-ir.c: Likewise.
19916         * simplify-rtx.c: Likewise.
19917         * stmt.c: Likewise.
19918         * stor-layout.c: Likewise.
19919         * store-motion.c: Likewise.
19920         * targhooks.c: Likewise.
19921         * tree-cfg.c: Likewise.
19922         * tree-cfgcleanup.c: Likewise.
19923         * tree-dump.c: Likewise.
19924         * tree-eh.c: Likewise.
19925         * tree-inline.c: Likewise.
19926         * tree-nomudflap.c: Likewise.
19927         * tree-object-size.c: Likewise.
19928         * tree-optimize.c: Likewise.
19929         * tree-outof-ssa.c: Likewise.
19930         * tree-phinodes.c: Likewise.
19931         * tree-profile.c: Likewise.
19932         * tree-ssa-ccp.c: Likewise.
19933         * tree-ssa-coalesce.c: Likewise.
19934         * tree-ssa-live.c: Likewise.
19935         * tree-ssa-loop-niter.c: Likewise.
19936         * tree-ssa-loop-prefetch.c: Likewise.
19937         * tree-ssa-loop.c: Likewise.
19938         * tree-ssa-structalias.c: Likewise.
19939         * tree-ssa-uninit.c: Likewise.
19940         * tree-ssa.c: Likewise.
19941         * tree-vect-data-refs.c: Likewise.
19942         * tree-vect-loop-manip.c: Likewise.
19943         * tree-vect-loop.c: Likewise.
19944         * tree-vect-patterns.c: Likewise.
19945         * tree-vect-stmts.c: Likewise.
19946         * tree-vrp.c: Likewise.
19947         * varasm.c: Likewise.
19948         * vec.c: Likewise.
19949         * web.c: Likewise.
19950         * xcoffout.c: Likewise.
19951
19952 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
19953
19954         * gengtype.c (write_field_root): New function.
19955         (write_root): Use it.
19956
19957 2010-07-07  Wei Guozhi  <carrot@google.com>
19958
19959         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
19960         of lowest bits to lshift/compare): Add a missing line.
19961
19962 2010-07-07  Wei Guozhi  <carrot@google.com>
19963
19964         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
19965         of lowest bits to lshift/compare): New.
19966
19967 2010-07-07  Tom Tromey  <tromey@redhat.com>
19968
19969         * doc/tm.texi: Update.
19970         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
19971         Add @hook.
19972         * target.def (want_debug_pub_sections): New hook.
19973         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
19974         * dwarf2out.c (add_pubname_string): Check
19975         targetm.want_debug_pub_sections.
19976         (add_pubname): Likewise.
19977         (add_pubtype): Likewise.
19978
19979 2010-07-07  Jie Zhang  <jie@codesourcery.com>
19980
19981         * genautomata.c (output_automata_list_min_issue_delay_code):
19982         Correctly decompress min_issue_delay.
19983
19984 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19985
19986         PR rtl-optimization/44404
19987         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
19988         possible, use reg_overlap_mentioned_p instead.
19989
19990 2010-07-07  Duncan Sands  <baldrick@free.fr>
19991
19992         PR middle-end/41355
19993         * tree.c (build_function_type_skip_args): Copy the original type using
19994         build_distinct_type_copy rather than copy_node.
19995
19996 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
19997
19998         PR target/44850
19999         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20000         revision 161876.
20001         (ix86_expand_prologue): Likewise.
20002         (ix86_handle_fndecl_attribute): Likewise.
20003         (ix86_asm_declare_function_name): Likewise.
20004         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20005         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20006         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20007         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20008         * doc/extend.texi: Likewise.
20009
20010 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20011
20012         PR target/44844
20013         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20014         retry if the carry flag isn't valid.
20015         (rdrand<mode>_1): New.
20016
20017 2010-07-07  Richard Guenther  <rguenther@suse.de>
20018
20019         PR middle-end/44790
20020         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20021         for expanding the constant offset for MEM_REFs.
20022
20023 2010-07-07  Richard Guenther  <rguenther@suse.de>
20024
20025         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20026         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20027         * gimple.h (is_gimple_operand): Remove.
20028         * gimple.c (is_gimple_operand): Likewise.
20029         (walk_gimple_op): Fix wi->val_only setting for calls.
20030         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20031         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20032         invalid gimple calls.
20033
20034 2010-07-06  Jan Hubicka  <jh@suse.cz>
20035
20036         * lto-cgraph.c (output_cgraph): Add missing declaration.
20037
20038 2010-07-06  Jan Hubicka  <jh@suse.cz>
20039
20040         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20041         partition.
20042
20043 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20044
20045         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20046         * doc/rtl.texi (Debug Information): New node.
20047         (NOTE_INSN_VAR_LOCATION): Document.
20048         (debug_insn): Likewise.
20049         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20050
20051 2010-07-07  Jan Hubicka  <jh@suse.cz>
20052
20053         With parts by Richard Guenther.
20054
20055         PR middle-end/44813
20056         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20057         for functions passed by reference.
20058         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20059         in memory when passed by reference.
20060         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20061         beggining.
20062         * ipa-split.c (split_function): Cleanup way return value is passed;
20063         handle SSA DECL_BY_REFERENCE retvals.
20064         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20065         DECL_BY_REFERENCE is set.
20066         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20067         find_what_p_points_to): Handle RESULT_DECL.
20068         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20069         when passing by reference ensure that RESULT_DECL is gimple_val.
20070         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20071         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20072
20073 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20074
20075         PR rtl-optimization/44787
20076         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20077         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20078
20079 2010-07-06  Jan Hubicka  <jh@suse.cz>
20080
20081         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20082         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20083         with body can prevail.
20084         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20085         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20086         * cgraph.c (cgraph_get_node_or_alias): New function.
20087         * cgraph.h (cgraph_get_node_or_alias): Declare.
20088
20089 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20090
20091         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20092         support.
20093         (ix86_expand_prologue): Likewise.
20094         (ix86_handle_fndecl_attribute): Likewise.
20095         (ix86_asm_declare_function_name): New function for
20096         ASM_DECLARE_FUNCTION_NAME.
20097         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20098         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20099         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20100         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20101         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20102         attribute.
20103
20104 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20105
20106         * config/i386/i386.md (immediate_operand): New mode attribute.
20107
20108         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20109         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20110         using P mode iterator.
20111         (pro_epilogue_adjust_stack_di_2): Rename from
20112         pro_epilogue_adjust_stack_rex64_2.
20113
20114         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20115
20116 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20117
20118         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20119         through gen_mov_insv_1 function pointer.
20120         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20121         gen_truncxf<mode>2 through gen_truncxf function pointer.
20122         (remainder<mode>3): Ditto.
20123         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20124         (allocate_stack): Call gen_allocate_stack_worker_64 or
20125         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20126         function pointer.
20127         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20128         function pointer.
20129
20130 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20131
20132         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20133         operand constraint instead of <r><i>m.
20134
20135 2010-07-06  Richard Guenther  <rguenther@suse.de>
20136
20137         PR middle-end/44828
20138         * convert.c (convert_to_integer): Watch out for overflowing
20139         MULT_EXPR as well.
20140
20141 2010-07-05  Jan Hubicka  <jh@suse.cz>
20142
20143         * lto-streamer.c (write_symbol_vec): Rename to ...
20144         (write_symbol) ... this one; write only symbol given and when
20145         present in cache. Sanity check that what is defined is present
20146         in cgraph/varpool with body/finalized decl.
20147         (write_symbols_of_kind): Remove.
20148         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20149         pairs to produce symtab.
20150         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20151         when doing WPA streaming.
20152
20153 2010-07-05  Jan Hubicka  <jh@suse.cz>
20154
20155         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20156         function is still available to fold into.
20157
20158 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20159
20160         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20161         * function.h (struct_function): Change type of local_decls field
20162         to a VEC.
20163         (add_local_decl): New function.
20164         (FOR_EACH_LOCAL_DECL): New macro.
20165         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20166         cfun->local_decls.
20167         (estimated_stack_frame_size): Likewise.
20168         (expand_used_vars): Likewise.
20169         * cgraphbuild.c (build_cgraph_edges): Likewise.
20170         * function.c (instantiate_decls_1): Likewise.
20171         * ipa-struct-reorg.c (build_data_structure): Likewise.
20172         * ipa-type-escape.c (analyze_function): Likewise.
20173         * lto-streamer-in.c (input_function): Likewise.
20174         * lto-streamer-out.c (output_function): Likewise.
20175         * tree-ssa-live.c (remove_unused_locals): Likewise.
20176         * tree.c (free_lang_data_in_decl): Likewise.
20177         (find_decls_types_in_node): Likewise.
20178         * omp-low.c (remove_exit_barrier): Likewise.
20179         (expand_omp_taskreg): Likewise.
20180         (list2chain): Rename to...
20181         (vec2chain): ...this.  Adjust.
20182         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20183         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20184         * gimple-low.c (record_vars_into): Likewise.
20185         * tree-inline.c (remap_decls): Likewise.
20186         (declare_return_variable): Likewise.
20187         (declare_inline_vars): Likewise.
20188         (copy_forbidden): Adjust for new type of cfun->local_decls.
20189         (add_local_variables): New function.
20190         (expand_call_inline): Call it.
20191         (tree_function_versioning): Likewise.
20192
20193 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20194
20195         AVX Programming Reference (June, 2010)
20196         * config/i386/cpuid.h (bit_F16C): New.
20197         (bit_RDRND): Likewise.
20198         (bit_FSGSBASE): Likewise.
20199
20200         * config/i386/i386-builtin-types.def: Add
20201         "DEF_FUNCTION_TYPE (UINT16)", function types for
20202         float16 <-> float conversions and
20203         "DEF_FUNCTION_TYPE (VOID, UINT64)".
20204
20205         * config/i386/i386-c.c (ix86_target_macros_internal): Support
20206         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
20207         OPTION_MASK_ISA_F16C.
20208
20209         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
20210         (OPTION_MASK_ISA_RDRND_SET): Likewise.
20211         (OPTION_MASK_ISA_F16C_SET): Likewise.
20212         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
20213         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
20214         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
20215         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
20216         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
20217         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
20218         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
20219         (override_options): Handle them.
20220         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
20221         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
20222         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
20223         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
20224         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
20225         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
20226         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
20227         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
20228         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
20229         (bdesc_args): Likewise.
20230         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
20231         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
20232         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
20233         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
20234         Handle non-memory store.
20235
20236         * config/i386/i386.h (TARGET_FSGSBASE): New.
20237         (TARGET_RDRND): Likewise.
20238         (TARGET_F12C): Likewise.
20239
20240         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
20241         (UNSPEC_VCVTPS2PH): Likewise.
20242         (UNSPECV_RDFSBASE): Likewise.
20243         (UNSPECV_RDGSBASE): Likewise.
20244         (UNSPECV_WRFSBASE): Likewise.
20245         (UNSPECV_WRGSBASE): Likewise.
20246         (UNSPECV_RDRAND): Likewise.
20247         (rdfsbase<mode>): Likewise.
20248         (rdgsbase<mode>): Likewise.
20249         (wrfsbase<mode>): Likewise.
20250         (wrgsbase<mode>): Likewise.
20251         (rdrand<mode>): Likewise.
20252
20253         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
20254
20255         * config/i386/immintrin.h (_rdrand_u16): New.
20256         (_rdrand_u32): Likewise.
20257         (_readfsbase_u32): Likewise.
20258         (_readfsbase_u64): Likewise.
20259         (_readgsbase_u32): Likewise.
20260         (_readgsbase_u64): Likewise.
20261         (_writefsbase_u32): Likewise.
20262         (_writefsbase_u64): Likewise.
20263         (_writegsbase_u32): Likewise.
20264         (_writegsbase_u64): Likewise.
20265         (_rdrand_u64): Likewise.
20266         (_cvtsh_ss): Likewise.
20267         (_mm_cvtph_ps): Likewise.
20268         (_mm256_cvtph_ps): Likewise.
20269         (_cvtss_sh): Likewise.
20270         (_mm_cvtps_ph): Likewise.
20271         (_mm256_cvtps_ph): Likewise.
20272
20273         * config/i386/sse.md (vcvtph2ps): New.
20274         (*vcvtph2ps_load): Likewise.
20275         (vcvtph2ps256): Likewise.
20276         (vcvtps2ph): Likewise.
20277         (*vcvtps2ph): Likewise.
20278         (*vcvtps2ph_store): Likewise.
20279         (vcvtps2ph256): Likewise.
20280
20281         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
20282
20283         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
20284
20285 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
20286
20287         PR bootstrap/44512
20288         * genenums.c (main): Output include of insn-constants.h
20289         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
20290
20291 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
20292
20293         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
20294         (override_options): Initialize it.
20295         (ix86_expand_prologue): Use it.
20296
20297 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20298
20299         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
20300
20301 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20302
20303         * double-int.h (fit_double_type): Remove declaration.
20304         * double-int.c (fit_double_type): Remove function.
20305         * tree.h (int_fits_type_p): Adjust prototype.
20306         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
20307         instead of fit_double_type.
20308         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
20309         instead of fit_double_type and build_int_cst_wide.
20310         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
20311         instead of fit_double_type and build_int_cst_wide.
20312         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
20313         of fit_double_type.
20314
20315 2010-07-05  Jan Hubicka  <jh@suse.cz>
20316
20317         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
20318         in_other_partition.
20319         * lto-cgraph.c (referenced_from_other_partition_p,
20320         reachable_from_other_partition_p): Use in_other_partition flags.
20321         (output_node, output_varpool_node): COMDAT nodes always have private
20322         copies and thus are never used from other partition.
20323
20324 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20325
20326         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20327         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
20328         * config/ia64/ia64.c Include reload.h.
20329         (ia64_memory_move_cost): New function.
20330         (TARGET_MEMORY_MOVE_COST): Define.
20331         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
20332         memory_move_cost.
20333
20334 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
20335
20336         PR middle-end/42505
20337         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
20338         comments about cost model.
20339         (try_add_cand_for):  Add second strategy for choosing initial set
20340         based on original IVs, controlled by ORIGINALP argument.
20341         (get_initial_solution): Add ORIGINALP argument.
20342         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
20343         (find_optimal_iv_set): Try two different strategies for choosing
20344         the IV set, and return the one with lower cost.
20345
20346 2010-07-05  Richard Guenther  <rguenther@suse.de>
20347
20348         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
20349
20350 2010-07-05  Richard Guenther  <rguenther@suse.de>
20351
20352         * tree.c (reference_alias_ptr_type): New function.
20353         * tree.h (reference_alias_ptr_type): Declare.
20354         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
20355         allow non-TARGET_MEM_REF new refs.
20356         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
20357         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
20358         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
20359         (create_mem_ref): Get alias pointer type.  Adjust calls to
20360         create_mem_ref_raw.
20361         (maybe_fold_tmr): Likewise.
20362         * tree-flow.h (create_mem_ref): Adjust prototype.
20363
20364 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20365
20366         PR c++/44808
20367         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20368         *from_p is VAR_DECL.
20369
20370 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20371
20372         * tree.h (build_call_list): Remove.
20373         * tree.c (build_call_list): Remove.
20374
20375 2010-07-05  Richard Guenther  <rguenther@suse.de>
20376
20377         * double-int.h (double_int_sub): Declare.
20378         * double-int.c (double_int_sub): New function.
20379         * dwarf2out.c (field_byte_offset): Use it.
20380         * fixed-value.c (do_fixed_add): Likewise.
20381         (do_fixed_multiply): Likewise.
20382         (do_fixed_divide): Likewise.
20383         * tree-predcom.c (add_ref_to_chain): Likewise.
20384         (determine_roots_comp): Likewise.
20385         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20386
20387 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20388
20389         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20390         implementations.
20391
20392 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20393
20394         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20395         * arm-modes.def (CC_NOTB): Don't define.
20396         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20397         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20398         (LTUGEU): New code_iterator.
20399         (cnb, optab): New corresponding code_attrs.
20400         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20401         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20402         using LTUGEU.
20403         (addsi3_carryin_shift_<optab>): Likewise.
20404         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20405         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20406         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20407         (subsi3_compare): Renamed from subsi3_compare0_c.
20408         Change CC_NOTB to CC.
20409         (arm_subsi3_insn): Allow constants for operand 0.
20410         (compare_scc peephole for eq case): New.
20411         (compare_scc splitters): Change CC_NOTB to CC.
20412
20413 2010-07-05  Richard Guenther  <rguenther@suse.de>
20414
20415         * tree-ssa-loop-im.c (for_each_index): Do not handle
20416         ALIGN_INDIRECT_REF.
20417         (gen_lsm_tmp_name): Likewise.
20418         * tree-dump.c (dequeue_and_dump): Likewise.
20419         * tree-pretty-print.c (dump_generic_node): Likewise.
20420         (op_code_prio): Likewise.
20421         (op_symbol_code): Likewise.
20422         * tree.c (staticp): Likewise.
20423         (build1_stat): Likewise.
20424         * tree.h (INDIRECT_REF_P): Likewise.
20425         * fold-const.c (maybe_lvalue_p): Likewise.
20426         (operand_equal_p): Likewise.
20427         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20428         (ao_ref_init_from_vn_reference): Likewise.
20429         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20430         (find_interesting_uses_address): Likewise.
20431         * dwarf2out.c (loc_list_from_tree): Likewise.
20432         * gimplify.c (gimplify_expr): Likewise.
20433         * tree-eh.c (tree_could_trap_p): Likewise.
20434         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20435         * cfgexpand.c (expand_debug_expr): Likewise.
20436         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20437         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20438         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20439         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20440         * tree-ssa-operands.c (get_expr_operands): Likewise.
20441         * expr.c (safe_from_p): Likewise.
20442         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20443         * tree-vect-data-refs.c (vect_setup_realignment): Build
20444         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20445         * tree-vect-stmts.c (vectorizable_load): Likewise.
20446         * tree.def (ALIGN_INDIRECT_REF): Remove.
20447
20448 2010-07-05  Richard Guenther  <rguenther@suse.de>
20449
20450         PR tree-optimization/44784
20451         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20452         for inserted stmts.
20453         (find_or_generate_expression): Fix SCCVN insertion check.
20454
20455 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20456
20457         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20458         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20459         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20460         directives.
20461
20462 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20463
20464         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20465         statements that are not vectorized.
20466         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20467         in INSIDE_COST.
20468
20469 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20470
20471         PR bootstrap/44820
20472         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20473
20474 2010-07-05  Richard Guenther  <rguenther@suse.de>
20475
20476         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20477         RESULT_DECLs properly.
20478
20479 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20480
20481         PR rtl-optimization/44695
20482         * config/i386/i386.md (extract_code): Removed.
20483         (<u>divmodqi4): Likewise.
20484         (divmodqi4): New.
20485         (udivmodqi4): Likewise.
20486         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20487         (udivmodhiqi3): Likewise.
20488
20489 2010-07-04  Jan Hubicka  <jh@suse.cz>
20490
20491         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20492
20493 2010-07-04  Jan Hubicka  <jh@suse.cz>
20494
20495         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20496         is not already initialized.
20497
20498 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20499
20500         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20501         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20502         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20503         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20504         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20505         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20506         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20507         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20508         (sync_new_nand_optab): Redefine as macros.
20509         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20510         Delete.
20511         (direct_optab_index): New enum.
20512         (direct_optab_d): New structure.
20513         (direct_optab): New typedef.
20514         (direct_optab_table): Declare.
20515         (direct_optab_handler, set_direct_optab_handler): New functions.
20516         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20517         (sync_lock_release_optab): New macros.
20518         * optabs.c (direct_optab_table): New variable.
20519         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20520         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20521         cmpstr_optab and cmpstrn_optab.
20522         (emit_conditional_move): Likewise for movcc_optab.
20523         (can_conditionally_move_p): Likewise for movcc_gen_code.
20524         (init_insn_codes): Clear direct_optab_table.
20525         (init_optabs): Don't initialize the new "direct optabs" here.
20526         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20527         vcond_gen_code.
20528         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20529         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20530         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20531         (expand_sync_operation): Likewise other sync_*_optabs.
20532         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20533         to sync_compare_and_swap_optab.
20534         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20535         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20536         to the names of both.
20537         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20538         cmpstr_optab and cmpstrn_optab.
20539         (expand_builtin_lock_release): Likewise sync_lock_release.
20540         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20541         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20542         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20543         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20544         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20545         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20546         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20547         (sync_lock_test_and_set, sync_lock_release): Delete.
20548         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20549         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20550         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20551         macro optabs.
20552         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20553         the "optab" local variable.  Use direct_optab_handler for optab and
20554         sync_compare_and_swap_optab.
20555         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20556         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20557         reload_in_optab and reload_out_optab.
20558         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20559         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20560         * config/pa/pa.c (pa_secondary_reload): Likewise.
20561         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20562         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20563         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20564         (VMSupportsCS8_builtin): Likewise.
20565
20566 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20567
20568         * optabs.h (optab_handlers): Change type of insn_code to int.
20569         (optab_handler, set_optab_handler, convert_optab_handler)
20570         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20571         CODE_FOR_nothing".
20572         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20573         (init_insn_codes): Zero both the above arrays.
20574         (init_optabs): Never call init_insn_codes first time around.
20575
20576 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20577
20578         * optabs.h (optab_handler, convert_optab_handler): Turn into
20579         inline functions that return an insn code.
20580         (set_optab_handler, set_convert_optab_handler): New functions.
20581         * builtins.c: Replace optab_handler(X)->insn_code with
20582         optab_handler or set_optab_handler thoughout.  Likewise
20583         convert_optab_handler(X)->insn_code with convert_optab_handler
20584         and set_convert_optab_handler.
20585         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20586         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20587         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20588         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20589         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20590         config/spu/spu.c: Likewise.
20591
20592 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20593
20594         PR target/44531
20595         * config.gcc (sh*-*-*): Use regular expressions instead of
20596         the 'i' modifier for sed substitutions.
20597
20598 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20599
20600         * gimple.c (gimple_body): Comments added.
20601
20602 2010-07-04  Richard Guenther  <rguenther@suse.de>
20603
20604         PR middle-end/44809
20605         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20606         of an INDIRECT_REF.
20607
20608 2010-07-04  Richard Guenther  <rguenther@suse.de>
20609
20610         PR tree-optimization/44479
20611         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20612         extra SSA name copy statements which preserves points-to
20613         information.
20614         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20615         Copy points-to information for all pointers.  Properly handle
20616         MEM_REFs.
20617         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20618         copy statements.
20619         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20620         dependency.
20621
20622 2010-07-04  Richard Guenther  <rguenther@suse.de>
20623
20624         PR middle-end/44785
20625         * tree-inline.c (initialize_inlined_parameters): Do not
20626         re-use pointer-map slot over remap_type call.
20627
20628 2010-07-04  Richard Guenther  <rguenther@suse.de>
20629
20630         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20631
20632 2010-07-04  Richard Guenther  <rguenther@suse.de>
20633
20634         PR tree-optimization/44656
20635         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20636         again after value-replacing in the defintions lhs.
20637
20638 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20639             Revital Eres  <eres@il.ibm.com>
20640
20641         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20642         Document new arguments.
20643         * doc/tm.texi: Regenerate.
20644         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20645         Handle unaligned store.
20646         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20647         * target.def (builtin_vectorization_cost): Add new arguments.
20648         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20649         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20650         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20651         (vect_vfa_segment_size): Fix indentation.
20652         * tree-vectorizer.h (struct _vect_peel_info): New.
20653         (struct _vect_peel_extended_info): New.
20654         (struct _loop_vec_info): Add new field for peeling hash table and a
20655         macro for its access.
20656         (VECT_MAX_COST): Define.
20657         (vect_get_load_cost): Declare.
20658         (vect_get_store_cost, vect_get_known_peeling_cost,
20659         vect_get_single_scalar_iteraion_cost): Likewise.
20660         (vect_supportable_dr_alignment): Add new argument.
20661         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20662         field.
20663         (destroy_loop_vec_info): Free peeling hash table.
20664         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20665         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20666         vect_analyze_slp. Fix indentation.
20667         (vect_get_single_scalar_iteraion_cost): New function.
20668         (vect_get_known_peeling_cost): Likewise.
20669         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20670         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20671         statement. Move outside cost calculation inside unknown peeling case.
20672         Call vect_get_known_peeling_cost for known amount of peeling.
20673         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20674         reference to the print message of forced alignment.
20675         (vect_verify_datarefs_alignment): Update call to
20676         vect_supportable_dr_alignment.
20677         (vect_get_data_access_cost): New function.
20678         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20679         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20680         vect_peeling_hash_choose_best_peeling): Likewise.
20681         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20682         to store all the accesses in the loop and find best possible access to
20683         align using peeling for known alignment case. For unknown alignment
20684         check if stores are preferred or if peeling is worthy.
20685         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20686         (vect_supportable_dr_alignment): Add new argument and check aligned
20687         accesses according to it.
20688         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20689         (cost_for_stmt): Call vect_get_stmt_cost.
20690         (vect_model_simple_cost): Likewise.
20691         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20692         vect_get_store_cost to calculate the cost of the statement.
20693         (vect_get_store_cost): New function.
20694         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20695         vect_get_load_cost to calculate the cost of the statement.
20696         (vect_get_load_cost): New function.
20697         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20698         (vectorizable_load): Likewise.
20699         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20700         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20701         arguments. Handle unaligned store.
20702         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20703         (rs6000_builtin_support_vector_misalignment): Return true for word and
20704         double word alignments for VSX.
20705         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20706         vect_supportable_dr_alignment and builtin_vectorization_cost.
20707
20708 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20709
20710         PR target/44597
20711         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20712         (prefetch_nocc_operand): Likewise.
20713         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20714         (prefetch_20): New insn.
20715         (prefetch_cc): Remove.
20716         (prefetch_nocc): Likewise.
20717
20718 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20719
20720         * expr.c (vector_mode_valid_p): Move to c-common.c.
20721         * expr.h (vector_mode_valid_p): Do not declare here.
20722         * system.h: Poison GCC_EXPR_H in front-ends.
20723         * Makefile.in: Update dependencies.
20724
20725 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20726
20727         PR target/44705
20728         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20729
20730 2010-07-03  Jan Hubicka  <jh@suse.cz>
20731
20732         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20733         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20734         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20735         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20736         Likewise.
20737
20738         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20739         Update timevars.V
20740         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20741         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20742         TV_IPA_LTO_DECL_OUT): New.
20743         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20744
20745 2010-07-03  Jan Hubicka  <jh@suse.cz>
20746
20747         * ipa-inline.c (update_edge_key): Break out from ...
20748         update_callers_keys): ... here;
20749         (update_callee_keys): Update only the edges from caller to callee.
20750         (update_all_calle_keys): Do what update_calle_keys did.
20751         (decide_inlining_of_small_functions): Avoid recomputing of all
20752         callees when badness increase.
20753
20754 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20755
20756         * config/arm/arm.c (arm_attr_length_move_neon): New.
20757         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20758         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20759         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20760         to compute length attribute.
20761
20762 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20763
20764         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20765         as predicate for operand 1 and remove its constraint.
20766         * config/arm/predicates.md (vfp_register_operand): New.
20767         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20768         (*push_fp_multi): Likewise.
20769
20770 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20771
20772         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20773
20774 2010-07-03  Jan Hubicka  <jh@suse.cz>
20775
20776         * config/i386/i386.c (override_options): Revert accidental commit.
20777
20778 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20779
20780         PR c++/44128
20781         * doc/invoke.texi: Update documentation of -Wshadow.
20782
20783 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20784             Julian Brown  <julian@codesourcery.com>
20785             Sandra Loosemore  <sandra@codesourcery.com>
20786
20787         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20788         comparisons.  Adjust to take both operands.
20789         (arm_select_cc_mode): Handle DImode comparisons.
20790         (arm_gen_compare_reg): Generate a scratch register for DImode
20791         comparisons which require one.  Use xor for Thumb equality checks.
20792         (arm_const_double_by_immediates): New.
20793         (arm_print_operand): Allow 'Q' and 'R' for constants.
20794         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20795         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20796         arm_canonicalize_comparison.
20797         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20798         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20799         prototype.
20800         (arm_const_double_by_immediates): Declare.
20801         * config/arm/constraints.md (Di): New constraint.
20802         * config/arm/predicates.md (arm_immediate_di_operand)
20803         (arm_di_operand, cmpdi_operand): New.
20804         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20805         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20806         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20807         (cstoredi4): Handle non-Cirrus also.
20808
20809 2010-07-02  Julian Brown  <julian@codesourcery.com>
20810             Sandra Loosemore  <sandra@codesourcery.com>
20811
20812         PR target/43703
20813         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20814         (smax<mode>3): Disable for NEON float modes when
20815         flag_unsafe_math_optimizations is false.
20816         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20817         (*mul<mode>3_neon)
20818         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20819         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20820         for NEON float modes when flag_unsafe_math_optimizations is false.
20821         (quad_halves_<code>v4sf): Only enable if
20822         flag_unsafe_math_optimizations is true.
20823         * doc/invoke.texi (ARM Options): Add note about floating point
20824         vectorization requiring -funsafe-math-optimizations.
20825
20826 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20827             Julian Brown  <julian@codesourcery.com>
20828
20829         * config/arm/neon.md (UNSPEC_VABA): Delete.
20830         (UNSPEC_VABAL): Delete.
20831         (UNSPEC_VABS): Delete.
20832         (UNSPEC_VMUL_N): Delete.
20833         (adddi3_neon): New.
20834         (subdi3_neon): New.
20835         (mul<mode>3add<mode>_neon): Make the pattern named.
20836         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20837         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20838         unspec parts...
20839         (neon_vadd<mode>_unspec): ...to this.
20840         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20841         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20842         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20843         (neon_vaba<mode>): Rewrite in terms of vabd.
20844         (neon_vabal<mode>): Rewrite in terms of vabdl.
20845         (neon_vabs<mode>): Rewrite without unspec.
20846         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
20847         (*arm_subdi3): Likewise.
20848         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
20849         No_op attribute to disable assembly output checks.
20850         * config/arm/arm_neon.h: Regenerated.
20851         * doc/arm-neon-intrinsics.texi: Regenerated.
20852
20853 2010-07-02  Jan Hubicka  <jh@suse.cz>
20854
20855         * ipa-split.c (split_function): For aggregate values, set the return
20856         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
20857         *<retval> = fncall.part ().
20858         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
20859
20860 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20861
20862         * config/arm/neon.md (UNSPEC_VAND): Delete.
20863         (UNSPEC_VBIC): Delete.
20864         (UNSPEC_VCLZ): Delete.
20865         (UNSPEC_VCNT): Delete.
20866         (UNSPEC_VEOR): Delete.
20867         (UNSPEC_VORN): Delete.
20868         (UNSPEC_VORR): Delete.
20869         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
20870         core registers too.
20871         (anddi3_neon): Likewise.
20872         (orndi3_neon): Likewise.
20873         (bicdi3_neon): Likewise.
20874         (xordi3_neon): Likewise.
20875         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
20876         rid of unspec and handle unused operand.
20877         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
20878         * config/arm/predicates.md (imm_for_neon_logic_operand):
20879         Require TARGET_NEON.
20880         (imm_for_neon_inv_logic_operand): Likewise.
20881         * config/arm/arm.md (define_split for logical_binary_operator):
20882         Disable for NEON registers.
20883         (anddi3): Add new define_expand, and rename the insn.  Disable
20884         this insn for NEON, where anddi3_neon now applies.
20885         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
20886         (iordi3): As for anddi3.
20887         (xordi3): Likewise.
20888         * config/arm/neon.ml (Vand): Split DImode variants and mark them
20889         as No_op to disable testing for exact instruction match.
20890         (Vorr): Likewise.
20891         (Veor): Likewise.
20892         (Vbic): Likewise.
20893         (Vorn): Likewise.
20894         * config/arm/arm_neon.h: Regenerated.
20895         * doc/arm-neon-intrinsics.texi: Regenerated.
20896
20897 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20898
20899         * expr.h (emit_stack_probe): Declare.
20900         * explow.c (emit_stack_probe): Make global.
20901         (anti_adjust_stack_and_probe): Fix comments.
20902         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20903         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20904         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20905         * config/sparc/sparc.c: Include except.h.
20906         (sparc_emit_probe_stack_range): New function.
20907         (output_probe_stack_range): Likewise.
20908         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
20909         built-in stack checking is enabled.
20910         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
20911         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20912         (probe_stack_range): New insn.
20913
20914 2010-07-02  Richard Guenther  <rguenther@suse.de>
20915
20916         PR target/43958
20917         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
20918         for argument alignment.
20919
20920 2010-07-02  Jan Hubicka  <jh@suse.cz>
20921
20922         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
20923         walk backwards from entry_bb to check only those basic block of header
20924         that might lead to execution of split part.
20925         (consider_split) ... here.
20926         (find_return_bb): Allow assignment in return BB.
20927         (find_retval): New.
20928         (split_function): Fix name of cloned function; take care of updating
20929         return value in return_bb containing move.
20930
20931 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
20932
20933         PR target/44771
20934         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
20935         used variable insn.
20936
20937 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20938
20939         * implicit-zee.c (combine_reaching_defs): Fix long lines.
20940         (is_set_with_extension_DI): Delete.
20941         (struct zero_extend_info): New structure.
20942         (add_removable_zero_extend): New function.
20943         (find_removable_zero_extends): Use note_stores to find SETs.
20944         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
20945
20946 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
20947
20948         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
20949         is_miss_rate_acceptable. Pull total_positions computation
20950         out of the loops.  Early return if miss_positions exceeds
20951         the acceptable threshold.
20952         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
20953         is_miss_rate_acceptable after renaming of compute_miss_rate.
20954
20955 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
20956
20957         PR middle-end/44576
20958         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
20959         of 1000) for miss rate if the address diference is greater than or
20960         equal to the cache line size (the two reference will never hit the
20961         same cache line).
20962
20963 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
20964
20965         PR target/42835
20966         * config/arm/arm-modes.def (CC_NOTB): New mode.
20967         * config/arm/arm.c (get_arm_condition_code): Handle it.
20968         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
20969         * config/arm/arm.md (subsi3_compare0_c): New pattern.
20970         (compare_scc): Now a define_and_split.  Add a number of extra
20971         splitters before it.
20972
20973         PR target/42172
20974         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
20975         and ZERO_EXTEND.
20976         (arm_rtx_costs_1): Likewise.
20977         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
20978         * config/arm/arm.md (is_arch6): New attribute.
20979         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
20980         extendqisi2): Tighten the code somewhat, avoiding invalid
20981         RTL to occur in the expander patterns.
20982         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
20983         (thumb1_zero_extendhisi2_v6): Delete.
20984         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
20985         (thumb1_extendhisi2_v6): Delete.
20986         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
20987         (thumb1_extendqisi2_v6): Delete.
20988         (zero_extendhisi2 for register input splitter): New.
20989         (zero_extendqisi2 for register input splitter): New.
20990         (thumb1_extendhisi2 for register input splitter): New.
20991         (extendhisi2 for register input splitter): New.
20992         (extendqisi2 for register input splitter): New.
20993         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
20994         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
20995         and add support for a register alternative requiring a split.
20996         (thumb1_zero_extendqisi2): Likewise.
20997         (arm_zero_extendqisi2): Likewise.
20998         (arm_extendhisi2): Likewise.
20999         (arm_extendqisi2): Likewise.
21000
21001 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21002
21003         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21004         instead of an unspec.
21005         (neon_expand_vector_init): Likewise.
21006         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21007         (UNSPEC_VDUP_LANE): Delete.
21008         (UNSPEC VDUP_N): Delete.
21009         (UNSPEC_VGET_HIGH): Delete.
21010         (UNSPEC_VGET_LANE): Delete.
21011         (UNSPEC_VGET_LOW): Delete.
21012         (UNSPEC_VMVN): Delete.
21013         (UNSPEC_VSET_LANE): Delete.
21014         (V_double_vector_mode): New.
21015         (vec_set<mode>_internal): Make code emitted match that for the
21016         corresponding intrinsics.
21017         (vec_setv2di_internal): Likewise.
21018         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21019         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21020         (neon_vset_lane<mode>): Combine double and quad patterns and
21021         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21022         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21023         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21024         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21025         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21026         with neon_vdup_lanev2di, adjusting the pattern from the latter
21027         to be predicable for consistency.
21028         (neon_vdup_lane<mode>_internal): New.
21029         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21030         to avoid using an unspec.
21031         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21032         (neon_vdup_lanev2di): Turn into a define_expand.
21033         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21034         (neon_vget_high<mode>): Replace with....
21035         (neon_vget_highv16qi): New pattern using canonical RTL.
21036         (neon_vget_highv8hi): Likewise.
21037         (neon_vget_highv4si): Likewise.
21038         (neon_vget_highv4sf): Likewise.
21039         (neon_vget_highv2di): Likewise.
21040         (neon_vget_low<mode>): Replace with....
21041         (neon_vget_lowv16qi): New pattern using canonical RTL.
21042         (neon_vget_lowv8hi): Likewise.
21043         (neon_vget_lowv4si): Likewise.
21044         (neon_vget_lowv4sf): Likewise.
21045         (neon_vget_lowv2di): Likewise.
21046
21047         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21048         test for this emitting vmov.
21049         (Vset_lane): Likewise.
21050         (Vdup_n): Likewise.
21051         (Vmov_n): Likewise.
21052
21053         * doc/arm-neon-intrinsics.texi: Regenerated.
21054
21055 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21056
21057         * config/arm/neon.md (vec_extractv2di): Correct error in register
21058         numbering to reconcile with neon_vget_lanev2di.
21059
21060 2010-07-02  Richard Guenther  <rguenther@suse.de>
21061
21062         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21063         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21064         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21065         points-to information.
21066
21067 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21068
21069         * config/s390/s390.c (override_options): Adopt prefetching
21070         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21071
21072 2010-07-02  Jan Hubicka  <jh@suse.cz>
21073
21074         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21075         (df_set_note): Just call add_reg_note.
21076         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21077         df_create_unused_note): Do not deal with lists of old notes.
21078         (df_note_bb_compute): Likewise.
21079
21080 2010-07-02  Richard Guenther  <rguenther@suse.de>
21081
21082         * tree-ssa-structalias.c (find_func_aliases): Handle
21083         pointer alignment via BIT_AND_EXPR.
21084         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21085
21086 2010-07-02  Richard Guenther  <rguenther@suse.de>
21087
21088         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21089         mismatching number of dimensions properly.
21090
21091 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21092
21093         PR target/44707
21094         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21095         (lo_sum (high ...) ...) patterns generated by earlier passes.
21096
21097 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21098
21099         * doc/install.texi (Prerequisites): Document Perl requirement on
21100         Solaris 2.
21101         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21102
21103 2010-07-02  Richard Guenther  <rguenther@suse.de>
21104
21105         PR middle-end/44777
21106         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21107
21108 2010-07-02  Jan Hubicka  <jh@suse.cz>
21109
21110         PR middle-end/44706
21111         * predict.c (predict_paths_for_bb): Handle case when control dependence
21112         BB has only abnormal edges.
21113
21114 2010-07-02  Richard Guenther  <rguenther@suse.de>
21115
21116         PR tree-optimization/44748
21117         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21118         the embedded conversion in MEM_REFs.
21119
21120 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21121
21122         * reload.c: Include toplev.h.
21123         * recog.c:  Likewise.
21124         * Makefile.in: Adjust dependencies.
21125
21126 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21127
21128         PR debug/44694
21129         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21130         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21131
21132 2010-07-01  Richard Guenther  <rguenther@suse.de>
21133
21134         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21135         types for offsets.
21136
21137 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21138
21139         PR target/44732
21140         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21141         Fix argument types.
21142
21143 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21144
21145         PR target/44727
21146         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21147         Make sure operand 0 dies.
21148
21149 2010-07-01  Richard Guenther  <rguenther@suse.de>
21150
21151         PR middle-end/42834
21152         PR middle-end/44468
21153         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21154         * doc/generic.texi (References to storage): Document MEM_REF.
21155         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21156         (print_call_name): Likewise.
21157         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21158         (build_simple_mem_ref_loc): New function.
21159         (mem_ref_offset): Likewise.
21160         * tree.h (build_simple_mem_ref_loc): Declare.
21161         (build_simple_mem_ref): Define.
21162         (mem_ref_offset): Declare.
21163         * fold-const.c: Include tree-flow.h.
21164         (operand_equal_p): Handle MEM_REF.
21165         (build_fold_addr_expr_with_type_loc): Likewise.
21166         (fold_comparison): Likewise.
21167         (fold_unary_loc): Fold
21168         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21169         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21170         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21171         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21172         (ptr_deref_may_alias_ref_p_1): Likewise.
21173         (ao_ref_base_alias_set): Properly differentiate base object for
21174         offset and TBAA.
21175         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21176         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21177         (indirect_refs_may_alias_p): Likewise.
21178         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21179         chasing code.
21180         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21181         (call_may_clobber_ref_p_1): Likewise.
21182         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21183         * expr.c (expand_assignment): Handle MEM_REF.
21184         (store_expr): Handle MEM_REFs from STRING_CSTs.
21185         (store_field): If expanding a MEM_REF of a non-addressable
21186         decl use bitfield operations.
21187         (get_inner_reference): Handle MEM_REF.
21188         (expand_expr_addr_expr_1): Likewise.
21189         (expand_expr_real_1): Likewise.
21190         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21191         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21192         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21193         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21194         (dr_analyze_indices): Likewise.
21195         (dr_analyze_alias): Likewise.
21196         (object_address_invariant_in_loop_p): Likewise.
21197         * gimplify.c (mark_addressable): Handle MEM_REF.
21198         (gimplify_cond_expr): Build MEM_REFs.
21199         (gimplify_modify_expr_to_memcpy): Likewise.
21200         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
21201         (gimple_fold_indirect_ref): Adjust.
21202         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
21203         * tree.def (MEM_REF): New tree code.
21204         * tree-dfa.c: Include toplev.h.
21205         (get_ref_base_and_extent): Handle MEM_REF.
21206         (get_addr_base_and_unit_offset): New function.
21207         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
21208         * gimple-fold.c (may_propagate_address_into_dereference): Handle
21209         MEM_REF.
21210         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
21211         accesses if the array has just one dimension.  Remove always true
21212         parameter.  Do not require type compatibility here.
21213         (maybe_fold_offset_to_component_ref): Remove.
21214         (maybe_fold_stmt_indirect): Remove.
21215         (maybe_fold_reference): Remove INDIRECT_REF handling.
21216         Fold back to non-MEM_REF.
21217         (maybe_fold_offset_to_address): Simplify.  Deal with type
21218         mismatches here.
21219         (maybe_fold_reference): Likewise.
21220         (maybe_fold_stmt_addition): Likewise.  Also handle
21221         &ARRAY + I in addition to &ARRAY[0] + I.
21222         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
21223         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
21224         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
21225         * tree-ssa.c (useless_type_conversion_p): Make most pointer
21226         conversions useless.
21227         (warn_uninitialized_var): Handle MEM_REF.
21228         (maybe_rewrite_mem_ref_base): New function.
21229         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
21230         to SSA form.
21231         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
21232         INDIRECT_REF handling.
21233         (copy_tree_body_r): Handle MEM_REF.
21234         * gimple.c (is_gimple_addressable): Adjust.
21235         (is_gimple_address): Likewise.
21236         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
21237         invariant base are invariant.
21238         (is_gimple_min_lval): Adjust.
21239         (is_gimple_mem_ref_addr): New function.
21240         (get_base_address): Handle MEM_REF.
21241         (count_ptr_derefs): Likewise.
21242         (get_base_loadstore): Likewise.
21243         * gimple.h (is_gimple_mem_ref_addr): Declare.
21244         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
21245         * tree-cfg.c (verify_address): New function, split out from ...
21246         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
21247         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
21248         INDIRECT_REFs.
21249         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
21250         INDIRECT_REF.  Allow conversions.
21251         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
21252         a register does not change its size.
21253         (verify_types_in_gimple_reference): Verify MEM_REF.
21254         (verify_gimple_assign_single): Disallow INDIRECT_REF.
21255         Handle MEM_REF.
21256         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
21257         New.
21258         (mark_address_taken): Handle MEM_REF.
21259         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
21260         (get_asm_expr_operands): Pass opf_not_non_addressable.
21261         (get_expr_operands): Handle opf_[not_]non_addressable.
21262         Handle MEM_REF.  Remove INDIRECT_REF handling.
21263         * tree-vrp.c (check_array_ref): Handle MEM_REF.
21264         (search_for_addr_array): Likewise.
21265         (check_array_bounds): Likewise.
21266         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
21267         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
21268         (ref_always_accessed_p): Likewise.
21269         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
21270         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
21271         Handle MEM_REF.
21272         * cgraphbuild.c (mark_load): Properly check for NULL result
21273         from get_base_address.
21274         (mark_store): Likewise.
21275         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
21276         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
21277         handling for MEM_REF.
21278         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
21279         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
21280         * builtins.c (stabilize_va_list_loc): Use the function ABI
21281         valist type if we couldn't canonicalize the argument type.
21282         Always dereference with the canonical va-list type.
21283         (maybe_emit_free_warning): Handle MEM_REF.
21284         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
21285         memmove to memcpy.
21286         * builtins.c (fold_builtin_memory_op): Use ref-all types
21287         for all memcpy foldings.
21288         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
21289         (build_outer_var_ref): Likewise.
21290         (scan_omp_1_op): Likewise.
21291         (lower_rec_input_clauses): Likewise.
21292         (lower_lastprivate_clauses): Likewise.
21293         (lower_reduction_clauses): Likewise.
21294         (lower_copyprivate_clauses): Likewise.
21295         (expand_omp_atomic_pipeline): Likewise.
21296         (expand_omp_atomic_mutex): Likewise.
21297         (create_task_copyfn): Likewise.
21298         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
21299         Remove old union trick.  Initialize constant offsets.
21300         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
21301         INDIRECT_REF.  Init base_alias_set properly.
21302         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
21303         (vn_reference_fold_indirect): Adjust for MEM_REFs.
21304         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
21305         for ARRAY_REFs.
21306         (may_insert): Remove.
21307         (visit_reference_op_load): Do not test may_insert.
21308         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
21309         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
21310         a field to store the constant offset this op applies.
21311         (run_scc_vn): Adjust prototype.
21312         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
21313         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
21314         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
21315         bother about volatile qualifiers on pointers.
21316         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
21317         * tree-ssa-loop-ivopts.c
21318         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
21319         (strip_offset_1): Likewise.
21320         (find_interesting_uses_address): Replace INDIRECT_REF handling with
21321         MEM_REF handling.
21322         (get_computation_cost_at): Likewise.
21323         * ipa-pure-const.c (check_op): Handle MEM_REF.
21324         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
21325         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
21326         and constants.
21327         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
21328         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
21329         (eliminate_local_variables_1): Likewise.
21330         (create_call_for_reduction_1): Likewise.
21331         (create_loads_for_reductions): Likewise.
21332         (create_loads_and_stores_for_name): Likewise.
21333         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
21334         (ssa_accessed_in_tree): Handle MEM_REF.
21335         (ssa_accessed_in_assign_rhs): Likewise.
21336         (update_type_size): Likewise.
21337         (analyze_accesses_for_call_stmt): Likewise.
21338         (analyze_accesses_for_assign_stmt): Likewise.
21339         (transform_access_sites): Likewise.
21340         (transform_allocation_sites): Likewise.
21341         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
21342         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21343         not handle INDIRECT_REF.
21344         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
21345         (cond_store_replacement): Likewise.
21346         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21347         MEM_REF, no not handle INDIRECT_REFs.
21348         (insert_into_preds_of_block): Properly initialize avail.
21349         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
21350         for ARRAY_REFs.  Properly handle reference lookups that
21351         require a bit re-interpretation.
21352         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
21353         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
21354         (build_ref_for_offset_1): Remove.
21355         (build_ref_for_offset): Build MEM_REFs.
21356         (gate_intra_sra): Disable for now.
21357         (sra_ipa_modify_expr): Handle MEM_REF.
21358         (ipa_early_sra_gate): Disable for now.
21359         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
21360         MEM_REF handling.
21361         (disqualify_base_of_expr): Likewise.
21362         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
21363         MEM_REF handling.
21364         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
21365         Use mem_ref_offset.  Remove bogus folding.
21366         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21367         (make_fancy_name_1): Add support for MEM_REF.
21368         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21369         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21370         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21371         (compute_complex_ancestor_jump_func): Likewise.
21372         (ipa_analyze_virtual_call_uses): Likewise.
21373         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21374         INDIRECT_REF folding with more generalized MEM_REF folding.
21375         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21376         (forward_propagate_addr_into_variable_array_index): Also handle
21377         &ARRAY + I in addition to &ARRAY[0] + I.
21378         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21379         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21380         creates assignments with overlap.
21381         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21382         (get_frame_field): Likewise.
21383         (get_nonlocal_debug_decl): Likewise.
21384         (convert_nonlocal_reference_op): Likewise.
21385         (struct nesting_info): Add mem_refs pointer-set.
21386         (create_nesting_tree): Allocate it.
21387         (convert_local_reference_op): Insert to be folded mem-refs.
21388         (fold_mem_refs): New function.
21389         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21390         (free_nesting_tree): Free the pointer-set.
21391         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21392         (vectorizable_load): Likewise.
21393         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21394         (propagate_with_phi): Likewise.
21395         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21396         instead of INDIRECT_REFs.
21397         (compute_object_offset): Handle MEM_REF.
21398         (plus_stmt_object_size): Handle MEM_REF.
21399         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21400         for &MEM_REF.
21401         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21402         (symbol_marked_for_renaming): Likewise.
21403         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21404         (fold-const.o): Add $(TREE_FLOW_H).
21405         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21406         (find_func_clobbers): Likewise.
21407         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21408         (decompose_access): Likewise.
21409         (replace_field_acc): Likewise.
21410         (replace_field_access_stmt): Likewise.
21411         (insert_new_var_in_stmt): Likewise.
21412         (get_stmt_accesses): Likewise.
21413         (reorg_structs_drive): Disable.
21414         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21415         (ix86_canonical_va_list_type): Likewise.
21416
21417 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21418
21419         PR other/44566
21420         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21421         * target.def (struct gcc_target): Replace enum reg_class with
21422         reg_class_t in hook argument / return types.
21423         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21424         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21425         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21426         * targhooks.h (default_branch_target_register_class): Likewise.
21427         (default_ira_cover_classes, default_secondary_reload): Likewise.
21428         (default_memory_move_cost, default_register_move_cost): Likewise.
21429         * targhooks.c (default_branch_target_register_class): Likewise.
21430         (default_ira_cover_classes, default_secondary_reload): Likewise.
21431         (default_memory_move_cost, default_register_move_cost): Likewise.
21432         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21433         * bt-load.c (branch_target_load_optimize): Likewise.
21434         * ira.c (setup_cover_and_important_classes): Likewise.
21435         * ira-costs.c (copy_cost): Likewise.
21436         * reload1.c (emit_input_reload_insns): Likewise.
21437         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21438         * config/frv/frv.c (frv_secondary_reload): Likewise.
21439         * config/s390/s390.c (s390_secondary_reload): Likewise.
21440         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21441         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21442         (ix86_register_move_cost): Likewise.
21443         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21444         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21445         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21446         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21447         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21448         (rs6000_ira_cover_classes): Likewise.
21449         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21450         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21451         Likewise.
21452         * config/pa/pa.c (pa_secondary_reload): Likewise.
21453         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21454         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21455         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21456         * doc/tm.texi: Regenerate.
21457
21458 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21459
21460         PR bootstrrap/44726
21461         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21462         use.
21463         (build_alias_set_optimal_p): Likewise.
21464         (build_base_obj_set_for_drs): Likewise.
21465
21466 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21467
21468         * target.def: Remove comment about licensing problems of function
21469         declarations.
21470
21471         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21472         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21473         * doc/tm.texi: Regenerate.
21474
21475         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21476         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21477
21478         * target.def (enum_va_list_p): Use DEFHOOK.
21479         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21480         Rename ptype to ptree.
21481         * doc/tm.texi: Regenerate.
21482
21483         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21484         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21485         * doc/tm.texi: Regenerate.
21486
21487         * target.def (memory_move_cost): Use DEFHOOK.
21488         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21489         Rename regclass AKA class to rclass.
21490         * doc/tm.texi: Regenerate.
21491
21492         * target.def (pragma_parse): Use DEFHOOK.
21493         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21494         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21495         * doc/tm.texi: Regenerate.
21496
21497         * target.def (pass_by_reference): Use DEFHOOK.
21498         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21499         * doc/tm.texi: Regenerate.
21500
21501         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21502         Use DEFHOOK.
21503         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21504         * doc/tm.texi: Regenerate.
21505
21506         * target.def (return_pops_args): Use DEFHOOK.
21507         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21508         Rename stack-size to size.
21509         * doc/tm.texi: Regenerate.
21510
21511         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21512         last-sched_cycle to last_clock, cur_cycle to clock.
21513         * doc/tm.texi.in: Use @hook.
21514         * doc/tm.texi: Regenerate.
21515
21516         * target.def (print_operand, print_operand_address): Update comment.
21517         (print_operand_punct_valid_p): Likewise.
21518
21519 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21520
21521         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21522         to rtl.h.
21523         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21524         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21525         * rtl-error.h: New.
21526         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21527         * rtl-error.c: Likewise.
21528         * reload.c: Likewise.
21529         * recog.c:  Likewise.
21530         * sel-sched.c: Likewise.
21531         * function.c: Likewise.
21532         * reg-stack.c: Likewise.
21533         * cfgrtl.c: Likewise.
21534         * reload1.c: Likewise.
21535         * final.c: Include rtl-error.
21536         * Makefile.in: Adjust dependencies.
21537
21538 2010-06-30  Jan Hubicka  <jh@suse.cz>
21539
21540         PR middle-end/PR44706
21541         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21542         to return the value.
21543
21544 2010-06-30  Michael Matz  <matz@suse.de>
21545
21546         PR bootstrap/44699
21547         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21548         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21549         a gimple reg, attach the original VDEF to the last store in the
21550         sequence.
21551
21552 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21553
21554         PR other/44034
21555         * config/darwin.c (darwin_override_options): Use renamed
21556         targetm.asm_out.emit_unwind_label.
21557
21558 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21559
21560         PR tree-optimization/39799
21561         * tree-inline.c (remap_ssa_name): Initialize variable only if
21562         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21563
21564 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21565
21566         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21567
21568 2010-06-30  Richard Guenther  <rguenther@suse.de>
21569
21570         PR target/44722
21571         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21572         against oscillation with reverse peephole2.
21573
21574 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21575
21576         PR target/44721
21577         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21578         Fix last commit.
21579
21580 2010-06-30  Nick Clifton  <nickc@redhat.com>
21581
21582         * config/rx/rx-modes.def: New file.
21583         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21584         (CC_REGNUM): Define.
21585         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21586         register.
21587         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21588         (SELECT_CC_MODE): Define.
21589         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21590         (reg:CC CC_REG) instead of (cc0).
21591         (attr "cc"): Delete.
21592         (cbranchsi4): Do not split compare and branch here. Instead move
21593         it to...
21594         (cbranchsi4_<code>): ... here.  New patterns.
21595         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21596         to emit the compare instruction.
21597         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21598         cc_status flags.
21599         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21600         FIRST_PSEUDO_REGNUM.
21601         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21602         (rx_notice_update_cc): Delete.
21603         (rx_cc_modes_compatible): New function.
21604         (flags_needed_for_conditional): New function.
21605         (flags_from_mode): New function.
21606         (rx_compare_redundant): New function - scans backwards through
21607         insn list to find out if condition flags are already set correctly.
21608         (TARGET_CC_MODES_COMPATIBLE): Define.
21609         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21610
21611         * config/rx/rx.h (BRANCH_COST): Define.
21612         (REGISTER_MOVE_COST): Define.
21613         * config/rx/predicates (rx_source_operand): Allow all constant types.
21614         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21615         (tstsi4): New pattern.
21616         * config/rx/rx.c (rx_memory_move_cost): Define.
21617         (TARGET_MEMORY_MOVE_COST): Define.
21618
21619 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21620
21621         * tree.h (block_may_fallthru): Declare here.
21622         * tree-flow.h (block_may_fallthru): Do not declare here.
21623         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21624         bitmap.h
21625         * Makefile.in (c-typeck.o): Update dependencies.
21626
21627 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21628
21629         PR debug/44694
21630         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21631         * cselib.c (cfa_base_preserved_regno): New static variable.
21632         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21633         of REGNO (cfa_base_preserved_val->locs->loc).
21634         (cselib_preserve_cfa_base_value): Add regno argument, set
21635         cfa_base_preserved_regno to it.
21636         (cselib_invalidate_regno): Allow removal of registers other than
21637         cfa_base_preserved_regno from cfa_base_preserved_val.
21638         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21639         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21640         of MEM addresses, if not on LHS.
21641         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21642         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21643
21644 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21645
21646         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21647         static variables.
21648         (peep2_buf_position): New static function.
21649         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21650         peephole2_optimize): Use it.
21651         (peep2_attempt, peep2_update_life): New static functions, broken out
21652         of peephole2_optimize.
21653         (peep2_fill_buffer): New static function.
21654         (peephole2_optimize): Change the main loop to try to fill the buffer
21655         with the maximum number of insns before matching them against
21656         peepholes.  Use a forward scan.  Remove special case for targets with
21657         conditional execution.
21658         * genrecog.c (change_state): Delete dead code.
21659         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21660         Rewrite so as not to expect the second insn to have had a peephole
21661         applied yet.
21662
21663 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21664
21665         * genhooks.c (emit_findices): Cast field precision to int.
21666         (emit_documentation): Likewise.
21667
21668 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21669
21670         PR tree-optimization/43801
21671         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21672         if old_decl was DECL_ONE_ONLY.
21673
21674         PR debug/44668
21675         * dwarf2out.c (add_accessibility_attribute): New function.
21676         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21677         instead of adding DW_AT_accessibility manually.
21678         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21679         gen_typedef_die): Use it.
21680
21681 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21682
21683         * vmsdbgout.c (full_name): Just output the file name if not native.
21684
21685 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21686
21687         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21688         (funcnam_table): New static table.
21689         (funcnum_table): New static table.
21690         (write_rtnbeg): Write value saved in funcnum_table.
21691         (write_rtnend): Write value saved in funcnum_table.
21692         (vmsdbgout_begin_function): Save current function info in
21693         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21694         (vmsdbgout_finish): Iterate over funcnum_table.
21695
21696 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21697
21698         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21699         (vmsdbgout_type_decl): Declare
21700         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21701         (FUNC_EPILOGUE_LABEL): New macro
21702         (vmsdbgout_begin_epilogue): New function.
21703         (vmsdbgout_type_decl): New function.
21704
21705 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21706
21707         * vmsdbg.h: Update copyright.
21708
21709 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21710
21711         * vmsdbg.h (DST_K_TBG): New DST constant.
21712         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21713         (write_modbeg): Cast module_language to avoid warning.
21714         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21715
21716 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21717
21718         PR other/44034
21719         * target.def, doc/tm.texi.in, genhooks.c: New files.
21720         * target.h: Instead of defining individual hook members,
21721         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21722         include target.def.
21723         * target-def.h: Instead of defining individual hook initializers,
21724         include target-hooks-def.h.
21725         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21726         targetm.live_on_entry -> targetm.extra_live_on_entry
21727         targetm.sched.md_finish ->targetm.sched.finish
21728         targetm.sched.md_init -> targetm.sched.init
21729         targetm.sched.md_init_global -> targetm.sched.init_global
21730         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21731         targetm.asm_out.except_table_label ->
21732           targetm.asm_out.emit_except_table_label
21733         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21734         targetm.target_help -> targetm.help
21735         targetm.vectorize.builtin_support_vector_misalignment ->
21736           targetm.vectorize.support_vector_misalignment
21737         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21738         targetm.file_start_file_directive ->
21739          targetm.asm_file_start_file_directive
21740         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21741         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21742         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21743         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21744           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21745         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21746           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21747         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21748         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21749         * Makefile.in (TARGET_H): Depend on target.def.
21750         (TARGET_DEF_H): Depend on target-hooks-def.h.
21751         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21752         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21753         * doc/tm.texi: Regenerate.
21754
21755         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21756
21757         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21758         (targetm.sched.init): Likewise.
21759
21760 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21761
21762         PR bootstrap/44713
21763         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21764         (function_arg_advance_32): Const-ify TYPE parameter.
21765         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21766         (ix86_function_arg_advance): Change type of NAMED to bool.
21767         (function_arg_32): Const-ify CUM and TYPE parameters.
21768         (function_arg_64): Likewise.  Change type of NAMED to bool.
21769         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21770         to bool.
21771         (ix86_function_arg): Change type of NAMED to bool.
21772         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21773         last argument as a bool.
21774
21775 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21776
21777         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21778         (OVERRIDE_OPTIONS): Add note of obsolescence.
21779         Replace references with references to TARGET_OPTION_OVERRIDE.
21780         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21781          the macro).
21782         * targhooks.c (default_target_option_override): New function.
21783         * targhooks.h (default_target_option_override): Declare.
21784         * target.h (struct gcc_target): Add override member to
21785         target_option member.
21786         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21787         targetm.target_option.override call.
21788         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21789         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21790
21791 2010-06-29  Jan Hubicka  <jh@suse.cz>
21792
21793         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21794
21795 2010-06-29  Jan Hubicka  <jh@suse.cz>
21796
21797         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21798         unreachable.
21799         (rebuild_frequencies): New function.
21800         * predict.h (rebuild_frequencies): Declare.
21801         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21802         entry block and edge reaching new_entry.
21803         (tree_function_versioning): When doing partial cloning, rebuild
21804         frequencies when done.
21805         * passes.c (execute_function_todo): Use rebild_frequencies.
21806
21807 2010-06-29  Richard Guenther  <rguenther@suse.de>
21808
21809         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21810         * tree-flow.h (enum noalias_state): Remove.
21811         (struct var_ann_d): Remove noalias_state member.
21812
21813 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21814
21815         PR target/43902
21816         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21817         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21818         (maddhidi4): Likewise.
21819
21820         Revert parts of the change for PR25130.
21821         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21822         MEM_ALIAS_SET.
21823
21824 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21825
21826         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21827         targetm.calls.function_incoming_arg, and
21828         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21829         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21830         * target.h (struct gcc_target): Add function_arg_advance,
21831         function_arg, and function_incoming_arg fields.
21832         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21833         (TARGET_FUNCTION_INCOMING_ARG): Define.
21834         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21835         and TARGET_FUNCTION_INCOMING_ARG.
21836         * targhooks.h (default_function_arg_advance): Declare.
21837         (default_function_arg, default_function_incoming_arg): Declare.
21838         * targhooks.c (default_function_arg_advance): New function.
21839         (default_function_arg, default_function_incoming_arg): New function.
21840         * config/i386/i386.c (function_arg_advance): Rename to...
21841         (ix86_function_arg_advance): ...this.  Make static.
21842         (function_arg): Rename to...
21843         (ix86_function_arg): ...this.  Make static.
21844         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21845         (TARGET_FUNCTION_ARG): Define.
21846         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
21847         (FUNCTION_ARG): Delete.
21848         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
21849         (function_arg): Delete prototype.
21850
21851 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21852
21853         * reginfo.c (init_reg_sets_1): Adjust comments.
21854         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
21855         * calls.c (prepare_call_address): Likewise.
21856         (emit_call_1): Use targetm.calls.return_pops_args.
21857         (expand_call): Likewise.
21858         * function.c (assign_parms): Likewise.
21859         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
21860         * target.h (struct gcc_target) [struct calls]: Add
21861         return_pops_args field.
21862         * targhooks.h (default_return_pops_args): Declare.
21863         * targhooks.c (default_return_pops_args): Define.
21864         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
21865         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
21866         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
21867         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
21868         documentation.
21869         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
21870         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
21871         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
21872         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
21873         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
21874         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
21875         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
21876         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
21877         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
21878         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
21879         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
21880         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
21881         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
21882         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
21883         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
21884         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
21885         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
21886         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
21887         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
21888         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
21889         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
21890         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
21891         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
21892         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
21893         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
21894         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
21895         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
21896         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
21897         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
21898         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
21899         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
21900         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
21901         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
21902         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
21903         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
21904         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
21905         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
21906         * config/i386/i386.c (ix86_return_pops_args): Make static.
21907         Constify arguments.
21908         (TARGET_RETURN_POPS_ARGS): Define.
21909         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
21910         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
21911         (TARGET_RETURN_POPS_ARGS): Define.
21912         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
21913         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
21914         (TARGET_RETURN_POPS_ARGS): Define.
21915
21916 2010-06-29  Richard Guenther  <rguenther@suse.de>
21917
21918         PR middle-end/44667
21919         * tree-inline.c (initialize_inlined_parameters): Make sure
21920         to remap the inlined parameter variable substitutions types.
21921
21922 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
21923
21924         PR rtl-optimization/44659
21925         * combine.c (make_compound_operation) <SUBREG>: Do not return the
21926         result of force_to_mode if it partially re-expanded the compound.
21927
21928 2010-06-28  Jan Hubicka  <jh@suse.cz>
21929
21930         PR middle-end/44671
21931         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
21932         RESULT_DECL.
21933
21934 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
21935
21936         * double-int.h (force_fit_type_double): Remove declaration.
21937         * double-int.c (force_fit_type_double): Move to tree.c.
21938         * tree.h (force_fit_type_double): Declare.
21939         * tree.h (force_fit_type_double): Moved from double-int.c. Use
21940         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
21941         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
21942         * convert.c (convert_to_pointer): Adjust call to
21943         force_fit_type_double.
21944         * tree-vrp.c (extract_range_from_assert,
21945         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
21946         * fold-const.c: Update comment.
21947         (int_const_binop, fold_convert_const_int_from_int,
21948         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
21949         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
21950         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
21951         round_up_loc): Adjust call to force_fit_type_double.
21952
21953 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21954
21955         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
21956
21957 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21958
21959         * tree-sra.c (convert_callers): New parameter, change fndecls of
21960         recursive calls.
21961         (modify_function): Pass the old decl to convert_callers.
21962
21963 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21964
21965         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
21966         ipa_check_create_node_params and ipa_initialize_node_params with
21967         checking asserts they are not necessary.
21968
21969 2010-06-28  Jan Hubicka  <jh@suse.cz>
21970
21971         PR tree-optimization/44687
21972         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
21973
21974 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21975
21976         PR c++/44535
21977         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
21978         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
21979         instead of BINFO_BASE_BINFO.
21980
21981 2010-06-28  Michael Matz  <matz@suse.de>
21982
21983         PR middle-end/44592
21984         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
21985         proper VDEF chain for intermediate stores in the sequence.
21986
21987 2010-06-28  Jan Hubicka  <jh@suse.cz>
21988
21989         PR tree-optimization/44357
21990         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
21991         uninlinable functions.
21992
21993 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21994
21995         * config.gcc (powerpc*-*-*): Handle titan.
21996         * config/rs6000/rs6000.c (titan_cost): New costs.
21997         (rs6000_override_options): Add "titan" to processor_target_table.
21998         Add Titan to branch alignment logic.
21999         Correctly set rs6000_cost for titan.
22000         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22001         * config/rs6000/titan.md: New file.
22002         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22003
22004 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22005
22006         * tree-browser.c (TB_history_stack): Convert to a VEC.
22007         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22008         (TB_history_prev): Likewise.
22009
22010 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22011
22012         * vec.h (vec_heap_free): Add parentheses around free.
22013
22014 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22015
22016         * system.h: Poison GCC_EXCEPT_H for front-end files.
22017
22018         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22019         langhook.
22020         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22021         Define to NULL by default.
22022         * except.h: Define GCC_EXCEPT_H.
22023         (doing_eh): Remove prototype.
22024         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22025         (lang_protect_cleanup_actions): Remove.
22026         * except.c (lang_protect_cleanup_actions): Remove.
22027         (doing_eh): Remove.
22028         (gen_eh_region): Don't check doing_eh here.
22029         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22030         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22031         instead of lang_protect_cleanup_actions.
22032         * omp-low.c (maybe_catch_exception): Likewise.
22033         * Makefile.in: Update dependencies.
22034
22035 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22036
22037         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22038         (struct cgraph_local_info): new used_from_object_file flag.
22039         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22040         (cgraph_clone_node): initialize used_from_object_file.
22041         (cgraph_create_virtual_clone): initialize used_from_object_file.
22042         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22043         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22044         when compiling with -fwhole-program.
22045         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22046         internal resolver.
22047         * ipa.c (function_and_variable_visibility): Set externally_visible
22048         flag of varpool_node if used_from_object_file flag is set.
22049         (cgraph_externally_visible_p): check used_from_object_file flag.
22050         * doc/invoke.texi (-fwhole-program option): Change description of
22051         externally_visible attribute accordingly.
22052         * doc/extend.texi (externally_visible): Ditto.
22053
22054 2010-06-27  Jan Hubicka  <jh@suse.cz>
22055
22056         * params.def (max-inline-insns-auto): Default to 40.
22057         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22058
22059 2010-06-27  Jan Hubicka  <jh@suse.cz>
22060
22061         PR middle-end/44671
22062         PR middle-end/44686
22063         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22064         signature change.
22065         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22066         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22067
22068 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22069
22070         * target.h (struct gcc_target): Add register_move_cost field.
22071         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22072         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22073         * targhooks.c (default_register_move_cost): New function.
22074         * targhooks.h (default_register_move_cost): Declare function.
22075         * defaults.h (REGISTER_MOVE_COST): Delete.
22076         * ira-int.h (ira_register_move_cost): Update comment.
22077         * ira.c (ira_register_move_cost): Update comment.
22078         * reload.h (register_move_cost): Declare.
22079         * reginfo.c (register_move_cost): New function.
22080         (move_cost): Update comment.
22081         (init_move_cost, memory_move_secondary_cost): Replace
22082         REGISTER_MOVE_COST with register_move_cost.
22083         * postreload.c (reload_cse_simplify_set): (Ditto.).
22084         * reload.c (find_valid_class, find_reloads): (Ditto.).
22085         * reload1.c (choose_reload_regs): (Ditto.).
22086         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22087         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22088         * doc/md.texi (can_create_pseudo_p): Update documentation.
22089
22090         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22091         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22092         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22093         (TARGET_MEMORY_MOVE_COST): Define.
22094
22095         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22096         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22097         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22098         (TARGET_MEMORY_MOVE_COST): Define.
22099
22100 2010-06-27  Richard Guenther  <rguenther@suse.de>
22101
22102         PR tree-optimization/44683
22103         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22104         false edge from the inverted condition.
22105
22106 2010-06-27  Richard Guenther  <rguenther@suse.de>
22107
22108         PR middle-end/44684
22109         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22110         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22111         for register LHS.  Or non-store assignments.
22112
22113 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22114
22115         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22116         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22117         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22118         (sparc_emit_set_const64): Likewise.
22119
22120 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22121
22122         * config/mips/mips.md (alu_type): New attribute.
22123         (type): Infer type from alu_type.
22124         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22125         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22126         *subsi3_extended, negsi2, negdi2, *low<mode>,
22127         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22128         xor<mode>3, *nor<mode>3,
22129         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22130         *zero_extendhi_truncqi):  Set alu_type instead of type.
22131
22132 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22133
22134         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22135         splay_tree_new_ggc call.
22136         (alpha_use_linkage): Likewise.
22137
22138 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22139
22140         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22141         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22142         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22143         (static_specs): Remove switches_need_spaces.
22144         (process_command, do_self_spec): Hardcode handling "-o" instead of
22145         checking switches_need_spaces.
22146         * system.h (SWITCHES_NEED_SPACES): Poison.
22147
22148 2010-06-26  Richard Guenther  <rguenther@suse.de>
22149
22150         PR tree-optimization/44393
22151         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22152         stmt removal and VOP renaming.
22153         (generate_memset_zero): Remove redundant stmt updating.
22154         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22155         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22156
22157 2010-06-26  Jan Hubicka  <jh@suse.cz>
22158
22159         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22160         edges comming from header are equivalent.
22161         (visit_bb): Handle PHIs correctly.
22162         * tree-inline.c (copy_phis_for_bb): Be able to copy
22163         PHI from entry edge.
22164         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22165
22166 2010-06-26  Richard Guenther  <rguenther@suse.de>
22167
22168         PR middle-end/44674
22169         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22170         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22171
22172 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22173
22174         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22175         add_infile, alloc_switch): New.
22176         (process_command): Remove variable lang_n_infiles.  Process
22177         options in a single pass.  Use new functions for allocating
22178         infiles and switches arrays.  Properly skip operands of
22179         -Xpreprocessor and -Xassembler.
22180
22181 2010-06-26  Jan Hubicka  <jh@suse.cz>
22182
22183         PR middle-end/44671
22184         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22185         cgraph_make_decl_local call; fix typo copying RTL data.
22186
22187 2010-06-25  DJ Delorie  <dj@redhat.com>
22188
22189         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22190         (m32c_output_aligned_common): Likewise.
22191         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22192         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22193         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22194         (m32c_register_pragmas): Register it.
22195         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22196         (m32c_insert_attributes): Set #pragma address decls volatile.
22197         (pragma_entry_eq): New.
22198         (pragma_entry_hash): New.
22199         (m32c_note_pragma_address): New.
22200         (m32c_get_pragma_address): New.
22201         (m32c_output_aligned_common): New.
22202         * doc/extend.texi: Document the new pragma.
22203
22204         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
22205         also.
22206         * config/m32c/predicates.md (m32c_any_operand): Check the code
22207         instead of memory_operand so as to allow matching volatile MEMs.
22208         (m32c_nonimmediate_operand): Likewise.
22209         (mra_operand): Allow volatiles.
22210
22211 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
22212
22213         PR debug/44610
22214         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
22215         address if the offset is unknown.
22216
22217 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
22218
22219         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
22220         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
22221         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
22222         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
22223         to ia64_start_function. Invoke it.
22224         * config/ia64/ia64.c (ia64_start_function): Call new function
22225         dwarf2out_vms_debug_main_pointer.
22226
22227 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22228
22229         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
22230         statements computing the true predicate.
22231
22232 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22233
22234         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
22235         to boolean_true_node.
22236         (reset_bb_predicate): New.
22237         (predicate_bbs): Call reset_bb_predicate.
22238
22239 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22240
22241         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
22242         (tree_if_conversion): Returns true when something has been changed.
22243         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
22244         changed something.
22245
22246 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22247
22248         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
22249         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
22250         * tree-if-conv.c: Include dbgcnt.h.
22251         (tree_if_conversion): Use if_conversion_tree to count the number of
22252         if-convertible loops.
22253
22254 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
22255
22256         * common.opt (fprefetch-loop-arrays): Re-define
22257         -fprefetch-loop-arrays as a tri-state option with the initial
22258         value of -1.
22259         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
22260         pass only when flag_prefetch_loop_arrays > 0.
22261         * toplev.c (process_options): Note that, with tri-states,
22262         flag_prefetch_loop_arrays>0 means prefetching is enabled.
22263         * config/i386/i386.c (override_options): Enable prefetching at -O3
22264         for a set of CPUs that sw prefetching is helpful.
22265         (software_prefetching_beneficial_p): New.  Return TRUE if software
22266         prefetching is beneficial for the given CPU.
22267
22268 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22269
22270         PR rtl-optimization/44326
22271         * implicit-zee.c (find_removable_zero_extends): Replace
22272         INSN_P with NONDEBUG_INSN_P.
22273
22274 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22275
22276         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
22277         (struct ipa_node_params): Removed the modification_analysis_done flag.
22278         (ipa_is_param_modified): Removed.
22279         (ipa_analyze_node): Declare.
22280         (ipa_compute_jump_functions): Remove declaration.
22281         (ipa_count_arguments): Likewise.
22282         (ipa_detect_param_modifications): Likewise.
22283         (ipa_analyze_params_uses): Likewise.
22284         * ipa-prop.c (struct param_analysis_info): New type.
22285         (visit_store_addr_for_mod_analysis): Removed.
22286         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
22287         moved down in the file.
22288         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
22289         (ipa_count_arguments): Made static.
22290         (mark_modified): New function.
22291         (is_parm_modified_before_call): New function.
22292         (compute_pass_through_member_ptrs): New parameter parms_info, call
22293         is_parm_modified_before_call instead of ipa_is_param_modified.
22294         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
22295         it to compute_pass_through_member_ptrs.
22296         (ipa_compute_jump_functions): New parameter parms_info, pass it to
22297         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
22298         on the callee if it is analyzed.  Made static.
22299         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
22300         is_parm_modified_before_call instead of ipa_is_param_modified.
22301         (ipa_analyze_call_uses): New parameter parms_info, pass it to
22302         ipa_analyze_indirect_call_uses.
22303         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
22304         ipa_analyze_call_uses.
22305         (ipa_analyze_params_uses): New parameter parms_info, pass it to
22306         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
22307         (ipa_analyze_node): New function.
22308         (ipa_print_node_params): Do not dump the modified flag.
22309         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
22310         it.  Do not stream the modified parameter flag.
22311         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
22312         it.  Do not stream the modified parameter flag.
22313         * ipa-cp.c (ipcp_analyze_node): Removed.
22314         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
22315         with only a call to ipa_analyze_node.
22316         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
22317         node with only a call to ipa_analyze_node.
22318
22319 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22320
22321         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
22322
22323 2010-06-25  Jan Hubicka  <jh@suse.cz>
22324
22325         * tree-pass.h (pass_split_functions): Declare.
22326         * opts.c (decode_options): Enable function splitting at -O2
22327         * timevar.def (TV_IPA_FNSPLIT): New macro.
22328         * ipa-split.c: New file.
22329         * common.opt (-fpartial-inlining): New flag.
22330         * Makefile.in (ipa-split.o): New object file.
22331         * passes.c (init_optimization_passes): Add ipa-split.
22332         * params.def (partial-inlining-entry-probability): New parameters.
22333         * doc/invoke.texi (-fpartial-inlining): New.
22334
22335 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22336
22337         PR 44665
22338         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
22339         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
22340         (gimplify_expr): Likewise.
22341
22342 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22343
22344         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
22345         statements instead of bailing out on them.
22346         (ipa_analyze_indirect_call_uses): Do not require that loads from the
22347         parameter are in the same BB as the condition.  Update comments.
22348
22349 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
22350
22351         PR middle-end/43866
22352         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
22353         true or always false, return NULL_TREE.
22354         (tree_unswitch_single_loop): Optimize conditions even when reaching
22355         max-unswitch-level parameter.  If num > 0, optimize first all conditions
22356         using entry checks, then do still reachable block discovery and consider
22357         only conditions in still reachable basic blocks in the loop.
22358
22359         PR tree-optimization/44539
22360         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
22361         the call doesn't have LHS, but has VDEF.
22362
22363 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22364
22365         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
22366         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22367         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22368         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22369         * system.h (MODIFY_TARGET_NAME): Poison.
22370
22371 2010-06-25  Alan Modra  <amodra@gmail.com>
22372
22373         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22374         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22375         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22376         CMODEL_LARGE as default.
22377         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22378         (offsettable_ok_by_alignment): Delete.
22379         (rs6000_emit_move): Remove mcmodel=medium optimization.
22380
22381 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22382
22383         With large parts from Jim Wilson:
22384         PR target/43902
22385         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22386         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22387         * optabs.c (optab_for_tree_code): Likewise.
22388         (expand_widen_pattern_expr): Likewise.
22389         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22390         out of execute_optimize_widening_mul.
22391         (convert_plusminus_to_widen): New function.
22392         (execute_optimize_widening_mul): Use the two new functions.
22393         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22394         Remove code to generate widening multiply-accumulate.  Add support
22395         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22396         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22397         (dump_gimple_assign): Call it when appropriate.
22398         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22399         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22400         (expand_gimple_stmt_1): Likewise.
22401         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22402         WIDEN_MULT_MINUS_EXPR.
22403         * tree-ssa-operands.c (get_expr_operands): Likewise.
22404         * tree-inline.c (estimate_operator_cost): Likewise.
22405         * gimple.c (extract_ops_from_tree_1): Renamed from
22406         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22407         (gimple_build_assign_stat): Support operations with three operands.
22408         (gimple_build_assign_with_ops_stat): Likewise.
22409         (gimple_assign_set_rhs_from_tree): Likewise.
22410         (gimple_assign_set_rhs_with_ops_1): Renamed from
22411         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22412         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22413         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22414         WIDEN_MULT_MINUS_EXPR.
22415         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22416         (extract_ops_from_tree_1): Adjust declaration.
22417         (gimple_assign_set_rhs_with_ops_1): Likewise.
22418         (gimple_build_assign_with_ops): Pass NULL for last operand.
22419         (gimple_build_assign_with_ops3): New macro.
22420         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22421         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22422         functions.
22423         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22424         (verify_gimple_assign): Call it.
22425         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22426         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22427         functions for dealing with three-operand statements.
22428         * tree.c (commutative_ternary_tree_code): New function.
22429         * tree.h (commutative_ternary_tree_code): Declare it.
22430         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22431         ternary statements.
22432         (gimple_assign_nonzero_warnv_p): Likewise.
22433         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22434         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22435         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22436         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22437         (struct hashtable_expr): New member ternary in the union.
22438         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22439         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22440         (iterative_hash_hashable_expr): Likewise.
22441         (print_expr_hash_elt): Handle EXPR_TERNARY.
22442         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22443         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22444         statements.  Handle GIMPLE_TERNARY_RHS.
22445
22446 2010-06-25  Jan Hubicka  <jh@suse.cz>
22447
22448         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22449
22450 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22451
22452         PR c/44517
22453         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22454         parameters are not good.
22455         (c_parser_parameter_declaration): Error unknown type name if the type
22456         name can't start declaration specifiers.
22457
22458 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22459
22460         * gcc.c (translate_options): Don't mention +e in comment.
22461         (process_command): Don't handle +e specially.
22462
22463 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22464
22465         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22466
22467         * ira-build.c (merge_hard_reg_conflicts): New function.
22468         (create_cap_allocno, copy_info_to_removed_store_destinations,
22469         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22470         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22471         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22472         copy_nifo_to_removed_store_destination): Use them.
22473         * ira-lives.c (make_hard_regno_born): New function, split out of
22474         make_regno_born.
22475         (make_allocno_born): Likewise.
22476         (make_hard_regno_dead): New function, split out of make_regno_dead.
22477         (make_allocno_dead): Likewise.
22478         (inc_register_pressure): New function, split out of set_allocno_live.
22479         (dec_register_pressure): New function, split out of clear_allocno_live.
22480         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22481         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22482         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22483         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22484         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22485         mark_pseudo_regno_live.
22486         (process_bb_node_lives): Use mark_pseudo_regno_live,
22487         make_hard_regno_born and make_allocno_dead.
22488         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22489         set_allocno_live, clear_allocno_live): Delete functions.
22490
22491         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22492         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22493         functions.
22494         (ira_flattening): Use ira_parent_allocno.
22495         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22496         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22497
22498         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22499         statement.
22500
22501         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22502         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22503         minmax_set_iter_cond, minmax_set_iter_next,
22504         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22505         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22506         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22507         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22508         uses changed.
22509
22510         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22511         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22512         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22513         All uses changed.
22514
22515 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22516
22517         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22518         (peephole2 to convert zero_extract/compare of single bit to
22519          lshift/compare): New.
22520
22521 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22522
22523         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22524         recursive call and call to 'int_const_binop'.
22525         (build_range_check, fold_cond_expr_with_comparison, unextend,
22526         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22527         multiple_of_p): Adjust call to const_binop.
22528
22529 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22530
22531         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22532         determine size of XFmode operand.
22533         (XFmode extended DFmode push splitter): Ditto.
22534         (XFmode extended SFmode push splitter): Ditto.
22535
22536 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22537
22538         PR target/44588
22539         * config/i386/i386.md (extract_code): New.
22540         (<u>divmodqi4): Likewise.
22541         (divmodhiqi3): Likewise.
22542         (udivmodhiqi3): Likewise.
22543         (<u>divqi3): Remvoved.
22544
22545 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22546
22547         PR middle-end/44492
22548         * recog.h (struct recog_data): Add is_asm field.
22549         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22550         present in constraints of inline-asm operand and memory operand
22551         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22552         (extract_insn): Initialize recog_data.is_asm.
22553         * doc/md.texi (Constraints): Document operand side-effect rules.
22554
22555 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22556
22557         * c-parser.c (c_parser_conditional_expression): Call
22558         warn_for_omitted_condop.
22559         * doc/invoke.texi: Document omitted condop warning.
22560
22561 2010-06-24  Nick Clifton<nickc@redhat.com>
22562
22563         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22564         insn in the sequence is a jump insn before setting its label.
22565
22566 2010-06-24  Alan Modra  <amodra@gmail.com>
22567
22568         * collect2.c (main): Match exactly --version and --help.
22569
22570 2010-06-24  DJ Delorie  <dj@redhat.com>
22571
22572         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22573
22574 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22575
22576         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22577         using X87MODEF mode iterator.
22578         (pushsf splitter): Macroize splitter using P mode iterator.
22579         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22580         mode iterator.
22581
22582         (*movxf_internal): Rename from *movxf_integer.
22583         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22584         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22585         (*movdf_internal): Rename from *movdf_integer.
22586         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22587         (*movsf_internal): Rename from *movdf_1.
22588
22589 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22590
22591         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22592         (const_gimple_seq_node): Removed typedefs.
22593
22594         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22595         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22596
22597 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22598
22599         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22600         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22601         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22602         and CODE_FOR_vec_extract_lo_v4df.
22603
22604         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22605         Changed to define_insn_and_split.
22606         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22607         (vec_extract_lo_v16hi): Likewise.
22608         (vec_extract_lo_v32qi): Likewise.
22609         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22610         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22611
22612 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22613
22614         PR target/44640
22615         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22616         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22617         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22618         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22619         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22620
22621         PR target/44640
22622         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22623
22624         PR other/44644
22625         * df-core.c (struct df): Rename to df_d.
22626         * df.h (struct df): Likewise.
22627         * dse.h (struct df): Remove forward declaration.
22628         * recog.h (struct insn_data): Rename to:
22629         (struct_insn_data_d).  Adjusted all users.
22630
22631 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22632
22633         PR ada/22220
22634         * doc/install.texi: Update requirements to build GNAT.
22635
22636 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22637
22638         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22639         enum type.
22640         (m68k_sched_attr_opx_type): Remove unreachable return.
22641         (m68k_sched_attr_opy_type): Likewise.
22642         (m68k_sched_attr_size): Likewise.
22643         (sched_get_opxy_mem_type): Likewise.
22644         (m68k_sched_attr_op_mem): Likewise.
22645
22646 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22647
22648         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22649         new statement and adjust VDEF only if necessary.  Remove superfluous
22650         call to maybe_clean_or_replace_eh_stmt.
22651         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22652         copy the flags.
22653         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22654         * tree-inline.c (copy_bb): ...and not there.
22655
22656 2010-06-22  Cary Coutant  <ccoutant@google.com>
22657
22658         * dwarf2out.c (is_nested_in_subprogram): New function.
22659         (should_move_die_to_comdat): Use it.
22660         (copy_ancestor_tree): Don't mark DIEs here.
22661         (copy_decls_walk): Start walk from root of newly-added tree;
22662         mark DIEs here instead.
22663
22664 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22665
22666         * config/i386/i386.md (unit): Also check sseishft1.
22667
22668 2010-06-22  Jan Hubicka  <jh@suse.cz>
22669
22670         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22671         enabled.
22672
22673 2010-06-22  Jan Hubicka  <jh@suse.cz>
22674
22675         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22676         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22677         Return true if something changed.
22678         * df.h (df_confluence_function_n): Return bool.
22679         * df-core.c (df_worklist_propagate_forward,
22680         df_worklist_propagate_backward): Track changes and ages.
22681         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22682         track ages.
22683         * dse.c (dse_confluence_n): Return always true.
22684
22685 2010-06-22  Jan Hubicka  <jh@suse.cz>
22686
22687         * bitmap.c (bitmap_clear_bit): Micro optimize.
22688
22689 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22690
22691         * config/i386/i386.md (SWI1248x): New mode iterator.
22692         (SWI48x): Ditto.
22693         (SWI12): Ditto.
22694         (SWI24): Ditto.
22695
22696         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22697         SWI1248x mode iterator.
22698         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22699         using SWI124 mode iterator.
22700         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22701         mode iterator.
22702         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22703         *pushdi2_prologue_rex64 using P mode iterator.
22704         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22705         using SWI48 mode iterator.
22706         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22707         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22708         using SWI1248x mode iterator.
22709         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22710         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22711         SWI48 mode iterator.
22712         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22713         iterator.
22714         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22715         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22716         SWI12 mode iterator.
22717         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22718         SWI12 mode iterator.
22719         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22720         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22721         SWI24 mode iterator.
22722         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22723         SWI48 mode iterator.
22724         (mov<mode>_insn_1): New expander.
22725         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22726         using SWI48x mode iterator.
22727
22728         (*movoi_internal_avx): Rename from *movoi_internal.
22729         (*movti_internal_rex64): Rename from *movti_rex64.
22730         (*movti_internal_sse): Rename from *movti_sse.
22731         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22732         (*movdi_internal): Rename from *movdi_2.
22733         (*movsi_internal): Rename from *movsi_1.
22734         (*movhi_internal): Rename from *movhi_1.
22735         (*movqi_internal): Rename from *movqi_1.
22736
22737         (insv): Update the call to gen_movsi_insv_1 for rename.
22738         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22739
22740 2010-06-22  Jan Hubicka  <jh@suse.cz>
22741
22742         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22743         to ...
22744         (execute_todo) ... this one.
22745
22746 2010-06-22  Alan Modra  <amodra@gmail.com>
22747
22748         PR target/44364
22749         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22750         * caller-save.c (insert_restore, insert_save): Use non-validate
22751         form of adjust_address.
22752
22753 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22754
22755         PR target/39690
22756         * config/pa/pa.c (override_options): Disable
22757         -freorder-blocks-and-partition.
22758
22759 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22760
22761         PR target/44615
22762         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22763
22764         * config/i386/i386.md (type): Add sseishft1
22765
22766         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22767         (ppro_insn_load): Likewise.
22768         (ppro_insn_store): Likewise.
22769         (ppro_insn_both): Likewise.
22770
22771         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22772         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22773         for type.
22774         (*vec_extractv2di_1_avx): Likewise.
22775         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22776         type.  Remove atom_unit.
22777         (*vec_extractv2di_1_sse2): Likewise.
22778
22779 2010-06-21  DJ Delorie  <dj@redhat.com>
22780
22781         * diagnostic.h (diagnostic_classification_change_t): New.
22782         (diagnostic_context): Add history and push/pop list.
22783         (diagnostic_push_diagnostics): Declare.
22784         (diagnostic_pop_diagnostics): Declare.
22785         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22786         from pragmas in a history chain instead of the global table.
22787         (diagnostic_push_diagnostics): New.
22788         (diagnostic_pop_diagnostics): New.
22789         (diagnostic_report_diagnostic): Scan history chain to find state
22790         of diagnostics as of the diagnostic location.
22791         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22792         diagnostic_classify_diagnostic.
22793         (enable_warning_as_error): Likewise.
22794         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22795         use in the history chain.
22796         * doc/extend.texi: Document pragma GCC diagnostic changes.
22797
22798 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22799
22800         * dwarf2out.c (add_linkage_name): New function.  Don't add
22801         anything to DW_TAG_member DIEs.
22802         (add_name_and_src_coords_attributes): Use it.
22803         (gen_variable_die): Call it for C++ static data members if
22804         specification is DW_TAG_member.
22805
22806         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22807         C++ char16_t and char32_t.
22808
22809         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22810         * genattrtab.c: Include vecprim.h.
22811         (cached_attrs, cached_attr_count, attrs_seen_once,
22812         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22813         attrs_cached_after): New variables.
22814         (find_attrs_to_cache): New function.
22815         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22816         (write_test_expr): Add attrs_cached argument, return it too,
22817         attempt to cache non-const attributes used more than once in
22818         a single case handling.
22819         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22820         emit cached_* variables.  Adjust write_attr_set callers.
22821         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22822         to find attributes that should be cached in this block.  Adjust
22823         write_test_expr callers.
22824         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22825         callers.
22826         (make_automaton_attrs): Adjust write_test_expr caller.
22827
22828         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22829         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22830         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22831         write separate internal_dfa_insn_code_* and insn_default_latency_*
22832         functions for each attribute's value and emit init_sched_attrs
22833         function and function pointers.
22834         * genattr.c (const_attrs, reservations): New variables.
22835         (gen_attr): Add const attributes to const_attrs vector.
22836         (check_tune_attr, find_tune_attr): New functions.
22837         (main): Add reservations to reservations vector.  If find_tune_attr
22838         returns true, add prototype for init_sched_attrs and make
22839         internal_dfa_insn_code and insn_default_latency function pointers,
22840         otherwise define init_sched_attrs as dummy macro.
22841         * cfgexpand.c: Include insn-attr.h.
22842         (gimple_expand_cfg): Call init_sched_attrs.
22843
22844         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22845
22846         PR target/44575
22847         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
22848         va_arg from a set of register save slots into a temporary,
22849         if the container is bigger than type size, do the copying
22850         using smaller mode or using memcpy.
22851
22852         PR bootstrap/44426
22853         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
22854         prototype.
22855         (sel_print_to_dot): Remove macro.
22856         (sel_print): Likewise.  New prototype.
22857         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
22858         (sel_print): New function.
22859
22860 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22861
22862         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
22863         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
22864
22865 2010-06-21  Nick Clifton  <nickc@redhat.com>
22866
22867         * config/rx/rx.h (PTRDIFF_TYPE): Define.
22868         (SMALL_REGISTER_CLASS): Define (to zero).
22869         (PRINT_OPERAND): Delete.
22870         (PRINT_OPERAND_ADDRESS): Delete.
22871         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
22872         (rx_print_operand_address): Delete prototype.
22873         * config/rx/rx.c (rx_print_operand): Make static.
22874         Allow %H and %L to handle CONST_DOUBLEs.
22875         (rx_print_operand_address): Make static.
22876         (rx_gen_move_template): Rename local variable 'template' to
22877         out_template.
22878         (rx_function_arg): Do not pass unknown sized objects in registers.
22879         (TARGET_PRINT_OPERAND): Define.
22880         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22881
22882 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
22883
22884         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
22885
22886 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
22887
22888         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
22889         stack-alignment for simple leaf-functions.
22890
22891 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22892
22893         * doc/install.texi: Document bootstrap-lto.
22894
22895 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22896
22897         PR debug/44248
22898         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
22899         (input_function): Drop them here, if VTA is disabled.
22900
22901 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
22902
22903         PR target/44546
22904         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
22905         New predicate.
22906         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
22907         ix86_swapped_fp_comparsion_operator instead of
22908         ix86_fp_comparison_operator.
22909
22910         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
22911         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
22912         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
22913         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
22914         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
22915         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
22916
22917 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
22918
22919         PR other/32998
22920         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
22921         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
22922         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
22923         (decode_cmdline_option): Update for this return value.  Set
22924         orig_option_with_args_text field.  Set arg field for unknown
22925         options.  Make static.
22926         (decode_cmdline_options_to_array): New.
22927         (prune_options): Update handling of find_opt return value.
22928         * opts.c (read_cmdline_option): Take decoded option.  Return void.
22929         (read_cmdline_options): Take decoded options.
22930         (decode_options): Add parameters for decoded options.  Use
22931         decode_cmdline_options_to_array.  Use decoded options for -O
22932         scan.  Use integral_argument for -O parameters.  Update call to
22933         read_cmdline_options.
22934         (enable_warning_as_error): Update handling of find_opt return value.
22935         * opts.h: Update comment on unknown options.
22936         (struct cl_decoded_option): Update comments on opt_index and arg.
22937         Add orig_option_with_args_text.
22938         (decode_cmdline_option): Remove.
22939         (decode_cmdline_options_to_array): Declare.
22940         (decode_options): Update prototype.
22941         * toplev.c (save_argv): Remove.
22942         (save_decoded_options, save_decoded_options_count): New.
22943         (read_integral_parameter): Remove.
22944         (print_switch_values): Use decoded options.
22945         (toplev_main): Don't set save_argv.  Update call to decode_options.
22946         * toplev.h (read_integral_parameter): Remove.
22947         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
22948
22949 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
22950
22951         PR target/44072
22952         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
22953         immediate.
22954         * constraints.md (Pw, Px): New constraints.
22955         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
22956
22957 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
22958
22959         * config/i386/sse.md (fma4modesuffixf4): Removed.
22960         (ssemodesuffixf2s): Likewise.
22961         (ssemodesuffixf4): Likewise.
22962         (ssemodesuffixf2c): Likewise.
22963         (ssescalarmodesuffix2s): Likewise.
22964         (avxmodesuffixf2c): Likewise.
22965         (ssemodesuffix): New.
22966         (ssescalarmodesuffix): Likewise.
22967         Update patterns with ssemodesuffix and ssescalarmodesuffix.
22968
22969 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
22970
22971         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
22972
22973 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
22974
22975         * stor-layout.c (debug_rli): Remove unused local variables.
22976
22977 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
22978
22979         PR rtl-optimization/40900
22980         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
22981         original expression for later reuse.
22982         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
22983         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
22984
22985 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
22986
22987         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
22988         double_int_fits_in_uhwi_p): Implement as static inline.
22989         (double_int_xor): New inline function.
22990         (double_int_lrotate, double_int_rrotate, double_int_max,
22991         double_int_umax, double_int_smax, double_int_min, double_int_umin,
22992         double_int_smin): Declare.
22993         (lrotate_double, rrotate_double): Remove declaration.
22994         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
22995         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
22996         (double_int_lrotate, double_int_rrotate, double_int_max,
22997         double_int_umax, double_int_smax, double_int_min, double_int_umin,
22998         double_int_smin): New function.
22999         * fold-const.c (int_const_binop): Clean up, use double_int_*
23000         functions.
23001         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23002         double_int_* and immed_double_int_const functions.
23003
23004 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23005
23006         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23007         * function.c (types_used_by_cur_var_decl): Likewise.
23008         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23009
23010 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23011
23012         * tree.h (record_layout_info): Change type of pending_statics field
23013         to a VEC.
23014         * stor-layout.c (start_record_layout): Store NULL into
23015         pending_statics.
23016         (debug_rli): Call debug_vec_tree instead of debug_tree.
23017         (place_field): Likewise.
23018         (finish_record_layout): Likewise.
23019
23020 2010-06-18  Alan Modra  <amodra@gmail.com>
23021
23022         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23023
23024 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23025
23026         PR target/43740
23027         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23028         for SET source operand from SET destination operand.
23029
23030 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23031
23032         PR rtl-optimization/39871
23033         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23034         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23035         (function_invariant_p): Rule out a plus of frame or arg pointer with
23036         a SYMBOL_REF.
23037         * ira.c (find_reg_equiv_invariant_const): Likewise.
23038
23039 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23040
23041         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23042         print_operand_address and puts to output the operand for CONST.
23043
23044 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23045
23046         PR debug/44572
23047         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23048         hook.
23049
23050 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23051
23052         * v850-protos.h (print_operand): Delete.
23053         (print_operand_address): Delete.
23054         * v850.h (PRINT_OPERAND): Delete.
23055         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23056         (PRINT_OPERAND_ADDRESS): Delete.
23057         * v850.c (print_operand_address): Rename to...
23058         (v850_print_operand_address): ...this.  Make static. Call
23059         v850_print_operand.
23060         (print_operand): Rename to...
23061         (v850_print_operand): ...this.  Make static.  Call
23062         v850_print_operand_address.
23063         (v850_print_operand_punct_valid_p): New function.
23064         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23065         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23066
23067 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23068
23069         * config/sh/sh-protos.h (print_operand): Delete.
23070         (print_operand_address): Delete.
23071         * config/sh/sh.h (PRINT_OPERAND): Delete.
23072         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23073         (PRINT_OPERAND_ADDRESS): Delete.
23074         * config/sh/sh.c (sh_print_operand_address): Make static.
23075         (sh_print_operand): Make static.  Call sh_print_operand_address
23076         and sh_print_operand.
23077         (sh_print_operand_punct_valid_p): New function.
23078         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23079         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23080
23081 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23082
23083         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23084         (mcore_print_operand_address): Delete.
23085         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23086         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23087         (PRINT_OPERAND_ADDRESS): Delete.
23088         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23089         (mcore_print_operand): Make static.
23090         (mcore_print_operand_punct_valid_p): New function.
23091         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23092         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23093
23094 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23095
23096         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23097         (print_operand_address): Delete.
23098         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23099         (PRINT_OPERAND_ADDRESS): Delete.
23100         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23101         static.
23102         (m68hc11_print_operand): Make static.
23103         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23104
23105 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23106
23107         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23108         (m32r_print_operand_address): Delete.
23109         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23110         (PRINT_OPERAND): Delete.
23111         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23112         (PRINT_OPERAND_ADDRESS): Delete.
23113         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23114         (m32r_print_operand_address): Make static.
23115         (m32r_print_operand): Make static.
23116         (m32r_print_operand_punct_valid_p): New function.
23117         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23118         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23119
23120 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23121
23122         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23123         (print_operand_address): Delete.
23124         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23125         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23126         (PRINT_OPERAND_ADDRESS): Delete.
23127         (iq2000_print_operand_punct): Delete.
23128         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23129         (iq2000_print_operand_address): Make static.
23130         (iq2000_print_operand): Make static.
23131         (iq2000_print_operand_punct_valid_p): New function.
23132         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23133         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23134
23135 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23136
23137         * config/frv/frv-protos.h (frv_print_operand): Delete.
23138         (frv_print_operand_address): Delete.
23139         * config/frv/frv.h (PRINT_OPERAND): Delete.
23140         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23141         (PRINT_OPERAND_ADDRESS): Delete.
23142         * config/frv/frv.c (frv_print_operand_address): Make static.
23143         (frv_print_operand): Make static.
23144         (frv_print_operand_punct_valid_p): New function.
23145         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23146         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23147
23148 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23149
23150         * tree.h (vec_member): Declare.
23151         * tree.c (vec_member): Define.
23152
23153 2010-06-17  Richard Guenther  <rguenther@suse.de>
23154
23155         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23156         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23157
23158 2010-06-17  Richard Guenther  <rguenther@suse.de>
23159
23160         * tree-inline.c (declare_return_variable): Remove bogus code.
23161
23162 2010-06-17  Richard Guenther  <rguenther@suse.de>
23163
23164         * gimplify.c (gimplify_bind_expr): Always promote complex
23165         and vector variables to registers if possible.
23166
23167 2010-06-17  Richard Guenther  <rguenther@suse.de>
23168
23169         * expr.c (get_inner_reference): Use double_int for bit_offset
23170         calculation.
23171
23172 2010-06-16  DJ Delorie  <dj@redhat.com>
23173
23174         * common.opt (-fstrict-volatile-bitfields): new.
23175         * doc/invoke.texi: Document it.
23176         * fold-const.c (optimize_bit_field_compare): For volatile
23177         bitfields, use the field's type to determine the mode, not the
23178         field's size.
23179         * expr.c (expand_assignment): Likewise.
23180         (get_inner_reference): Likewise.
23181         (expand_expr_real_1): Likewise.
23182         * expmed.c (store_fixed_bit_field): Likewise.
23183         (extract_bit_field_1): Likewise.
23184         (extract_fixed_bit_field): Likewise.
23185
23186 2010-06-16  Richard Guenther  <rguenther@suse.de>
23187
23188         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23189
23190 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23191
23192         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23193         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23194         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23195         * debug.c: Likewise.
23196         * sdbout.c: Likewise.
23197         * vmsdbgout.c: Likewise.
23198         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
23199         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
23200         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
23201         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
23202         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
23203         * dwarf2out.c (dw_fde_struct): New fields
23204         dw_fde_vms_{end,begin}_prologue.
23205         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
23206         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
23207         (dwarf2out_vms_end_prologue): New function.
23208         (dwarf2out_vms_begin_epilogue): New function.
23209         (dw_val_struct): New value dw_val_class_vms_delta.
23210         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
23211         begin_epilogue for VMS.
23212         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
23213         new static functions.
23214         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
23215         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
23216         static functions.
23217         (print_die): New case dw_val_class_vms_delta.
23218         (attr_checksum): Likewise.
23219         (same_dw_val_p: Likewise.
23220         (size_of_die): Likewise.
23221         (value_format): Likewise.
23222         (output_die): Likewise.
23223         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
23224         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
23225         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
23226         dwarf2out_cfi_begin_epilogue
23227         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
23228
23229 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23230
23231         * config/cris/cris-protos.h (cris_print_operand): Delete.
23232         (cris_print_operand_address): Delete.
23233         * config/cris/cris.h (PRINT_OPERAND): Delete.
23234         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23235         (PRINT_OPERAND_ADDRESS): Delete.
23236         * config/cris/cris.c (cris_print_operand_address): Make static.
23237         (cris_print_operand): Make static.
23238         (cris_print_operand_punct_valid_p): New function.
23239         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23240         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23241
23242 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23243
23244         * config/arm/arm-protos.h (arm_print_operand): Delete.
23245         (arm_print_operand_address): Delete.
23246         * config/arm/arm.h (PRINT_OPERAND): Delete.
23247         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23248         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
23249         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
23250         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
23251         (arm_print_operand): Make static.
23252         (arm_print_operand_punct_valid_p): New function.
23253         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23254         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23255
23256 2010-06-16  Nick Clifton  <nickc@redhat.com>
23257
23258         * config/rx/constraints.md (NEGint4): New constraint.
23259         * config/rx/rx.md (attr cc): Add set_zsc.
23260         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
23261         initialised.
23262         (cmpsf): Likewise.
23263         (call_internal): Clobber the cc0 register.
23264         (call_value_internal): Likewise.
23265         (cstoresi4): Likewise.
23266         (movsieq): Likewise.
23267         (movsine): Likewise.
23268         (addsi3): Add alternative to handle small negative constants.
23269         (sunsi3): Likewise.
23270         (addsi3): Do not set the O bit in the cc0 register.
23271         (adddi3): Likewise.
23272         (subsi3): Likewise.
23273         (subdi3): Likewise.
23274         (andsi3): Reorder alternatives to prefer shorter forms.
23275         (mulsi3): Likewise.
23276         (iorsi3): Likewise.
23277         (negsi2): Note that the cc0 flags are set.
23278         (rotlsi3): Note that only the Z and S bits are set in cc0.
23279         (lshrsi3): Likewise.
23280         (ashlsi3): Likewise.
23281         (subsf3): Use %Q for the MEM operand.
23282         (fix_truncsfsi2): Likewise.
23283         (floatsisf2): Likewise.
23284         (bitset): Remove early clobber from destination.
23285         (bitset_in_memory): Likewise.
23286         (lrintsf2): Clobber the cc0 register.
23287         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
23288         (rx_print_operand): Handle %N.
23289
23290 2010-06-16  Jan Hubicka  <jh@suse.cz>
23291
23292         * df-core.c (df_compact_blocks): Free problem_temps vector.
23293
23294 2010-06-16  Martin Jambor  <mjambor@suse.cz>
23295
23296         PR tree-optimization/43905
23297         * tree-sra.c: Include tree-inline.h.
23298         (create_abstract_origin): Removed.
23299         (modify_function): Version the call graph node instead of creating
23300         abstract origins and dealing with same_body aliases.
23301         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
23302         function is versionable.
23303         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
23304
23305 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
23306
23307         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
23308         (CHOOSE_DYNAMIC_LINKER): Update.
23309
23310 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
23311
23312         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
23313         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
23314         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
23315         *prefetch_3dnow_rex.
23316
23317 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
23318
23319         * target.h (struct asm_out):Add declare_constant_name field.
23320         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23321         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
23322         * output.h (default_asm_declare_constant_name): Declare.
23323         (assemble_label): Update prototype.
23324         * varasm.c (assemble_constant_contents): Use
23325         targetm.asm_out.declare_constant_name target hook.
23326         (assemble_label): Add 'file' argument.
23327         (default_asm_declare_constant_name): New function.
23328         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
23329         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
23330         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
23331
23332         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
23333         * config/darwin.c (darwin_asm_declare_constant_name): New function.
23334         (machopic_output_indirection): Update assemble_label argument list.
23335         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
23336         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23337
23338 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
23339
23340         PR middle-end/44391
23341         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23342         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
23343
23344 2010-06-15  Richard Guenther  <rguenther@suse.de>
23345
23346         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
23347
23348 2010-06-15  Paul Brook  <paul@codesourcery.com>
23349
23350         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
23351         hard-float ABI.
23352
23353 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
23354
23355         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
23356         don't get a vector type for output.
23357
23358 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
23359
23360         PR fortran/44536
23361         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
23362         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
23363         (LANG_HOOKS_DECLS): Add it.
23364         * gimplify.c (omp_notice_variable): Call
23365         lang_hooks.decls.omp_report_decl.
23366
23367 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23368
23369         PR lto/44464
23370         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23371         on the newly dead SSA name.
23372
23373 2010-06-15  Alan Modra  <amodra@gmail.com>
23374
23375         * doc/invoke.texi: Add mcmodel to powerpc options.
23376         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23377         * configure: Regenerate.
23378         * config.in: Regenerate.
23379         * config/rs6000/linux64.opt (mcmodel): New.
23380         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23381         (TARGET_CMODEL, SET_CMODEL): Define.
23382         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23383         select CMODEL_MEDIUM default.
23384         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23385         (TARGET_CMODEL): Define default.
23386         * config/rs6000/rs6000.c (cmodel): New variable.
23387         (rs6000_explicit_options): Add cmodel field.
23388         (rs6000_handle_option): Handle -mcmodel.
23389         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23390         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23391         (rs6000_delegitimize_address): Recognise new toc reference rtl
23392         and minimal-toc rtl.
23393         (rs6000_legitimize_reload_address): Handle new toc references.
23394         (print_operand_address): Handle legitimate_constant_pool_address_p
23395         match before lo_sum.
23396         (rs6000_eliminate_indexed_memrefs): Tidy.
23397         (rs6000_emit_move): Tweak threshold for inlining constants.
23398         Keep rs6000_emit_allocate_stack large stack frame offsets
23399         loaded into r0 inline.
23400         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23401         (tocrel_base, tocrel_offset): New variables.
23402         (toc_relative_expr_p): Set them here.
23403         (print_operand_address): Skip over any offset on constant pool address.
23404         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23405         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23406         (offsettable_ok_by_alignment): New function.
23407         (rs6000_emit_move): Address suitably aligned local symbol_refs
23408         relative to the toc pointer for -mcmodel=medium.
23409         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23410         strict param.  Allow lo_sum version of addressing.  Verify reg
23411         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23412         * config/rs6000/constraints.md: Update for above change.
23413         * config/rs6000/predicates.md: Likewise.
23414         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23415         code.
23416         (tls_gd): Split for -mcmodel=medium/large.
23417         (tls_gd_high, tls_gd_low): New.
23418         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23419         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23420         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23421         (largetoc_high, largetoc_low): New.
23422         (cmptf_internal2): Add clobber.
23423         * config/rs6000/rs6000-protos.h: Update.
23424
23425 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23426
23427         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23428         true if no prefetch is going to be generated for a given group.
23429         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23430         estimate the prefetch_count.
23431         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23432         prefetch count by considering the unroll_factor and prefetch_mod
23433         for is_loop_prefetching_profitable.
23434
23435 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23436
23437         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23438         anything if the argument is not a MEM.
23439
23440 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23441
23442         PR debug/43650
23443         PR debug/44181
23444         PR debug/44247
23445         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23446         debug stmts.
23447         (canonicalize_loop_ivs): Likewise.
23448
23449 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23450
23451         PR debug/43656
23452         * haifa-sched.c (setup_insn_reg_pressure_info,
23453         update_register_pressure): Reject debug insns.
23454         (ready_sort): Don't setup reg pressure for debug insns.
23455         (schedule_insn): Don't update reg pressure for debug insns.
23456
23457 2010-06-14  Richard Guenther  <rguenther@suse.de>
23458
23459         * lto-streamer.c (cached_bp): Remove.
23460         (bitpack_delete): Likewise.
23461         (bitpack_create): Likewise.
23462         (bp_get_next_word): Likewise.
23463         (bp_pack_value, bp_unpack_value): Move ...
23464         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23465         Re-implement.
23466         (struct bitpack_d): Likewise.
23467         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23468         New inline functions.
23469         * lto-streamer-out.c (lto_output_bitpack): Remove.
23470         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23471         (pack_value_fields): Adjust.
23472         (lto_write_tree): Likewise.
23473         (output_gimple_stmt): Likewise.
23474         (output_function): Likewise.
23475         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23476         (input_function): Likewise.
23477         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23478         (lto_input_bitpack): Remove.
23479         (lto_materialize_tree): Adjust.
23480         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23481         * lto-cgraph.c (lto_output_edge): Adjust.
23482         (lto_output_node): Likewise.
23483         (lto_output_varpool_node): Likewise.
23484         (lto_output_ref): Likewise.
23485         (input_node): Likewise.
23486         (input_varpool_node): Likewise.
23487         (input_ref): Likewise.
23488         (input_edge): Likewise.
23489         (output_node_opt_summary): Likewise.
23490         (input_node_opt_summary): Likewise.
23491         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23492         (pure_const_read_summary): Likewise.
23493         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23494         (ipa_read_indirect_edge_info): Likewise.
23495         (ipa_write_node_info): Likewise.
23496         (ipa_read_node_info): Likewise.
23497
23498 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23499
23500         PR target/44534
23501         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23502         (vec_extract_lo_v16hi): Likewise.
23503         (vec_extract_lo_v32qi): Likewise.
23504
23505 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23506
23507         PR bootstrap/44426
23508         * tree.h (build_call_expr): Don't define as vararg macro, instead
23509         add a prototype.
23510         * builtins.c (build_call_nofold): Remove.
23511         (expand_builtin_int_roundingfn, expand_builtin_pow,
23512         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23513         expand_builtin_memset_args, expand_builtin_strcmp,
23514         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23515         build_call_nofold_loc instead of build_call_nofold.
23516         (build_call_expr): New function.
23517
23518         PR tree-optimization/44508
23519         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23520         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23521         don't eliminate trivially dead stmts.
23522         * tree-vrp.c (vrp_finalize): Pass false as last argument
23523         to substitute_and_fold.
23524         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23525         to substitute_and_fold.
23526         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23527
23528         PR bootstrap/44509
23529         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23530
23531 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23532
23533         PR tree-optimization/44507
23534         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23535         to build initial vector for BIT_AND_EXPR.
23536         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23537
23538 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23539
23540         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23541         adjust z10prop set_attr.
23542
23543 2010-06-13  Jan Hubicka  <jh@suse.cz>
23544
23545         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23546         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23547         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23548         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23549         datastructure checks into checking asserts.
23550         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23551         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23552         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23553         df_ref_create_structure): Likewise.
23554         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23555         pool_free): Use gcc_checking_assert.
23556         * alias.c (get_alias_set): Likewise.
23557         * var-tracking.c (variable_htab_free, shared_hash_copy,
23558         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23559         * lto-streamer.c (bp_unpack_value): Likewise.
23560
23561 2010-06-13  Richard Guenther  <rguenther@suse.de>
23562
23563         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23564         Do not stream but initialize TYPE_CANONICAL to NULL.
23565         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23566         * gimple.c (gimple_types_compatible_p): Disregard
23567         TYPE_STRUCTURAL_EQUALITY_P.
23568         (gimple_register_type): Use TYPE_CANONICAL as cache.
23569         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23570         before registering common types.
23571         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23572         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23573         * tree.h (TYPE_CANONICAL): Clarify documentation.
23574
23575 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23576
23577         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23578         LIBCALL_VALUE): Remove macros.
23579         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23580         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23581         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23582         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23583         (ia64_function_value): Make static. Handle receiving the function
23584         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23585
23586 2010-06-12  Jan Hubicka  <jh@suse.cz>
23587
23588         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23589         at correct place.
23590
23591 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23592
23593         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23594
23595 2010-06-12  Jan Hubicka  <jh@suse.cz>
23596
23597         * df-core.c (df_clear_bb_info): New function.
23598         (df_set_blocks): bb_info is always allocated.
23599         (df_get_bb_info): Use block_info_elt_size.
23600         (df_set_bb_info): Likewise.
23601         (df_compact_blocks): Update for new block_info.
23602         (grow_bb_info): New function.
23603         * df-problems.c (df_grow_bb_info): Move to df-core.c
23604         (df_rd_set_bb_info): Remove.
23605         (df_rd_free_bb_info): Do not free block pool.
23606         (df_rd_alloc): Do not create pool, use check for
23607         obstack presence instead of NULL pointer for new blocks.
23608         (df_rd_free): DO not free alloc pool; clear block_info.
23609         (problem_RD): Add size of block info structure.
23610         (df_lr_set_bb_info): Remove.
23611         (df_lr_free_bb_info): Do not free block pool.
23612         (df_lr_alloc): Do not create pool, use check for
23613         obstack presence instead of NULL pointer for new blocks.
23614         (df_lr_free): DO not free alloc pool; clear block_info.
23615         (problem_LR): Add size of block info structure.
23616         (df_live_set_bb_info): Remove.
23617         (df_live_free_bb_info): Do not free block pool.
23618         (df_live_alloc): Do not create pool, use check for
23619         obstack presence instead of NULL pointer for new blocks.
23620         (df_live_free): DO not free alloc pool; clear block_info.
23621         (problem_LIVE): Add size of block info structure.
23622         (problem_CHAIN): Add size of block info structure.
23623         (df_byte_lr_set_bb_info): Remove.
23624         (df_byte_lr_free_bb_info): Do not free block pool.
23625         (df_byte_lr_alloc): Do not create pool, use check for
23626         obstack presence instead of NULL pointer for new blocks.
23627         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23628         (problem_BYTE_LR): Add size of block info structure.
23629         (problem_NOTE): Add size of block info structure.
23630         (df_byte_MD_set_bb_info): Remove.
23631         (df_byte_MD_free_bb_info): Do not free block pool.
23632         (df_byte_MD_alloc): Do not create pool, use check for
23633         obstack presence instead of NULL pointer for new blocks.
23634         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23635         (problem_BD): Add size of block info structure.
23636         * df-scan.c (df_scan_free_internal): Free block pool.
23637         (df_scan_set_bb_info): Remove.
23638         (df_scan_free_bb_info): Check for artificial_defs instead
23639         of bb_info being non-NULL.
23640         (df_scan_alloc): DO not create df_scan_block pool.
23641         (problem_SCAN): Set size of block info.
23642         (df_bb_refs_record): Do not allocate bb_info.
23643         * df.h (df_problem): Add block_info_elt_size.
23644         (struct dataflow): Change block_info to void *.
23645         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23646         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23647         in-line structures.
23648
23649 2010-06-12  Jan Hubicka  <jh@suse.cz>
23650
23651         PR tree-optimize/44485
23652         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23653         containing use of return value of noreturn function.
23654
23655 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23656
23657         * targhooks.c (default_function_value): Don't use
23658         FUNCTION_OUTGOING_VALUE.
23659         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23660         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23661
23662 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23663
23664         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23665         Add crtfastmath.o to extra_parts.
23666         * config/mips/crtfastmath.c: New.
23667         * config/mips/linux.h (ENDFILE_SPEC): New.
23668
23669 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23670
23671         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23672         old_type in parameter.
23673         (gcc_type_for_value): Update call to gcc_type_for_interval.
23674         (compute_type_for_level_1): Renamed compute_type_for_level.
23675         Update call to gcc_type_for_interval.
23676
23677 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23678
23679         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23680         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23681
23682 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23683
23684         * opts-common.c: Include options.h.
23685         (integral_argument): Move from opts.c.
23686         (decode_cmdline_option): New.  Based on read_cmdline_option.
23687         * opts.c (integral_argument): Move to opts-common.c.
23688         (read_cmdline_option): Move most contents to
23689         decode_cmdline_option.  Use %qs in diagnostics.
23690         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23691         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23692         decode_cmdline_option): New.
23693
23694 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23695
23696         PR target/44481
23697         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23698         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23699         (partiysi2_cmp): Ditto.
23700         (*partiyhi2_cmp): Ditto.
23701         (*parityqi2_cmp): Remove.
23702
23703 2010-06-11  Jan Hubicka  <jh@suse.cz>
23704
23705         * bitmap.h (bmp_iter_next_bit): New.
23706         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23707
23708 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23709             Eric Botcazou  <ebotcazou@adacore.com>
23710
23711         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23712         computed cost.
23713
23714 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23715
23716         * config/i386/i386.md (unspec): New define_c_enum.
23717         (unspecv): Ditto.
23718
23719 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23720
23721         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23722
23723 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23724
23725         PR middle-end/44483
23726         * tree-if-conv.c (bb_predicate_s): New struct.
23727         (bb_predicate_p): New.
23728         (bb_has_predicate): New.
23729         (bb_predicate): New.
23730         (set_bb_predicate): New.
23731         (bb_predicate_gimplified_stmts): New.
23732         (set_bb_predicate_gimplified_stmts): New.
23733         (add_bb_predicate_gimplified_stmts): New.
23734         (init_bb_predicate): New.
23735         (free_bb_predicate): New.
23736         (is_predicated): Use bb_predicate.
23737         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23738         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23739         before processing their successors.
23740         (clean_predicate_lists): Removed.
23741         (find_phi_replacement_condition): Use bb_predicate.
23742         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23743         computations.
23744         (insert_gimplified_predicates): New.
23745         (combine_blocks): Call insert_gimplified_predicates.
23746         (tree_if_conversion): Call free_bb_predicate instead of
23747         clean_predicate_lists.
23748
23749 2010-10-11  Paul Brook  <paul@codesourcery.com>
23750
23751         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23752         * config/arm/arm.c (all_architectures): Change v7e-m default to
23753         cortexm4.
23754         * config/arm/arm-cores.def: Add cortex-m4.
23755         * config/arm/arm-tune.md: Regenerate.
23756
23757 2010-06-11  Jan Hubicka  <jh@suse.cz>
23758
23759         * ipa-pure-const.c (special_builtlin_state): New function.
23760         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23761         (propagate_pure_const): Use it.
23762
23763 2010-06-11  Jan Hubicka  <jh@suse.cz>
23764
23765         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23766         (df_live_alloc): Initialize df_live_scratch when initializing
23767         problem_data.
23768         (df_live_transfer_function): Update uses of df_live_scratch.
23769         (df_live_free): Free problem_data; clear df_live_scratch before
23770         releasing the obstack.
23771         (df_md_free): Free problem data.
23772
23773 2010-06-11  Jan Hubicka  <jh@suse.cz>
23774
23775         * doc/invoke.texi (Wsuggest-attribute): Document.
23776         (Wmissing-noreturn): Remove.
23777         * ipa-pure-const.c (warn_function_noreturn): New function.
23778         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23779         warn_missing_noreturn.
23780         * common.opt (Wsuggest-attribute=noreturn): New.
23781         * tree-flow.h (warn_function_noreturn): Declare.
23782         * tree-cfg.c (execute_warn_function_noreturn): Use
23783         warn_function_noreturn.
23784         (gate_warn_function_noreturn): New.
23785         (pass_warn_function_noreturn): Update.
23786
23787 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23788
23789         * c-typeck.c (handle_warn_cast_qual): Add loc
23790         parameter. Improve warning message.
23791         (build_c_cast): Pass location to handle_warn_cast_qual.
23792
23793 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23794
23795         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23796         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23797         insn mnemonic.
23798         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23799
23800 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23801
23802         Fix bootstap on mips
23803         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23804         be naming typedefs.
23805
23806 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23807
23808         * system.h (helper_const_non_const_cast): New inline for
23809         gcc version <= 4.0.
23810         (CONST_CAST2): For gcc version <= 4.0 use
23811         new helper to do const/non-const casting.
23812
23813 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23814
23815         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23816         * Makefile.in (OBJS-common): Include insn-enums.o.
23817         (insn-enums.o): New rule.
23818         (simple_generated_c): Add insn-enums.c.
23819         (build/genenums.o): New rule.
23820         (genprogmd): Add "enums".
23821         * genconstants.c (print_enum_type): Declare a C string array
23822         for each enum.
23823         * genenums.c: New file.
23824         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23825         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23826         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23827
23828 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23829
23830         * doc/md.texi (define_enum_attr): Document.
23831         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23832         * read-md.h (lookup_enum_type): Declare.
23833         * read-md.c (lookup_enum_type): New function.
23834         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23835         * genattrtab.c (attr_desc): Add an enum_name field.
23836         (evaluate_eq_attr): Take the associated attribute as argument.
23837         Get the enum prefix from the enum_name field, if defined.
23838         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23839         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23840         (add_attr_value): New function, split out from...
23841         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23842         (write_test_expr): Pass attr to evaluate_eq_attr.
23843         (write_attr_get): Use the enum_name as the enum tag, if defined.
23844         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23845         (find_attr): Initialize enum_name.
23846         (main): Handle DEFINE_ENUM_ATTR.
23847         * gensupport.c (process_rtx): Likewise.
23848         * config/mips/mips.h (mips_tune_attr): Delete.
23849         * config/mips/mips.md (cpu): Use define_attr_enum.
23850
23851 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23852
23853         * doc/md.texi (define_c_enum, define_enum): Document.
23854         * read-md.h (md_constant): Add a parent_enum field.
23855         (enum_value, enum_type): New structures.
23856         (upcase_string, traverse_enum_types): Declare.
23857         * read-md.c (enum_types): New variable.
23858         (upcase_string, add_constant): New functions.
23859         (handle_constants): Don't create the hash table here.
23860         Use add_constant.
23861         (traverse_md_constants): Don't check for a null md_constants.
23862         (decimal_string, handle_enum, traverse_enum_types): New functions.
23863         (read_md_files): Initialize md_constants and md_enums.
23864         * genconstants.c (print_md_constant): Ignore info argument.
23865         Only print constants that belong to no enum.
23866         (print_enum_type): New function.
23867         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
23868         for each defined enum type.
23869         * config/mips/mips.md (processor): New define_enum.
23870         (unspec): New define_c_enum.
23871         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
23872         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
23873         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
23874         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
23875         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
23876         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
23877         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
23878         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
23879         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
23880         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
23881         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
23882         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
23883         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
23884         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
23885         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
23886         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
23887         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
23888         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
23889         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
23890         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
23891         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
23892         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
23893         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23894         (UNSPEC_RDDSP): Move to mips-dsp.md.
23895         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
23896         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
23897         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
23898         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
23899         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
23900         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
23901         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
23902         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
23903         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
23904         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
23905         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
23906         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
23907         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
23908         Moved to mips-dspr2.md.
23909         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
23910         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
23911         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
23912         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
23913         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
23914         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
23915         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23916         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23917         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23918         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23919         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23920         UNSPEC_LOONGSON_PSADBH)
23921         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23922         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23923         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
23924         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23925         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23926         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23927         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
23928         (cpu): Update comment.
23929         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
23930         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
23931         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
23932         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
23933         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
23934         UNSPEC_LOONGSON_PCMPEQ)
23935         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
23936         UNSPEC_LOONGSON_PINSR_0)
23937         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23938         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23939         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23940         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23941         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23942         UNSPEC_LOONGSON_PSADBH)
23943         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23944         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23945         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
23946         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23947         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23948         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23949         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
23950         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
23951         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
23952         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
23953         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
23954         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
23955         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
23956         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
23957         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
23958         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
23959         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
23960         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
23961         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
23962         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
23963         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
23964         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
23965         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
23966         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
23967         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
23968         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
23969         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23970         (UNSPEC_RDDSP): Moved from mips.md.
23971         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
23972         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
23973         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
23974         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
23975         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
23976         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
23977         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
23978         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
23979         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
23980         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
23981         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
23982         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
23983         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
23984         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
23985         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
23986         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
23987         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
23988         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
23989         (UNSPEC_SCC): Moved from mips.md.
23990         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
23991         "processor_type" to "processor".
23992         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
23993         * config/mips/mips.h (processor_type): Delete.
23994         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
23995         "processor_type" to "processor".
23996
23997 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23998
23999         * configure.ac (tm_include_list): Add insn-constants.h.
24000         * configure: Regenerate.
24001         * Makefile.in (GTM_H): Move insn-constants.h here from...
24002         (TM_H): ...here.
24003         * mkconfig.sh: Remove special handling for insn-constants.h.
24004
24005 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24006
24007         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24008         (BUILD_MD): ...this new variable.
24009         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24010         that include the old contents of simple_generated_h and
24011         simple_generated_c.
24012         (simple_generated_h, simple_generated_c): Include them.  Add
24013         insn-constants.h.
24014         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24015         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24016         Remove these dependencies from the main rule and include
24017         insn-conditions.md in the command line only if it appears
24018         in the dependency list.
24019         (insn-constants.h, s-constants): Delete.
24020         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24021         or gensupport.h.
24022         (build/genmddeps.o): Likewise.
24023         (genprogrtl): New variable that contains everything from genprogmd
24024         except mddeps and constants.
24025         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24026         depend on $(BUILD_MD)
24027         (genprog): New variable.  Make these programs depend on
24028         $(BUILD_ERRORS).
24029         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24030         (main): Use read_md_files instead of init_rtx_reader_args.
24031         * genconstants.c: As for genmddeps.c.
24032         * read-md.h (read_skip_construct): Declare.
24033         * read-md.c (read_skip_construct): New function.
24034         (handle_file): Allow a null handle_directive, skipping the
24035         construct if so.
24036         (parse_include): Update the comment accordingly.
24037
24038 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24039
24040         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24041         * genmddeps.c: Include read-md.h.
24042         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24043         * genattr.c (main): Likewise.
24044         * genattrtab.c (main): Likewise.
24045         * genautomata.c (main): Likewise.
24046         * gencodes.c (main): Likewise.
24047         * genconditions.c (main): Likewise.
24048         * genconfig.c (main): Likewise.
24049         * genconstants.c (main): Likewise.
24050         * genemit.c (main): Likewise.
24051         * genextract.c (main): Likewise.
24052         * genflags.c (main): Likewise.
24053         * genopinit.c (main): Likewise.
24054         * genoutput.c (main): Likewise.
24055         * genpeep.c (main): Likewise.
24056         * genrecog.c (main): Likewise.
24057         * genpreds.c (main): Likewise.
24058         * gensupport.h (in_fname): Move to read-md.h.
24059         (init_md_reader_args_cb): Rename to...
24060         (init_rtx_reader_args_cb): ...this and return a bool.
24061         (init_md_reader_args): Rename to...
24062         (init_rtx_reader_args): ...this and return a bool.
24063         (include_callback): Move to read-md.h.
24064         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24065         (file_name_list, first_dir_md_include): Move to read-md.c
24066         (first_bracket_include): Delete unused variable.
24067         (last_dir_md_include): Move to read-md.c.
24068         (process_include): Delete, moving code to read-md.c:handle_include.
24069         (process_rtx): Don't handle INCLUDE.
24070         (save_string): Delete.
24071         (rtx_handle_directive): New function.
24072         (init_md_reader_args_cb): Rename to...
24073         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24074         Use read_md_args.
24075         (init_md_reader_args): Rename to...
24076         (init_rtx_reader_args): ...this and return a boolean success value.
24077         * rtl.def (INCLUDE): Delete.
24078         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24079         argument.
24080         * read-rtl.c (read_conditions): Don't gobble ')' here.
24081         (read_mapping): Likewise.
24082         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24083         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24084         Store the whole queue in *X.  Remove call to init_md_reader.
24085         (read_rtx_1): Rename to...
24086         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24087         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24088         here.
24089         (read_nested_rtx): New function.  Handle (nil) here rather than
24090         in read_rtx_code.
24091         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24092         gobble ')' here.
24093         * read-md.h (directive_handler_t): New type.
24094         (in_fname, include_callback): Moved from read-md.h.
24095         (read_constants, init_md_reader): Delete.
24096         (read_md_files): Declare.
24097         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24098         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24099         from gensupport.c.
24100         (read_constants): Rename to...
24101         (handle_constants): ...this.  Don't gobble ')' here.
24102         (handle_include, handle_file, handle_toplevel_file)
24103         (parse_include): New functions, mostly taken from gensupport.c.
24104         (init_md_reader): Subsume into...
24105         (read_md_files): ...this new function.
24106
24107 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24108
24109         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24110         (unread_char): Decrement read_md_lineno after putting back '\n'.
24111         * read-md.c (fatal_with_file_and_line): Push back any characters
24112         that we decide not to add to the context.
24113         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24114         fatal_expected_char in cases where '/' ends a line (for example).
24115         (read_name): Don't increment read_md_lineno here.
24116         (read_escape): Likewise.
24117         (read_quoted_string): Likewise.
24118         (read_braced_string): Likewise.
24119
24120 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24121
24122         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24123         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24124         * genconstants.c: Include read-md.h.
24125         * read-rtl.c (md_constants): Move to read-md.c.
24126         (md_name): Move to read-md.h.
24127         (initialize_iterators): Use leading_string_hash instead of def_hash
24128         and leading_string_eq_p instead of def_name_eq_p.
24129         (read_name): Move to read-md.c.
24130         (def_hash, def_name_eq_p): Delete.
24131         (read_constants, traverse_md_constants): Move to read-md.c.
24132         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24133         * read-md.h: Include hashtab.h.
24134         (md_name): Moved from read-rtl.c.
24135         (md_constant): Moved from read-md.h.
24136         (leading_string_hash, leading_string_eq_p, read_name)
24137         (read_constants, traverse_md_constants): Declare.
24138         * read-md.c (md_constants): Moved from read-rtl.c.
24139         (leading_string_hash, leading_string_eq_p): New functions.
24140         (read_name, read_constants, traverse_md_constants): Moved from
24141         read-rtl.c.
24142
24143 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24144
24145         * read-rtl.c (md_name): New structure.
24146         (read_name): Take an md_name instead of a buffer pointer.
24147         Use the "string" field instead of strcpy when expanding constants.
24148         (read_constants): Remove the tmp_char argument.  Update the calls
24149         to read_name, using two local name buffers instead of the tmp_char
24150         argument.  Merge the constant-creation code.
24151         (read_conditions): Remove the tmp_char argument.  Update the calls
24152         to read_name, using a local name buffer instead of the tmp_char
24153         argument.
24154         (read_mapping): Replace tmp_char variable with a local name buffer.
24155         Update the calls to read_name.
24156         (read_rtx_1): Likewise.  Update the calls to read_constants and
24157         read_conditions.
24158
24159 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24160
24161         * Makefile.in (build/read-md.o): Depend on errors.h.
24162         * read-md.h (error_with_line): Declare.
24163         * read-md.c: Include errors.h.
24164         (message_with_line_1): New function, extracted from...
24165         (message_with_line): ...here.
24166         (error_with_line): New function.
24167         * genattrtab.c: If a call to message_with_line is followed by
24168         "have_error = 1;", replace both statements with a call to
24169         error_with_line.
24170         * genoutput.c: Likewise.
24171         * genpreds.c: Likewise.
24172         * genrecog.c: If a call to message_with_line is followed by
24173         "error_count++;", replace both statements with a call to
24174         error_with_line.
24175         (errorcount): Delete.
24176         (main): Don't check it.
24177         * gensupport.c: If a call to message_with_line is followed by
24178         "errors = 1;", replace both statements with a call to error_with_line.
24179         (errors): Delete.
24180         (process_define_cond_exec): Check have_error instead of errors.
24181         (init_md_reader_args_cb): Likewise.  Don't set errors.
24182
24183 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24184
24185         * read-md.h (read_md_file): Declare.
24186         (read_char, unread_char): New functions.
24187         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24188         (read_quoted_string, read_string): Remove FILE * argument.
24189         * read-md.c (read_md_file): New variable.
24190         (read_md_filename, read_md_lineno): Update comments and remove
24191         unnecessary initialization.
24192         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24193         (read_escape, read_quoted_string, read_braced_string, read_string):
24194         Remove FILE * argument.  Update calls accordingly, using read_char
24195         and unread_char instead of getc and ungetc.
24196         * rtl.h (read_rtx): Remove FILE * argument.
24197         * read-rtl.c (iterator_group): Remove FILE * argument from
24198         "find_builtin".
24199         (iterator_traverse_data): Remove "infile" field.
24200         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
24201         (add_mapping, read_name, read_constants, read_conditions)
24202         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
24203         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
24204         Remove file arguments from all calls, using read_char and unread_char
24205         instead of getc and ungetc.
24206         * gensupport.c (process_include): Preserve read_md_file around
24207         the include.  Set read_md_file to the handle of the included file.
24208         Update call to read_rtx.
24209         (init_md_reader_args_cb): Set read_md_file to the handle of the file
24210         and remove local FILE *.  Update calls to read_rtx.
24211
24212 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24213
24214         * read-md.h (read_rtx_lineno): Rename to...
24215         (read_md_lineno): ...this.
24216         (read_rtx_filename): Rename to...
24217         (read_md_filename): ...this.
24218         (copy_rtx_ptr_loc): Rename to...
24219         (copy_md_ptr_loc): ...this.
24220         (print_rtx_ptr_loc): Rename to...
24221         (print_md_ptr_loc): ...this.
24222         * read-md.c: Likewise.  Update references after renaming.
24223         (string_obstack): Replace RTL with MD in comment.
24224         (set_rtx_ptr_loc): Rename to...
24225         (set_md_ptr_loc): ...this.
24226         (get_rtx_ptr_loc): Rename to...
24227         (get_md_ptr_loc): ...this.
24228         * genconditions.c: Update references after renaming.
24229         * genemit.c: Likewise.
24230         * genoutput.c: Likewise.
24231         * genpreds.c: Likewise.
24232         * gensupport.c: Likewise.
24233         * read-rtl.c: Likewise.
24234
24235 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24236
24237         * Makefile.in (READ_MD_H): New variable.
24238         (BUILD_RTL): Add build/read-md.o.
24239         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
24240         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
24241         (build/genattrtab.o, build/genconditions.o build/genemit.o)
24242         (build/genextract.o, build/genflags.o, build/genoutput.o)
24243         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
24244         (build/read-md.o): New rule.
24245         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
24246         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
24247         * coretypes.h: ...here.
24248         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
24249         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
24250         * genattr.c: Include read-md.h.
24251         * genattrtab.c: Likewise.
24252         * genconditions.c: Likewise.
24253         * genemit.c: Likewise.
24254         * genextract.c: Likewise.
24255         * genflags.c: Likewise.
24256         * genoutput.c: Likewise.
24257         * genpreds.c: Likewise.
24258         * genrecog.c: Likewise.
24259         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
24260         (join_c_conditions, print_c_condition, read_rtx_filename)
24261         (read_rtx_lineno): Move to read-md.h.
24262         * read-rtl.c: Include read-md.h.
24263         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
24264         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
24265         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
24266         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
24267         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
24268         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
24269         (read_braced_string, read_string): Move to read-md.c.
24270         (read_rtx): Move some initialization to init_md_reader and call
24271         init_md_reader here.
24272         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
24273         Move to read-md.h.
24274         * gensupport.c: Include read-md.h.
24275         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
24276         * read-md.h, read-md.c: New files.
24277
24278 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
24279
24280         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24281         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24282         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
24283         * config/moxie/moxie.c (moxie_function_value): Make static.
24284         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
24285         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24286
24287 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24288
24289         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
24290         * dbgcnt.def (tree_sra): New counter.
24291         * tree-sra.c: Include dbgcnt.h.
24292         (gate_intra_sra): Check tree_sra debug counter.
24293
24294 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24295
24296         PR tree-optimization/44258
24297         * tree-sra.c (build_access_subtree): Return false iff there is a
24298         partial overlap.
24299         (build_access_trees): Likewise.
24300         (analyze_all_variable_accesses): Disqualify candidates if
24301         build_access_trees returns true for them.
24302
24303 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
24304
24305         PR debug/41371
24306         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
24307         tail-recurse into canonical node.  Fast-forward over
24308         non-canonical VALUEs.
24309
24310 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
24311
24312         PR boostrap/44470
24313         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
24314         (*addsi_1_zext) <TYPE_LEA>: Likewise.
24315         (add lea splitter): Likewise.
24316         (add_zext lea splitter): Likewise.
24317
24318 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
24319
24320         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
24321
24322 2010-06-10  Jan Hubicka  <jh@suse.cz>
24323
24324         * df-problems.c (df_live_problem_data): Add live_bitmaps.
24325         (df_live_alloc): Initialize problem data and live_osbtacks.
24326         (df_live_finalize): Remove obstack, problem data; do not
24327         clear all bitmaps.
24328         (df_live_top_dump, df_live_bottom_dump): Do not dump old
24329         data when not allocated.
24330         (df_live_verify_solution_start): Do not allocate problem data.
24331         (df_live_verify_solution_end): Check if out is allocated.
24332         (struct df_md_problem_data): New structure.
24333         (df_md_alloc): Allocate problem data.
24334         (df_md_free): Free problem data; do not clear bitmaps.
24335
24336 2010-06-10  Jan Beulich  <jbeulich@novell.com>
24337
24338         PR bootstrap/37304
24339         * configure.ac: Replace $() with ${} when intending to expand
24340         variables rather than invoking commands.
24341         * configure: Re-generate.
24342
24343 2010-06-10  Jan Hubicka  <jh@suse.cz>
24344
24345         PR rtl-optimization/44460
24346         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
24347         TYPE_NEEDS_CONSTRUCTING sanity check.
24348
24349 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
24350
24351         * doc/include/fdl.texi: Move to GFDL version 1.3.
24352
24353         * doc/cpp.texi: Move to GFDL version 1.3.
24354         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
24355         * doc/gccint.texi: Move to GFDL version 1.3.
24356         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
24357         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
24358         * doc/invoke.texi: Move to GFDL version 1.3.
24359
24360 2010-06-09  Jan Hubicka  <jh@suse.cz>
24361
24362         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
24363         Break out from ...
24364         (propagate) ... here; swap the order.
24365
24366 2010-06-09  Jan Hubicka  <jh@suse.cz>
24367
24368         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24369         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24370         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24371         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24372
24373 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24374
24375         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24376         Do not the gather memory reference in the outer loop if the step
24377         is not a constant.
24378
24379 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24380
24381         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24382         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24383         8 to 4.  Minor change of the related comments.
24384
24385 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24386
24387         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24388         the scev analysis when the variable is not used outside the loop
24389         in a close phi node: call compute_overall_effect_of_inner_loop.
24390
24391 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24392
24393         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24394         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24395         (build_sese_conditions_before): Renamed call to single_pred_cond.
24396         (build_sese_conditions_after): Same.
24397
24398 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24399
24400         * graphite-poly.h: Fix comments and indentation.
24401         * graphite-sese-to-poly.c: Same.
24402         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24403         * tree-chrec.c: Fix comments and indentation.
24404         (tree-ssa-loop-niter.c): Same.
24405
24406 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24407
24408         PR rtl-optimization/42461
24409         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24410         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24411
24412 2010-06-09  Jan Hubicka  <jh@suse.cz>
24413
24414         * bitmap.c (bitmap_and): Walk array forward.
24415         (bitmap_and_compl_into): Likewise.
24416         (bitmap_xor): Likewise.
24417         (bitmap_xor_into):  Likewise.
24418         (bitmap_equal_p): Likewise.
24419         (bitmap_intersect_p): Likewise.
24420         (bitmap_intersect_compl_p): Likewise.
24421         (bitmap_ior_and_into): Likewise.
24422         (bitmap_elt_copy): Likewise.
24423         (bitmap_and_compl): Likewise.
24424         (bitmap_elt_ior): Likewise.
24425
24426 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24427
24428         * opts-common.c (prune_options): Ensure replacement argv array
24429         is correctly terminated by a NULL entry.
24430
24431 2010-06-09  Jan Hubicka  <jh@suse.cz>
24432
24433         * cgraph.h (varpool_first_static_initializer,
24434         varpool_next_static_initializer): Make checking only when
24435         checking enabled.
24436         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24437         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24438         gcc_assert to gcc_checking_assert.
24439         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24440         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24441         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24442         op_iter_init_phiuse, op_iter_init_phidef,
24443         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24444         gcc_checking_assert.
24445         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24446         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24447         partition_is_global, live_on_entry, live_on_exit,
24448         live_merge_and_clear): Likewise.
24449         * system.h (gcc_checking_assert): New macro.
24450         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24451
24452 2010-06-09  Jason Merrill  <jason@redhat.com>
24453
24454         * Makefile.in (TAGS): Collect tags info from c-family.
24455
24456 2010-06-09  Jan Hubicka  <jh@suse.cz>
24457
24458         * gimple.h (gcc_gimple_checking_assert): New macro.
24459         (gimple_set_def_ops, gimple_set_use_ops,
24460         gimple_set_vuse, gimple_set_vdef,
24461         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24462         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24463         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24464         gimple_asm_output_op, gimple_asm_output_op_ptr,
24465         gimple_asm_set_output_op, gimple_asm_clobber_op,
24466         gimple_asm_set_clobber_op, gimple_asm_label_op,
24467         gimple_asm_set_label_op, gimple_try_set_kind,
24468         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24469         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24470         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24471         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24472         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24473         gimple_omp_for_set_initial, gimple_omp_for_final,
24474         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24475         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24476         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24477         conditional with ENABLE_GIMPLE_CHECKING.
24478         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24479
24480 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24481
24482         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24483         (get_computation_cost_at): Use it.
24484         (determine_use_iv_cost_condition): Likewise.
24485         (determine_iv_cost): Likewise.
24486
24487 2010-06-09  Richard Guenther  <rguenther@suse.de>
24488
24489         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24490         replace constants.
24491
24492 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24493
24494         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24495
24496 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24497
24498         PR tree-optimization/44423
24499         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24500         (analyze_access_subtree): Pass negative allow_replacements to children
24501         if the current type is scalar.
24502
24503 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24504
24505         PR testsuite/42843
24506         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24507         * doc/plugins.texi (Plugin license check): Update information
24508         on type of plugin_is_GPL_compatible.
24509         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24510         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24511
24512 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24513
24514         * config/arm/arm.c (thumb2_reorg): New function.
24515         (arm_reorg): Call it.
24516         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24517         arithmetic operations): Delete.
24518
24519 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24520
24521         PR target/44067
24522         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24523         e500v2 target.
24524
24525 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24526
24527         PR plugins/44459
24528         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24529
24530 2010-06-08  Jan Hubicka  <jh@suse.cz>
24531
24532         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24533         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24534
24535 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24536
24537         PR tree-optimization/39874
24538         PR middle-end/28685
24539         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24540         Declare.
24541         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24542         same_bool_result_p): New.
24543         (and_var_with_comparison, and_var_with_comparison_1,
24544         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24545         (or_var_with_comparison, or_var_with_comparison_1,
24546         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24547         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24548         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24549         of combine_comparisons.
24550         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24551
24552 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24553
24554         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24555         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24556         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24557         pdp11_function_value_regno_p): New functions.
24558         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24559         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24560
24561 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24562
24563         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24564         Thumb-2 in the MINUS case.
24565
24566 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24567
24568         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24569
24570         * doc/gty.texi (GTY Options): Document typed GC allocation and
24571         variable_size GTY option.
24572
24573         * ggc-internal.h: New.
24574
24575         * ggc.h: Update copyright year.
24576         (digit_string): Move to stringpool.c.
24577         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24578         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24579         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24580         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24581         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24582         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24583         (ggc_force_collect, ggc_get_size, ggc_statistics)
24584         (ggc_print_common_statistics): Move to ggc-internal.h.
24585         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24586         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24587         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24588         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24589         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24590         (ggc_alloc_zone_pass_stat): Remove.
24591         (ggc_internal_alloc_stat, ggc_internal_alloc)
24592         (ggc_internal_cleared_alloc_stat): New.
24593         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24594         (ggc_internal_vec_alloc_stat)
24595         (ggc_internal_cleared_vec_alloc_stat)
24596         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24597         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24598         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24599         (ggc_cleared_alloc_ptr_array_two_args): New.
24600         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24601         (ggc_splay_alloc): Change the type of the first argument to
24602         enum gt_types_enum.
24603         (ggc_alloc_string): Make macro.
24604         (ggc_alloc_string_stat): New.
24605         (ggc_strdup): Redefine.
24606         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24607         (ggc_alloc_rtvec_sized): New.
24608         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24609         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24610         (ggc_internal_cleared_alloc_zone_stat)
24611         (ggc_internal_zone_alloc_stat)
24612         (ggc_internal_zone_cleared_alloc_stat)
24613         (ggc_internal_zone_vec_alloc_stat)
24614         (ggc_alloc_zone_rtx_def_stat)
24615         (ggc_alloc_zone_tree_node_stat)
24616         (ggc_alloc_zone_cleared_tree_node_stat)
24617         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24618
24619         * ggc-common.c: Include ggc-internal.h.
24620         (ggc_internal_cleared_alloc_stat): Rename from
24621         ggc_alloc_cleared_stat.
24622         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24623         (ggc_calloc): Remove.
24624         (ggc_cleared_alloc_htab_ignore_args): New.
24625         (ggc_cleared_alloc_ptr_array_two_args): New.
24626         (ggc_splay_alloc): Add obj_type parameter.
24627         (init_ggc_heuristics): Formatting fixes.
24628
24629         * ggc-none.c: Update copyright year.
24630         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24631         (ggc_alloc_cleared_stat): Rename to
24632         ggc_internal_cleared_alloc_stat.
24633         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24634
24635         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24636         Remove references to ggc_alloc in comments.
24637         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24638         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24639         (new_ggc_zone, destroy_ggc_zone): Remove.
24640         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24641
24642         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24643         ggc_alloc in comments.
24644         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24645         (ggc_internal_alloc_zone_pass_stat): New.
24646         (ggc_internal_cleared_alloc_zone_stat): New.
24647         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24648         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24649         (new_ggc_zone, destroy_ggc_zone): Remove.
24650
24651         * stringpool.c: Update copyright year.  Include ggc-internal.h
24652         (digit_vector): Make static.
24653         (digit_string): Moved from ggc.h.
24654         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24655         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24656
24657         * Makefile.in (GGC_INTERNAL_H): New.
24658         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24659         $(GGC_INTERNAL_H) to dependencies.
24660
24661         * gengtype.c: Update copyright year.
24662         (walk_type): Accept variable_size GTY option.
24663         (USED_BY_TYPED_GC_P): New macro.
24664         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24665         whitespace at the end of strings.
24666         (get_type_specifier, variable_size_p): New functions.
24667         (alloc_quantity, alloc_zone): New enums.
24668         (write_typed_alloc_def): New function.
24669         (write_typed_struct_alloc_def): Likewise.
24670         (write_typed_typed_typedef_alloc_def): Likewise.
24671         (write_typed_alloc_defns): Likewise.
24672         (output_typename, write_splay_tree_allocator_def): Likewise.
24673         (write_splay_tree_allocators): Likewise.
24674         (main): Call write_typed_alloc_defns and
24675         write_splay_tree_allocators.
24676
24677         * lto-streamer.h (lto_file_decl_data_ptr): New.
24678
24679         * passes.c (order): Define using cgraph_node_ptr.
24680
24681         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24682         ht_identifier_ptr.
24683
24684         * gimple.h (union gimple_statement_d): Likewise.
24685
24686         * rtl.h (struct rtx_def): Likewise.
24687         (struct rtvec_def): Likewise.
24688
24689         * tree.h (union tree_node): Likewise.
24690
24691         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24692
24693         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24694
24695         * tree-scalar-evolution.c (scev_initialize): Likewise.
24696
24697         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24698
24699         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24700
24701         * omp-low.c (lower_omp_critical): Likewise.
24702
24703         * bitmap.h (struct bitmap_head_def): Update comment to not
24704         reference ggc_alloc.
24705
24706         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24707
24708         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24709
24710         * ipa-prop.c (duplicate_ggc_array): Rename to
24711         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24712         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24713
24714         * gimple.c (gimple_alloc_stat): Use
24715         ggc_alloc_cleared_gimple_statement_d_stat.
24716
24717         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24718
24719         * tree.c (make_node_stat): Use
24720         ggc_alloc_zone_cleared_tree_node_stat.
24721         (make_tree_vec_stat): Likewise.
24722         (build_vl_exp_stat): Likewise.
24723         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24724         (make_tree_binfo_stat): Likewise.
24725         (tree_cons_stat): Likewise.
24726
24727         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24728         (shallow_copy_rtx_stat): Likewise.
24729         (make_node_stat): Likewise.
24730
24731         * lto-symtab.c: Fix comment.
24732
24733         * tree-cfg.c (create_bb): Update comment to not reference
24734         ggc_alloc_cleared.
24735         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24736
24737         * varpool.c (varpool_node): Use typed GC allocation.
24738         (varpool_extra_name_alias): Likewise.
24739
24740         * varasm.c (emutls_decl): Likewise.
24741         (get_unnamed_section): Likewise.
24742         (get_noswitch_section): Likewise.
24743         (get_section): Likewise.
24744         (get_block_for_section): Likewise.
24745         (build_constant_desc): Likewise.
24746         (create_constant_pool): Likewise.
24747         (force_const_mem): Likewise.
24748
24749         * tree.c (build_vl_exp_stat): Likewise.
24750         (build_real): Likewise.
24751         (build_string): Likewise.
24752         (decl_debug_expr_insert): Likewise.
24753         (decl_value_expr_insert): Likewise.
24754         (type_hash_add): Likewise.
24755         (build_omp_clause): Likewise.
24756
24757         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24758
24759         * tree-ssa.c (init_tree_ssa): Likewise.
24760
24761         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24762
24763         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24764
24765         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24766
24767         * tree-ssa-alias.c (get_ptr_info): Likewise.
24768
24769         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24770
24771         * tree-phinodes.c (allocate_phi_node): Likewise.
24772
24773         * tree-iterator.c (tsi_link_before): Likewise.
24774         (tsi_link_after): Likewise.
24775
24776         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24777
24778         * tree-dfa.c (create_var_ann): Likewise.
24779
24780         * tree-cfg.c (create_bb): Likewise.
24781
24782         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24783         (general_init): Likewise.
24784
24785         * stringpool.c (stringpool_ggc_alloc): Likewise.
24786         (gt_pch_save_stringpool): Likewise.
24787
24788         * sese.c (if_region_set_false_region): Likewise.
24789
24790         * passes.c (do_per_function_toporder): Likewise.
24791
24792         * optabs.c (set_optab_libfunc): Likewise.
24793         (set_conv_libfunc): Likewise.
24794
24795         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24796
24797         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24798         (input_eh_region): Likewise.
24799         (input_eh_lp): Likewise.
24800         (make_new_block): Likewise.
24801         (unpack_ts_real_cst_value_fields): Likewise.
24802
24803         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24804
24805         * lto-cgraph.c (input_node_opt_summary): Likewise.
24806
24807         * loop-init.c (loop_optimizer_init): Likewise.
24808
24809         * lambda.h (lambda_vector_new): Likewise.
24810
24811         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24812
24813         * ira.c (update_equiv_regs): Likewise.
24814
24815         * ipa.c (cgraph_node_set_new): Likewise.
24816         (cgraph_node_set_add): Likewise.
24817         (varpool_node_set_new): Likewise.
24818         (varpool_node_set_add): Likewise.
24819
24820         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24821         (duplicate_ipa_jump_func_array): Likewise.
24822         (ipa_read_node_info): Likewise.
24823
24824         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24825
24826         * integrate.c (get_hard_reg_initial_val): Likewise.
24827
24828         * gimple.c (gimple_alloc_stat): Likewise.
24829         (gimple_build_omp_for): Likewise.
24830         (gimple_seq_alloc): Likewise.
24831         (gimple_copy): Likewise.
24832
24833         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24834         (gsi_insert_after_without_update): Likewise.
24835
24836         * function.c (add_frame_space): Likewise.
24837         (insert_temp_slot_address): Likewise.
24838         (assign_stack_temp_for_type): Likewise.
24839         (allocate_struct_function): Likewise.
24840         (types_used_by_var_decl_insert): Likewise.
24841
24842         * except.c (init_eh_for_function): Likewise.
24843         (gen_eh_region): Likewise.
24844         (gen_eh_region_catch): Likewise.
24845         (gen_eh_landing_pad): Likewise.
24846         (add_call_site): Likewise.
24847
24848         * emit-rtl.c (get_mem_attrs): Likewise.
24849         (get_reg_attrs): Likewise.
24850         (start_sequence): Likewise.
24851         (init_emit): Likewise.
24852
24853         * dwarf2out.c (new_cfi): Likewise.
24854         (queue_reg_save): Likewise.
24855         (dwarf2out_frame_init): Likewise.
24856         (new_loc_descr): Likewise.
24857         (find_AT_string): Likewise.
24858         (new_die): Likewise.
24859         (add_var_loc_to_decl): Likewise.
24860         (clone_die): Likewise.
24861         (clone_as_declaration): Likewise.
24862         (break_out_comdat_types): Likewise.
24863         (new_loc_list): Likewise.
24864         (loc_descriptor): Likewise.
24865         (add_loc_descr_to_each): Likewise.
24866         (add_const_value_attribute): Likewise.
24867         (tree_add_const_value_attribute): Likewise.
24868         (add_comp_dir_attribute): Likewise.
24869         (add_name_and_src_coords_attributes): Likewise.
24870         (lookup_filename): Likewise.
24871         (store_vcall_insn): Likewise.
24872         (dwarf2out_init): Likewise.
24873
24874         * dbxout.c (dbxout_init): Likewise.
24875
24876         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24877
24878         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24879
24880         * config/score/score7.c (score7_output_external): Likewise.
24881
24882         * config/score/score3.c (score3_output_external): Likewise.
24883
24884         * config/s390/s390.c (s390_init_machine_status): Likewise.
24885
24886         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24887         (rs6000_init_machine_status): Likewise.
24888         (output_toc): Likewise.
24889
24890         * config/pa/pa.c (pa_init_machine_status): Likewise.
24891         (get_deferred_plabel): Likewise.
24892
24893         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24894
24895         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24896
24897         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24898
24899         * config/mep/mep.c (mep_init_machine_status): Likewise.
24900         (mep_note_pragma_flag): Likewise.
24901
24902         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24903
24904         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24905
24906         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24907
24908         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24909         (i386_pe_maybe_record_exported_symbol): Likewise.
24910
24911         * config/i386/i386.c (get_dllimport_decl): Likewise.
24912         (ix86_init_machine_status): Likewise.
24913         (assign_386_stack_local): Likewise.
24914
24915         * config/frv/frv.c (frv_init_machine_status): Likewise.
24916
24917         * config/darwin.c (machopic_indirection_name): Likewise.
24918
24919         * config/cris/cris.c (cris_init_machine_status): Likewise.
24920
24921         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24922
24923         * config/avr/avr.c (avr_init_machine_status): Likewise.
24924
24925         * config/arm/arm.c (arm_init_machine_status): Likewise.
24926
24927         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24928         (alpha_need_linkage): Likewise.
24929         (alpha_use_linkage): Likewise.
24930
24931         * cgraph.c (cgraph_allocate_node): Likewise.
24932         (cgraph_create_edge_1): Likewise.
24933         (cgraph_create_indirect_edge): Likewise.
24934         (cgraph_add_asm_node): Likewise.
24935
24936         * cfgrtl.c (init_rtl_bb_info): Likewise.
24937
24938         * cfgloop.c (alloc_loop): Likewise.
24939         (rescan_loop_exit): Likewise.
24940
24941         * cfg.c (init_flow): Likewise.
24942         (alloc_block): Likewise.
24943         (unchecked_make_edge): Likewise.
24944
24945         * c-parser.c (c_parse_init): Likewise.
24946         (c_parse_file): Likewise.
24947
24948         * c-decl.c (bind): Likewise.
24949         (record_inline_static): Likewise.
24950         (push_scope): Likewise.
24951         (make_label): Likewise.
24952         (lookup_label_for_goto): Likewise.
24953         (finish_struct): Likewise.
24954         (finish_enum): Likewise.
24955         (c_push_function_context): Likewise.
24956
24957         * bitmap.c (bitmap_element_allocate): Likewise.
24958         (bitmap_gc_alloc_stat): Likewise.
24959
24960         * alias.c (record_alias_subset): Likewise.
24961         (init_alias_analysis): Likewise.
24962
24963 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
24964
24965         * fold-const.c (fold_comparison): Remove redundant parenthesis.
24966         * tree-inline.c (expand_call_inline): Pass translated return value of
24967         cgraph_inline_failed_string to diagnostic function.
24968
24969 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
24970             Shujing Zhao  <pearly.zhao@oracle.com>
24971
24972         PR c/37724
24973         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
24974         implicit bad conversions is initialization.
24975         (error_init): Use gmsgid instead of msgid for argument name and change
24976         the call for error.
24977         (pedwarn_init): Use gmsgid instead of msgid for argument name and
24978         change the call for pedwarn.
24979         (warning_init): Use gmsgid instead of msgid for argument name and
24980         change the call for warning.
24981
24982 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
24983
24984         * config/mips/mips-protos.h (mips_print_operand): Delete.
24985         (mips_print_operand_address): Delete.
24986         * config/mips/mips.h (mips_print_operand_punct): Delete.
24987         (PRINT_OPERAND): Delete.
24988         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24989         (PRINT_OPERAND_ADDRESS): Delete.
24990         * config/mips/mips.c (mips_print_operand_punct): Make static.
24991         (mips_print_operand_address): Make static.
24992         (mips_print_operand): Make static.  Call
24993         mips_print_operand_punct_valid_p.
24994         (mips_print_operand_punct_valid_p): New function.
24995         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24996         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24997
24998 2010-06-07  Jan Hubicka  <jh@suse.cz>
24999
25000         PR middle-end/44454
25001         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25002         are allocated.
25003
25004 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25005
25006         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25007         name of RECORD.
25008
25009 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25010
25011         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25012         attributes): Document gas.
25013
25014 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25015
25016         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25017         <TYPE_LEA>: Split instruction.
25018         <default>: Remove alternative 2 handling.
25019         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25020         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25021         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25022
25023         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25024         (ashift_zext lea splitter): Use DImode for multiplication.
25025
25026         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25027         to generate addition.
25028
25029 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25030
25031         * common.opt (fira-verbose): Use Var.
25032         (fpcc-struct-return): Use Init instead of VarExists.
25033         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25034         toplev.c.
25035         * flags.h (flag_signed_char, flag_short_enums,
25036         flag_pcc_struct_return, flag_ira_verbose,
25037         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25038         * toplev.c (flag_detailed_statistics, flag_signed_char,
25039         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25040         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25041         * toplev.h (flag_crossjumping, flag_if_conversion,
25042         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25043         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25044         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25045         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25046         flag_ira_coalesce, flag_ira_move_spills,
25047         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25048
25049 2010-06-07  Jan Hubicka  <jh@suse.cz>
25050
25051         * df-core.c (df_analyze_problem): Do verification after allocation.
25052
25053         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25054         (df_lr_alloc): Initialize problem data; move bitmaps to
25055         lr_bitmaps obstack.
25056         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25057         (df_lr_verify_solution_start): Do not initialize problem data;
25058         allocate bitmaps in lr_bitmaps.
25059         (df_lr_verify_solution_end): Do not free problem data.
25060
25061 2010-06-07  Jan Hubicka  <jh@suse.cz>
25062
25063         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25064         if caller is noreturn.
25065         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25066         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25067         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25068         * ipa-pure-const.c (check_decl): Add IPA parameter.
25069         (state_from_flags): New function.
25070         (better_state, worse_state): New functions.
25071         (check_call): When in IPA mode, do not care about callees.
25072         (check_load, check_store): Update.
25073         (check_ipa_load, check_ipa_store): New.
25074         (check_stmt): When in IPA mode, use IPA checkers.
25075         (analyze_function): Use state_from_flags.
25076         (propagate): Check indirect edges and references.
25077
25078 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25079
25080         PR rtl-optimization/44404
25081         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25082         of count_occurrences to see if it's safe to modify mem_insn.
25083
25084 2010-06-07  Richard Guenther  <rguenther@suse.de>
25085
25086         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25087         and EH-only cleanup drop the cleanup instead of inserting it
25088         unconditionally.
25089
25090 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25091
25092         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25093         documentation.
25094         * targhooks.c (default_builtin_vectorization_cost): New function.
25095         * targhooks.h (default_builtin_vectorization_cost): Declare.
25096         * target.h (enum vect_cost_for_stmt): Define.
25097         (builtin_vectorization_cost): Change argument and comment.
25098         * tree-vectorizer.h: Remove cost model macros.
25099         * tree-vect-loop.c: Include target.h.
25100         (vect_get_cost): New function.
25101         (vect_estimate_min_profitable_iters): Replace cost model macros with
25102         calls to vect_get_cost.
25103         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25104         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25105         default implementation.
25106         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25107         calls to target hook builtin_vectorization_cost.
25108         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25109         Likewise.
25110         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25111         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25112         implementation to return costs.
25113         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25114         * config/spu/spu.h: Remove vectorizer cost model macros.
25115         * config/i386/i386.h: Likewise.
25116         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25117         a call to target hook builtin_vectorization_cost.
25118
25119 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25120
25121         PR target/44319
25122         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25123         and above and defer till target is known.
25124         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25125         turn off otherwise.
25126
25127 2010-05-25  Jan Hubicka  <jh@suse.cz>
25128
25129         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25130         (df_compact_blocks): Likewise.
25131         * df.h (struct df): Turn hardware_regs_used,
25132         regular_block_artificial_uses, eh_block_artificial_uses,
25133         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25134         bitmap_head.
25135         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25136         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25137         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25138         df_scan_blocks, df_insn_delete, df_insn_rescan,
25139         df_insn_rescan_debug_internal, df_insn_rescan_all,
25140         df_process_deferred_rescans, df_process_deferred_rescans,
25141         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25142         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25143         df_record_entry_block_defs, df_record_exit_block_uses,
25144         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25145         df_scan_verify): Update.
25146
25147 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25148
25149         PR c++/44188
25150         * c-common.c (is_typedef_decl): Move this definition ...
25151         * tree.c (is_typedef_decl): ... here.
25152         (typdef_variant_p): Move definition here from cp/tree.c.
25153         * c-common.h (is_typedef_decl): Move this declaration ...
25154         * tree.h (is_typedef_decl): ... here.
25155         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25156         * dwarf2out.c (is_naming_typedef_decl): New function.
25157         (gen_tagged_type_die): Split out of ...
25158         (gen_type_die_with_usage): ... this function. When an anonymous
25159         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25160         is emitted for the typedef.
25161         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25162         anonymous tagged types.
25163
25164 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25165
25166         PR c/20000
25167         * c-decl.c (grokdeclarator): Delete warning.
25168
25169 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25170
25171         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25172         newly built CALL_EXPR.
25173         * tree-profile.c (tree_profiling): Don't profile functions produced
25174         for built-in stuff.
25175
25176 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25177
25178         PR bootstrap/44427
25179         PR bootstrap/44428
25180         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25181         endianness-independent.
25182
25183 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25184
25185         * c-common.c: Move to c-family/.
25186         * c-common.def: Likewise.
25187         * c-common.h: Likewise.
25188         * c-cppbuiltin.c: Likewise.
25189         * c-dump.c: Likewise.
25190         * c-format.c: Likewise.
25191         * c-format.h : Likewise.
25192         * c-gimplify.c: Likewise.
25193         * c-lex.c: Likewise.
25194         * c-omp.c: Likewise.
25195         * c.opt: Likewise.
25196         * c-opts.c: Likewise.
25197         * c-pch.c: Likewise.
25198         * c-ppoutput.c: Likewise.
25199         * c-pragma.c: Likewise.
25200         * c-pragma.h: Likewise.
25201         * c-pretty-print.c: Likewise.
25202         * c-pretty-print.h: Likewise.
25203         * c-semantics.c: Likewise.
25204         * stub-objc.c: Likewise.
25205
25206         * gengtype.c (get_file_langdir): Special-case files in c-family/.
25207         (get_output_file_with_visibility): Fix name for c-common.h.
25208         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
25209
25210         * c-tree.h: Update include path for moved files.
25211         * c-lang.c: Likewise.
25212         * c-lang.h: Likewise.
25213         * c-parser.c: Likewise.
25214         * c-convert.c: Likewise.
25215         * c-decl.c: Likewise.
25216         * c-objc-common.c: Likewise.
25217         * configure.ac: Make sure c-family/ exists in the build directory.
25218         * configure: Regenerate.
25219         * Makefile.in: Update paths for moved files.  Regroup files per
25220         location and update dependencies.  Move generated_files down after
25221         ALL_GTFILES_H.
25222
25223         * config/spu/spu-c.c: Update paths for moved files.
25224         * config/mep/mep-pragma.c: Likewise.
25225         * config/darwin-c.c: Likewise.
25226         * config/i386/msformat-c.c: Likewise.
25227         * config/i386/i386-c.c: Likewise.
25228         * config/avr/avr-c.c: Likewise.
25229         * config/sol2-c.c: Likewise.
25230         * config/ia64/ia64-c.c: Likewise.
25231         * config/rs6000/rs6000-c.c: Likewise.
25232         * config/arm/arm.c: Likewise.
25233         * config/arm/arm-c.c: Likewise.
25234         * config/h8300/h8300.c: Likewise.
25235         * config/v850/v850-c.c: Likewise.
25236
25237         * config/t-darwin: Fix dependencies for moved files.
25238         * config/t-sol2: Fix dependencies for moved files.
25239         * config/mep/t-mep: Fix dependencies for moved files.
25240         * config/ia64/t-ia64: Fix dependencies for moved files.
25241         * config/rs6000/t-rs6000: Fix dependencies for moved files.
25242         * config/v850/t-v850: Fix dependencies for moved files.
25243         * config/v850/t-v850e: Fix dependencies for moved files.
25244
25245         * config/m32c/m32c-pragma.c
25246
25247         * po/exgettext: Look in c-family/ also.
25248
25249 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
25250
25251         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
25252         (mark_control_dependent_edges_necessary): Call it instead of marking
25253         the last statement manually.
25254         (propagate_necessity): Likewise.
25255
25256 2010-06-05  Jan Hubicka  <jh@suse.cz>
25257
25258         * basic-block.h (compute_dominance_frontiers): Updated.
25259         (compute_idf): Likewise.
25260
25261         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
25262         for dominance frontiers.
25263         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
25264         (insert_updated_phi_nodes_for): Likewise.
25265         (update_ssa): Likewise.
25266         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25267         (compute_dominance_frontiers): Likewise.
25268         (compute_idf): Likewise.
25269         * df-problems.c (df_md_local_compute): Likewise.
25270
25271 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
25272
25273         * target.h (struct gcc_target): Add memory_move_cost field.
25274         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
25275         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
25276         * targhooks.c (default_memory_move_cost): New function.
25277         * targhooks.h (default_memory_move_cost): Declare function.
25278         * reload.h (memory_move_cost): Declare.
25279         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25280         * reginfo.c (memory_move_cost): New function.
25281         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25282         * ira.h (ira_memory_move_cost): Update comment.
25283         * ira.c (ira_memory_move_cost): Update comment.
25284         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
25285         with memory_move_cost.
25286         * postreload.c (reload_cse_simplify_set): (Ditto.).
25287         * reload1.c (choose_reload_regs): (Ditto.).
25288         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
25289         (MEMORY_MOVE_COST):  Revise documentation.
25290
25291         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
25292         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
25293         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
25294         type of 'in' argument to bool.
25295         (TARGET_MEMORY_MOVE_COST): Define.
25296
25297 2010-06-05  Jan Hubicka  <jh@suse.cz>
25298
25299         * ipa-pure-const.c (propagate): Fix typo in handling of functions
25300         that cannot return.  Be more careful when merging the results with
25301         previously known ones.
25302
25303 2010-06-05  Matthias Klose  <doko@ubuntu.com>
25304
25305         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
25306         function to add the -iplugindir option.
25307         (find_plugindir_spec_function): Add new declaration and function.
25308         (static_spec_func): Use it for "find-plugindir".
25309
25310 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
25311
25312         PR c++/44361
25313         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
25314         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
25315         statement expression.
25316
25317 2010-06-05  Jan Hubicka  <jh@suse.cz>
25318
25319         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
25320         (df_rd_problem_data): Convert sparse_invalidated_by_call,
25321         dense_invalidated_by_call to bitmap head.
25322         (df_rd_alloc, df_rd_bb_local_compute_process_def,
25323         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
25324         df_rd_start_dump, df_lr_verify_transfer_functions,
25325         df_live_verify_transfer_functions, df_chain_create_bb,
25326         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
25327         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
25328         df_simulate_one_insn_forwards, df_md_alloc,
25329         df_md_bb_local_compute_process_def,
25330         df_md_bb_local_compute_process_def, df_md_local_compute,
25331         df_md_transfer_function df_md_free): Update.
25332
25333 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
25334
25335         PR c/44322
25336         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
25337         target type for ADDR_EXPR; require no changes to qualifiers except
25338         for function types.
25339         * c-tree.h (c_build_type_variant): Remove.
25340
25341 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25342
25343         * genautomata.c (get_excl_set): Do work per element, not per char.
25344         (check_presence_pattern_sets): Similar.
25345         (check_absence_pattern_sets): Similar.
25346
25347 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25348
25349         * genautomata.c (curr_state_pass_num): Delete.
25350         (min_issue_delay_pass_states): Delete.
25351         (min_issue_delay): Delete.
25352         (initiate_min_issue_delay_pass_states): Delete.
25353         (output_min_issue_delay_table): Compute min_issue_delay_vect
25354         using a breadth-first search variant.
25355         (output_tables): Don't call initiate_min_issue_delay_pass_states.
25356
25357 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
25358
25359         PR boostrap/44421
25360         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
25361         (df_byte_lr_bb_local_compute): Likewise.
25362
25363 2010-06-03  Jason Merrill  <jason@redhat.com>
25364
25365         Implement noexcept operator (5.3.7)
25366         * c-common.c (c_common_reswords): Add noexcept.
25367         * c-common.h (enum rid): Add RID_NOEXCEPT.
25368
25369 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25370
25371         * config/darwin-driver.c (darwin_default_min_version): Use
25372         GCC-specific formats in diagnostics.
25373         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25374         diagnostics.
25375         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25376         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25377         eval_spec_function, handle_braces, process_brace_body, main,
25378         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25379         getenv_spec_function, compare_version_strings,
25380         version_compare_spec_function): Use GCC-specific formats in
25381         diagnostics.
25382
25383 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25384
25385         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25386         that operand 0 and operand 1 are equal.
25387         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25388         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25389         and operand 1 are equal.
25390         <default>: Ditto.  Remove ??? comment.
25391         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25392         and operand 1 are equal.
25393         <default>: Ditto.  Remove ??? comment.
25394         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25395         are equal.
25396         (*add<mode>_4) <default>: Ditto.
25397         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25398
25399 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25400
25401         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25402         * config/i386/i386.c (ix86_print_operand): Make non-static.
25403         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25404         * output.h (output_operand): Declare.
25405         * final.c (output_operand): Make non-static.
25406
25407 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25408
25409         PR rtl-optimization/44013
25410         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25411         when processing debug insns.
25412
25413         PR debug/41371
25414         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25415         recursing.  Check that recursion is bounded.  Rename inner var
25416         to avoid hiding incoming argument.
25417
25418 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25419
25420         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25421         operands[2] == 255.
25422         (*addqi_3): Ditto.
25423         (*addqi_4): Ditto.
25424         (*addqi_5): Ditto.
25425         (*addqi_ext_1_rex64): Ditto.
25426         (*addqi_ext_1): Ditto.
25427
25428         (*addqi_4): Check for incdec_operand in QImode.
25429
25430         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25431         using SWI mode iterator.
25432         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25433         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25434         mode iterator.
25435         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25436         using SWI mode iterator.
25437
25438 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25439
25440         PR c/25880
25441         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25442         * c-format.c (gcc_diag_flag_specs): Add hash.
25443         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25444         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25445         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25446         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25447         (pp_c_type_qualifier_list): Call the function above.
25448         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25449         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25450         (WARN_FOR_QUALIFIERS): New macro.
25451         (convert_for_assignment): Use it.
25452
25453 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25454
25455         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25456
25457 2010-06-04  Jan Hubicka  <jh@suse.cz>
25458
25459         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25460         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25461         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25462         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25463         * fwprop.c (single_def_use_enter_block): Likewise.
25464         * ddg.c (create_ddg_dep_from_intra_loop_link,
25465         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25466         * loop-iv.c (latch_dominating_def): Likewise.
25467         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25468         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25469         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25470         df_rd_transfer_function, df_rd_top_dump,
25471         df_rd_bottom_dump): Update.
25472         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25473         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25474         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25475         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25476         df_lr_verify_solution_start, df_lr_verify_solution_end,
25477         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25478         df_live_free_bb_info, df_live_alloc, df_live_reset,
25479         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25480         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25481         df_live_verify_solution_start, df_live_verify_solution_end,
25482         df_live_verify_transfer_functions, df_chain_create_bb,
25483         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25484         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25485         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25486         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25487         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25488         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25489         df_byte_lr_bottom_dump, df_create_unused_note,
25490         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25491         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25492         df_md_transfer_function, df_md_init, df_md_confluence_0,
25493         df_md_confluence_n,
25494         df_md_top_dump, df_md_bottom_dump): Update.
25495         (struct df_lr_problem_data): Embedd bitmap headers.
25496
25497 2010-06-04  Jan Hubicka  <jh@suse.cz>
25498
25499         * dce.c (dce_process_block): Do not re-scan already marked
25500         instructions.
25501
25502 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25503
25504         PR rtl-optimization/39871
25505         PR rtl-optimization/40615
25506         PR rtl-optimization/42500
25507         PR rtl-optimization/42502
25508         * ira.c (init_reg_equiv_memory_loc: New function.
25509         (ira): Call it twice.
25510         * reload.h (calculate_elim_costs_all_insns): Declare.
25511         * ira-costs.c: Include "reload.h".
25512         (regno_equiv_gains): New static variable.
25513         (init_costs): Allocate it.
25514         (finish_costs): Free it.
25515         (ira_costs): Call calculate_elim_costs_all_insns.
25516         (find_costs_and_classes): Take estimated elimination costs
25517         into account.
25518         (ira_adjust_equiv_reg_cost): New function.
25519         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25520         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25521         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25522         (elim_bb): New static variable.
25523         (reload): Move code out of here into init_eliminable_invariants and
25524         free_reg_equiv.  Call them.
25525         (calculate_elim_costs_all_insns): New function.
25526         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25527         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25528         but call note_reg_elim_costly if we turned a valid memory address
25529         into an invalid one.
25530         * Makefile.in (ira-costs.o): Depend on reload.h.
25531
25532 2010-06-04  Julian Brown  <julian@codesourcery.com>
25533
25534         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25535         for pool ranges.
25536
25537 2010-06-04  Richard Guenther  <rguenther@suse.de>
25538
25539         PR lto/41584
25540         * cgraph.h (struct varpool_node): Add lto_file_data field.
25541         * lto-cgraph.c (input_varpool_node): Initialize it.
25542
25543 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25544
25545         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25546         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25547         predicate in "type" attribute calculation.
25548         (*addsi_1_zext): Ditto.
25549         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25550         (*addsi_2_zext): Ditto.
25551         (*add<mode>_3): Ditto.
25552         (*addsi_3_zext): Ditto.
25553         (*add<mode>_5): Ditto.
25554
25555 2010-06-03  Jan Hubicka  <jh@suse.cz>
25556
25557         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25558         of bitmap_bit_p.
25559         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25560
25561 2010-06-03  Jan Hubicka  <jh@suse.cz>
25562
25563         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25564         micro-optimize the checks when to add new note.
25565
25566 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25567
25568         * final.c (output_asm_insn): Call
25569         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25570         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25571         (output_address): Call targetm.asm_out.print_operand_address.
25572         Update comments.
25573         * target.h (struct gcc_target): Add print_operand,
25574         print_operand_address, and print_operand_punct_valid_p fields.
25575         * targhooks.h (default_print_operand): Declare.
25576         (default_print_operand_address): Declare.
25577         (default_print_operand_punct_valid_p): Declare.
25578         * targhooks.c (default_print_operand): Define.
25579         (default_print_operand_address): Define.
25580         (default_print_operand_punct_valid_p): Define.
25581         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25582         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25583         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25584         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25585         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25586         * vmsdbgout.c (addr_const_to_string): Update comment.
25587         * config/i386/i386.c (print_operand): Rename to...
25588         (ix86_print_operand): ...this.  Make static.
25589         (print_operand_address): Rename to...
25590         (ix86_print_operand_address): ...this.  Make static.  Call
25591         ix86_print_operand instead of PRINT_OPERAND.
25592         (ix86_print_operand_punct_valid_p): New function.
25593         (TARGET_PRINT_OPERAND): Define.
25594         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25595         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25596         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25597         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25598         (PRINT_OPERAND): Delete.
25599         (PRINT_OPERAND_ADDRESS): Delete.
25600         * config/i386/i386-protos.h (print_operand): Delete prototype.
25601         (print_operand_address): Delete prototype.
25602
25603 2010-06-03  Richard Guenther  <rguenther@suse.de>
25604
25605         PR tree-optimization/44403
25606         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25607         Preserve pointer qualifiers.
25608         (vect_create_data_ref_ptr): Likewise.
25609
25610 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25611
25612         PR c++/44294
25613         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25614
25615         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25616
25617 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25618
25619         PR debug/44375
25620         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25621         return false if merging the bbs would lead to goto_locus
25622         location being lost from the IL.
25623
25624 2010-06-03  Jan Hubicka  <jh@suse.cz>
25625             Jakub Jelinek  <jakub@redhat.com>
25626
25627         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25628         set->regs[i] is NULL or has just one entry.
25629
25630 2010-06-03  Jan Hubicka  <jh@suse.cz>
25631
25632         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25633         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25634
25635 2010-06-03  Paul Brook  <paul@codesourcery.com>
25636
25637         * config/arm/arm.c (FL_TUNE): Define.
25638         (arm_default_cpu, arm_cpu_select): Remove.
25639         (all_cores): Populate core field.
25640         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25641         (arm_find_cpu): New function.
25642         (arm_handle_option): Lookup cpu/architecture names.
25643         (arm_override_options): Cleanup mcpu/march/mtune handling.
25644         (arm_file_start): Ditto.
25645
25646 2010-06-03  Alan Modra  <amodra@gmail.com>
25647
25648         PR target/44169
25649         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25650         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25651         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25652         (rs6000_emit_load_toc_table): Likewise.
25653
25654 2010-06-02  Jan Hubicka  <jh@suse.cz>
25655
25656         * passes.c (init_optimization_passes): Put ipa reference
25657         after ipa pure-const.
25658
25659 2010-06-02  Jan Hubicka  <jh@suse.cz>
25660
25661         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25662         calls_read_all and calls_write_all.
25663         (get_reference_optimization_summary): Fix formatting.
25664         (is_proper_for_analysis): Check that decl is not readonly.
25665         (propagate_bits): Check CONST/PURE/noreturn flags.
25666         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25667         (analyze_function): Ignore indirect edges.
25668         (copy_global_bitmap): For all module statics, do nothing.
25669         (generate_summary): Do not print calls_read_all/calls_write_all.
25670         (read_write_all_from_decl): Take node as argument; check
25671         cgraph_node_cannot_return.
25672         (propagate): Reorganize read_all/write_all computation;
25673         check indirect edges; check ecf flags; use all_module_statics
25674         in the results; do not free all_module_statics.
25675         (stream_out_bitmap): Handle all_module_statics.
25676         (ipa_reference_write_optimization_summary): Likewise; use
25677         varpool/cgraph encoders to get boundaries.
25678         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25679         use it when possible.
25680
25681 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25682
25683         PR target/44218
25684         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25685         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25686
25687         * doc/extend.texi (powerpc builtins): Document vec_recip,
25688         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25689
25690         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25691         (rs6000_emit_swrsqrt): Ditto.
25692         (rs6000_emit_swdivsf): Delete.
25693         (rs6000_emit_swdivdf): Ditto.
25694         (rs6000_emit_swrsqrtsf): Ditto.
25695
25696         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25697         describe the reciprocal estimate support for each type.
25698         (recip_options): Map -mrecip=<opt> into option bits.
25699         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25700         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25701         reciprocal estimate instructions.
25702         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25703         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25704         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25705         cost information if -mdebug=cost or -mdebug=reg.
25706         (rs6000_override_options): Set -mrecip-precision for power6, and
25707         power7 machines.  If -mvsx or -mdfp, enable various options that
25708         came in previous instruction set ISAs, unless the option was
25709         explicitly disabled by the command line option.  Parse
25710         -mrecip=<opt> options.
25711         (rs6000_builtin_vectorized_function): Add support for vectorizing
25712         the reciprocal estimate builtins and expansions.
25713         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25714         (bdesc_2arg): Add reciprocal estimate builtins.
25715         (bdesc_1arg): Add reciprocal square root estimate builtins.
25716         (rs6000_expand_builtin): Rewrite to use a switch statement,
25717         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25718         (rs6000_init_builtins): Create declarations for reciprocal
25719         estimate builtins.
25720         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25721         sized, prefer traditional floating point registers, if integer
25722         vector types, prefer altivec registers.  Don't actually look at
25723         the memory address any more.
25724         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25725         builtins.
25726         (rs6000_load_constant_and_splat): New helper function to load up
25727         the constant for reciprocal estimate instructions.
25728         (rs6000_emit_madd): New helper function for generating
25729         multiply/add type instructions, based on the current switches.
25730         (rs6000_emit_msub): Ditto.
25731         (rs6000_emit_mnsub): Ditto.
25732         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25733         replace a divide with a reciprocal estimate and fixup, adding
25734         support for machines with high precision and vectors.
25735         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25736         low precision machines.
25737         (rs6000_emit_swdiv): New common function to be called to replace a
25738         division with reciprocal estimate and fixup.
25739         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25740         for double and vector types.  Add support for high precision machines.
25741
25742         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25743         the reciprocal estimate instructions can be generated.
25744         (TARGET_FRE): Ditto.
25745         (TARGET_FRSQRTES): Ditto.
25746         (TARGET_FRSQRTE): Ditto.
25747         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25748
25749         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25750         square root estimate on vectors.
25751         (re<mode>2): New insn for reciprocal division estimate on vectors.
25752
25753         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25754         New builtin.
25755         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25756         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25757         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25758         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25759         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25760         (RS6000_BUILTIN_RSQRT): Ditto.
25761         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25762         floating point builtin.
25763
25764         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25765         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25766         __RECIP_PRECISION__ based on the command line switches.
25767         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25768
25769         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25770         replacing division instructions with reciprocal estimate and fixup.
25771         (-mrecip=<opt>): New option.
25772         (-mrecip-precision): Ditto.
25773
25774         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25775         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25776         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25777         precision scalar.
25778
25779         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25780         (UNSPEC_VREFP): Ditto.
25781         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25782         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25783         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25784         reciprocal estimate instructions to be generated.
25785         (altivec_vrefp): Ditto.
25786
25787         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25788         estimate support.
25789         (rreg): New mode attribute for reciprocal estimate support.
25790         (recip<mode>3): New insn for division using reciprocal estimate
25791         and fixup builtins.
25792         (divide define_split): New define_split to convert floating point
25793         division to use reciprocal estimate if the user used the
25794         appropriate options and the split is run when we can add new
25795         pseudo registers for the fixup.
25796         (rsqrt<mode>2): New insn for reciprocal square root support.
25797         (recipsf3): Move into recip<mode>3.
25798         (recipdf3): Ditto.
25799         (fres): Use TARGET_FRES.
25800         (rsqrtsf2): Move into rsqrt<mode>2.
25801         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25802         (copysignsf3): Add support for VSX.
25803         (fred): Use TARGET_FRE.
25804         (fred_fpr): Ditto.
25805         (rsqrtdf_internal1): New function for frsqrte instruciton.
25806
25807         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25808         (vec_rsqrt): Ditto.
25809
25810 2010-06-03  Richard Guenther  <rguenther@suse.de>
25811
25812         PR middle-end/44291
25813         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25814         (set_user_assembler_libfunc): Likewise.
25815
25816 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25817
25818         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25819         defaults.h.
25820         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25821         to defaults.h
25822         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25823         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25824         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25825         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25826         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25827         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25828         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25829         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25830         * defaults.h: Updated for above mentioned changes.
25831
25832 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25833
25834         * c-common.c: Remove header include of tm_p.h.
25835         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25836
25837 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25838
25839         * tree.h (struct tree_decl_map): New type.
25840         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25841         (tree_decl_map_hash): New prototype.
25842         (debug_expr_for_decl, value_expr_for_decl): Change into
25843         tree_decl_map hashtab from tree_map.
25844         (init_ttree): Adjust initialization.
25845         (tree_decl_map_hash): New function.
25846         (decl_debug_expr_lookup, decl_debug_expr_insert,
25847         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
25848
25849 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25850
25851         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
25852         linker emulations.
25853         * configure: Regenerate.
25854         * config.in: Regenerate.
25855
25856         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
25857         (X86_64_EMULATION): Define.
25858         (TARGET_LD_EMULATION): Use them.
25859
25860         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
25861         (SPARC64_EMULATION): Define.
25862         (LINK_ARCH_SPEC): Use them.
25863
25864 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25865
25866         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
25867         smallest_mode_for_size for computing the precision types of new
25868         graphite IVs.  Do not call lang_hooks.types.type_for_size.
25869
25870 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25871
25872         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
25873         information.
25874         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
25875
25876 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25877
25878         PR middle-end/44363
25879         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
25880         return false instead.
25881
25882 2010-06-02  Jan Hubicka  <jh@suse.cz>
25883
25884         PR middle-end/44295
25885         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
25886         create new cgraph node to check callee.
25887
25888 2010-06-02  Richard Guenther  <rguenther@suse.de>
25889
25890         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
25891
25892 2010-06-02  Richard Guenther  <rguenther@suse.de>
25893
25894         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
25895         (lto_wrapper_cleanup): ... this.  Do not exit.
25896         (fatal): Adjust.  Exit here.
25897         (fatal_perror): Likewise.
25898         (fatal_signal): New function.
25899         (main): Set up signal handlers to cleanup temporary files.
25900         * Makefile.in (lto-wrapper.o): Adjust dependencies.
25901
25902 2010-06-02  Richard Guenther  <rguenther@suse.de>
25903
25904         PR tree-optimization/44377
25905         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
25906
25907 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25908
25909         * config/s390/2097.md (z10_fhex): Remove insn reservation.
25910         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
25911         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
25912         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
25913         instruction.
25914         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
25915
25916 2010-06-02  Jan Hubicka  <jh@suse.cz>
25917
25918         * bitmap.c (bitmap_descriptor): Add search_iter.
25919         (bitmap_find_bit): Increment it.
25920         (print_statistics): Print it.
25921
25922 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
25923
25924         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
25925         instead of gimple_build_call_vec.  Delete unnecessary local variable.
25926
25927 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25928
25929         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
25930         change from yesterday.
25931
25932 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25933
25934         * c-ada-spec.c: Clean up redundant includes.
25935
25936 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
25937
25938         * gimplify.c: Do not include except.h and optabs.h.
25939         (gimplify_body): Do not initialize RTL profiling.
25940         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
25941         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
25942         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
25943         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
25944         langhooks.h.
25945
25946         * tree-pretty-print.h: Include pretty-print.h.
25947         * gimple-pretty-print.h: Include pretty-print.h.
25948
25949         * tree-pretty-print.c: Do not include diagnostic.h.
25950         * tree-vrp.c: Likewise.
25951         * tree-tailcall.c: Likewise
25952         * tree-scalar-evolution.c: Likewise
25953         * tree-ssa-dse.c: Likewise
25954         * tree-chrec.c: Likewise
25955         * tree-ssa-sccvn.c: Likewise
25956         * tree-ssa-copyrename.c: Likewise
25957         * tree-nomudflap.c: Likewise
25958         * tree-call-cdce.c: Likewise
25959         * tree-stdarg.c: Likewise
25960         * tree-ssa-math-opts.c: Likewise
25961         * tree-nrv.c: Likewise
25962         * tree-ssa-sink.c: Likewise
25963         * tree-browser.c: Likewise
25964         * tree-ssa-loop-ivcanon.c: Likewise
25965         * tree-ssa-loop.c: Likewise
25966         * tree-parloops.c: Likewise
25967         * tree-ssa-address.c: Likewise
25968         * tree-ssa-ifcombine.c: Likewise
25969         * tree-if-conv.c: Likewise
25970         * tree-data-ref.c: Likewise
25971         * tree-affine.c: Likewise
25972         * tree-ssa-phiopt.c: Likewise
25973         * tree-ssa-coalesce.c: Likewise
25974         * tree-ssa-pre.c: Likewise
25975         * tree-ssa-live.c: Likewise
25976         * tree-predcom.c: Likewise
25977         * tree-ssa-forwprop.c: Likewise
25978         * tree-ssa-dce.c: Likewise
25979         * tree-ssa-ter.c: Likewise
25980         * tree-ssa-loop-prefetch.c: Likewise
25981         * tree-optimize.c: Likewise
25982         * tree-ssa-phiprop.c: Likewise
25983         * tree-object-size.c: Likewise
25984         * tree-outof-ssa.c: Likewise
25985         * tree-ssa-structalias.c: Likewise
25986         * tree-switch-conversion.c: Likewise
25987         * tree-ssa-reassoc.c: Likewise
25988         * tree-ssa-operands.c: Likewise
25989         * tree-vectorizer.c: Likewise
25990         * tree-vect-data-refs.c: Likewise
25991         * tree-vect-generic.c: Likewise
25992         * tree-vect-stmts.c: Likewise
25993         * tree-vect-patterns.c: Likewise
25994         * tree-vect-slp.c: Likewise
25995         * tree-vect-loop.c: Likewise
25996         * tree-ssa-loop-ivopts.c: Likewise
25997         * tree-ssa-loop-im.c: Likewise
25998         * tree-ssa-loop-niter.c: Likewise
25999         * tree-ssa-loop-unswitch.c: Likewise
26000         * tree-ssa-loop-manip.c: Likewise
26001         * tree-ssa-loop-ch.c: Likewise
26002         * tree-dump.c: Likewise
26003         * tree-complex.c: Likewise
26004
26005         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26006         * tree-ssa-uninit.c: Likewise
26007         * tree-ssa-threadupdate.c: Likewise
26008         * tree-ssa-uncprop.c: Likewise
26009         * tree-ssa-ccp.c: Likewise
26010         * tree-ssa-dom.c: Likewise
26011         * tree-ssa-propagate.c: Likewise
26012         * tree-ssa-alias.c: Likewise
26013         * tree-dfa.c: Likewise
26014         * tree-cfgcleanup.c: Likewise
26015         * tree-sra.c: Likewise
26016         * tree-ssa-copy.c: Likewise
26017         * tree-ssa.c: Likewise
26018         * tree-profile.c: Likewise
26019         * tree-cfg.c: Likewise
26020         * tree-ssa-threadedge.c: Likewise
26021         * tree-vect-loop-manip.c: Likewise
26022
26023         * tree-inline.c: Do not include diagnostic.h and expr.h.
26024         Include rtl.h.
26025         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26026
26027         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26028         * tree-loop-distribution.c: Likewise.
26029
26030 2010-06-01  Jan Hubicka  <jh@suse.cz>
26031
26032         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26033
26034 2010-06-01  Jan Hubicka  <jh@suse.cz>
26035
26036         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26037         remove return value.
26038         (split_bbs_on_noreturn_calls) .... here.
26039         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26040         * tree-flow.h (fixup_noreturn_call): New.
26041
26042 2010-06-01  Jan Hubicka  <jh@suse.cz>
26043
26044         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26045
26046 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26047
26048         * tree.h (build_nt_call_list): Delete.
26049         * tree.c (build_nt_call_list): Delete.
26050
26051 2010-06-01  Jan Hubicka  <jh@suse.cz>
26052
26053         * fwprop.c: Make emit-rtl.h include last.
26054         * rtlanal.c: Include emit-rtl.h.
26055         * genautomata.c: Output emit-rtl include into insn-automata.c
26056         * df-scan.c: Include emit-rtl.h.
26057         * haifa-sched.c: Indlude emit-rtl.h.
26058         * mode-switching.c: Indlude emit-rtl.h.
26059         * graph.c: Indlude emit-rtl.h.
26060         * sel-sched.c: Include emit-rtl.h.
26061         * sel-sched-ir.c: Include emit-rtl.h.
26062         * ira-build.c: Include emit-rtl.h.
26063         * emit-rtl.c (first_insn, last_insn): Remove defines.
26064         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26065         Move to emit-rtl.h.
26066         (set_new_first_and_last_insn, get_last_insn_anywhere,
26067         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26068         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26069         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26070         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26071         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26072         Use accessor functions.
26073         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26074          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26075         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26076         mem_expr_equal_p): Move here from rtl.h.
26077         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26078         Move here from emit-rtl.c; make inline.
26079         * cfglayout.h: Include emit-rtl.h.
26080         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26081          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26082         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26083         mem_expr_equal_p, get_insns, set_first-insn,
26084         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26085         * reg-stack.c: Include emit-rtl.h.
26086         * dce.c: Likewise.
26087
26088 2010-06-01  Jan Hubicka  <jh@suse.cz>
26089
26090         * cgraph.h (tree_function_versioning): Update prototype.
26091         (cgraph_function_versioning): Update prototype.
26092         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26093         bitmap.
26094         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26095         (cgraph_materialize_clone, save_inline_function_body): Update use of
26096         tree_function_versioning.
26097         * tree-inline.c (copy_bb): Look for previous copied block to link
26098         after; fix debug output.
26099         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26100         (copy_body): Likewise.
26101         (expand_call_inline): Update use of copy_body.
26102         (tree_function_versioning): Update use of copy body; accept
26103         blocks_to_copy and new_entry.
26104
26105 2010-06-01  Jan Hubicka  <jh@suse.cz>
26106
26107         * gegenrtl.c: Remove unnecesary prototypes.
26108         (gendecl): Remove.
26109         (gendef): Produce static inline.
26110         (gencode): Remove.
26111         (main): Do not decode parameters; generate header only.
26112         * Makefile.in (genrtl.c): Remove.
26113
26114 2010-06-01  Jan Hubicka  <jh@suse.cz>
26115
26116         * tree-switch-conversion.c (build_one_array): Make it readonly.
26117
26118 2010-06-01  Richard Guenther  <rguenther@suse.de>
26119
26120         * optabs.c (init_optabs): Guard all accesses to reinit.
26121         * ipa-pure-const.c (propagate): Fix another typo.
26122         * opts.c (common_handle_option): Split assignment to bool.
26123         * c-opts.c (c_common_handle_option): Likewise.
26124
26125 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26126             Matthew Gingell  <gingell@adacore.com>
26127
26128         * doc/invoke.texi: Mention -fdump-ada-spec.
26129         * tree-dump.c (dump_files): Add ada-spec.
26130         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26131         * tree-pass.h (tree_dump_index): Add TDI_ada.
26132         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26133         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26134         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26135         * c-decl.c: Include c-ada-spec.h.
26136         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26137         functions.
26138         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26139         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26140         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26141         * c-ada-spec.h, c-ada-spec.c: New files.
26142
26143 2010-06-01  Richard Guenther  <rguenther@suse.de>
26144
26145         PR lto/43853
26146         * ipa-pure-const.c (get_function_state): Hand back varying state
26147         if we do not have one.
26148         (has_function_state): New function.
26149         (duplicate_node_data): Adjust.
26150         (remove_node_data): Likewise.
26151         (pure_const_write_summary): Likewise.
26152         (propagate): Likewise.  Fix typo.
26153
26154 2010-06-01  Jan Hubicka  <jh@suse.cz>
26155
26156         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26157         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26158         (execute_all_ipa_transforms): Do not play with the states.
26159
26160 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26161
26162         * config/arm/t-linux-androideabi: New.
26163         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26164
26165 2010-06-01  Jan Hubicka  <jh@suse.cz>
26166
26167         * tree-inline.c (estimate_num_insns): For stdarg functions look
26168         into call statement to count cost of argument passing.
26169
26170 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26171
26172         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26173         argument for fprintf.
26174         (ix86_output_addr_diff_elt): Likewise.
26175         (x86_function_profiler): Likewise.
26176         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26177         (LPREFIX): Likewise.
26178         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26179
26180 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26181
26182         PR target/44338
26183         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26184         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26185         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26186         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26187         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26188         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26189         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26190         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26191         TARGET_FUSED_MADD.
26192
26193 2010-05-31  Jan Hubicka  <jh@suse.cz>
26194
26195         * tree.h (tree_range_check_failed): Declare noreturn.
26196
26197 2010-05-31  Jan Hubicka  <jh@suse.cz>
26198
26199         * gimple.c (gimple_call_builtin_p): New function.
26200         * gimple.h (gimple_call_builtin_p): Declare.
26201         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
26202         to exit.
26203         (execute_warn_function_return): BUILT_IN_RETURN is return.
26204         (split_critical_edges): Return edges are not critical.
26205         (is_ctrl_altering_stmt): Builtin_in_return is altering.
26206         (gimple_verify_flow_info): Handle built_in_return.
26207         (execute_warn_function_return): Handle built_in_return.
26208         * ipa-pure-const.c (check_call): Ignore builtin_return.
26209
26210 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26211
26212         PR middle-end/44337
26213         * expr.c (expand_assignment): Don't store anything for out-of-bounds
26214         array accesses with non-MEM.
26215
26216         PR tree-optimization/44182
26217         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
26218         newly needs to end a bb is followed by debug stmts, instead return
26219         true from the function at the end.
26220         (maybe_move_debug_stmts_to_successors): New function.
26221         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
26222
26223 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
26224
26225         PR target/44161
26226         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
26227
26228 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
26229
26230         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
26231         for nested functions in non-optimized compilation.
26232
26233 2010-05-31  Richard Guenther  <rguenther@suse.de>
26234
26235         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
26236
26237 2010-05-30  Jan Hubicka  <jh@suse.cz>
26238
26239         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
26240
26241 2010-05-30  Richard Guenther  <rguenther@suse.de>
26242
26243         PR lto/42975
26244         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
26245         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
26246         no longer needed.
26247
26248 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
26249
26250         * config/darwin.c (output_objc_section_asm_op): Add comment.
26251         (name_needs_quotes): Add '_' to list of valid comment chars.
26252         (machopic_output_function_base_name): Remove unneeded quotes.
26253         (darwin_encode_section_info): Adjust asm whitespace.
26254         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
26255         (ASM_OUTPUT_LOCAL): Ditto.
26256         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
26257         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
26258         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
26259
26260 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
26261
26262         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
26263         RS6000_OUTPUT_BASENAME unconditionally.
26264         (rs6000_output_function_epilogue): Likewise.
26265
26266 2010-05-30  Jan Hubicka  <jh@suse.cz>
26267
26268         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
26269         nodes.
26270
26271 2010-05-30  Richard Guenther  <rguenther@suse.de>
26272
26273         * tree-cfg.c (verify_gimple_assign_single): Implement
26274         verification for COND_EXPR rhs.
26275
26276 2010-05-30  Jan Hubicka  <jh@suse.cz>
26277
26278         * cgraph.h (cgraph_dump_file): Declare.
26279         * cgraphunit.c (cgraph_dump_file): Export.
26280         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
26281
26282 2010-05-30  Jan Hubicka  <jh@suse.cz>
26283
26284         * dwarf2out.c (reference_to_unused,
26285         premark_types_used_by_global_vars_helper): Avoid creation of new
26286         varpool nodes.
26287
26288 2010-05-30  Jan Hubicka  <jh@suse.cz>
26289
26290         * cgraph.h (cgraph_node_cannot_return,
26291         cgraph_edge_cannot_lead_to_return): New functions.
26292         * cgraph.c (cgraph_node_cannot_return,
26293         cgraph_edge_cannot_lead_to_return): Use them.
26294         * ipa-pure-const.c (pure_const_names): New static var.
26295         (check_call): Handle calls not leading to return.
26296         (pure_const_read_summary): Dump info read.
26297         (propagate): Dump info about propagation process; ignore side effects
26298         of functions not leading to exit; fix handling of pure functions.
26299
26300 2010-05-30  Jan Hubicka  <jh@suse.cz>
26301
26302         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
26303         for tail call epilogues.
26304
26305 2010-05-30  Jan Hubicka  <jh@suse.cz>
26306
26307         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
26308         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
26309         dump files.
26310
26311 2010-05-29  Jan Hubicka  <jh@suse.cz>
26312
26313         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
26314         node; remove references in node we no longer keep in cgrpah but need
26315         body of.
26316
26317 2010-05-29  Jan Hubicka  <jh@suse.cz>
26318
26319         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
26320
26321 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26322
26323         PR target/44165
26324         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
26325
26326 2010-05-29  Jan Hubicka  <jh@suse.cz>
26327
26328         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
26329         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
26330         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
26331         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
26332         debug_names_replaced_by, debug_update_ssa): Likewise.
26333         * sbitmap.c (debug_sbitmap): Likewise.
26334         * genrecog.c (debug_decision, debug_decision_list): Likewise.
26335         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26336         debug_tree_chain): Likewise.
26337         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
26338         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
26339         * optabs.c (debug_optab_libfuncs): Likewise.
26340         (verify_loop_closed_ssa): Likewise.
26341         * value-prof.c (verify_histograms): Likewise.
26342         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
26343         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
26344         * cfghooks.c (verify_flow_info): Likewise.
26345         * fold-const.c (debug_fold_checksum): Likewise.
26346         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
26347         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
26348         Likewise.
26349         * omega.c (debug_omega_problem): Likewise.
26350         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
26351         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
26352         * dominance.c (verify_dominators, debug_dominance_info,
26353         debug_dominance_tree): Likewise.
26354         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
26355         * df_regno_debug, df_ref_debug,
26356         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
26357         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
26358         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
26359         * sel-sched.c (debug_state): Likewise.
26360         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
26361         Likewise.
26362         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
26363         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
26364         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
26365         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
26366         Likewise.
26367         * c-pretty-print.c (debug_c_tree): Likewise.
26368         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26369         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26370         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26371         * ebitmap.c (debug_ebitmap): Likewise.
26372         * function.c (debug_find_var_in_block_tree): Likewise.
26373         * print-rtl.c (debug_rtx): Likewise.
26374         (debug_rtx_count): Likewise.
26375         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26376         * stor-layout.c (debug_rli): Likewise.
26377         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26378         * tree-data-ref.c (debug_data_references,
26379         debug_data_dependence_relations, debug_data_reference,
26380         debug_data_dependence_relation, debug_rdg_vertex,
26381         debug_rdg_component, debug_rdg): Likewise.
26382         * tree-affine.c (debug_aff): Likewise.
26383         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26384         Likewise.
26385         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26386         * emit-rtl.c (verify_rtl_sharing): Likewise.
26387         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26388         debug_value_expressions): Likewise.
26389         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26390         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26391         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26392         * cfglayout.c (verify_insn_chain): Likewise.
26393         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26394         debug_clast_stmt, debug_generated_program): Likewise.
26395         * ggc-page.c (debug_print_page_list): Likewise.
26396         * tree-ssa-ter.c (debug_ter): Likewise.
26397         * graphite-dependences.c (debug_pddr): Likewise.
26398         * sched-deps.c (debug_ds): Likewise.
26399         * tree-ssa.c (verify_ssa): Likewise.
26400         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26401         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26402         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26403         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26404         * tree-inline.c (debug_find_tree): Likewise.
26405         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26406         debug_ppl_powerset_matrix): Likewise.
26407         * var-tracking.c (debug_dv): Likewise.
26408         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26409         * cfgloop.c (verify_loop_structure): Likewise.
26410         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26411         * c-common.c (verify_sequence_points): Likewise.
26412         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26413         debug_candidates, debug_rgn_dependencies): Likewise.
26414         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26415         * debug_constraint_graph, debug_solution_for_var,
26416         debug_sa_points_to_info): Likewise.
26417         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26418         Likewie.
26419         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26420         debug_loops, debug_loop, debug_loop_num): Likewise.
26421         * passes.c (debug_pass): Likewise.
26422         (dump_properties): Likewise; add cfglayout property.
26423         (debug_properties): Likewise.
26424         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26425         * varpool.c (debug_varpool): Likewise.
26426         * regcprop.c (debug_value_data): Likewise.
26427         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26428         debug_immediate_uses_for): Likewise.
26429
26430 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26431
26432         PR bootstrap/44315
26433         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26434         Filter out insn-flags.h.
26435
26436 2010-05-29  Jan Hubicka  <jh@suse.cz>
26437
26438         * cgraph.h (struct varpool_node_set_def,
26439         struct cgraph_node_set_def): Remove unused AUX pointer.
26440         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26441         VEC_empty macro.
26442
26443 2010-05-29  Jan Hubicka  <jh@suse.cz>
26444
26445         PR middle-end/44324
26446         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26447
26448 2010-05-29  Richard Guenther  <rguenther@suse.de>
26449
26450         * lto-streamer.c (cached_bp): New global variable.
26451         (bitpack_create): Return the cached bitpack, if available.
26452         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26453         (bp_pack_value): Remove redundant asserts.
26454
26455 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26456
26457         PR middle-end/44306
26458         * tree-if-conv.c (is_true_predicate): New.
26459         (is_predicated): Use is_true_predicate.
26460         (add_to_predicate_list): Same.  Do not use unshare_expr.
26461         (add_to_dst_predicate_list): Same.
26462
26463 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26464
26465         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26466         field on edges.
26467         (predicate_bbs): Same.
26468         (clean_predicate_lists): Same.
26469         (find_phi_replacement_condition): Do not AND the predicate from
26470         edge->aux.
26471
26472 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26473
26474         PR bootstrap/44315
26475         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26476
26477 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26478
26479         PR target/44261
26480         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26481         (negdf2): Adjust expander pattern and use negdf2_slow.
26482         (negsf2): Likewise.
26483
26484 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26485
26486         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26487         up.
26488         * df.h (struct df_base_ref): Move regno field up.
26489         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26490         * expr.h (struct separate_ops): Move location field up.
26491         * optabs.h (struct optab_d): Move libcall_basename field down.
26492         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26493         * config/i386/i386.h (struct machine_function): Convert call_abi field
26494         into a bitfield.  Move cfa field to the end of the structure.
26495
26496 2010-05-29  Jan Hubicka  <jh@suse.cz>
26497
26498         * varpool.c (varpool_get_node): Fix lookup.
26499
26500 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26501
26502         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26503         RTL specific prototypes with #ifdef RTX_CODE.
26504         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26505         * config/spu/t-spu-elf: Fix dependencies.
26506
26507         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26508
26509 2010-05-29  Mike Stump  <mikestump@comcast.net>
26510
26511         PR bootstrap/44315
26512         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26513         TM_H when building to avoid dependency loops.
26514
26515 2010-05-29  Jan Hubicka  <jh@suse.cz>
26516
26517         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26518         refs and body; not the whole node for masters of materialized clones.
26519
26520 2010-05-29  Mike Stump  <mikestump@comcast.net>
26521
26522         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26523
26524 2010-05-29  Jan Hubicka  <jh@suse.cz>
26525
26526         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26527         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26528         use of clone_function_name.
26529         * cgraph.h (cgraph_create_virtual_clone,
26530         cgraph_function_versioning): update prototypes.
26531         (clone_function_name): Declare.
26532         * ipa-cp.c (ipcp_insert_stage): Update call of
26533         cgraph_create_virtual_clone.
26534         * omp-low.c (create_omp_child_function_name): Use
26535         cgraph_create_virtual_clone.
26536         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26537         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26538         and make decl local.
26539
26540 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26541
26542         * vec.h: Include statistics.h
26543         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26544         with VEC_H.
26545
26546 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26547
26548         * c-lex.c: Do not include c-tree.h.
26549         * c-pretty-print.c: Likewise.
26550         * c-opts.c: Likewise.
26551         * c-gimplify.c: Likewise.
26552         * c-common.c: Likewise.
26553         * c-dump.c: Likewise.  Include c-common.h.
26554
26555 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26556
26557         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26558         before including diagnostic-core.h.
26559         (c_cpp_error): New prototype moved from c-tree.h.
26560         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26561         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26562         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26563         (c_cpp_error): Prototype moved to c-common.h.
26564         * Makefile.in: Update dependency for C_COMMON_H.
26565
26566 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26567
26568         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26569         * c-common.c (c_register_addr_space): Remove here.
26570         * c-decl.c (c_register_addr_space): Re-add here.
26571
26572 2010-05-28  Mike Stump  <mikestump@comcast.net>
26573
26574         * config/darwin-c.c: Remove c-tree.h include.
26575
26576 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26577
26578         * gcc.c: Include diagnostic.h.
26579         (error_count): Remove.  All users changed to use errorcount.
26580         (programname): Remove.  All users changed to use progname.
26581         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26582         fnotice): Remove.
26583         (execute): Don't include "Internal error" and bug reporting
26584         information in argument of internal_error call.
26585         (process_command): Don't increment error_count after calling
26586         perror_with_name.
26587         (input_filename): Rename to gcc_input_filename.  All users
26588         changed.
26589         (main): Call diagnostic_initialize.  Register delete_temp_files
26590         with atexit.  Use seen_error to test for errors.
26591         * gcc.h: Include diagnostic-core.h.
26592         (fatal_error, error, warning): Remove.
26593         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26594         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26595         (gcc.o): Update dependencies.
26596
26597 2010-05-28  Jeff Law  <law@redhat.com>
26598
26599         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26600         functions.
26601         * ira.h (ira_bad_reload_regno): Declare
26602         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26603
26604         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26605         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26606         (allocno_reload_assign): Likewise.
26607
26608 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26609
26610         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26611         build1_stat.
26612
26613 2010-05-28  Richard Guenther  <rguenther@suse.de>
26614
26615         PR lto/44312
26616         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26617         Stream fixed-point constants mode.
26618         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26619         and TYPE_PRECISION.
26620         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26621         Stream fixed-point constants mode.
26622         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26623         and TYPE_PRECISION.
26624
26625 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26626
26627         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26628         only place it was called from.
26629         (number_of_latch_executions): Do not return chrec_dont_know when the
26630         may_be_zero is a runtime condition: instead, return a COND_EXPR
26631         including the may_be_zero condition.
26632         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26633         of nb_iterations.
26634         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26635         COND_EXPRs.
26636
26637 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26638
26639         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26640         generate COND_EXPRs for degenerate_phi_result.
26641
26642 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26643
26644         PR middle-end/44293
26645         * tree-if-conv.c (if_convertible_loop_p): Check the
26646         if-convertibility of phi nodes in non predicated BBs.
26647
26648 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26649
26650         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26651
26652 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26653
26654         PR driver/15303
26655         * gcc.c (inform, warning, inform): New functions.
26656         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26657         gmsgid.  All callers changed.
26658         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26659         (fatal_error): Rename to fatal_signal.  All users changed.
26660         (fatal): Rename to fatal_error; change cmsgid parameter to
26661         gmsgid.  All callers changed.
26662         (process_command): Use warning instead of error for warnings.
26663         (end_going_arg): Don't use _() around argument of error.
26664         (do_spec_1): Use inform for message from %n specs.  Use warning
26665         instead of error for warnings.
26666         (main): Use inform for comparison messages.  Use warning for
26667         message about unused linker input.
26668         (error): Increment error_count.  Print "error: ".
26669         * gcc.h (fatal): Change to fatal_error.
26670         (warning): Declare.
26671         * config/darwin-driver.c (darwin_default_min_version): Use warning
26672         instead of fprintf for warnings.
26673         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26674
26675 2010-05-28  Julian Brown  <julian@codesourcery.com>
26676
26677         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26678         (*thumb2_addsi3_compare0_scratch): New.
26679         * config/arm/constraints.md (Pv): New.
26680         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26681         for ARM mode only.
26682         (*addsi3_compare0_scratch): Likewise.
26683
26684 2010-05-28  Jan Hubicka  <jh@suse.cz>
26685
26686         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26687         check.
26688         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26689         only on local statics.
26690
26691 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26692
26693         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26694
26695 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26696
26697         PR bootstrap/44314
26698         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26699         (OPTION_GLIBC): Define.
26700
26701 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26702
26703         PR debug/41048
26704         * dwarf2out.c (double_int_type_size_in_bits): New function.
26705         (round_up_to_align): Change first argument and return value to
26706         double_int.
26707         (field_byte_offset): Work internally on double_ints.
26708
26709         PR target/43636
26710         * builtins.c (expand_movstr): Use a temporary pseudo instead
26711         of target even when target is not NULL and not const0_rtx, but
26712         fails movstr predicate.
26713         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26714
26715 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26716
26717         * final.c (rest_of_clean_state): Use %m in errors instead of
26718         strerror (errno).
26719         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26720         instead of strerror.
26721         * toplev.c (process_options): Use %m in errors instead of strerror
26722         (errno).
26723         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26724         (errno).
26725
26726 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26727
26728         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26729         (ix86_canonical_va_list_type): Make static.  Add declaration.
26730         (ix86_enum_va_list): Make static.  Reindent.
26731         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26732         (ix86_canonical_va_list_type): Ditto.
26733         (ix86_enum_va_list): Ditto.
26734
26735 2010-05-28  Richard Guenther  <rguenther@suse.de>
26736
26737         * lto-wrapper.c (run_gcc): With -save-temps generate a
26738         user-visible ltrans filename.  Fixup ltrans unit numbering.
26739
26740 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26741
26742         * c-common.c (c_common_nodes_and_builtins): Replace use
26743         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26744         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26745         to ix86_enum_va_list.
26746         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26747         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26748         (TARGET_ENUM_VA_LIST_P): Add hook description.
26749         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26750         * target.h (gcc_target): Add enum_va_list hook.
26751
26752         PR bootstrap/44299
26753         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26754         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26755         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26756
26757 2010-05-28  Alan Modra  <amodra@gmail.com>
26758
26759         PR target/44266
26760         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26761         emit_library_call machinery to set up __tls_get_addr calls.
26762
26763 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26764
26765         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26766
26767 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26768
26769         Revert fix for PR c++/44188
26770         * c-common.c (is_typedef_decl): Revert the moving of  this
26771         definition ...
26772         * tree.c (is_typedef_decl): ... here.
26773         (typdef_variant_p): Revert the moving of this  definition
26774         here from cp/tree.c.
26775         * c-common.h (is_typedef_decl): Revert the moving of this
26776         declaration ...
26777         * tree.h (is_typedef_decl): ... here.
26778         (typedef_variant_p): Revert the moving of this  declaration here
26779         from cp/cp-tree.h
26780         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26781         (gen_tagged_type_die): Revert the splitting out of ...
26782         (gen_type_die_with_usage): ... this function. Revert the anonymous
26783         tagged type handling.
26784         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26785         typedefs naming anonymous tagged types.
26786
26787 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26788
26789         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26790
26791 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26792
26793         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26794         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26795         throughout.
26796         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26797         "xer" to "ca".
26798         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26799         XER_REGS to CA_REGS throughout.
26800         * config/rs6000/rs6000.h: Same.
26801         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26802         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26803         that mode_iterator "P" is the size for arithmetic carries as well.
26804         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26805
26806 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26807
26808         PR bootstrap/44255
26809         * combine.c (struct rtx_subst_pair): Define unconditionally.
26810         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26811         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26812         Call make_compound_operation on pair->to.
26813         (propagate_for_debug): Don't call make_compound_operation here.
26814         Always use simplify_replace_fn_rtx.
26815
26816 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26817
26818         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26819         * config/xtensa/xtensa.c (override_options): Check
26820           TARGET_FORCE_NO_PIC and set flag_pic.
26821         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26822
26823 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26824
26825         PR bootstrap/44299
26826         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26827         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26828
26829 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26830
26831         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26832         toplev.h.
26833         * diagnostic.c: Don't include toplev.h.
26834         (progname): Define.  Moved from toplev.c.
26835         (seen_error): New function.
26836         * diagnostic.h: Include diagnostic-core.h.
26837         (diagnostic_t, emit_diagnostic): Don't declare here.
26838         * toplev.c (progname): Move to toplev.c.
26839         (emit_debug_global_declarations, compile_file, finalize,
26840         do_compile, toplev_main): Use seen_error.
26841         * toplev.h: Include diagnostic-core.h.
26842         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26843         internal_error, warning, warning_at, error, error_n, error_at,
26844         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26845         verbatim, fnotice, progname): Move to diagnostic-core.h.
26846         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
26847         (expand_builtin_expect): Use seen_error.
26848         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
26849         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
26850         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
26851         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
26852         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
26853         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
26854         errorcount for errors.
26855         * c-opts.c (c_common_finish): Use seen_error.
26856         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26857         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
26858         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
26859         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
26860         (get_coverage_counts): Use seen_error.
26861         * dwarf2out.c (dwarf2out_finish): Use seen_error.
26862         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
26863         gimplify_body): Use seen_error.
26864         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
26865         * ipa-pure-const.c (gate_pure_const): Use seen_error.
26866         * ipa-reference.c (gate_reference): Use seen_error.
26867         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
26868         * lambda-code.c: Include diagnostic-core.h instead of
26869         diagnostic.h.
26870         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26871         * lto-compress.c: Include diagnostic-core.h instead of
26872         diagnostic.h.
26873         * lto-section-in.c: Include diagnostic-core.h instead of
26874         diagnostic.h.
26875         * lto-streamer-out.c: Include diagnostic-core.h instead of
26876         diagnostic.h.
26877         * lto-streamer.c: Include diagnostic-core.h instead of
26878         diagnostic.h.
26879         (gate_lto_out): Use seen_error.
26880         * matrix-reorg.c: Include diagnostic-core.h instead of
26881         diagnostic.h.
26882         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
26883         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
26884         (gate_expand_omp, lower_omp_1): Use seen_error.
26885         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
26886         (rest_of_decl_compilation, rest_of_type_compilation,
26887         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
26888         * tree-cfg.c (label_to_block_fn): Use seen_error.
26889         * tree-inline.c (optimize_inline_calls): Use seen_error.
26890         * tree-mudflap.c (mudflap_finish_file): Use
26891         seen_error.
26892         * tree-optimize.c (gate_all_optimizations,
26893         gate_all_early_local_passes, gate_all_early_optimizations): Use
26894         seen_error.
26895         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
26896         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
26897         (varpool_remove_unreferenced_decls,
26898         varpool_assemble_pending_decls): Use seen_error.
26899         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
26900         (TOPLEV_H, DIAGNOSTIC_H): Update.
26901         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
26902         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
26903         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
26904         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
26905         coverage.o, lambda-code.o): Update dependencies.
26906
26907 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26908
26909         PR c++/44188
26910         * c-common.c (is_typedef_decl): Move this definition ...
26911         * tree.c (is_typedef_decl): ... here.
26912         (typdef_variant_p): Move definition here from cp/tree.c.
26913         * c-common.h (is_typedef_decl): Move this declaration ...
26914         * tree.h (is_typedef_decl): ... here.
26915         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26916         * dwarf2out.c (is_naming_typedef_decl): New function.
26917         (gen_tagged_type_die): Split out of ...
26918         (gen_type_die_with_usage): ... this function. When an anonymous
26919         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26920         is emitted for the typedef.
26921         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26922         anonymous tagged types.
26923
26924 2010-05-27  Jason Merrill  <jason@redhat.com>
26925
26926         * print-tree.c (debug_vec_tree): New fn.
26927         (print_vec_tree): New fn.
26928         * tree.h: Declare them.
26929         * gdbinit.in (pvt): New command.
26930
26931         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
26932
26933         * gdbinit.in (pdd): New command.
26934
26935 2010-05-27  Jan Hubicka  <jh@suse.cz>
26936
26937         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
26938         (update_caller_keys): Return early if there are no callers;
26939         only update fibheap when decresing the key.
26940         (update_callee_keys): Avoid recursion.
26941         (decide_inlining_of_small_functions): When badness does not match;
26942         re-insert into fibheap.
26943
26944 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
26945
26946         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
26947         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
26948         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
26949         (ALL_HOST_OBJS): Now a union of the above two.
26950         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
26951         all files in ALL_HOST_FRONTEND_OBJS.
26952         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
26953
26954         * c-common.c: Pretend to be a backend file by undefining
26955         IN_GCC_FRONTEND (still need rtl.h here).
26956
26957 2010-05-27  Jan Hubicka  <jh@suse.cz>
26958
26959         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
26960         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
26961
26962 2010-05-27  Jan Hubicka  <jh@suse.cz>
26963
26964         * sched-ebb.c: Rename struct deps to struct deps_desc.
26965         * ddg.c: Likewise.
26966         * sel-sched-ir.c: Likewise.
26967         * sched-deps.c: Likewise.
26968         * sched-int.h: Likewise.
26969         * sched-rgn.c: Likewise.
26970
26971 2010-05-27  Jon Beniston  <jon@beniston.com>
26972
26973         PR 43726
26974         * config/lm32/lm32.h: Remove definition of
26975         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
26976
26977 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
26978
26979         PR lto/44230
26980         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
26981
26982 2010-05-27  Richard Guenther  <rguenther@suse.de>
26983
26984         PR tree-optimization/44284
26985         * tree-vect-stmts.c (vectorizable_assignment): Handle
26986         sign-changing conversions as simple copy.
26987
26988 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26989
26990         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
26991         Bionic C library.
26992         (__gthread_active_p): Check for pthread_create if compiling against
26993         Bionic C library.
26994
26995 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26996
26997         Support compilation for Android platform.  Reimplement -mandroid.
26998
26999         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27000         (*android*): Set ANDROID_DEFAULT.
27001         (arm*-*-linux*): Include linux-android.h.
27002         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27003         * config/arm/eabi.h: Remove, move Android-specific parts ...
27004         * config/linux-android.h: ... here.  New file.
27005         * config/arm/eabi.opt: Rename to ...
27006         * config/linux-android.opt: ... this.
27007         (mandroid): Allow -mno-android option.  Initialize based on
27008         ANDROID_DEFAULT.
27009         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27010         Move logic to corresponding LINUX_TARGET_* macros.
27011         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27012         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27013         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27014         Android definitions.
27015         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27016         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27017         Document.
27018
27019 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27020
27021         Add support for Bionic C library
27022
27023         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27024         macro.
27025         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27026         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27027
27028         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27029         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27030         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27031         to support multiple C libraries.  Handle Bionic.
27032         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27033         (BIONIC_DYNAMIC_LINKER64): Define.
27034         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27035         Update.
27036         (TARGET_HAS_SINCOS): Enable for Bionic.
27037
27038         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27039         the last option specified on command line take effect.
27040         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27041         (mbionic): New.
27042         (mglibc, muclibc): Update.
27043
27044         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27045         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27046         DEFAULT_LIBC.
27047
27048         * doc/invoke.texi (-mglibc, -muclibc): Update.
27049         (-mbionic): Document.
27050
27051 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27052
27053         * c-common.h (c_register_addr_space): Add prototype.
27054         (ADDR_SPACE_KEYWORD): Remove.
27055         * c-common.c (c_register_addr_space): New function.
27056         (c_addr_space_name): Reimplement.
27057         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27058
27059         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27060         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27061
27062         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27063         Remove TARGET_ADDR_SPACE_KEYWORDS.
27064
27065 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27066
27067         * input.c: New file.
27068         * input.h (main_input_filename): Move declaration to toplev.h.
27069         * toplev.c (input_location, line_table): Move to input.c
27070         * toplev.h (main_input_filename): Move declaration from input.h.
27071         * tree.c (expand_location): Move to input.c.
27072         * Makefile.in (OBJS-common): Add input.o.
27073         (input.o): Add dependencies.
27074
27075 2010-05-27  Richard Guenther  <rguenther@suse.de>
27076
27077         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27078         for non-existant files.
27079         (fork_execute): Mark args_name file as deleted.
27080
27081 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27082
27083         PR bootstrp/44287
27084         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27085         (narrow_signed_type): Likewise.
27086
27087 2010-05-26  Jan Hubicka  <jh@suse.cz>
27088
27089         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27090         edge only when checking is enabled; check using former_clone_of;
27091         check inline clones too.
27092         (cgraph_materialize_clone): Record former_clone_of pointer.
27093         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27094         combining redirections; dump args_to_skip bitmap
27095         (cgraph_materialize_all_clones): Do no redirection here.
27096         * ipa-inline.c (inline_transform): Do redirection here.
27097         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27098         cheking only).
27099
27100 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27101
27102         * config/avr/avr-c.c: Do not include regs.h.
27103         Include cpplib.h for cpp_define and tree.h for c-common.h.
27104         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27105         * config/avr/t-avr: Fix dependencies for avr-c.o.
27106
27107 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27108
27109         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27110         string instead of SYMBOL_REF rtx.
27111         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27112         * libfuncs.h: ...to here.  Adjust for explow.c change.
27113
27114 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27115
27116         * pretty-print.c: Don't include ggc.h.
27117         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27118         (identifier_to_locale): Use them for allocation.
27119         * pretty-print.h (identifier_to_locale_alloc,
27120         identifier_to_locale_free): Declare.
27121         * toplev.c (alloc_for_identifier_to_locale): New.
27122         (general_init): Set identifier_to_locale_alloc and
27123         identifier_to_locale_free.
27124         * Makefile.in (pretty-print.o): Update dependencies.
27125
27126 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27127
27128         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27129         pointer types if they have different alignment or mode.
27130
27131 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27132
27133         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27134         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27135         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27136         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27137         sparc_function_value_regno_p): New functions.
27138         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27139         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27140         (function_value): Rename to...
27141         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27142         argument to 'outgoing'.
27143         (function_arg_record_value, function_arg_union_value,
27144         function_arg_vector_value): Update comment.
27145
27146 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27147
27148         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27149         (fde_needed_for_eh_p): New predicate.
27150         (output_call_frame_info): Use it throughout to decide whether FDEs
27151         are needed for EH purpose.
27152         (dwarf2out_begin_prologue): Reorder assignments.
27153
27154 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27155
27156         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27157         special case loop->header.
27158         (is_predicated): New.
27159         (if_convertible_loop_p): Call it.
27160
27161 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27162
27163         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27164         iterator in parameter.  Do not generate code during the analysis.
27165         (tree_if_convert_cond_stmt): Removed.
27166         (tree_if_convert_stmt): Removed.
27167         (predicate_bbs): New.
27168         (if_convertible_loop_p): Call predicate_bbs.
27169         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27170         now contains all the analysis part.
27171
27172 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27173
27174         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27175         statements in the analysis part.
27176         (tree_if_convert_stmt): Update comment.
27177         (remove_conditions_and_labels): New.
27178         (combine_blocks): Call remove_conditions_and_labels.
27179         (tree_if_conversion): Update comment.
27180
27181 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27182
27183         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27184         than 2 predecessors or more than 2 successors.
27185
27186 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27187
27188         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27189         of loops in which the data dependence analysis fails.
27190
27191 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27192
27193         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27194         CDI_POST_DOMINATORS.
27195         (tree_if_conversion): Same.
27196
27197 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27198
27199         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
27200
27201 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27202
27203         * tree-if-conv.c: Update copyright years.  Fix comments.
27204         Fix indentation.
27205
27206 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
27207
27208         * builtin-types.def (BT_INT128): New primitive type.
27209         (BT_UINT128): Likewise.
27210         * c-common.c (c_common_r): Add __int128 keyword.
27211         (c_common_type_for_size): Handle __int128.
27212         (c_common_type_for_mode): Likewise.
27213         (c_common_signed_or_unsigned_type): Likewise.
27214         (c_common_nodes_and_builtins): Add builtin type
27215         if target supports 128-bit integer scalar.
27216         * c-common.h (enum rid): Add RID_INT128.
27217         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
27218         if target supports 128-bit integer scalar.
27219         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
27220         (finish_declspecs): Likewise.
27221         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
27222         (c_token_starts_declspecs): Likewise.
27223         (c_parser_declspecs): Likewise.
27224         (c_parser_attributes): Likewise.
27225         (c_parser_objc_selector): Likewise.
27226         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
27227         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
27228         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
27229         * tree.c (make_or_reuse_type): Likewise.
27230         (make_unsigned_type): Likewise.
27231         (build_common_tree_nodes_2): Likewise.
27232         * tree.h (enum integer_type_kind): Add itk_int128 and
27233         itk_unsigned_int128.
27234         (int128_integer_type_node): New define.
27235         (int128_unsigned_type_node): New define.
27236         * doc/extend.texi: Add documentation about __int128 type.
27237
27238 2010-05-26  Richard Guenther  <rguenther@suse.de>
27239
27240         * tree-ssa-sccvn.c (copy_nary): Adjust.
27241         (copy_phis): Rename to ...
27242         (copy_phi): ... this.  Adjust.
27243         (copy_references): Rename to ...
27244         (copy_reference): ... this.  Adjust.
27245         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
27246         result into the valid table.
27247
27248 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27249
27250         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
27251         insn-config.h, insn-codes.h, recog.h, and optabs.h.
27252
27253 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27254
27255         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
27256
27257 2010-05-26  Richard Guenther  <rguenther@suse.de>
27258
27259         * opts.c (common_handle_option): Handle OPT_Ofast.
27260
27261 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27262
27263         * diagnostic.c: Don't include opts.h.
27264         (permissive_error_option): Define.
27265         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
27266         for classify_diagnostic.  Don't use memset for
27267         classify_diagnostic.  Initialize new and recently added fields.
27268         (diagnostic_classify_diagnostic): Use context->n_opts instead of
27269         N_OPTS.
27270         (diagnostic_report_diagnostic): Pass context parameter to
27271         diagnostic_report_warnings_p.  Use option_enabled and option_name
27272         hooks from context.
27273         (emit_diagnostic): Use permissive_error_option.
27274         (permerror): Likewise.
27275         * diagnostic.h: Don't include options.h.
27276         (struct diagnostic_context): Add n_opts, opt_permissive,
27277         inhibit_warnings, warn_system_headers, option_enabled and
27278         option_name fields.  Change classify_diagnostic to a pointer.
27279         * opts-diagnostic.h: New file.
27280         * opts.c: Include opts-diagnostic.h.
27281         (common_handle_option): Set global_dc fields for -Wfatal-errors,
27282         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
27283         (option_name): New function.
27284         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
27285         (c_common_handle_option): Set global_dc->permissive for
27286         -fpermissive.
27287         * c-common.c (c_cpp_error): Save and restore
27288         global_dc->warn_system_headers, not variable warn_system_headers.
27289         * toplev.c: Include opts-diagnostic.h.
27290         (general_init): Update call to diagnostic_initialize.  Set
27291         global_dc->show_column, global_dc->option_enabled and
27292         global_dc->option_name.
27293         (process_options): Don't set global_dc fields here.
27294         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
27295         (diagnostic.o, opts.o, toplev.o): Update dependencies.
27296
27297 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27298
27299         * config/picochip/picochip.md (movsi): Split a movsi from a
27300         const after reload.
27301
27302 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27303
27304         * ggc-zone.c: Update copyright year.
27305         (poison_region): Mark memory for Valgrind as undefined before
27306         memset () call and inaccessible afterwards.
27307         (ggc_pch_total_size): Change type of i to int.
27308
27309 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27310
27311         * ggc-common.c (ggc_free_overhead): Allow empty slot.
27312
27313 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27314
27315         * ggc-common.c: Update copyright year.
27316         (ggc_rlimit_bound): Remove prototype.  Compile only if
27317         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
27318         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
27319         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
27320         (ggc_min_heapsize_heuristic): Likewise.
27321
27322 2010-05-26  Richard Guenther  <rguenther@suse.de>
27323
27324         PR rtl-optimization/44164
27325         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
27326         no-common access-path disambiguation.
27327         (indirect_ref_may_alias_decl_p): Adjust.
27328         (indirect_refs_may_alias_p): Likewise.
27329         (refs_may_alias_p_1): Likewise.
27330
27331 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27332
27333         * c-typeck.c: Do not include expr.h.
27334
27335 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27336
27337         * rtl.h (decl_default_tls_model): Move prototype from here...
27338         * output.h: ...to here.
27339         * c-decl.c: Do not include rtl.h.
27340         * c-pragma.c: Likewise.
27341         * c-parser.c: Likewise.
27342         * c-gimplify.c: Likewise.  And also not hard-reg-set.
27343         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
27344         FIXME note for it.  Add a FIXME note for expr.h.
27345         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
27346         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
27347         defined.
27348
27349 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
27350
27351         PR target/44199
27352         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
27353         or total_size is larger than red zone size for non-V4 ABI, emit a
27354         stack_tie resp. frame_tie insn before stack pointer restore.
27355         * config/rs6000/rs6000.md (frame_tie): New insn.
27356
27357 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
27358
27359         * function.h (struct function): Add can_throw_non_call_exceptions bit.
27360         * lto-streamer-in.c (input_function): Stream it in.
27361         * lto-streamer-out.c (output_function): Stream it out.
27362         * function.c (allocate_struct_function): Set it.
27363         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
27364         for flag_non_call_exceptions.
27365         * cfgbuild.c (control_flow_insn_p): Likewise.
27366         (make_edges): Likewise.
27367         * cfgexpand.c (expand_stack_alignment): Likewise.
27368         * combine.c (distribute_notes): Likewise.
27369         * cse.c (cse_extended_basic_block): Likewise.
27370         * except.c (insn_could_throw_p): Likewise.
27371         * gcse.c (simple_mem): Likewise.
27372         * ipa-pure-const.c (check_call): Likewise.
27373         (check_stmt ): Likewise.
27374         * lower-subreg.c (lower-subreg.c): Likewise.
27375         * optabs.c (emit_libcall_block): Likewise.
27376         (prepare_cmp_insn): Likewise.
27377         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27378         * postreload.c (rest_of_handle_postreload): Likewise.
27379         * reload1.c (reload_as_needed): Likewise.
27380         (emit_input_reload_insns): Likewise.
27381         (emit_output_reload_insns): Likewise.
27382         (fixup_abnormal_edges): Likewise.
27383         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27384         * store-motion.c (find_moveable_store): Likewise.
27385         * tree-eh.c (stmt_could_throw_p): Likewise.
27386         (tree_could_throw_p): Likewise.
27387         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27388         * config/arm/arm.c (arm_expand_prologue): Likewise.
27389         (thumb1_expand_prologue): Likewise.
27390         * config/rx/rx.md (cbranchsf4): Likewise.
27391         (cmpsf): Likewise.
27392         * config/s390/s390.c (s390_emit_prologue): Likewise.
27393         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27394         (inline_forbidden_into_p): New predicate.
27395         (expand_call_inline): Use it to forbid inlining.
27396         (tree_can_inline_p): Likewise.
27397
27398 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27399
27400         * config/i386/i386-c.c: Do not include rtl.h.
27401         * config/i386/t-i386: Update dependencies.
27402
27403 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27404
27405         * attribs.c: Do not include rtl.h.
27406         * Makefile.in: Update dependencies.
27407
27408 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27409
27410         * double-int.h (double_int_and): New.
27411         * combine.c (try_combine): Clean up, use double_int_* and
27412         immed_double_int_const functions.
27413
27414 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27415
27416         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27417         stderr to /dev/null instead of grep -q.
27418         * configure: Regenerate.
27419
27420 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27421
27422         * Makefile.in (EXCEPT_H): Fix typo.
27423
27424 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27425
27426         * ira-build.c (update_conflict_hard_reg_costs): New.
27427         (ira_build): Call update_conflict_hard_reg_costs.
27428
27429 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27430
27431         PR debug/41371
27432         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27433         ENABLE_CHECKING.
27434         (intersect_loc_chains): Walk the s2var's loc_chain together
27435         with s1node chain as long as the locations are equal, don't
27436         call find_loc_in_1pdv in that case.
27437
27438         PR debug/42801
27439         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27440         (copy_bind_expr): ... instead of here.
27441         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27442         if the block hasn't been remapped.
27443         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27444         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27445
27446 2010-05-25  Richard Guenther  <rguenther@suse.de>
27447
27448         PR middle-end/44069
27449         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27450         out-of-bounds array accesses.
27451
27452 2010-05-25  Richard Guenther  <rguenther@suse.de>
27453
27454         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27455         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27456         (run_gcc): Re-organize to make cleanup easier.
27457
27458 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27459
27460         * config/s390/s390.c (optimization_options): Fix and move the
27461         flag_prefetch_loop_arrays override ...
27462         (override_options): ... here.
27463
27464 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27465
27466         * diagnostic.c: Don't include plugin.h.
27467         (diagnostic_report_diagnostic): Don't handle plugins specially
27468         here.  Pass context to internal_error callback.
27469         * diagnostic.h (struct diagnostic_context): Add context parameter
27470         to internal_error callback.
27471         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27472         * plugin.h (struct diagnostic_context): Declare.
27473         (warn_if_plugins, plugins_internal_error_function): Declare.
27474         * toplev.c (general_init): Set global_dc->internal_error.
27475         * Makefile.in (diagnostic.o): Update dependencies.
27476
27477 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27478
27479         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27480         * config/rs6000/t-darwin64: New.
27481         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27482         build crt2.
27483
27484 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27485
27486         PR 44203
27487         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27488         match the original (and intended) behaviour before r159557.  This
27489         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27490         in two ways.
27491
27492 2010-05-25  Richard Guenther  <rguenther@suse.de>
27493
27494         * doc/invoke.texi: Document -Ofast.
27495         * target.h (struct gcc_target): Add handle_ofast.
27496         * target-def.h (TARGET_HANDLE_OFAST): Add.
27497         (TARGET_INITIALIZER): Adjust.
27498         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27499         * common.opt (Ofast): Add.
27500
27501 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27502
27503         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27504         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27505
27506 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27507
27508         PR target/43610
27509         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27510         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27511         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27512         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27513
27514 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27515
27516         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27517         DW_OP_minus with negated offset instead of DW_OP_plus.
27518         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27519
27520 2010-05-25  Wei Guozhi  <carrot@google.com>
27521
27522         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27523         tst instruction and a new alternative.
27524         * config/arm/constraints.md (Pu): New constraint.
27525
27526 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27527
27528         * function.c (assign_stack_local_1): Initialize variable
27529         to avoid warning when bootstrapping at -O3.
27530
27531 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27532
27533         * configure.ac (all_lang_makefiles): Remove everything related to it.
27534         * configure: Regenerate.
27535         * Makefile.in: Fix reference to ada Make-lang.in.
27536         Remove support for LANG_MAKEFILES.
27537
27538 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27539             Sandra Loosemore  <sandra@codesourcery.com>
27540
27541         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27542         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27543         description.  Add arm_neon_fp16_ok.
27544         (Add Options): Add arm_neon and arm_neon_fp16.
27545
27546 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27547
27548         * diagnostic.c: Don't include flags.h.
27549         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27550         context parameters.  Check flags in the context passed as a parameter.
27551         (diagnostic_build_prefix): Add context parameter.  Check
27552         show_column flag in context.
27553         (diagnostic_action_after_output): Check fatal_errors flag in context.
27554         (diagnostic_report_current_module): Check show_column flag in context.
27555         (default_diagnostic_starter): Update call to
27556         diagnostic_build_prefix.
27557         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27558         (emit_diagnostic): Pass context to permissive_error_kind.
27559         (permerror): Pass context to permissive_error_kind.
27560         * diagnostic.h (struct diagnostic_context): Add show_column,
27561         pedantic_errors, permissive and fatal_errors fields.
27562         (diagnostic_build_prefix): Update prototype.
27563         * langhooks.c
27564         * toplev.c (process_options): Set flags in global_dc from
27565         flag_show_column, flag_pedantic_errors, flag_permissive,
27566         flag_fatal_errors.
27567         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27568         to diagnostic_build_prefix.
27569         * Makefile.in (diagnostic.o): Update dependencies.
27570
27571 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27572
27573         * config/i386/ia32intrin.h (__crc32q): Define only if
27574         __SSE4_2__ is defined.
27575
27576 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27577
27578         PR target/44132
27579         PR middle-end/43602
27580         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27581         DECL_VISIBILITY_SPECIFIED.
27582         (emutls_decl): Set DECL_PRESERVE_P and copy
27583         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27584         (emutls_finalize_control_var): New callback.
27585         (emutls_finish): Finalize emutls control variables.
27586         * toplev.c (compile_file): Move the call to emutls_finish ()
27587         before varpool_assemble_pending_decls ().
27588
27589 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27590
27591         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27592         added to the preprocessor condition.
27593
27594 2010-05-24  Paul Brook  <paul@codesourcery.com>
27595
27596         * gengtype-lex.l: Add HARD_REG_SET.
27597         * expr.c (expand_expr_real_1): Record writes to hard registers.
27598         * function.c (rtl_data): Add asm_clobbers.
27599         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27600         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27601         Use crtl->asm_clobbers.
27602
27603 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27604
27605         * doc/makefile.texi (Makefile): Mention stages 'profile'
27606         and 'feedback' for profiledbootstrap.
27607
27608 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27609
27610         PR target/44245
27611         * config/i386/i386.c (def_builtin): Properly check
27612         OPTION_MASK_ISA_64BIT.
27613
27614 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27615
27616         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27617         typedefs with different but compatible types.  Allow duplicate
27618         typedefs with the same type except for pedantic non-C1X, but give
27619         warning for variably modified types.
27620         * c-typeck.c (tagged_types_tu_compatible_p,
27621         function_types_compatible_p, type_lists_compatible_p,
27622         comptypes_internal): Add parameter different_types_p; set
27623         *different_types_p for different but compatible types.  All
27624         callers changed.
27625         (comptypes_check_different_types): New.
27626         * c-tree.h (comptypes_check_different_types): Declare.
27627
27628 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27629
27630         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27631         * jump.c: Include basic-block.h.
27632         * profile.c: Likewise.
27633         * tree-profile.c: Likewise.
27634         * coverage.c: Likewise.
27635         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27636         (optimize_function_for_speed_p): Likewise.
27637         * function.h (optimize_function_for_size_p,
27638         optimize_function_for_speed_p): Moved here from basic-block.h.
27639         * Makefile.in: Update dependencies.
27640
27641 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27642
27643         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27644         before calling make; allow override through $MAKE.
27645         * doc/invoke.texi (Optimize Options): Document override.
27646
27647 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27648
27649         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27650         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27651         (rs6000_mode_dependent_address_ptr): Make static.
27652         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27653         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27654         Remove.
27655
27656 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27657
27658         PR target/43869
27659         * config/i386/i386.c: Make sure that the correct regparm is passed.
27660
27661 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27662
27663         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27664         * sbitmap.c: ...to here to internalize sbitmap element access.
27665         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27666         Explain why basic-block.h is included.
27667         * function.h: Include tm.h for CUMULATIVE_ARGS.
27668         * Makefile.in: Update dependencies.
27669
27670 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27671
27672         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27673         New core types.
27674         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27675         * sbitmap.c: Include sbitmap.h.
27676         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27677         hard-reg-set.h.  Split everything related to regsets out from here...
27678         * regset.h: ...to here.  New file.
27679         * df.h: Include regset.h and sbitmap.h.
27680         * tree-flow.h: Likewise.
27681         * cfgloop.h: Likewise.
27682         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27683         * cgraph.h: Include vec.h and function.h.
27684         * reload.h (struct insn_chain): Change types of live_throughout
27685         and dead_or_set from regset_head to bitmap_head.
27686         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27687         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27688         spilled_regs from regset_head to bitmap_head to avoid dependency
27689         in regset.h.
27690         * sel-sched-ir.h: Include regset.h.
27691         * reload.c: Include df.h before reload.h.
27692         * caller-save.c: Likewise.
27693         * reload1.c: Likewise.
27694         * ira.c: Likewise.
27695         (mark_elimination): Update type of r to bitmap, consistent with
27696         DF_LR_IN.
27697         * dominance.c: Include bitmap.h.
27698         * modulo-sched.c: Include df.h.
27699         * cfganal.c: Include bitmap.h and sbitmap.h.
27700         * cfgbuild.c: Include sbitmap.h.
27701         * lcm.c: Include sbitmap.h.
27702         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27703         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27704         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27705         * cselib.c: Include bitmap.h.
27706         * tree-optimize.c: Include regset.h.
27707         * stmt.c: Include bitmap.h.
27708         * Makefile.in: Update dependencies.
27709
27710 2010-05-22  Jan Hubicka  <jh@suse.cz>
27711
27712         * cgraph.h (struct varpool_node): Add same_comdat_group.
27713         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27714         pointer.
27715         (output_varpool): Update call of lto_output_varpool_node.
27716         (input_varpool): Read same_comdat_group pointer.
27717         (input_varpool_1): Fixup same_comdat_group pointer.
27718         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27719         group is needed, all are.
27720         * varpool.c (varpool_remove_node): Remove node from same comdat group
27721         linklist too.
27722         (varpool_analyze_pending_decls): Walk same comdat groups.
27723
27724 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27725
27726         * rtl.h (union rtunion_def): Remove rt_bit member.
27727         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27728         * print-rtl (print_rtx): Do not print the member.
27729         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27730         * gengenrtl.c (type_from_format): Likewise.
27731         (accessor_from_format): Likewise.
27732
27733 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27734
27735         * dbgcnt.c: Include toplev.h instead of errors.h.
27736         * ira-emit.c: Don't include errors.h.
27737         * ira.c: Include toplev.h instead of errors.h.
27738         * lto-compress.c: Include toplev.h instead of errors.h.
27739         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27740         ira.o, dbgcnt.o): Update dependencies.
27741
27742 2010-05-22  Richard Guenther  <rguenther@suse.de>
27743
27744         * gimple.c (gimple_types_compatible_p): Check type qualifications
27745         before merging pointer to complete and pointer to incomplete type.
27746         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27747         we use our own resolution algorithm.  The gold linker plugin
27748         doesn't do the job we want it to do here.
27749
27750 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27751
27752         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27753         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27754         (sparc_mode_dependent_address_p): New function.
27755
27756 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27757
27758         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27759
27760         * timevar.c: Do not include any core headers.
27761         (timevar_print): De-i18n-ize.
27762         (print_time): Likewise.
27763         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27764
27765 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27766
27767         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27768         langhooks-def.h.
27769         (diagnostic_initialize): Initialize x_data not last_function.
27770         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27771         (default_diagnostic_starter): Call
27772         diagnostic_report_current_module not
27773         diagnostic_report_current_function.
27774         (diagnostic_report_diagnostic): Initialize x_data not
27775         abstract_origin.
27776         (verbatim): Likewise.
27777         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27778         x_data.
27779         (struct diagnostic_context): Change last_function to x_data.
27780         (diagnostic_auxiliary_data): Replace with
27781         diagnostic_context_auxiliary_data and
27782         diagnostic_info_auxiliary_data.
27783         (diagnostic_last_function_changed, diagnostic_set_last_function,
27784         diagnostic_report_current_function): Move to tree-diagnostic.h.
27785         (print_declaration, dump_generic_node, print_generic_stmt,
27786         print_generic_stmt_indented, print_generic_expr,
27787         print_generic_decl, debug_c_tree, dump_omp_clauses,
27788         print_call_name, debug_generic_expr, debug_generic_stmt,
27789         debug_tree_chain, default_tree_printer): Move to
27790         tree-pretty-print.h.
27791         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27792         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27793         gimple-pretty-print.h.
27794         * pretty-print.c: Don't include tree.h
27795         (pp_base_format): Don't handle %K here.
27796         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27797         * pretty-print.h (text_info): Change abstract_origin to x_data.
27798         (pp_tree_identifier, pp_unsupported_tree,
27799         pp_base_tree_identifier): Move to tree-pretty-print.h.
27800         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27801         tree-pretty-print.h: New files.
27802         * tree-pretty-print.c: Include tree-pretty-print.h.
27803         (percent_K_format): New.  Moved from pretty-print.c.
27804         (pp_base_tree_identifier): Move from pretty-print.c.
27805         * c-objc-common.c: Include tree-pretty-print.h.
27806         (c_tree_printer): Handle %K here.
27807         * langhooks.c: Include tree-diagnostic.h.
27808         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27809         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27810         (default_tree_printer): Handle %K using percent_K_format.
27811         (general_init): Use default_tree_diagnostic_starter.
27812         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27813         (free_lang_data): Use default_tree_diagnostic_starter.
27814         * c-pretty-print.c: Include tree-pretty-print.h.
27815         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27816         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27817         * dwarf2out.c: Include tree-pretty-print.h.
27818         * except.c: Include tree-pretty-print.h.
27819         * gimple-pretty-print.c: Include tree-pretty-print.h and
27820         gimple-pretty-print.h.
27821         * gimplify.c: Include tree-pretty-print.h.
27822         * graphite-poly.c: Include tree-pretty-print.h and
27823         gimple-pretty-print.h.
27824         * ipa-cp.c: Include tree-pretty-print.h.
27825         * ipa-inline.c: Include gimple-pretty-print.h.
27826         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27827         * ipa-pure-const.c: Include gimple-pretty-print.h.
27828         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27829         gimple-pretty-print.h.
27830         * ipa-type-escape.c: Include tree-pretty-print.h.
27831         * print-rtl.c: Include tree-pretty-print.h.
27832         * print-tree.c: Include gimple-pretty-print.h.
27833         * sese.c: Include tree-pretty-print.h.
27834         * tree-affine.c: Include tree-pretty-print.h.
27835         * tree-browser.c: Include tree-pretty-print.h.
27836         * tree-call-cdce.c: Include gimple-pretty-print.h.
27837         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27838         * tree-chrec.c: Include tree-pretty-print.h.
27839         * tree-data-ref.c: Include tree-pretty-print.h and
27840         gimple-pretty-print.h.
27841         * tree-dfa.c: Include tree-pretty-print.h.
27842         * tree-if-conv.c: Include tree-pretty-print.h and
27843         gimple-pretty-print.h.
27844         * tree-inline.c: Include tree-pretty-print.h.
27845         * tree-into-ssa.c: Include tree-pretty-print.h and
27846         gimple-pretty-print.h.
27847         * tree-nrv.c: Include tree-pretty-print.h.
27848         * tree-object-size.c: Include tree-pretty-print.h and
27849         gimple-pretty-print.h.
27850         * tree-outof-ssa.c: Include tree-pretty-print.h and
27851         gimple-pretty-print.h.
27852         * tree-parloops.c: Include tree-pretty-print.h and
27853         gimple-pretty-print.h.
27854         * tree-predcom.c: Include tree-pretty-print.h and
27855         gimple-pretty-print.h.
27856         * tree-scalar-evolution.c: Include tree-pretty-print.h and
27857         gimple-pretty-print.h.
27858         * tree-sra.c: Include tree-pretty-print.h.
27859         * tree-ssa-address.c: Include tree-pretty-print.h.
27860         * tree-ssa-alias.c: Include tree-pretty-print.h.
27861         * tree-ssa-ccp.c: Include tree-pretty-print.h and
27862         gimple-pretty-print.h.
27863         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
27864         * tree-ssa-copy.c: Include tree-pretty-print.h and
27865         gimple-pretty-print.h.
27866         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
27867         * tree-ssa-dce.c: Include tree-pretty-print.h and
27868         gimple-pretty-print.h.
27869         * tree-ssa-dom.c: Include tree-pretty-print.h and
27870         gimple-pretty-print.h.
27871         * tree-ssa-dse.c: Include gimple-pretty-print.h.
27872         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
27873         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
27874         * tree-ssa-live.c: Include tree-pretty-print.h and
27875         gimple-pretty-print.h.
27876         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
27877         gimple-pretty-print.h.
27878         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
27879         gimple-pretty-print.h.
27880         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
27881         gimple-pretty-print.h.
27882         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
27883         gimple-pretty-print.h.
27884         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
27885         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
27886         * tree-ssa-operands.c: Include tree-pretty-print.h and
27887         gimple-pretty-print.h.
27888         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
27889         gimple-pretty-print.h.
27890         * tree-ssa-pre.c: Include tree-pretty-print.h and
27891         gimple-pretty-print.h.
27892         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
27893         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
27894         gimple-pretty-print.h.
27895         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
27896         gimple-pretty-print.h.
27897         * tree-ssa-sink.c: Include gimple-pretty-print.h.
27898         * tree-ssa-ter.c: Include tree-pretty-print.h and
27899         gimple-pretty-print.h.
27900         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
27901         * tree-ssa.c: Include tree-pretty-print.h and
27902         gimple-pretty-print.h.
27903         * tree-stdarg.c: Include gimple-pretty-print.h.
27904         * tree-switch-conversion.c: Include gimple-pretty-print.h.
27905         * tree-tailcall.c: Include tree-pretty-print.h and
27906         gimple-pretty-print.h.
27907         * tree-vect-data-refs.c: Include tree-pretty-print.h and
27908         gimple-pretty-print.h.
27909         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
27910         gimple-pretty-print.h.
27911         * tree-vect-loop.c: Include tree-pretty-print.h and
27912         gimple-pretty-print.h.
27913         * tree-vect-patterns.c: Include gimple-pretty-print.h.
27914         * tree-vect-slp.c: Include tree-pretty-print.h and
27915         gimple-pretty-print.h.
27916         * tree-vect-stmts.c: Include tree-pretty-print.h and
27917         gimple-pretty-print.h.
27918         * tree-vectorizer.c: Include tree-pretty-print.h.
27919         * tree-vrp.c: Include tree-pretty-print.h and
27920         gimple-pretty-print.h.
27921         * value-prof.c: Include tree-pretty-print.h and
27922         gimple-pretty-print.h.
27923         * var-tracking.c: Include tree-pretty-print.h.
27924         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
27925         (tree-diagnostic.o): New dependencies.
27926         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
27927         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
27928         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
27929         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
27930         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
27931         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
27932         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
27933         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
27934         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
27935         tree-ssa-address.o, tree-ssa-loop-niter.o,
27936         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
27937         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
27938         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
27939         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
27940         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
27941         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
27942         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
27943         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
27944         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
27945         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
27946         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
27947         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
27948         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
27949         tree-switch-conversion.o, var-tracking.o, value-prof.o,
27950         cfgexpand.o, pretty-print.o): Update dependencies.
27951
27952 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
27953
27954         * tree-ssa-structalias.c: Remove tm_p.h from include.
27955
27956 2010-05-21  Jeff Law  <law@redhat.com>
27957
27958         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
27959
27960 2010-05-21  Jason Merrill  <jason@redhat.com>
27961
27962         * tree-eh.c (cleanup_is_dead_in): New.
27963         (lower_try_finally): Don't generate a dead cleanup region.
27964         (lower_cleanup): Likewise.
27965
27966 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
27967
27968         PR debug/44223
27969         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
27970         unchain each use from the cyclic next_regno_use chain first.
27971
27972 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27973
27974         * real: Do not include gmp.h, mpfr.h, and mpc.h.
27975         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
27976         (real_value_negate, real_value_abs): New prototypes.
27977         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
27978         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
27979         new include file for interface between MPFR and REAL_VALUE_TYPE.
27980         * real.c: Include realmpfr.h.
27981         (real_arithmetic2): Remove legacy function.
27982         (real_value_negate): New.
27983         (real_value_abs): New.
27984         (mfpr_from_real, real_from_mpfr): Move from here...
27985         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
27986         * builtins.c: Include realmpfr.h.
27987         * fold-const.c: Include realmpfr.h.
27988         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
27989         (fold_negate_const): Likewise.
27990         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
27991         * toplev.c: Include realmpfr.h.
27992         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
27993         and real_value_negate.
27994         * fixed-value.c (check_real_for_fixed_mode): Likewise.
27995         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
27996         (vfp3_const_double_index): Likewise.
27997         (arm_print_operand): Likewise.
27998         * Makefile.in: Update dependencies.
27999
28000 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28001
28002         * config/s390/s390.c (override_options): Increase the default
28003         of max-completely-peel-times.
28004
28005 2010-05-21  Julian Brown  <julian@codesourcery.com>
28006             Mark Mitchell  <mark@codesourcery.com>
28007
28008         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28009         sibling calls for Thumb-1.
28010         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28011         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28012         Thumb-2.
28013         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28014         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28015         for Thumb-2.
28016         (return): New expander.
28017         (*arm_return): New name for ARM return insn.
28018         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28019
28020 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28021
28022         * config.gcc (sparc64-*-rtems*): New target.
28023
28024 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28025
28026         * tree.c (build_function_decl_skip_args): Fix grammar.
28027         (build_function_type_list_1): Fix typos, adjust formatting.
28028
28029 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28030
28031         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28032         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28033         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28034         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28035         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28036         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28037         tree-pretty-print.c, tree-loop-distribution.c,
28038         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28039         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28040         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28041         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28042         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28043         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28044         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28045         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28046         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28047         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28048         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28049         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28050         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28051         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28052         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28053         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28054         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28055         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28056         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28057         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28058         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28059         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28060         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28061         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28062         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28063         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28064         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28065         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28066         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28067         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28068         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28069         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28070         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28071         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28072         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28073         config/bfin/bfin.c: Clean up redundant includes.
28074         * Makefile.in: Update accordingly.
28075
28076 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28077
28078         PR middle-end/44204
28079         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28080         statement has no arguments.
28081
28082 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28083
28084         PR/44139
28085         * varasm.c (emutls_decl): Merge attributes to new decl.
28086
28087 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28088
28089         PR middle-end/44101
28090         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28091         around the uniquized constructor if its type requires a conversion.
28092
28093 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28094
28095         PR debug/44205
28096         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28097         at -O0 goto_locus of any of the incoming edges differs from
28098         goto_locus of outgoing edge, or gimple_location of any of the
28099         labels differs.
28100
28101 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28102
28103         * ira.c (ira_non_ordered_class_hard_regs): Define.
28104         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28105         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28106         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28107         cost of unaligned hard regs when allocating multi-reg pseudos.
28108
28109 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28110
28111         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28112         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28113         for TARGET_NO_FLOAT.
28114         * config/mips/mips.c (mips_file_start): Expand conditional expression
28115         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28116         (mips_override_options): Move -mno-float override -msoft-float and
28117         -mhard-float.
28118         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28119         Condition(TARGET_SUPPORTS_NO_FLOAT).
28120         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28121         __mips_no_float here.
28122         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28123         (TARGET_SUPPORTS_NO_FLOAT): Define.
28124         * config/mips/sdemtk.opt: Delete.
28125
28126 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28127
28128         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28129
28130 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28131
28132         PR target/43733
28133         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28134         * configure: Regenerate.
28135         * config.in: Regenerate.
28136         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28137         instead of sahf only for 64bit targets.
28138
28139 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28140
28141         PR debug/44178
28142         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28143         setup_ref_regs for DEBUG_INSNs.
28144
28145 2010-05-20  Jan Hubicka  <jh@suse.cz>
28146
28147         PR middle-end/44197
28148         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28149
28150 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28151
28152         PR bootstrap/43870
28153         * df-scan.c (df_ref_compare): Stabilize sort.
28154
28155 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28156
28157         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28158         argument.  Don't use DW_OP_piece if offset is non-zero,
28159         put offset into second DW_OP_bit_piece argument.
28160         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28161         compute offset.
28162
28163 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28164
28165         PR target/44202
28166         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28167         settings for 16-bit-constant "addo" alternative.
28168
28169 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28170
28171         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28172         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28173
28174         PR target/43764
28175         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28176         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28177         Use it.
28178
28179 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28180
28181         * diagnostic.c (FLOAT, FFS): Don't undefine.
28182         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28183         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28184         include ordering.
28185
28186 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28187
28188         * combine.c (propagate_for_debug): Call make_compound_operation
28189         on the source value.
28190         (try_combine): When implementing a split chosen by find_split_point,
28191         either copy i2src or set it to null.  Assert that i2src is not null
28192         before substituting into CALL_INSN_FUNCTION_USAGE.
28193
28194 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28195
28196         * double-int.h (double_int_ior): New function.
28197         * tree.h (build_int_cst_wide_type): Remove.
28198         * tree.c (build_int_cst_wide_type): Remove.
28199         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
28200         of build_int_cst_wide_type.
28201         * stor-layout.c (set_sizetype): (Ditto.).
28202         * dojump.c (do_jump): Use build_int_cstu instead of
28203         build_int_cst_wide_type.
28204
28205 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28206
28207         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
28208         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
28209         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
28210         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
28211         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
28212         propagate the 'data' argument to copy_tree_r.
28213         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
28214         Propagate 'data' argument to walk_tree.
28215         (copy_if_shared): New function.
28216         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
28217         (unmark_visited): New function.
28218         (unshare_body): Call copy_if_shared instead of doing it manually.
28219         (unvisit_body): Call unmark_visited instead of doing it manually.
28220
28221 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
28222
28223         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
28224         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
28225         * hooks.c: Likewise.
28226         * target-def.h (TARGET_FOLD_BUILTIN): Define to
28227         hook_tree_tree_int_treep_bool_null.
28228         * target.h (struct gcc_target): Update signature of fold_builtin
28229         field.
28230         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
28231         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
28232         instead of the call expression.
28233         (fold_builtin_call_array): Pass n and argarray directly.
28234         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
28235         consing a list.
28236         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
28237         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
28238         `i' and use it in place of `arity'.
28239         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
28240         Dereference `args' directly.
28241         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
28242
28243 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28244
28245         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28246         3dnow, sse3, sse2.
28247         (Directives): Document optional dg-require-effective-target
28248         selector.
28249
28250 2010-05-19  Richard Guenther  <rguenther@suse.de>
28251
28252         PR lto/44196
28253         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
28254
28255 2010-05-19  Richard Guenther  <rguenther@suse.de>
28256
28257         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
28258         * common.opt (fwhopr=): New.
28259         * opts.c (common_handle_option): Handle OPT_fwhopr.
28260         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
28261         * collect2.c (main): Match -fwhopr*.
28262         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
28263         Execute ltrans stage in parallel when jobs is bigger than 1.
28264
28265 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28266
28267         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
28268         pentiumpro on Solaris 8/x86 with Sun as.
28269         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
28270         hidden alias bug.
28271         (gcc_cv_as_ix86_quad): Check for .quad directive.
28272         * configure: Regenerate.
28273         * config.in: Regenerate.
28274         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
28275
28276 2010-05-19  Martin Jambor  <mjambor@suse.cz>
28277
28278         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
28279         also for indirect edges.  Actual printing moved...
28280         (ipa_print_node_jump_functions_for_edge): ...here.
28281         (ipa_compute_jump_functions): Renamed to
28282         ipa_compute_jump_functions_for_edge and made static.
28283         (ipa_compute_jump_functions): New function.
28284         (make_edge_direct_to_target): Check if the number of arguments on
28285         the newly direct edge is the same as the number of parametrs of
28286         the callee.
28287         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
28288         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
28289         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
28290         analysis functions unconditionally, call the new
28291         ipa_analyze_params_uses on the node instead of every edge.
28292
28293 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
28294
28295         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
28296         to tree.
28297         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
28298         also checks for a constant int vs.  non-constant but
28299         loop-invariant steps.
28300         (find_or_create_group): Change the sort algorithm to only consider
28301         steps that are constant ints.
28302         (idx_analyze_ref): Adopt code to handle a tree instead of a
28303         HOST_WIDE_INT for step.
28304         (gather_memory_references_ref): Handle tree instead of int and be
28305         prepared to see a NULL_TREE.
28306         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
28307         prefetches if the step cannot be calculated at compile time.
28308         (issue_prefetch_ref): Issue prefetches for non-constant but
28309         loop-invariant steps.
28310
28311 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28312
28313         Revert:
28314         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28315
28316         * tree.h (build_call_list): Remove.
28317         * tree.c (build_call_list): Remove.
28318
28319 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28320
28321         * tree.h (build_call_list): Remove.
28322         * tree.c (build_call_list): Remove.
28323
28324 2010-05-18  Jan Hubicka  <jh@suse.cz>
28325
28326         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
28327
28328 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
28329
28330         PR rtl-optimization/43332
28331         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
28332
28333 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
28334
28335         * tree.h (build_int_cstu): Implement as static inline.
28336         * tree.c (build_int_cstu): Remove function.
28337         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
28338         sign extended.
28339
28340 2010-05-18  Richard Guenther  <rguenther@suse.de>
28341
28342         PR lto/44143
28343         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
28344         (debug): Initialize from -save-temps.
28345         (collect_execute): Print command-line when verbose.
28346         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
28347         for ltrans invocation.  Produce -dumpbase flag again.
28348         (process_args): Remove.
28349         (main): Simplify.
28350         * collect2.c (maybe_run_lto_and_relink): Only pass object
28351         files to lto-wrapper.
28352         * gcc.c (LINK_COMMAND_SPEC): Likewise.
28353
28354 2010-05-18  Jan Hubicka  <jh@suse.cz>
28355
28356         * opts.c (decode_options): Do not disable whopr at ipa_cp.
28357         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
28358
28359 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28360
28361         PR lto/44184
28362         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
28363         in a GIMPLE_ASM.
28364         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
28365         in a GIMPLE_ASM.
28366
28367 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28368
28369         PR debug/41371
28370         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28371         rtx_equal_p inline.
28372
28373 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28374
28375         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28376         lto-macho as lto_binary_reader.
28377
28378         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28379         after .section directive; just print it before the directive instead.
28380
28381 2010-05-17  Jan Hubicka  <jh@suse.cz>
28382
28383         * cgraph.c (cgraph_create_virtual_clone): Only check
28384         versionable_function_p when not in wpa and checking is enabled.
28385         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28386         there are no more functions to materialize.
28387
28388 2010-05-17  Jan Hubicka  <jh@suse.cz>
28389
28390         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28391         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28392         New functions.
28393         (output_cgraph): Call output_cgraph_opt_summary.
28394         (input_cgrpah): Call input_cgraph_opt_summary.
28395         (output_cgraph_opt_summary_p, output_node_opt_summary,
28396         input_node_opt_summary, input_cgraph_opt_section): New functions.
28397         * lto-section-in.c (lto_section_name): Add cgraphopt.
28398         * tree-inline.c (tree_function_versioning): Handle parm_num.
28399         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28400         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28401
28402 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28403
28404         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28405         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28406         the insn to prefetch ratio heuristic to loops with known trip count.
28407
28408 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28409
28410         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28411         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28412         is far from what is required by the prefetch.
28413
28414 2010-05-17  Jan Hubicka  <jh@suse.cz>
28415
28416         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28417         (ipcp_estimate_growth): Likewise.
28418         (ipcp_const_param_count): Likewise.
28419         (ipcp_insert_stage): Likewise.
28420         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28421         (visit_store_addr_for_mod_analysis): Set used flag.
28422         (ipa_detect_param_modifications): Set used flag for SSE params;
28423         update use of walk_stmt_load_store_addr_ops.
28424         (ipa_print_node_params): Print used flag.
28425         (ipa_write_node_info): Stream used flag.
28426         (ipa_read_node_info): Likewise.
28427         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28428         (ipa_is_param_used): New function.
28429         (lto_ipa_fixup_call_notes): Remove unused declaration.
28430
28431 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28432
28433         PR target/44074
28434         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28435         * configure: Regenerate.
28436         * config.in: Regenerate.
28437         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28438         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28439         Don't emit whitespace.
28440         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28441         (*rep_movsi): Likewise.
28442         (*rep_movsi_rex64): Likewise.
28443         (*rep_movqi): Likewise.
28444         (*rep_movqi_rex64): Likewise.
28445         (*rep_stosdi_rex64): Likewise.
28446         (*rep_stossi): Likewise.
28447         (*rep_stossi_rex64): Likewise.
28448         (*rep_stosqi): Likewise.
28449         (*rep_stosqi_rex64): Likewise.
28450         (*cmpstrnqi_nz_1): Use {%;} after repz.
28451         (*cmpstrnqi_nz_rex_1): Likewise.
28452         (*cmpstrnqi_1): Likewise.
28453         (*cmpstrnqi_rex_1): Likewise.
28454         (*strlenqi_1): Use {%;} after repnz.
28455         (*strlenqi_rex_1): Likewise.
28456         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28457         (*sync_compare_and_swap<mode>): Likewise.
28458         (sync_double_compare_and_swap<mode>): Likewise.
28459         (*sync_double_compare_and_swapdi_pic): Likewise.
28460         (sync_old_add<mode>): Likewise.
28461         (sync_add<mode>): Likewise.
28462         (sync_sub<mode>): Likewise.
28463         (sync_<code><mode>): Likewise.
28464
28465 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28466
28467         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28468         otr_token and polymorphic.
28469         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28470         (cgraph_clone_edge): Copy the above fields.
28471         * tree.c (get_binfo_at_offset): New function.
28472         * tree.h (get_binfo_at_offset): Declare.
28473         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28474         type, reordered items, updated comments.
28475         (union jump_func_value): Added base_type field, reordered fields.
28476         (enum ipa_lattice_type): Moved down in the file.
28477         (struct ipa_param_descriptor): New field polymorphic.
28478         (ipa_is_param_polymorphic): New function.
28479         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28480         (ipa_print_node_jump_functions): Print known type jump functions.
28481         (compute_complex_pass_through): Renamed to...
28482         (compute_complex_assign_jump_func): this.
28483         (compute_complex_ancestor_jump_func): New function.
28484         (compute_known_type_jump_func): Likewise.
28485         (compute_scalar_jump_functions): Create known type and complex ancestor
28486         jump functions.
28487         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28488         flag in the call note accordingly.
28489         (ipa_analyze_call_uses): Renamed to...
28490         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28491         variable var only in the block where it is used.
28492         (ipa_analyze_virtual_call_uses): New function.
28493         (ipa_analyze_call_uses): Likewise.
28494         (combine_known_type_and_ancestor_jfs): Likewise.
28495         (update_jump_functions_after_inlining): Implemented handling of a
28496         number of new jump function types combination.
28497         (print_edge_addition_message): Removed.
28498         (make_edge_direct_to_target): New function.
28499         (try_make_edge_direct_simple_call): Likewise.
28500         (try_make_edge_direct_virtual_call): Likewise.
28501         (update_call_notes_after_inlining): Renamed to...
28502         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28503         indirect calls to try_make_edge_direct_simple_call, also calls
28504         try_make_edge_direct_virtual_call for virtual calls.
28505         (ipa_print_node_params): Changed the header message.
28506         (ipa_write_jump_function): Stream also known type jump functions.
28507         (ipa_read_jump_function): Likewise.
28508         (ipa_write_indirect_edge_info): Stream new fields in
28509         cgraph_indirect_call_info.
28510         (ipa_read_indirect_edge_info): Likewise.
28511         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28512         GIMPLE_FOLD_H.
28513
28514 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28515
28516         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28517
28518 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28519
28520         * tree.h (CALL_EXPR_ARGS): Delete.
28521         (call_expr_arglist): Delete.
28522         * tree.c (call_expr_arglist): Delete.
28523         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28524         targetm.fold_builtin.
28525         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28526         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28527         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28528         arglist parameter.  Use CALL_EXPR_ARG.
28529         (picochip_expand_builtin_3op): Likewise.
28530         (picochip_expand_builtin_2opvoid): Likewise.
28531         (picochip_expand_array_get): Likewise.
28532         (picochip_expand_array_put): Likewise.
28533         (picochip_expand_array_testport): Likewise.
28534         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28535         rather than arglist.
28536         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28537         CALL_EXPR_ARGS.
28538         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28539         than TREE_VALUE and TREE_CHAIN.
28540         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28541         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28542         the arglist.
28543
28544 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28545
28546         PR bootstrap/42347
28547         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28548         to have no fallthru edge.
28549
28550         PR middle-end/44102
28551         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28552         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28553         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28554         add BARRIER after previous bb if needed.
28555
28556 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28557
28558         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28559
28560 2010-05-17  Alan Modra  <amodra@gmail.com>
28561
28562         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28563         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28564         with copy_reg rtx param.
28565         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28566         Correct cases where code for ABI_V4 did not initialise the reg
28567         used to access frame.  Also leave frame_reg_rtx as sp for large
28568         frames that save no regs.
28569
28570 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28571
28572         PR middle-end/44133
28573         * tree-sra.c (create_access_replacement): New parameter rename, mark
28574         the replaement for renaming only when it is true.
28575         (get_access_replacement): Pass true in the rename parameter of
28576         create_access_replacement.
28577         (get_unrenamed_access_replacement): New function.
28578         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28579         replacement declaration from it.
28580
28581 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28582
28583         * function.c (try_fit_stack_local, add_frame_space): New static
28584         functions.
28585         (assign_stack_local_1): Use them.  Look for opportunities to use
28586         space previously wasted on alignment.
28587         * function.h (struct frame_space): New.
28588         (struct rtl_data): Add FRAME_SPACE_LIST member.
28589         * reload1.c (something_was_spilled): New static variable.
28590         (alter_reg): Set it.
28591         (reload): Test it in addition to testing if the frame size changed.
28592
28593 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28594
28595         * config/s390/s390.c: Define sane prefetch settings and activate
28596         flag_prefetch_loop_arrays on -O3.
28597         * config/s390/s390.h: Declare that read can use write prefetch.
28598
28599 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28600
28601         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28602         build.
28603
28604 2010-05-16  Jan Hubicka  <jh@suse.cz>
28605
28606         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28607         function body; do not check stdarg field of struct function.
28608
28609 2010-05-16  Jan Hubicka  <jh@suse.cz>
28610
28611         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28612         * cgraph.h (cgraph_local_info): Add versionable flag.
28613         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28614         (ipcp_versionable_function_p): Use it.
28615         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28616         versionable flag.
28617
28618 2010-05-16  Jan Hubicka  <jh@suse.cz>
28619
28620         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28621         clone into hash when it is different from orig.
28622         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28623         * cgraph.h (cgraph_clone_node): Update prototype.
28624         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28625         (lto_cgraph_encoder_delete): Delete body map.
28626         (lto_cgraph_encoder_size): Move to header.
28627         (lto_cgraph_encoder_encode_body_p,
28628         lto_set_cgraph_encoder_encode_body): New.
28629         (lto_output_node): Do not take written_decls argument; output clone_of
28630         pointer.
28631         (add_node_to): Add include_body_argument; call
28632         lto_set_cgraph_encoder_encode_body on master of the clone.
28633         (add_references): Update use of add_node_to.
28634         (compute_ltrans_boundary): Likewise.
28635         (output_cgraph): Do not create written_decls bitmap.
28636         (input_node): Take nodes argument; stream in clone_of correctly.
28637         (input_cgraph_1): Update use of input_node.
28638         * lto-streamer-out.c (lto_output): Use encoder info to decide
28639         what bodies to output.
28640         * ipa-inline.c (cgraph_clone_inlined_nodes,
28641         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28642         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28643         (lto_cgraph_encoder_size): Define here.
28644         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28645         Declare.
28646
28647 2010-05-16  Richard Guenther  <rguenther@suse.de>
28648
28649         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28650         -fipa-type-escape.
28651         * ipa-type-escape.c (gate_type_escape_vars): Run when
28652         -fipa-struct-reorg runs.
28653         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28654         * common.opt (fipa-type-escape): Remove.
28655
28656 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28657
28658         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28659         (decode_options): Likewise.
28660         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28661
28662 2010-05-16  Jan Hubicka  <jh@suse.cz>
28663
28664         * ipa.c (function_and_variable_visibility): Also bring local all
28665         aliases.
28666
28667 2010-05-16  Richard Guenther  <rguenther@suse.de>
28668
28669         * alias.c (nonoverlapping_memrefs_p): Remove use of
28670         IPA type-escape information.
28671
28672 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28673
28674         * c-common.c (c_common_reswords): Add _Static_assert for C.
28675         * c-parser.c (c_token_starts_declaration,
28676         c_parser_next_token_starts_declaration,
28677         c_parser_static_assert_declaration_no_semi,
28678         c_parser_static_assert_declaration): New.
28679         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28680         Handle static assertions if static_assert_ok.
28681         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28682         c_parser_compound_statement_nostart, c_parser_label,
28683         c_parser_for_statement, c_parser_objc_methodprotolist,
28684         c_parser_omp_for_loop): All callers of
28685         c_parser_declaration_or_fndef changed.
28686         (c_parser_struct_declaration): Handle static assertions.
28687         (c_parser_compound_statement_nostart): Use
28688         c_parser_next_token_starts_declaration and
28689         c_token_starts_declaration to detect start of declarations.
28690         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28691         Likewise.
28692
28693 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28694
28695         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28696         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28697         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28698         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28699         (mmix_function_outgoing_value): Rename to...
28700         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28701         (mmix_function_value_regno_p): Make static.
28702         (mmix_libcall_value): New function.
28703         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28704         mmix_function_value_regno_p): Remove declaration.
28705
28706 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28707
28708         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28709         BUILT_IN_ALLOCA if stack checking is enabled.
28710
28711 2010-05-16  Richard Guenther  <rguenther@suse.de>
28712
28713         * var-tracking.c (vars_copy_1): Inline ...
28714         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28715         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28716         (variable_merge_over_cur): Adjust.  Merge asserts.
28717         (variable_merge_over_src): Likewise.
28718         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28719         (variable_post_merge_new_vals): Merge asserts.
28720         (variable_post_merge_perm_vals): Likewise.
28721         (find_mem_expr_in_1pdv): Likewise.
28722         (dataflow_set_different_value): Remove.
28723         (onepart_variable_different_p): Merge asserts.
28724         (variable_different_p): Likewise.
28725         (dataflow_set_different_1): Inline ...
28726         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28727         (emit_notes_for_differences_1): Merge asserts.
28728
28729 2010-05-16  Richard Guenther  <rguenther@suse.de>
28730
28731         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28732         * optabs.c (libfunc_decl_hash): Likewise.
28733         * varasm.c (emutls_decl): Likewise.
28734
28735 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28736
28737         * c-decl.c: Don't include gimple.h.
28738         (merge_decls): Do not copy gimple_body.
28739
28740 2010-05-15  Jason Merrill  <jason@redhat.com>
28741
28742         * c.opt: Add -fnothrow-opt.
28743
28744 2010-05-15  Jan Hubicka  <jh@suse.cz>
28745
28746         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28747         analyzed.
28748         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28749
28750 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28751
28752         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28753         * Makefile.in: Add it.
28754         Fix all other Makefile dependencies for changes below.
28755         * tree.h: Include it instead of defining VEC primitives here.
28756         * gimple.h: Likewise.
28757         * rtl.h: Likewise.
28758         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28759         * except.h: Include vecir.h, break dependence on tree.h.
28760
28761         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28762         Move from here...
28763         * tree-iterator.c: ...to here.
28764         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28765
28766         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28767         tm_p.h.
28768         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28769         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28770         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28771         tree-mudflap.h, and target.h.
28772         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28773         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28774         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28775         Add FIXME for why gimple.h is still included (should be unnecessary
28776         since GCC 4.5 gimplification unit-at-a-time).
28777         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28778         * c-pragma.c: Add FIXME for why function.h needs to be included just
28779         for cfun, at front-end level.
28780         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28781         Do not include ggc.h, but include vecprim.h for VEC(char).
28782         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28783         Explain why target.h is included.
28784         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28785         Explain why gimple.h is included.
28786         * c-ppoutput.c: Do not include tm.h.
28787         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28788         * c-parses.c: Explain why rtl.h is included, and that this (and only
28789         this) is also why tm.h must be included.
28790         Do not include except.h.
28791         * c-lang.c: Do not include ggc.h.
28792
28793 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28794
28795         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28796
28797 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28798
28799         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28800         unions by default if those structs and unions have no tags.  Do
28801         not condition anonymous struct and unions handling on flag_iso.
28802         Allow anonymous structs and unions for C1X.
28803         (finish_struct): Do not diagnose lack of named fields when
28804         anonymous structs and unions present for C1X.  Accept flexible
28805         array members in structure with anonymous structs or unions but no
28806         directly named fields.
28807         * doc/extend.texi (Unnamed Fields): Update.
28808
28809 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28810
28811         * gimple.h (compare_field_offset): Rename into...
28812         (gimple_compare_field_offset): ...this.
28813         * gimple.c (compare_field_offset): Rename into...
28814         (gimple_compare_field_offset): ...this.  Compare the full access if
28815         the offset is self-referential.
28816         (gimple_types_compatible_p): Adjust for above renaming.
28817         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28818         DECL_NONADDRESSABLE_P flag of fields before merging them.
28819
28820 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28821
28822         * tree.h (ctor_to_list): Delete.
28823         * tree.c (ctor_to_list): Delete.
28824
28825 2010-05-15  Jan Hubicka  <jh@suse.cz>
28826
28827         * ipa-reference.c: Include toplev.h
28828         (is_proper_for_analysis): Only add to all_module_statics
28829         if it is allocated.
28830         (write_node_summary_p, stream_out_bitmap,
28831         ipa_reference_write_optimization_summary,
28832         ipa_reference_read_optimization_summary): New.
28833         (struct ipa_opt_pass_d pass_ipa_reference): Add
28834         optimization summary streaming.
28835         * lto-cgraph.c (referenced_from_this_partition_p,
28836         reachable_from_this_partition_p): New functions.
28837         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28838         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28839         * opts.c (decode_options): Enable ipa_reference.
28840         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28841         * lto-streamer.h (referenced_from_this_partition_p,
28842         reachable_from_this_partition_p): Declare.
28843
28844 2010-05-15  Richard Guenther  <rguenther@suse.de>
28845
28846         PR tree-optimization/44038
28847         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
28848         taking the address of a V_C_E of a constant.
28849
28850 2010-05-14  Jan Hubicka  <jh@suse.cz>
28851
28852         * tree.h (memory_identifier_string): Remove.
28853         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
28854         (ipa_reference_global_vars_info_d): Remove statics_not_read and
28855         statics_not_written.
28856         (ipa_reference_optimization_summary_d): New structure.
28857         (ipa_reference_optimization_summary_t): New type and vector.
28858         (ipa_reference_vars_info_d): Embedd structures instead of using
28859         pointers.
28860         (reference_vars_to_consider): Remove out of GGC space.
28861         (module_statics_escape): Remove.
28862         (global_info_obstack): Rename to ...
28863         (optimization_summary_obstack): ... this one.
28864         (initialization_status_t): Remove.
28865         (memory_identifier_string): Remove.
28866         (get_reference_vars_info): Fix indenting.
28867         (set_reference_vars_info): Likewise.
28868         (get_reference_optimization_summary): New.
28869         (set_reference_optimization_summary): New.
28870         (get_global_reference_vars_info): Remove.
28871         (ipa_reference_get_read_global): Remove.
28872         (ipa_reference_get_written_global): Remove.
28873         (ipa_reference_get_not_read_global): Update.
28874         (ipa_reference_get_not_written_global): Update.
28875         (is_proper_for_analysis): Outlaw addressable.
28876         (propagate_bits): Update for new datastructures.
28877         (analyze_variable): Remove.
28878         (init_function_info): Update for new datastructures.
28879         (clean_function_local_data): Remove.
28880         (clean_function): Remove.
28881         (copy_global_bitmap): Use optimizations_summary_obstack.
28882         (duplicate_node_data): Duplicate optimization summary only.
28883         (remove_node_data): Remove optimization summary only.
28884         (generate_summary): Do not analyze variables; do not compute
28885         module_statics_escape; do not prune solutions by it.
28886         (read_write_all_from_decl): Fix typos in comments.
28887         (propagate): Doscover readonly and nonaddressable first;
28888         update for new datastructures; share global bitmaps.
28889         * ipa-reference.h (ipa_reference_get_read_global,
28890         ipa_reference_get_written_global): Remove.
28891         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
28892         * Makefile.in: Remove ipa-refereference from GT files.
28893
28894 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28895
28896         PR debug/44112
28897         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
28898         for all SYMBOL_REF_DECLs.
28899
28900 2010-05-14  Jan Hubicka  <jh@suse.cz>
28901
28902         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
28903         (varpool_all_refs_explicit_p): New inline function.
28904         * ipa-reference.c: Update comment.
28905         (module_statics_written): Remove.
28906         (get_static_decl): Remove.
28907         (ipa_init): Do not initialize module_statics_written.
28908         (analyze_function): Likewise.
28909         (generate_summary): Likewise; do not compute module_statics_readonly
28910         and do not update variable flags.
28911         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
28912         * ipa.c: Inlucde flags.h
28913         (cgraph_local_node_p): New.
28914         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
28915         promote functions to local.
28916         (ipa_discover_readonly_nonaddressable_vars): New function.
28917         (function_and_variable_visibility): Use cgraph_local_node_p.
28918         * varpool.c (varpool_finalize_decl): Set force_output for
28919         DECL_PRESERVE_P vars.
28920
28921 2010-05-14  Jan Hubicka  <jh@suse.cz>
28922
28923         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
28924
28925 2010-05-14  Richard Guenther  <rguenther@suse.de>
28926
28927         PR tree-optimization/44119
28928         * tree-ssa-pre.c (eliminate): Properly mark replacement of
28929         a PHI node necessary.
28930
28931 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
28932
28933         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
28934
28935 2010-05-14  Jason Merrill  <jason@redhat.com>
28936
28937         PR c++/44127
28938         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
28939         (gimple_call_set_nothrow): New.
28940         * gimple.c (gimple_build_call_from_tree): Call it.
28941         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
28942
28943         PR c++/44127
28944         * gimplify.c (gimplify_seq_add_stmt): No longer static.
28945         * gimple.h: Declare it.
28946         * gimple.c (gimple_build_eh_filter): No ops.
28947
28948 2010-05-14  Jan Hubicka  <jh@suse.cz>
28949
28950         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
28951         nodes already in queue.
28952         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
28953         re-enqueueing node.
28954
28955 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28956
28957         PR debug/44136
28958         * cfgexpand.c (expand_debug_expr): If non-memory op0
28959         has BLKmode, return NULL.
28960
28961 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
28962
28963         * config.gcc: Add support for --with-cpu option for bdver1.
28964         * config/i386/i386.h (TARGET_BDVER1): New macro.
28965         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
28966         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
28967         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
28968         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
28969         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
28970         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
28971         (processor_type): Add PROCESSOR_BDVER1.
28972         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
28973         processor_type in config/i386/i386.h.
28974         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
28975         movaps <reg, reg> instead of movapd <reg, reg> when replacing
28976         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
28977         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
28978         to emit packed xor instead of packed double/packed integer
28979         xor for SSE and AVX when moving a zero value.
28980         * config/i386/sse.md: Add check for
28981         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
28982         movapd/movdqa for SSE and AVX.
28983         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
28984         single logical operations i.e and, or and xor instead of packed double
28985         logical operations for SSE and AVX.
28986         * config/i386/i386-c.c (ix86_target_macros_internal):
28987         Add PROCESSOR_BDVER1.
28988         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
28989         (has_fma4, has_xop): New.
28990         * config/i386/i386.c (bdver1_cost): New variable.
28991         (m_BDVER1): New macro.
28992         (m_AMD_MULTIPLE): Add m_BDVER1.
28993         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
28994         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
28995         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
28996         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
28997         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
28998         x86_tune_sse_partial_reg_dependency,
28999         x86_tune_sse_unaligned_load_optimal,
29000         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29001         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29002         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29003         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29004         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29005         Enable/disable for bdver1.
29006         (processor_target_table): Add bdver1_cost.
29007         (cpu_names): Add bdver1.
29008         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29009          processor_alias_table.
29010         (ix86_expand_vector_move_misalign): Change.
29011         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29012         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29013         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29014         of movupd/movdqu for SSE and AVX.
29015         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29016         (ix86_tune_adjust_cost): Add code for bdver1.
29017         (standard_sse_constant_opcode): Add check for
29018         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29019         of packed double xor for SSE and AVX.
29020
29021 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29022
29023         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29024         result to unsigned.
29025
29026 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29027
29028         * toplev.c (default_debug_hooks): Remove this variable.
29029         (process_options): Remove assignments to default_debug_hooks.
29030
29031 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29032
29033         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29034         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29035         * langhooks.h (struct lang_hooks_for_decls): Removed field
29036         fold_obj_type_ref.
29037         * tree.c (free_lang_data): Remove assignment to
29038         lang_hooks.fold_obj_type_ref.
29039         * tree.def (OBJ_TYPE_REF): Update comment.
29040
29041 2010-05-14  Richard Guenther  <rguenther@suse.de>
29042
29043         PR tree-optimization/44124
29044         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29045
29046 2010-05-14  Alan Modra  <amodra@gmail.com>
29047
29048         PR target/44075
29049         * config/rs6000/rs6000.c (struct machine_function): Reorder
29050         fields for better packing.  Add lr_save_state.
29051         (rs6000_ra_ever_killed): Return lr_save_state if set.
29052         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29053
29054 2010-05-13  Jan Hubicka  <jh@suse.cz>
29055
29056         * varpool.c (decide_is_variable_needed): Drop code checking
29057         TREE_SYMBOL_REFERENCED.
29058
29059 2010-05-13  Jan Hubicka  <jh@suse.cz>
29060
29061         * final.c (output_addr_const): Do not call mark_decl_referenced.
29062         * cgraphunit.c (process_function_and_variable_attributes): Use
29063         mark_needed_node dirrectly.
29064         (assemble_thunk): Do not call mark_decl_referenced.
29065
29066 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29067
29068         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29069
29070 2010-05-13  Jeff Law  <law@redhat.com>
29071
29072         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29073         from...
29074         (print_conflicts): Call print_allocno_conflicts.
29075
29076 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29077
29078         PR debug/44104
29079         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29080         if it is NULL.
29081
29082 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29083
29084         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29085         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29086         * config/i386/t-mingw-w32: New.
29087         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29088
29089 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29090
29091         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29092         gimple-fold.c).
29093         * gimple-fold.c (get_base_binfo_for_type): New function.
29094         (gimple_get_relevant_ref_binfo): Likewise.
29095         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29096         (gimple_fold_obj_type_ref): Likewise.
29097         (fold_gimple_call): Simplify condition for folding virtual calls
29098         and call gimple_fold_obj_type_ref.
29099         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29100         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29101
29102 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29103
29104         * config/rs6000/rs6000-protos.h
29105         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29106         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29107         (rs6000_debug_mode_dependent_address)
29108         (rs6000_mode_dependent_address_ptr): Likewise.
29109
29110 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29111
29112         PR debug/43983
29113         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29114         by SRA.
29115         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29116         * tree-sra.c (create_access_replacement): Call unshare_expr before
29117         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29118         * dwarf2out.c: Include tree-flow.h.
29119         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29120         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29121         Handle DW_OP_bit_piece.
29122         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29123         construct_piece_list, adjust_piece_list): New functions.
29124         (add_var_loc_to_decl): Handle SRA optimized variables.
29125         Adjust for var_loc_note to loc field renaming.
29126         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29127         in VAR_LOCATION note.
29128         (new_loc_descr_op_bit_piece): New function.
29129         (dw_sra_loc_expr): New function.
29130         (dw_loc_list): Use it.  Don't handle the last range after the
29131         loop, handle it inside of the loop.  Adjust for var_loc_note
29132         to loc field renaming.
29133         (add_location_or_const_value_attribute): Only special case
29134         single entry loc lists if loc is NOTE_P.  Adjust for
29135         var_loc_note to loc field renaming.
29136         (dwarf2out_var_location): Don't set newloc->var_loc_note
29137         and newloc->next here.
29138
29139 2010-05-12  Jan Hubicka  <jh@suse.cz>
29140
29141         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29142         flag.
29143         * cgraph.h (cgraph_only_called_directly_p,
29144         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29145         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29146         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29147         (assemble
29148         * ipa.c (cgraph_remove_unreachable_nodes): Use
29149         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29150         flags.
29151         * tree-inline.c (copy_bb): Check address_taken flag.
29152         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29153         externally_visible flag.
29154
29155 2010-05-12  Jason Merrill  <jason@redhat.com>
29156
29157         PR bootstrap/44048
29158         PR target/44099
29159         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29160         * sdbout.c (plain_type_1): Likewise.
29161         * dwarf2out.c (is_base_type): Likewise.
29162         (gen_type_die_with_usage): Likewise.  Generate
29163         DW_TAG_unspecified_type for any LANG_TYPE.
29164
29165 2010-05-12  Jan Hubicka  <jh@suse.cz>
29166
29167         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29168         indrect edges too.
29169         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29170         (cgraph_clone_edge): Update.
29171         (cgraph_node_remove_callees): Remove indirect calls too.
29172         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29173         (cgraph_create_indirect_edge): Update prototype.
29174         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29175         is_proper_for_analysis.
29176         (add_new_function, visited_nodes, function_insertion_hook_holder,
29177         get_local_reference_vars_info, mark_address_taken, mark_address,
29178         mark_load, mark_store, check_asm_memory_clobber, check_call,
29179         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29180         (ipa_init): Do not initialize visited_nodes;
29181         function_insertion_hook_holder.
29182         (analyze_variable): Rewrite.
29183         (analyze_function): Rewrite.
29184         (copy_local_bitmap): Remove.
29185         (duplicate_node_dat): Do not duplicate local info.
29186         (generate_summary): Simplify to only walk cgraph.
29187         (write_node_summary_p, ipa_reference_write_summary,
29188         ipa_reference_read_summary): Remove.
29189         (propagate): Do not remove function insertion;
29190         generate summary.
29191         (pass_ipa_reference): NULLify summary handling fields.
29192         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29193         (input_edge): Input ecf_flags.
29194         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29195         (update_indirect_edges_after_inlining): Ignore edges with unknown
29196         param.
29197
29198 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
29199
29200         * implicit-zee.c: New file.
29201         * tree-pass.h (pass_implicit_zee): Declare.
29202         * passes.c (init_optimization_passes): Add zee pass.
29203         * common.opt (fzee): New flag.
29204         * timevar.def (TV_ZEE): Define.
29205         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
29206         and beyond.
29207         * Makefile.in (implicit-zee.o): Add new build file.
29208
29209 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29210             Nathan Froyd  <froydnj@codesourcery.com>
29211
29212         * c-common.c (sync_resolve_params): Remove write-only variable.
29213
29214 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
29215
29216         * target.h (struct gcc_target): Add mode_dependent_address_p field.
29217         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29218         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
29219         * targhooks.c (default_mode_dependent_address_p): New function.
29220         * targhooks.h (default_mode_dependent_address_p): Declare function.
29221         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29222         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
29223         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
29224         target hook. Change return type to bool.
29225         * recog.h (mode_dependent_address_p): Change return type to bool.
29226
29227 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29228             Nathan Froyd  <froydnj@codesourcery.com>
29229
29230         * tree-mudflap.c (build_function_type_0, build_function_type_1,
29231         build_function_type_2, build_function_type_3): Remove.
29232         (mudflap_init): Use build_function_type_list.
29233
29234 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29235             Nathan Froyd  <froydnj@codesourcery.com>
29236
29237         * coverage.c (build_fn_info_value): Call build_constructor instead of
29238         build_constructor_from_list.
29239         (build_ctr_info_value): Likewise.
29240         (build_gcov_info): Likewise.
29241
29242 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
29243
29244         * tree.c (build_constructor): Compute TREE_CONSTANT for the
29245         resultant constructor.
29246         (build_constructor_single): Don't set TREE_CONSTANT.
29247         (build_constructor_from_list): Don't compute TREE_CONSTANT.
29248
29249 2010-05-12  Jan Hubicka  <jh@suse.cz>
29250
29251         * cgraph.h (struct varpool_node): Add aux.
29252         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
29253         * varpool.c (varpool_remove_node): Do not remove initializer.
29254         (varpool_reset_queue): Export.
29255         (varpool_finalize_decl): Volatile vars are forced to be output.
29256         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
29257         replaced decl.
29258         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
29259         process_references, varpool_can_remove_if_no_refs): New functions.
29260         (cgraph_remove_unreachable_nodes): Handle variables too.
29261
29262 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
29263
29264         PR target/44088
29265         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
29266
29267 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
29268
29269         PR middle-end/44085
29270         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
29271         change value of ORT_TASK.
29272         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
29273         (omp_notice_threadprivate_variable): New function.
29274         (omp_notice_variable): Call it for threadprivate variables.
29275         If enclosing ctx is a task, print enclosing task rather than
29276         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
29277         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
29278         if task has untied clause.
29279
29280         PR debug/42278
29281         * dwarf2out.c (base_type_die): Don't add name attribute here.
29282         (modified_type_die): Instead of sizetype use
29283         its underlying original type.  If a DW_TAG_base_type doesn't
29284         have name added, add __unknown__.
29285         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
29286         always call force_type_die instead.
29287
29288 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
29289
29290         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
29291         for __stack_chk_guard.
29292
29293 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29294
29295         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
29296         don't call start_source_file debug hook here...
29297         (finish_options): ... but here, after outputting predefined and
29298         command line defines and undefs.
29299
29300         PR middle-end/44071
29301         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
29302         no fallthru edge.
29303         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
29304         optimizing away empty bb with no successors, move over its
29305         footer chain to fallthru predecessor.
29306         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
29307         (rtl_split_edge): For asm goto call patch_jump_insn even if
29308         splitting fallthru edge.
29309
29310         PR c++/44059
29311         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
29312         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
29313         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
29314         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
29315         on DW.ref.* decls.
29316
29317         PR c++/44062
29318         * c-parser.c (c_parser_expression): Mark LHS of a comma
29319         expression as read if it is a decl, handled component or
29320         COMPOUND_EXPR with that on the RHS.
29321         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
29322         if it is a decl or handled component.
29323
29324 2010-05-11  Jan Hubicka  <jh@suse.cz>
29325
29326         * lto-symtab.c (lto_symtab_free): New function.
29327         * lto-streamer.h (lto_symtab_free): Declare.
29328
29329 2010-05-11  Jan Hubicka  <jh@suse.cz>
29330
29331         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
29332         that if function is needed it is reachable.
29333         (lto_output_node): See if it the function is reachable or referenced.
29334         (output_cgraph): Update call of lto_output_node.
29335         * lto-streamer.h (reachable_from_other_partition_p): Declare.
29336
29337 2010-05-11  Jan Hubicka  <jh@suse.cz>
29338
29339         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
29340         Mark as used.
29341
29342 2010-05-11  Jan Hubicka  <jh@suse.cz>
29343
29344         PR tree-optimize/44063
29345         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
29346         queue.
29347         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
29348         limits.
29349         (estimate_function_body_sizes): Compute sizes even when disregarding.
29350
29351 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
29352
29353         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
29354
29355 2010-05-11  Jan Hubicka  <jh@suse.cz>
29356
29357         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
29358         into every boundary.
29359
29360 2010-05-11  Jan Hubicka  <jh@suse.cz>
29361
29362         * matrix-reorg.c (matrix_reorg): Rebuild edges.
29363
29364 2010-05-11  Jan Hubicka  <jh@suse.cz>
29365
29366         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29367         lto_streamer_cache_delete): Put nodes into heap.
29368         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29369         heap.
29370
29371 2010-05-11  Jan Hubicka  <jh@suse.cz>
29372
29373         * cgraphbuild.c (cgraph_rebuild_references): New.
29374         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29375         out extern inlines.
29376         * cgraph.h (cgraph_rebuild_references): Declare.
29377         * tree-inline.c (tree_function_versioning): Use it.
29378         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29379
29380 2010-05-11  Jan Hubicka  <jh@suse.cz>
29381
29382         * cgraph.c: Include ipa-utils.h
29383         (cgraph_create_virtual_clone): Update references.
29384         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29385
29386 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29387
29388         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29389         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29390         cache size.
29391
29392 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29393
29394         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29395
29396 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29397
29398         * gcc.c (execute): For -### don't quote arguments that
29399         contain just alphanumerics and _/-. characters.
29400         * doc/invoke.texi: Document that change for -###.
29401
29402         PR debug/44023
29403         * df-problems.c (struct dead_debug): Add to_rescan field.
29404         (dead_debug_init): Clear to_rescan field.
29405         (dead_debug_finish): Rescan all debug insns in to_rescan
29406         bitmap and free the bitmap.
29407         (dead_debug_insert_before): Instead of rescanning debug insns
29408         immediately queue their rescanning until dead_debug_finish.
29409         (df_note_bb_compute): After dead_debug_add do continue instead
29410         of break.
29411
29412 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29413
29414         PR debug/44028
29415         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29416         clear also INSN_REG_USE_LIST.
29417
29418 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29419
29420         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29421
29422 2010-05-10  Jan Hubicka  <jh@suse.cz>
29423
29424         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29425         commited change.
29426
29427 2010-05-10  Jan Hubicka  <jh@suse.cz>
29428
29429         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29430         Allocate encoders.
29431         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29432         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29433         (lto_streamer_cache_create): Init alloc pool.
29434         (lto_streamer_cache_delete): Free alloc pool.
29435         * lto-streamer.h: Include alloc pool.
29436         (lto_streamer_cache_d): Use alloc pool.
29437         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29438
29439 2010-05-10  Jan Hubicka  <jh@suse.cz>
29440
29441         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29442         * cgraphbuild.c: Include except.h
29443         (record_type_list, record_eh_tables): New function.
29444         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29445
29446 2010-05-10  Jan Hubicka  <jh@suse.cz>
29447
29448         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29449         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29450         rather than unused.
29451
29452 2010-05-10  Michael Matz  <matz@suse.de>
29453
29454         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29455         (can_reassociate_p): Use FLOAT_TYPE_P.
29456         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29457         (vect_force_simple_reduction): ... this.
29458         * tree-parloops.c (gather_scalar_reductions): Use
29459         vect_force_simple_reduction.
29460         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29461         vect_is_simple_reduction, add modify argument, if true rewrite
29462         "a-b" into "a+(-b)".
29463         (vect_is_simple_reduction, vect_force_simple_reduction): New
29464         functions.
29465         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29466
29467 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29468             Vladimir Makarov  <vmakarov@redhat.com>
29469
29470         PR rtl-optimization/44012
29471         * ira-build.c (remove_unnecessary_allocnos): Nullify
29472         regno_allocno_map of the removed allocno.
29473
29474 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29475
29476         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29477         to /dev/null.
29478         * configure: Regenerate.
29479
29480 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29481
29482         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29483         unused.
29484         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29485         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29486         support in Sun ld.
29487         * configure: Regenerate.
29488
29489 2010-05-10  Richard Guenther  <rguenther@suse.de>
29490
29491         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29492         marked if the entry identifier is marked.
29493
29494 2010-05-10  Richard Guenther  <rguenther@suse.de>
29495
29496         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29497         (handle_fnspec_attribute): New function.
29498         * gimple.h (gimple_call_return_flags): Declare.
29499         (gimple_call_arg_flags): Likewise.
29500         * gimple.c (gimple_call_arg_flags): New function.
29501         (gimple_call_return_flags): Likewise.
29502         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29503         New argument flags.
29504         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29505         return value flags.
29506         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29507         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29508         main work to ...
29509         (make_heapvar_for): ... this new function.
29510         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29511         (handle_lhs_call): Likewise.
29512         (find_func_aliases): Adjust.
29513
29514 2010-05-10  Richard Guenther  <rguenther@suse.de>
29515
29516         PR tree-optimization/44050
29517         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29518
29519 2010-05-10  Wei Guozhi  <carrot@google.com>
29520
29521         PR target/42879
29522         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29523
29524 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29525
29526         PR c/10676
29527         * c-typeck.c (lookup_field): Take a type directly.  Update
29528         recursive calls.
29529         (build_component_ref): Update call to lookup_field.
29530         (set_init_label): Use lookup_field to find initialized field.
29531         Handle returned list of fields like a sequence of designators.
29532
29533 2010-05-09  Richard Guenther  <rguenther@suse.de>
29534
29535         PR middle-end/44024
29536         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29537         handle &FUNCTION_DECL.
29538
29539 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29540
29541         PR c/4784
29542         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29543         structures and unions recursively.
29544         (detect_field_duplicates): Move duplicate detection with a hash to
29545         detect_field_duplicates_hash.  Always use a hash if anonymous
29546         structures or unions are present.
29547         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29548         give errors.
29549
29550 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29551
29552         PR target/44046
29553         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29554         detect Atom, Core 2 and Core i7.
29555
29556 2010-05-09  Richard Guenther  <rguenther@suse.de>
29557
29558         * gcc.c (store_arg): Handle temporary file deletion for
29559         joined arguments.
29560
29561 2010-05-09  Richard Guenther  <rguenther@suse.de>
29562
29563         PR middle-end/44043
29564         * ipa-inline.c (estimate_function_body_sizes): Return after
29565         disregarding inline limits.
29566
29567 2010-05-09  Richard Guenther  <rguenther@suse.de>
29568
29569         * gcc.c (store_arg): Revert last change.
29570
29571 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29572
29573         PR middle-end/28685
29574         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29575         (optimize_ops_list): Call it.
29576
29577 2010-05-08  Richard Guenther  <rguenther@suse.de>
29578
29579         PR tree-optimization/44030
29580         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29581         NECESSARY flag if we propagate from a inserted expression.
29582
29583 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29584
29585         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29586         domain types as equal if they are both PLACEHOLDER_EXPRs.
29587
29588 2010-05-08  Richard Guenther  <rguenther@suse.de>
29589
29590         * lto-wrapper.c (run_gcc): Remove linker output from
29591         command line for LTRANS invocation.
29592
29593 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29594
29595         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29596         lto-macho as lto_binary_reader.
29597         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29598         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29599         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29600         in lto_start and lto_end calls.
29601         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29602         magic numbers.
29603         (scan_prog_file): Update is_elf_or_coff call.
29604         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29605
29606         * collect2.c (main): Fix enum comparison.
29607
29608         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29609         Add prototypes.
29610         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29611         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29612         and TARGET_ASM_LTO_END.
29613         * darwin.c: Include obstack.h and lto-streamer.h.
29614         (lto_section_names_offset, lto_section_names_obstack,
29615         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29616         global variables.
29617         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29618         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29619         to a temporary file.
29620         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29621         (darwin_asm_named_section): For LTO sections, replace the name with
29622         the offset of the section name in a string table, and build this
29623         table.
29624         (darwin_file_start): Initialize global vars for LTO support.
29625         (darwin_file_end): If output to asm_out_file was redirected, append it
29626         to the proper asm_out_file here.  Add the section names section.
29627
29628 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29629
29630         * c-pragma.c (pending_weak_d, pending_weak): New.
29631         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29632         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29633         handle_pragma_weak): Update the uses of pending_weaks.
29634
29635 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29636
29637         PR documentation/44016
29638         * doc/standards.texi (Standards): Link to unversioned
29639         cxx0x_status.html page.
29640
29641 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29642
29643         PR target/43708
29644         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29645         in addition to TREE_USED, to avoid "set but unused" warnings.
29646
29647 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29648
29649         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29650         (is_loop_prefetching_profitable): Do not insert prefetches
29651         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29652         times the prefetch ahead distance.
29653
29654 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29655
29656         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29657         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29658         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29659         the unroll_factor.
29660
29661 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29662
29663         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29664         a diagnostic info when the insn-to-mem ratio is too small.
29665
29666 2010-05-07  Richard Guenther  <rguenther@suse.de>
29667
29668         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29669         the linker plugin.
29670         (store_arg): Queue temp_filename for deletion instead of
29671         the whole argument.
29672
29673 2010-05-07  Richard Guenther  <rguenther@suse.de>
29674
29675         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29676         (run_gcc): Handle LTRANS phase invocation.
29677         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29678
29679 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29680
29681         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29682         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29683
29684 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29685
29686         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29687
29688 2010-05-07  Richard Guenther  <rguenther@suse.de>
29689
29690         PR tree-optimization/44020
29691         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29692         code when PRE is not yet initialized.
29693
29694 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29695
29696         * config/mips/dbxmdebug.h: Remove.
29697         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29698
29699 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29700
29701         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29702         with null pointer and also warn about ordered comparison of zero with
29703         pointer if -Wextra.
29704
29705 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29706
29707         * graphite-blocking.c
29708         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29709         * graphite-clast-to-gimple.c
29710         (clast_to_gcc_expression): Same.
29711         (precision_for_value): Same.
29712         (precision_for_interval): Same.
29713         (gcc_type_for_interval): Same.
29714         (graphite_create_new_guard): Same.
29715         (compute_bounds_for_level): Same.
29716         (graphite_create_new_loop_guard): Same.
29717         * graphite-interchange.c
29718         (build_linearized_memory_access): Same.
29719         (pdr_stride_in_loop): Same.
29720         (memory_strides_in_loop_1): Same.
29721         (memory_strides_in_loop): Same.
29722         (extend_scattering): Same.
29723         (psct_scattering_dim_for_loop_depth): Same.
29724         (pbb_number_of_iterations): Same.
29725         * graphite-poly.h
29726         (debug_iteration_domains): Same.
29727         * graphite-ppl.c
29728         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29729         (ppl_set_inhomogeneous_gmp): Same.
29730         (ppl_strip_loop): Same.
29731         (ppl_lexico_compare_linear_expressions): Same.
29732         (ppl_read_polyhedron_matrix): Same.
29733         (ppl_max_for_le_pointset): Same.
29734         * graphite-ppl.h
29735         (ppl_read_polyhedron_matrix): Same.
29736         (tree_int_to_gmp): Same.
29737         (gmp_cst_to_tree): Same.
29738         (ppl_set_inhomogeneous): Same.
29739         (ppl_set_inhomogeneous_tree): Same.
29740         (ppl_set_coef): Same.
29741         (ppl_set_coef_tree): Same.
29742         * graphite-sese-to-poly.c
29743         (build_pbb_scattering_polyhedrons): Same.
29744         (build_scop_scattering): Same.
29745         (scan_tree_for_params_right_scev): Same.
29746         (scan_tree_for_params): Same.
29747         (find_params_in_bb): Same.
29748         (find_scop_parameters): Same.
29749         (add_upper_bounds_from_estimated_nit): Same.
29750         (build_loop_iteration_domains): Same.
29751         (add_condition_to_domain): Same.
29752         (pdr_add_memory_accesses): Same.
29753
29754 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29755
29756         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29757         CLooG's value_* macros to their respective mpz_* counterparts.
29758         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29759         (graphite_create_new_loop_guard): Same.
29760         * graphite-interchange.c (build_linearized_memory_access): Same.
29761         (pdr_stride_in_loop): Same.
29762         (memory_strides_in_loop_1): Same.
29763         (1st_interchange_profitable_p): Same.
29764         * graphite-poly.c (extend_scattering): Same.
29765         (psct_scattering_dim_for_loop_depth): Same.
29766         (pbb_number_of_iterations): Same.
29767         (pbb_number_of_iterations_at_time): Same.
29768         * graphite-poly.h (new_1st_loop): Same.
29769         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29770         (oppose_constraint): Same.
29771         (insert_constraint_into_matrix): Same.
29772         (ppl_set_inhomogeneous_gmp): Same.
29773         (ppl_set_coef_gmp): Same.
29774         (ppl_strip_loop): Same.
29775         (ppl_lexico_compare_linear_expressions): Same.
29776         (ppl_max_for_le_pointset): Same.
29777         (ppl_min_for_le_pointset): Same.
29778         (ppl_build_realtion): Same.
29779         * graphite-ppl.h (gmp_cst_to_tree): Same.
29780         (ppl_set_inhomogeneous): Same.
29781         (ppl_set_inhomogeneous_tree): Same.
29782         (ppl_set_coef): Same.
29783         (ppl_set_coef_tree): Same.
29784         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29785         (build_scop_scattering): Same.
29786         (add_value_to_dim): Same.
29787         (scan_tree_for_params_right_scev): Same.
29788         (scan_tree_for_params_int): Same.
29789         (scan_tree_for_params): Same.
29790         (find_params_in_bb): Same.
29791         (find_scop_parameters): Same.
29792         (add_upper_bounds_from_estimated_nit): Same.
29793         (build_loop_iteration_domains): Same.
29794         (create_linear_expr_from_tree): Same.
29795         (add_condition_to_domain): Same.
29796         (pdr_add_memory_accesses): Same.
29797
29798 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29799             Jason Merrill  <jason@redhat.com>
29800
29801         * c-common.c (c_common_reswords): Add nullptr.
29802         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29803         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29804         (gen_type_die_with_usage): Likewise.
29805         * dbxout.c (dbxout_type): Likewise.
29806         * sdbout.c (plain_type_1): Likewise.
29807
29808 2010-05-06  Jason Merrill  <jason@redhat.com>
29809
29810         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29811         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29812         ret appropriately.
29813         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29814
29815         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29816         stripping WITH_SIZE_EXPR.
29817         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29818         change.
29819
29820 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29821
29822         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29823         list of obsolete configurations.
29824         Disabled check for obsolete configurations.
29825         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29826         Removed support for previous versions.
29827         * config/mips/iris.h: Removed.
29828         * config/mips/iris5.h: Removed.
29829         * config/mips/iris6.h: Merged old iris.h contents.
29830         (TARGET_IRIX): Removed.
29831         (DRIVER_SELF_SPECS): Removed mabi=32.
29832         (IDENT_ASM_OP): Removed undef.
29833         (STARTFILE_SPEC): Removed mabi=32.
29834         (ENDFILE_SPEC): Likewise.
29835         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29836         (MACHINE_TYPE): Update for IRIX 6.5.
29837         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29838         TARGET_IRIX by TARGET_IRIX6.
29839         (mips_file_start): Likewise.
29840         (mips_output_external): Remove IRIX 5/6 O32 support.
29841         (mips_output_function_prologue): Likewise.
29842         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29843         TARGET_IRIX6.
29844         (TARGET_CPU_CPP_BUILTINS): Likewise.
29845         (TARGET_IRIX): Removed.
29846         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
29847         (MULTILIB_DIRNAMES): Removed 32.
29848         (MULTILIB_OSDIRNAMES): Removed ../lib.
29849         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
29850         (Specific, mips-sgi-irix5): Document removal.
29851         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
29852         Remove references to older IRIX 6 releases and the O32 ABI.
29853
29854 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
29855
29856         PR bootstrap/43994
29857         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
29858         instead of DF_REF_REAL_REG.
29859
29860 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
29861
29862         PR target/43888
29863         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
29864         handling to still return true for x64 targets.
29865
29866 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29867
29868         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
29869
29870 2010-05-06  Jan Hubicka  <jh@suse.cz>
29871
29872         PR tree-optimization/43791
29873         * ipa-inline.c (update_caller_keys): Remove bogus
29874         disregard_inline_limits check.
29875
29876 2010-05-06  Michael Matz  <matz@suse.de>
29877
29878         PR tree-optimization/43984
29879         * tree-ssa-pre.c (inserted_phi_names): Remove.
29880         (inserted_exprs): Change to bitmap.
29881         (create_expression_by_pieces): Set bits, don't append to vector.
29882         (insert_into_preds_of_block): Don't handle inserted_phi_names.
29883         (eliminate): Don't look at inserted_phi_names, remove deleted
29884         insns from inserted_exprs.
29885         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
29886         (init_pre, fini_pre): Allocate and free bitmaps.
29887         (execute_pre): Insert insns on edges before elimination.
29888
29889 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29890
29891         * tree.c (initializer_zerop): Handle STRING_CST.
29892
29893 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29894
29895         PR 40989
29896         * doc/invoke.texi (Wimplicit): Document as C only.
29897         * opts.c (common_handle_option): Add argument kind.
29898         (handle_option): Rename as read_cmdline_option. Factor out code to...
29899         (handle_option): ... here. New.
29900         (handle_options): Rename as read_cmdline_options.
29901         (decode_options): Update call.
29902         (set_option): Use option index instead of option pointer. Classify
29903         diagnostics correctly.
29904         (enable_warning_as_error): Call handle_option.
29905         * opts.h (set_option): Update declaration.
29906         (handle_option): Declare.
29907         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
29908         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
29909         * c-opts.c (set_Wimplicit): Delete.
29910         (c_family_lang_mask): New static constant.
29911         (c_common_handle_option): Add argument kind. Use handle_option
29912         instead of set_Wimplicit.
29913         (c_common_post_options): warn_implicit and warn_implicit_int
29914         are disabled by default.
29915         * c-common.c (warn_implicit): Do not define here.
29916         * c-common.h (warn_implicit): Do not declare here.
29917         (c_common_handle_option): Update declaration.
29918         * lto-opts.c (lto_reissue_options): Update call to set_option.
29919
29920 2010-05-06  Richard Guenther  <rguenther@suse.de>
29921
29922         PR tree-optimization/43571
29923         * domwalk.c (walk_dominator_tree): Walk the dominator
29924         sons in more optimal order.
29925
29926 2010-05-06  Richard Guenther  <rguenther@suse.de>
29927
29928         PR tree-optimization/43934
29929         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
29930         (stmt_cost): Likewise.
29931         (extract_true_false_args_from_phi): New helper.
29932         (determine_max_movement): For PHI nodes verify we can hoist them
29933         and compute their cost.
29934         (determine_invariantness_stmt): Handle PHI nodes.
29935         (move_computations_stmt): Likewise.  Hoist PHI nodes in
29936         if-converted form using COND_EXPRs.
29937         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
29938         (tree_ssa_lim): Likewise.
29939         * tree-flow.h (tree_ssa_lim): Adjust prototype.
29940         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
29941
29942 2010-05-06  Richard Guenther  <rguenther@suse.de>
29943
29944         PR tree-optimization/43987
29945         * tree-ssa-structalias.c (could_have_pointers): For possibly
29946         address-taken variables force pointers to be recorded.
29947         (create_variable_info_for_1): Likewise.
29948         (push_fields_onto_fieldstack): Pass in wheter all fields
29949         must have pointers.
29950         (find_func_aliases): Query types instead of vars whether
29951         they contain pointers where appropriate.
29952
29953 2010-05-06  Jan Hubicka  <jh@suse.cz>
29954
29955         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
29956         (record_reference, mark_address, mark_load, mark_store): Record
29957         references.
29958         (record_references_in_initializer): Update call of record_references.
29959         (rebuild_cgraph_edges): Remove all references before rebuiding.
29960         * cgraph.c (cgraph_create_node): Clear ref list.
29961         (cgraph_remove_node): Remove references.
29962         (dump_cgraph_node): Dump references.
29963         (cgraph_clone_node): Clone references.
29964         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
29965         (struct cgraph_node, varpool_node): Add ref_lst.
29966         * ipa-ref.c: New file.
29967         * ipa-ref.h: New file.
29968         * ipa-ref-inline.h: New file.
29969         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
29970         (referenced_from_other_partition_p): New function.
29971         (lto_output_varpool_node): Take set arugment; call
29972         referenced_from_other_partition.
29973         (lto_output_ref): New.
29974         (add_references): New.
29975         (output_refs): New.
29976         (output_cgraph): Compute boundary based on references; output refs.
29977         (output_varpool): Accept cgraph_node_set argument.
29978         (input_ref): New.
29979         (input_refs): New.
29980         (input_cgraph): Call input_refs.
29981         * lto-section-in.c (lto_section_name): Add refs.
29982         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
29983         (ipa-ref.o): New file.
29984         * varpool.c (varpool_node): Clear ipa ref list.
29985         (varpool_remove_node): Remove references.
29986         (dump_varpool_node): Dump references.
29987         (varpool_assemble_decl): Only compile finalized ones.
29988         (varpool_extra_name_alias): Initialize ref list.
29989         * lto-streamer.c (lto-get_section_name): Add .refs section.
29990         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
29991         (referenced_from_other_partition_p): Declared.
29992
29993 2010-05-06  Ira Rosen  <irar@il.ibm.com>
29994
29995         PR tree-optimization/43901
29996         * tree-vect-stmts.c (vectorizable_call): Assert that vector
29997         type is not NULL if it's transformation phase, and return
29998         FALSE if it's analysis.
29999         (vectorizable_conversion, vectorizable_operation,
30000         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30001
30002 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30003
30004         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30005         Delete.
30006         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30007         New define.
30008         * config/mips/mips-protos.h
30009         (mips_small_register_classes_for_mode_p): Delete prototype.
30010
30011 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30012
30013         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30014         * config/arm/arm.c (multiple_operation_profitable_p,
30015         compute_offset_order): New static functions.
30016         (load_multiple_sequence, store_multiple_sequence): Use them.
30017         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30018         memory offsets, not register numbers.
30019         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30020
30021 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30022
30023         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30024         (get_pending_sizes, put_pending_size, put_pending_sizes):
30025         Update the uses of pending_sizes.
30026         * c-decl.c (store_parm_decls): Likewise.
30027         * c-tree.h (struct c_arg_info): Likewise.
30028         * tree.h: Update the prototype for get_pending_sizes and
30029         put_pending_sizes.
30030
30031 2010-05-05  Jason Merrill  <jason@redhat.com>
30032
30033         PR debug/43370
30034         * c-common.c (handle_aligned_attribute): Respect
30035         ATTR_FLAG_TYPE_IN_PLACE.
30036
30037         PR testsuite/43758
30038         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30039         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30040         (TARGET_INITIALIZER): Use it.
30041         * c-common.c (attribute_takes_identifier_p): Call it.
30042         * c-common.h: Update prototype.
30043         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30044         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30045
30046 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30047
30048         PR debug/43950
30049         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30050         DW_ID_down_case for Fortran compilation units.
30051
30052 2010-05-05  Jan Hubicka  <jh@suse.cz>
30053
30054         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30055         handle aliases.
30056
30057 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30058
30059         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30060         a variable-sized RESULT_DECL.
30061
30062 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30063
30064         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30065
30066 2010-05-05  Jason Merrill  <jason@redhat.com>
30067
30068         PR c++/43787
30069         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30070         returns GS_OK.
30071         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30072
30073 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30074             Jakub Jelinek  <jakub@redhat.com>
30075
30076         PR debug/43478
30077         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30078         (dead_debug_init, dead_debug_finish): New functions.
30079         (dead_debug_add, dead_debug_insert_before): Likewise.
30080         (df_note_bb_compute): Initialize a dead_debug object, add dead
30081         debug uses to it, insert debug bind insns before death insns,
30082         reset debug insns that refer to pending uses at the end.
30083         * rtl.h (make_debug_expr_from_rtl): New prototype.
30084         * varasm.c (make_debug_expr_from_rtl): New function.
30085
30086 2010-05-05  Jan Hubicka  <jh@suse.cz>
30087
30088         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30089         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30090         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30091         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30092         lto_varpool_encoder_encode_initializer_p,
30093         lto_set_varpool_encoder_encode_initializer): New functions.
30094         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30095         call output_varpool.
30096         (input_varpool_node): Do not always set analyzed.
30097         (input_cgraph_1): Return vector of cgraph nodes.
30098         (input_varpool_1): Return vector of varpools.
30099         (input_cgraph): Free the vectors.
30100         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30101         output only initializers needed.
30102         (lto_output): Only call output_cgraph.
30103         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30104         * lto-section-out.c (lto_new_out_decl_state): Initialize
30105         state->varpool_node_encoder.
30106         * lto-streamer.h (lto_varpool_encoder_d): New.
30107         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30108         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30109         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30110         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30111         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30112         Declare.
30113         (output_varpool, input_varpool): Remove declarations.
30114
30115 2010-05-05  Jan Hubicka  <jh@suse.cz>
30116
30117         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30118         with body can prevail.
30119
30120 2010-05-05  Jan Hubicka  <jh@suse.cz>
30121
30122         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30123         size.
30124
30125 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30126
30127         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30128
30129         * gengtype.h (erro_at_line): Constify pos argument.
30130
30131         * gengtype.c: Include hashtab.h.
30132         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30133         (error_at_line): Constify pos argument.
30134         (do_typedef): Initialize p->opt field.
30135         (get_file_gtfilename): Fix comment typo.
30136         (struct walk_type_data): Constify line field.
30137         (get_output_file_for_structure): New function.
30138         (write_local_func_for_structure): Constify orig_s argument.
30139         Use get_output_file_for_structure.
30140         (write_func_for_structure): Use get_output_file_for_structure.
30141         (INDENT): New define.
30142         (dump_pair, dump_type, dump_type_list, dump_typekind)
30143         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30144         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30145         functions.
30146         (seen_types): New variable.
30147         (main): New variable do_dump.  Process "-d" command line option.
30148         Call dump_everything if dump requested.
30149
30150 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30151
30152         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30153         in a temporary instead of invoking the macro multiple times.
30154         (track_expr_p): Likewise.
30155
30156 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30157
30158         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30159         per new semantics.
30160         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30161         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30162         conditions for printing notes.
30163         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30164         true, update documentation.
30165         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30166
30167 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30168
30169         PR c/43981
30170         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30171         on dimen.
30172
30173 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30174
30175         PR target/43799
30176         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30177         (*sse_prologue_save_insn1): Likewise.
30178         (SSE prologue save splitter): Likewise.
30179
30180 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30181
30182         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30183         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30184         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30185         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30186         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30187         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30188         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30189
30190 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30191
30192         * tree-sra.c (build_access_from_expr_1): The first parameter type
30193         changed to simple tree.
30194         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30195         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30196         renamed as well.
30197         (build_accesses_from_assign): Removed all parameters except for a
30198         simple gimple statement.  Now returns a simple bool.
30199         (scan_function): All non-analysis parts moved to separate functions
30200         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
30201         parameters and updated both callers.
30202         (sra_modify_expr): Removed parameter data.
30203         (sra_modify_function_body): New function.
30204         (perform_intra_sra): Call sra_modify_function_body to modify the
30205         function body.
30206         (replace_removed_params_ssa_names): Parameter data changed into
30207         adjustments vector.
30208         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
30209         changed the parameter dont_convert to convert with the opposite
30210         meaning.
30211         (sra_ipa_modify_assign): Parameter data changed into adjustments
30212         vector, return value changed to bool.
30213         (ipa_sra_modify_function_body): New function.
30214         (sra_ipa_reset_debug_stmts): Updated a comment.
30215         (modify_function): Use ipa_sra_modify_function_body to modify function
30216         body.
30217
30218 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30219
30220         PR middle-end/43671
30221         * alias.c (true_dependence): Handle the same VALUE in x and mem.
30222         (canon_true_dependence): Likewise.
30223         (write_dependence_p): Likewise.
30224
30225 2010-05-04  Jan Hubicka  <jh@suse.cz>
30226
30227         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
30228         * cgraphbuild.c: Include ipa-utils.h
30229         (record_reference_ctx): New struct.
30230         (record_reference): Simplify to work on initializers; not statements.
30231         (mark_address, mark_load, mark_store): New.
30232         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30233         walk PHI nodes too.
30234         (record_references_in_initializer): Update use of record_reference.
30235         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30236         walk PHI nodes too.
30237
30238 2010-05-04  Jan Hubicka  <jh@suse.cz>
30239
30240         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
30241         node will be removed anyway.
30242         (lto_varpool_replace_node): Allow also unanalyzed nodes;
30243         relink aliases of node into prevailing node.
30244         * varpool.c (varpool_remove_node): Remove aliases properly;
30245         when removing node, remove all its aliases too; remove DECL_INITIAL
30246         of removed node; ggc_free the varpool node.
30247
30248 2010-05-04  Richard Guenther  <rguenther@suse.de>
30249
30250         PR tree-optimization/43879
30251         * tree-ssa-structalias.c (alias_get_name): Use
30252         DECL_ASSEMBLER_NAME if available.
30253         (create_function_info_for): Return the varinfo node.
30254         (ipa_pta_execute): Associate same-body aliases and extra names
30255         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
30256
30257 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30258
30259         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
30260
30261 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
30262
30263         PR bootstrap/43964
30264         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
30265         only if HONOR_REG_ALLOC_ORDER is not defined.
30266
30267 2010-05-04  Richard Guenther  <rguenther@suse.de>
30268
30269         PR tree-optimization/43949
30270         * tree-vrp.c (extract_range_from_binary_expr): Only handle
30271         TRUNC_MOD_EXPR.
30272
30273 2010-04-26  Jason Merrill  <jason@redhat.com>
30274
30275         * c.opt (-fstrict-enums): New.
30276         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
30277
30278 2010-05-03  David Ung  <davidu@mips.com>
30279             James E. Wilson  <wilson@codesourcery.com>
30280
30281         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
30282         emit the trap instruction before the divide for TUNE_74K.
30283
30284 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
30285
30286         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
30287         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
30288         based on the above, for new target hook.
30289
30290         * hooks.c (hook_bool_mode_true): New generic hook.
30291         * hooks.h (hook_bool_mode_true): Add prototype.
30292
30293         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
30294         target hook.
30295         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
30296         target hook, set to hook_bool_mode_false.
30297         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
30298         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
30299         with targetm.small_register_classes_for_mode_p.
30300         (find_reusable_reload): Likewise.
30301         (combine_reloads): Likewise.
30302         * reload1.c (reload_as_needed): Likewise.
30303         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
30304         * ifcvt.c (noce_process_if_block, check_cond_move_block,
30305         dead_or_predicable): Likewise.
30306         * regmove.c (optimize_reg_copy_1): Likewise.
30307         * calls.c (prepare_call_address): Likewise.
30308         (precompute_register_parameters): Likewise.
30309
30310         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
30311         hook definition.
30312         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30313         implementation of the hook that considers all register classes
30314         small except for SH64.
30315         (sh_override_options): Use the new hook.
30316         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
30317         Add prototype.
30318
30319         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
30320         hook definition.
30321         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
30322         implementation of the hook that considers all register classes
30323         small for THUMB1.
30324         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
30325         Add prototype.
30326
30327         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
30328         hook definition.
30329         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
30330         implementation of the hook that considers all register classes
30331         small for MIPS16.
30332         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
30333         Add prototype.
30334
30335         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
30336         hook definition.
30337         * config/m32c/m32c.h: Likewise.
30338         * config/pdp11/pdp11.h: Likewise.
30339         * config/avr/avr.h: Likewise.
30340         * config/xtensa/xtensa.h: Likewise.
30341         * config/m68hc11/m68hc11.h: Likewise.
30342         * config/mn10300/mn10300.h: Likewise.
30343         * config/mcore/mcore.h: Likewise.
30344         * config/h8300/h8300.h: Likewise.
30345         * config/bfin/bfin.h: Likewise.
30346
30347         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
30348         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
30349
30350 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
30351
30352         * double-int.h (tree_to_double_int): Remove macro.
30353         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
30354         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30355         (tree_to_double_int): New function.
30356         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
30357         Move ...
30358         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30359
30360 2010-05-03  Richard Guenther  <rguenther@suse.de>
30361
30362         PR tree-optimization/43971
30363         * tree-ssa-structalias.c (get_constraint_for_1): Fix
30364         constraints in the !flag_delete_null_pointer_checks case.
30365
30366 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30367
30368         PR debug/43972
30369         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30370         result mode matches original rtl mode.
30371
30372 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30373
30374         PR target/43888
30375         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30376
30377 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30378
30379         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30380         when processing flag options.
30381
30382 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30383
30384         * gcov-iov.c (main): Change format string placeholder
30385         from %#08x to 0x%08x.
30386         * genchecksum.c (dosum): Change format string placeholder
30387         from %#02x to 0x%02x.
30388
30389 2010-05-02  Richard Guenther  <rguenther@suse.de>
30390
30391         PR tree-optimization/43879
30392         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30393
30394 2010-05-02  Bruno Haible  <bruno@clisp.org>
30395
30396         * doc/extend.texi (Function Attributes): Fix a typo.
30397
30398 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30399
30400         Revert:
30401         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30402         placeholder from 0x%x to %#x.
30403         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30404         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30405         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30406         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30407         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30408         * config/i386/i386.c (ix86_target_string): Ditto.
30409         * config/i386/i386.c (output_pic_addr_const): Ditto.
30410         (print_operand): Ditto.
30411
30412 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30413
30414         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30415         placeholder from 0x%x to %#x.
30416         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30417         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30418         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30419         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30420         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30421         * optc-gen.awk: Ditto.
30422         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30423         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30424         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30425         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30426
30427 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30428
30429         * target.h (struct calls): Add function_value_regno_p field.
30430         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30431         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30432         * targhooks.c (default_function_value_regno_p): New function.
30433         * targhooks.h (default_function_value_regno_p): Declare function.
30434         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30435         * builtins.c. (apply_result_size): (Ditto.).
30436         * combine.c. (likely_spilled_retval_p): (Ditto.).
30437         * mode-switching.c. Include 'target.h'.
30438         (create_pre_exit): Use function_value_regno_p hook.
30439         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30440         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30441         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30442
30443         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30444         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30445         (ix86_function_value_regno_p): Declare as static, change argument
30446         type to const unsigned int.
30447         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30448
30449 2010-05-01  Richard Guenther  <rguenther@suse.de>
30450
30451         PR tree-optimization/43949
30452         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30453         types.
30454         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30455
30456 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30457
30458         * rtl.h (CONST_DOUBLE_P): Define.
30459         (rtx_to_double_int): Declare.
30460         * emit-rtl.c (rtx_to_double_int): New function.
30461         * dwarf2out.c (insert_double): New function.
30462         (loc_descriptor, add_const_value_attribute): Clean up, use
30463         rtx_to_double_int and insert_double functions.
30464
30465 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30466
30467         * doc/extend.texi (Inline): Add missing return keyword to examples.
30468         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30469         "command-line".
30470
30471 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30472
30473         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30474         the variable part of the offset as well.  Use highest_pow2_factor for
30475         all alignment checks.
30476
30477 2010-04-30  Richard Guenther  <rguenther@suse.de>
30478
30479         PR tree-optimization/43879
30480         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30481         can have pointers.
30482
30483 2010-04-30  Jan Hubicka  <jh@suse.cz>
30484
30485         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30486         varpool.
30487         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30488
30489 2010-04-30  Jan Hubicka  <jh@suse.cz>
30490
30491         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30492         New.
30493         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30494         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30495         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30496         cgraph_node_set_needs_ltrans_p): Remove.
30497
30498 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30499
30500         * sdbout.c: Include vec.h, do not include varray.h.
30501         (deferred_global_decls, sdbout_global_decl,
30502         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30503         * toplev.c: Do not include varray.h.
30504         (dump_memory_report): Do not dump VARRAY statistics.
30505         * gengtype.c (open_base_file): Ignore varray.h.
30506         * Makefile.in: Update for abovementioned changes.
30507         Remove all traces of varray.c and varray.h.
30508         * varray.c: Remove file.
30509         * varray.h: Remove file.
30510
30511 2010-04-30  Jan Hubicka  <jh@suse.cz>
30512
30513         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30514         references.
30515
30516 2010-04-30  Jan Hubicka  <jh@suse.cz>
30517
30518         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30519         needed.
30520
30521 2010-04-30  Richard Guenther  <rguenther@suse.de>
30522
30523         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30524         constraints for CONSTRUCTOR.
30525
30526 2010-04-30  Richard Guenther  <rguenther@suse.de>
30527
30528         PR lto/43946
30529         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30530         first after all lowering passes.
30531
30532 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30533
30534         * toplev.c: Include varray.h for statistics dumping.
30535         * tree.h: Do not declare varray_head_tag.
30536         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30537         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30538         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30539         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30540         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30541         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30542         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30543         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30544         include varray.h.
30545         * Makefile.in: Update for abovementioned changes.
30546
30547 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30548
30549         PR debug/43942
30550         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30551
30552 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30553
30554         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30555         Use this function to do machine-specific conversion.
30556         (picochip_legitimize_reload_address): Likewise.
30557         (picochip_legitimate_address_p): Check valid base register only if
30558         strict.
30559         (picochip_check_conditional_copy): Check for modw only if opnd is
30560         register.
30561         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30562         to call the function in c.
30563         * config/picochip/picochip-protos.h
30564         (picochip_legitimize_reload_address): Define.
30565         * config/picochip/picochip.md (supported_compare1): Define.
30566
30567 2010-04-30  Jan Hubicka  <jh@suse.cz>
30568
30569         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30570         (cgraph_global_info): Remove inlined.
30571         (LTO_cgraph_tag_names): Remove.
30572         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30573         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30574         simplify cgraph tags and document.
30575         (lto_output_node): Use only LTO_cgraph_unavail_node and
30576         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30577         for_functions_valid, global info, process and output flags.
30578         (input_overwrite_node): Initialize estimated stack size and
30579         estimated growth.  Do not read flags we no longer store.
30580         (input_node): Likewise do not read info no longer stored.
30581         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30582         flag.
30583
30584 2010-04-30  Richard Guenther  <rguenther@suse.de>
30585
30586         PR tree-optimization/43879
30587         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30588         handle non-zero initializers.
30589
30590 2010-04-30  Richard Guenther  <rguenther@suse.de>
30591
30592         * builtins.c (fold_builtin_1): Delete free (0).
30593
30594 2010-04-29  Jan Hubicka  <jh@suse.cz>
30595
30596         * gengtype.c (open_base_files): Add lto-streamer.h
30597         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30598         (pass_ipa_cp): GGC collect.
30599         * toplev. (compile_file): Do not output symbols.
30600         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30601         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30602         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30603         * lto-section-in.c: Include ggc.h
30604         (lto_new_in_decl_state): Alloc in GGC.
30605         (lto_delete_in_decl_state): Likewise.
30606         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30607         Collect.
30608
30609 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30610
30611         PR target/42895
30612         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30613         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30614         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30615         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30616         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30617         account only if HONOR_REG_ALLOC_ORDER is not defined.
30618         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30619         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30620
30621 2010-04-29  Jon Grant  <04@jguk.org>
30622
30623         * collect2.c (vflag): Change type from int to bool.
30624         (debug): Likewise.
30625         (helpflag): New global bool.
30626         (main): Set vflag and debug with boolean, not integer truth values.
30627         Accept new "--help" option and output usage text if found.
30628         * collect2.h (vflag): Update prototype.
30629         (debug): Likewise.
30630
30631 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30632
30633         PR bootstrap/43936
30634         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30635
30636 2010-04-29  Richard Guenther  <rguenther@suse.de>
30637
30638         PR bootstrap/43935
30639         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30640         with ATTRIBUTE_UNUSED.
30641
30642 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30643
30644         PR target/43921
30645         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30646         INSN_P with NONDEBUG_INSN_P.
30647         (distance_non_agu_define): Likewise.
30648         (distance_agu_use): Likewise.
30649
30650 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30651
30652         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30653         PR bootstrap/43858
30654         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30655         test_set.
30656
30657 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30658
30659         * plugin.h (invoke_plugin_callbacks): New inline function.
30660         * plugin.c (flag_plugin_added): New global flag.
30661         (add_new_plugin): Initialize above flag.
30662         (invoke_plugin_callbacks): Rename to ...
30663         (invoke_plugin_callbacks_full): ... this.
30664
30665 2010-04-28  Jan Hubicka  <jh@suse.cz>
30666
30667         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30668         (lto_varpool_replace_node): New.
30669         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30670         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30671         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30672         * cgraph.h (varpool_node_ptr): New type.
30673         (varpool_node_ptr): New vector.
30674         (varpool_node_set_def): New structure.
30675         (varpool_node_set): New type.
30676         (varpool_node_set): New vector.
30677         (varpool_node_set_element_def): New structure.
30678         (varpool_node_set_element, const_varpool_node_set_element): New types.
30679         (varpool_node_set_iterator): New type.
30680         (varpool_node): Add prev pointers, add used_from_other_partition,
30681         in_other_partition.
30682         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30683         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30684         varpool_get_node, varpool_remove_node): Declare.
30685         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30686         varpool_node_set_size): New inlines.
30687         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30688         * tree-pass.h (varpool_node_set_def): Forward declare.
30689         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30690         (ipa_write_optimization_summaries): Update prototype.
30691         * ipa-cp.c (ipcp_write_summary): Update.
30692         * ipa-reference.c (ipa_reference_write_summary): Update.
30693         * lto-cgraph.c (lto_output_varpool_node): New static function.
30694         (output_varpool): New function.
30695         (input_varpool_node): New static function.
30696         (input_varpool_1): New function.
30697         (input_cgraph): Input varpool.
30698         * ipa-pure-const.c (pure_const_write_summary): Update.
30699         * lto-streamer-out.c (lto_output): Update, output varpool too.
30700         (write_global_stream): Kill WPA hack.
30701         (produce_asm_for_decls): Update.
30702         (output_alias_pair_p): Handle variables.
30703         (output_unreferenced_globals): Output only needed partition of varpool.
30704         * ipa-inline.c (inline_write_summary): Update.
30705         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30706         cgraph.
30707         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30708         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30709         varpool_node_set_new, varpool_node_set_add,
30710         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30711         debug_varpool_node_set): New functions.
30712         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30713         (execute_one_pass): Process new decls too.
30714         (ipa_write_summaries_2): Pass around vsets.
30715         (ipa_write_summaries_1): Likewise.
30716         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30717         to add.
30718         (ipa_write_optimization_summaries_1): Pass around vsets.
30719         (ipa_write_optimization_summaries): Likewise.
30720         * varpool.c (varpool_get_node): New.
30721         (varpool_node): Update doubly linked lists.
30722         (varpool_remove_node): New.
30723         (dump_varpool_node): More dumping.
30724         (varpool_enqueue_needed_node): Update doubly linked lists.
30725         (decide_is_variable_needed): Kill ltrans hack.
30726         (varpool_finalize_decl): Kill lto hack.
30727         (varpool_assemble_decl): Skip decls in other partitions.
30728         (varpool_assemble_pending_decls): Update doubly linkes lists.
30729         (varpool_empty_needed_queue): Likewise.
30730         (varpool_extra_name_alias): Likewise.
30731         * lto-streamer.c (lto_get_section_name): Add vars section.
30732         * lto-streamer.h (lto_section_type): Update.
30733         (output_varpool, input_varpool): Declare.
30734
30735 2010-04-28  Mike Stump  <mikestump@comcast.net>
30736
30737         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30738
30739 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30740
30741         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30742         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30743         (lto_input_ts_type_tree_pointers): Likewise.
30744         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30745         (lto_output_ts_type_tree_pointers): Likewise.
30746
30747 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30748
30749         Uniquization of constants at the Tree level
30750         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30751         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30752         bit to the end.
30753         (tree_output_constant_def): Declare.
30754         * gimplify.c (gimplify_init_constructor): When using block copy, first
30755         uniquize the constant constructor on the RHS.
30756         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30757         DECL_IN_CONSTANT_POOL flag.
30758         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30759         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30760         constant pool.
30761         (assemble_variable): Deal with symbols belonging to the tree constant
30762         pool.
30763         (get_constant_section): Add ALIGN parameter and simplify.
30764         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30765         (assemble_constant_contents): Use the expression of the VAR_DECL.
30766         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30767         (tree_output_constant_def): New global function.
30768         (mark_constant): Use the expression of the VAR_DECL.
30769         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30770         its expression.
30771         (output_object_block): Likewise and assemble the expression.
30772
30773 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30774
30775         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30776         hash_tree, eq_tree): New tree hash table.
30777         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30778         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30779         lto_orig_address_remove): Reimplement.
30780
30781 2010-04-28  Xinliang David Li  <davidxl@google.com>
30782
30783         PR c/42643
30784         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30785         (compute_uninit_opnds_pos): New function.
30786         (is_non_loop_exit_postdominating): New function.
30787         (compute_control_dep_chain): New function.
30788         (find_pdom): New function.
30789         (convert_control_dep_chain_into_preds): New function.
30790         (find_predicates): New function.
30791         (find_control_equiv_block): New function.
30792         (collect_phi_def_edges): New function.
30793         (find_def_preds): New function.
30794         (find_dom): New function.
30795         (dump_predicates): New function.
30796         (get_cmp_code): New function.
30797         (is_value_included_in): New function.
30798         (find_matching_predicate_in_rest_chains): New function.
30799         (use_pred_not_overlap_with_undef_path_pred): New function.
30800         (is_use_properly_guarded): New function.
30801         (normalize_cond_1): New function.
30802         (is_and_or_or): New function.
30803         (normalize_cond): New function.
30804         (is_gcond_subset_of): New function.
30805         (is_subset_of_any): New function.
30806         (is_or_set_subset_of): New function.
30807         (is_and_set_subset_of): New function.
30808         (is_norm_cond_subset_of): New function.
30809         (is_pred_expr_subset_of): New function.
30810         (is_pred_chain_subset_of): New function.
30811         (is_included_in): New function.
30812         (is_superset_of): New function.
30813         (find_uninit_use): New function.
30814         (warn_uninitialized_phi): New function.
30815         (compute_possibly_undefined_names): New function.
30816         (ssa_undefined_value_p): New function.
30817         (execute_late_warn_uninitialized): New function.
30818         * tree-ssa.c (ssa_undefined_value_p): Removed.
30819         (warn_uninit): Changed to extern.
30820         (warn_uninitialized_phi): Removed.
30821         (warn_uninitialized_vars): Changed to extern.
30822         (execute_late_warn_uninitialized): Removed
30823         * tree-flow.h: Add new prototypes.
30824         * timevar.def: Add new time variable.
30825         * Makefile.in: Add new build file.
30826
30827 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30828
30829         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30830         type if available.
30831
30832 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30833
30834         PR target/22224
30835         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30836
30837 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30838
30839         * cgraph.h (struct cgraph_node): New field indirect_calls.
30840         (struct cgraph_indirect_call_info): New type.
30841         (struct cgraph_edge): Removed field indirect_call. New fields
30842         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30843         (cgraph_create_indirect_edge): Declare.
30844         (cgraph_make_edge_direct): Likewise.
30845         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
30846         * ipa-prop.h (struct ipa_param_call_note): Removed.
30847         (struct ipa_node_params): Removed field param_calls.
30848         (ipa_create_all_structures_for_iinln): Declare.
30849         * cgraph.c: Described indirect edges and uids in initial comment.
30850         (cgraph_add_edge_to_call_site_hash): New function.
30851         (cgraph_edge): Search also among the indirect edges, use
30852         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
30853         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
30854         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
30855         site hash.
30856         (initialize_inline_failed): Assign a reason to indirect edges.
30857         (cgraph_create_edge_1): New function.
30858         (cgraph_create_edge): Moved some functionality to
30859         cgraph_create_edge_1.
30860         (cgraph_create_indirect_edge): New function.
30861         (cgraph_edge_remove_callee): Add an assert checking for
30862         non-indirectness.
30863         (cgraph_edge_remove_caller): Special-case indirect edges.
30864         (cgraph_remove_edge): Likewise.
30865         (cgraph_set_edge_callee): New function.
30866         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
30867         (cgraph_make_edge_direct): New function.
30868         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
30869         the declaration of the call statement matches.
30870         (cgraph_node_remove_callees): Special-case indirect edges.
30871         (cgraph_clone_edge): Likewise.
30872         (cgraph_clone_node): Clone also the indirect edges.
30873         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
30874         indirect_call, dump count of indirect_calls edges.
30875         * ipa-prop.c (iinlining_processed_edges): New variable.
30876         (ipa_note_param_call): Create indirect edges instead of
30877         creating notes.  New parameter node.
30878         (ipa_analyze_call_uses): New parameter node, pass it on to
30879         ipa_note_param_call.
30880         (ipa_analyze_stmt_uses): Likewise.
30881         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
30882         (print_edge_addition_message): Work on edges rather than on notes.
30883         (update_call_notes_after_inlining): Likewise, renamed to
30884         update_indirect_edges_after_inlining.
30885         (ipa_create_all_structures_for_iinln): New function.
30886         (ipa_free_node_params_substructures): Do not free notes.
30887         (ipa_edge_duplication_hook): Propagate bits within
30888         iinlining_processed_edges bitmap.
30889         (ipa_node_duplication_hook): Do not duplicate notes.
30890         (free_all_ipa_structures_after_ipa_cp): Renamed to
30891         ipa_free_all_structures_after_ipa_cp.
30892         (free_all_ipa_structures_after_iinln): Renamed to
30893         ipa_free_all_structures_after_iinln.
30894         (ipa_write_param_call_note): Removed.
30895         (ipa_read_param_call_note): Removed.
30896         (ipa_write_indirect_edge_info): New function.
30897         (ipa_read_indirect_edge_info): Likewise.
30898         (ipa_write_node_info): Do not stream notes, do stream information
30899         in indirect edges.
30900         (ipa_read_node_info): Likewise.
30901         (lto_ipa_fixup_call_notes): Removed.
30902         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
30903         * ipa-inline.c (pass_ipa_inline): Likewise.
30904         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
30905         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
30906         * tree-inline.c (copy_bb): Removed an unnecessary double check for
30907         is_gimple_call.
30908         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
30909         edges.
30910         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
30911         (output_cgraph): Stream also indirect edges.
30912         (lto_output_edge): Added capability to stream indirect edges.
30913         (input_edge): Likewise.
30914         (input_cgraph_1): Likewise.
30915         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
30916         of indirect edges.
30917
30918 2010-04-28  Richard Guenther  <rguenther@suse.de>
30919
30920         PR tree-optimization/43879
30921         PR tree-optimization/43909
30922         * tree-ssa-structalias.c (struct variable_info): Add
30923         only_restrict_pointers flag.
30924         (new_var_info): Initialize it.  Increment stats.total_vars here.
30925         (create_function_info_for): Do not increment stats.total_vars here.
30926         (get_function_part_constraint): Fix build with C++.
30927         (insert_into_field_list): Remove.
30928         (push_fields_onto_fieldstack): Properly merge fields.
30929         (create_variable_info_for): Split and simplify.
30930         (create_variable_info_for_1): New piece.
30931         (intra_create_variable_infos): Properly make restrict constraints
30932         from parameters.
30933
30934 2010-04-28  Richard Guenther  <rguenther@suse.de>
30935
30936         PR c++/43880
30937         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
30938
30939 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30940             Jan Hubicka  <hubicka@ucw.cz>
30941
30942         * doc/invoke.texi (-Wsuggest-attribute=const,
30943         -Wsuggest-attribute=pure): Document.
30944         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
30945         (function_always_visible_to_compiler_p,
30946         suggest_attribute, warn_function_pure, warn_function_const):
30947         New functions.
30948         (check_call): Improve debug info.
30949         (analyze_function): Do not check availability.
30950         (add_new_function): Check availability.
30951         (propagate): Output warnings.
30952         (skip_function_for_local_pure_const): New function.
30953         (local_pure_const): Use it; output warnings.
30954         * common.opt (Wsuggest-attribute=const,
30955         Wsuggest-attribute=pure): New.
30956
30957 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
30958
30959         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
30960         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
30961         or DW_CFA_def_cfa_offset{,_sf}.
30962
30963 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
30964
30965         * tree.h: Fix truncated long macros.
30966
30967 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
30968
30969         * collect2.c (TARGET_64BIT): Redefine to target's default.
30970         * tlink.c: Likewise.
30971         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
30972         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
30973         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
30974         for underscoring __USER_LABEL_PREFIX__.
30975         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
30976         (SUB_LINK_ENTRY32): New.
30977         (SUB_LINK_ENTRY64): New.
30978         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
30979         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
30980         (SUB_LINK_ENTRY64): New.
30981         (SUB_LINK_ENTRY): New.
30982         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
30983         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
30984         x64 target is choosen.
30985         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
30986         * configure: Regenerated.
30987         * configure.ac (leading-mingw64-underscores): Option added.
30988
30989 2010-04-27  Jan Hubicka  <jh@suse.cz>
30990
30991         * doc/invoke.texi (-fipa-profile): Document.
30992         * opts.c (decode_options): Enable ipa-profile at -O1.
30993         * timevar.def (TV_IPA_PROFILE): Define.
30994         * common.opt (fipa-profile): Add.
30995         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
30996         flag for clones.
30997         (cgraph_propagate_frequency): Handle only local ones.
30998         * tree-pass.h (pass_ipa_profile): Declare.
30999         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31000         (pass_ipa_profile): Use TV_IPA_PROFILE.
31001         * ipa.c (ipa_profile): New function.
31002         (gate_ipa_profile): Likewise.
31003         (pass_ipa_profile): New global variable.
31004         * passes.c (pass_ipa_profile): New.
31005
31006 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31007
31008         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31009
31010 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31011
31012         PR middle-end/43812
31013         * ipa.c (dissolve_same_comdat_group_list): New function.
31014         (function_and_variable_visibility): Call
31015         dissolve_same_comdat_group_list when comdat group contains external or
31016         newly local nodes.
31017         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31018         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31019
31020 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31021
31022         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31023         (const_hash_1) <VECTOR_CST>: New case.
31024         (compare_constant) <VECTOR_CST>: Likewise.
31025         <ADDR_EXPR>: Deal with LABEL_REFs.
31026         (copy_constant) <VECTOR_CST>: New case.
31027
31028 2010-04-27  Jan Hubicka  <jh@suse.cz>
31029
31030         * cgraph.c (cgraph_propagate_frequency): New function.
31031         * cgraph.h (cgraph_propagate_frequency): Declare.
31032         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31033         cgraph_propagate_frequency.
31034
31035 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31036
31037         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31038
31039 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31040
31041         PR target/40657
31042         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31043         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31044         here to determine which regs to push and how much stack to reserve.
31045
31046 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31047
31048         * doc/gimple.texi (gimple_statement_with_ops): Remove
31049         addresses_taken field.
31050         (gimple_statement_with_memory_ops): Likewise.
31051
31052 2010-04-27  Jan Hubicka  <jh@suse.cz>
31053
31054         * tree-inline.c (eni_inlining_weights): Remove.
31055         (estimate_num_insns): Special case more builtins.
31056
31057 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31058
31059         PR c/32207
31060         * c-typeck.c (build_binary_op): Move forward check for comparison
31061         pointer with null pointer constant and adjust the diagnostic message.
31062
31063 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31064
31065         PR lto/42776
31066         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31067         binutils supports extended .section directive needed by LTO, or
31068         warn if older binutils found.
31069         (LTO_BINARY_READER): New AC_SUBST'd variable.
31070         (LTO_USE_LIBELF): Likewise.
31071         * config.gcc (lto_binary_reader): New target-specific configure
31072         variable.
31073         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31074         (LTO_USE_LIBELF): Likewise.
31075         * configure: Regenerate.
31076
31077         * collect2.c (is_elf): Rename from this ...
31078         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31079          object files in addition to ELF-formatted ones.
31080         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31081         symbol to be prefixed or not by an extra underscore.
31082
31083         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31084         * config/i386/winnt.c: Also #include lto-streamer.h
31085         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31086         LTO named sections.
31087         (i386_pe_asm_output_aligned_decl_common): Add comment.
31088         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31089
31090 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31091
31092         PR target/43889
31093         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31094         Add missing earlyclobber for second alternative.
31095
31096 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31097
31098         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31099         bits for artificial defs at the top of the block.
31100         * fwprop.c (single_def_use_enter_block): Don't call it.
31101
31102 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31103
31104         PR 43715
31105         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31106         instead of "$gcc_cv_objdump -T".
31107         Use "-undefined dynamic_lookup" on darwin.
31108         * configure: Regenerate.
31109
31110 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31111
31112         PR c/43893
31113         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31114
31115 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31116
31117         * c-parser.c (struct c_token): Move location field up.
31118         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31119         (struct c_declspecs): Convert typespec_word, storage_class, and
31120         default_int_p into bitfields.
31121         (struct c_declarator): Move loc field up.
31122
31123 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31124
31125         * cfgloop.h (struct loop): Move can_be_parallel field up.
31126         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31127         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31128         down.
31129         (struct iv_cand): Convert pos field into a bitfield.
31130         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31131         field up.
31132         (struct _stmt_vec_info): Shuffle fields for better packing.
31133
31134 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31135
31136         * varasm.c (IN_NAMED_SECTION): Remove guard.
31137         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31138         (IN_NAMED_SECTION_P): ...this.
31139         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31140         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31141
31142 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31143
31144         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31145         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31146         of shadowing it.  Fix comments.
31147
31148 2010-04-26  Jan Hubicka  <jh@suse.cz>
31149
31150         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31151         (cgraph_clone_node): Copy function frequency.
31152         * cgraph.h (node_frequency): New enum
31153         (struct cgraph_node): Add.
31154         * final.c (rest_of_clean_state): Update.
31155         * lto-cgraph.c (lto_output_node): Output node frequency.
31156         (input_overwrite_node): Input node frequency.
31157         * tre-ssa-loop-ivopts (computation_cost): Update.
31158         * lto-streamer-out.c (output_function): Do not output function
31159         frequency.
31160         * predict.c (maybe_hot_frequency_p): Update and handle functions
31161         executed once.
31162         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31163         attribute lookup.
31164         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31165         (compute_function_frequency): Set noreturn functions to be executed
31166         once.
31167         (choose_function_section): Update.
31168         * lto-streamer-in.c (input_function): Do not input function frequency.
31169         * function.c (allocate_struct_function): Do not initialize function
31170         frequency.
31171         * function.h (function_frequency): Remove.
31172         (struct function): Remove function frequency.
31173         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31174         (try_update): Update.
31175         * tree-inline.c (initialize_cfun): Do not update function frequency.
31176         * passes.c (pass_init_dump_file): Update.
31177         * i386.c (ix86_compute_frame_layout): Update.
31178         (ix86_pad_returns): Update.
31179
31180 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31181
31182         PR tree-optimization/43833
31183         * tree-vrp.c (range_int_cst_p): New.
31184         (range_int_cst_singleton_p): New.
31185         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31186         when both operands are constants.  Use range_int_cst_p in
31187         BIT_IOR_EXPR case.
31188
31189 2010-04-26  Jan Hubicka  <jh@suse.cz>
31190
31191         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31192
31193 2010-04-26  Richard Guenther  <rguenther@suse.de>
31194
31195         PR lto/43080
31196         * gimple.c (gimple_decl_printable_name): Deal gracefully
31197         with a NULL DECL_NAME.
31198
31199 2010-04-26  Richard Guenther  <rguenther@suse.de>
31200
31201         PR lto/42425
31202         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
31203         if emitting debug information and it is either a function
31204         or a namespace decl.
31205
31206 2010-04-26  Ira Rosen  <irar@il.ibm.com>
31207
31208         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
31209         determine if the statement is vectorizable, and a macro to access it.
31210         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31211         Skip statements that can't be vectorized. If the analysis fails,
31212         mark the statement as unvectorizable if vectorizing basic block.
31213         (vect_compute_data_refs_alignment): Likewise.
31214         (vect_verify_datarefs_alignment): Skip statements marked as
31215         unvectorizable. Add print.
31216         (vect_analyze_group_access): Skip statements that can't be
31217         vectorized. If the analysis fails, mark the statement as
31218         unvectorizable if vectorizing basic block.
31219         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
31220         * tree-vect-stmts.c (vectorizable_store): Fix the number of
31221         generated stmts for SLP.
31222         (new_stmt_vec_info): Initialize the new field.
31223         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
31224         statements marked as unvectorizable.
31225
31226 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
31227
31228         * c-common.c (flag_isoc1x): New.
31229         (flag_isoc99): Update comment.
31230         * c-common.h (flag_isoc1x): New.
31231         (flag_isoc99): Update comment.
31232         * c-cppbuiltin.c (builtin_define_float_constants): Also define
31233         __<type>_DECIMAL_DIG__.
31234         * c-opts.c (set_std_c1x): New.
31235         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
31236         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
31237         * c.opt (-std=c1x, -std=gnu1x): New options.
31238         * doc/cpp.texi: Mention -std=c1x.
31239         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
31240         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
31241         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
31242         * doc/standards.texi: Mention C1X.
31243         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
31244         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
31245         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
31246         Define for C1X.
31247
31248 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
31249
31250         * config/i386/gmon-sol2.c (_mcleanup): Change format string
31251         placeholder from 0x%x to %#x.
31252         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31253         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31254         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31255         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31256         * config/i386/i386.c (ix86_target_string): Ditto.
31257         (output_pic_addr_const): Ditto.
31258         (print_operand): Ditto.
31259
31260 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
31261
31262         * combine.c (find_split_point): Add third argument.  Use it
31263         to find nested multiply-accumulate instructions.  Adjust calls.
31264         (try_combine): Adjust call to find_split_point.
31265
31266 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
31267
31268         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
31269
31270 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
31271
31272         PR tree-optimization/41442
31273         * fold-const.c (merge_truthop_with_opposite_arm): New function.
31274         (fold_binary_loc): Call it.
31275
31276 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31277
31278         * toplev.c (general_init): Set default for fdiagnostics-show-option.
31279         * opts.c (common_handle_option): Allow disabling it.
31280         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
31281
31282 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
31283
31284         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
31285         between modes if both types are integral.
31286
31287 2010-04-23  Richard Guenther  <rguenther@suse.de>
31288
31289         PR tree-optimization/43572
31290         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
31291
31292 2010-04-23  Richard Guenther  <rguenther@suse.de>
31293
31294         PR lto/43455
31295         * tree-inline.c (tree_can_inline_p): Also check compatibility
31296         of return types.
31297
31298 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31299
31300         PR tree-optimization/43846
31301         * tree-sra.c (struct access): New flag grp_assignment_read.
31302         (build_accesses_from_assign): Set grp_assignment_read.
31303         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
31304         (enum mark_read_status): New type.
31305         (analyze_access_subtree): Propagate grp_assignment_read, create
31306         accesses also if both direct_read and root->grp_assignment_read.
31307
31308 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31309
31310         PR middle-end/43835
31311         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
31312         function does not have type attributes.
31313
31314 2010-04-23  Richard Guenther  <rguenther@suse.de>
31315
31316         PR lto/42653
31317         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
31318         of FUNCTION_DECLs.
31319
31320 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31321
31322         * sese.h (create_if_region_on_edge): Remove.
31323
31324         * sese.c (create_if_region_on_edge): Make static.
31325
31326         * tree-inline.c: Do not include ggc.h.
31327
31328         * expr.c: Do not include ggc.h.
31329
31330         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
31331         dependencies.
31332
31333 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
31334
31335         PR target/43744
31336         * config/sh/sh.c (find_barrier): Don't emit a constant pool
31337         in the middle of insns for casesi_worker_2.
31338
31339 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
31340
31341         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
31342
31343 2010-04-22  Ira Rosen  <irar@il.ibm.com>
31344
31345         PR tree-optimization/43842
31346         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
31347         loop unrolling in update of exit phis. Fix comment.
31348         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
31349         least two reduction statements in the loop before starting SLP
31350         analysis.
31351
31352 2010-04-22  Nick Clifton  <nickc@redhat.com>
31353
31354         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
31355
31356 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
31357
31358         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
31359         to simplify a + ~a.
31360
31361 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31362
31363         * tree-parloops.c (loop_parallel_p): New argument
31364         parloop_obstack.  Pass it down.
31365         (parallelize_loops): New variable parloop_obstack.  Initialize it,
31366         pass it down, free it.
31367
31368         * tree-loop-linear.c (linear_transform_loops): Pass down
31369         lambda_obstack.
31370
31371         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31372         of type struct obstack *.
31373
31374         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31375         scratch_obstack.  Initialize it, pass down, free it.
31376
31377         * lambda.h (lambda_loop_new): Remove.
31378         (lambda_matrix_new, lambda_matrix_inverse)
31379         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31380         argument of type struct obstack *.
31381
31382         * lambda-trans.c (lambda_trans_matrix_new): New argument
31383         lambda_obstack.  Pass it down, use obstack allocation for ret.
31384         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31385         it down.
31386
31387         * lambda-mat.c (lambda_matrix_get_column)
31388         (lambda_matrix_project_to_null): Remove.
31389         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31390         allocation for mat.
31391         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31392         lambda_obstack.
31393
31394         * lambda-code.c (lambda_loop_new): New function.
31395         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31396         (lambda_compute_auxillary_space, lambda_compute_target_space)
31397         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31398         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31399         (build_access_matrix): New argument lambda_obstack.  Use obstack
31400         allocation for am.
31401         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31402         argument lambda_obstack.  Pass it down.
31403
31404 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31405
31406         * optabs.h (expand_widening_mult): Declare.
31407
31408 2010-04-22  Richard Guenther  <rguenther@suse.de>
31409
31410         PR tree-optimization/43845
31411         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31412         lookup the CALL_EXPR function and arguments.
31413
31414 2010-04-22  Nick Clifton  <nickc@redhat.com>
31415
31416         * config/stormy16/stormy16.c
31417         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31418         * config/stormy16/stormy16.h: Tidy up formatting.
31419         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31420         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31421         (ineqbranchsi): Delete pattern.
31422         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31423         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31424         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31425         stormy16-lib2-ucmpsi2.c.
31426
31427 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31428
31429         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31430         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31431         extra set merge_set_noclobber, and use it to relax the final test
31432         slightly.
31433         * df.h (df_simulate_find_noclobber_defs): Declare.
31434         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31435         conditional defs.
31436         (df_simulate_find_noclobber_defs): New function.
31437
31438 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31439
31440         * config/i386/i386.md: Use {} around multi-line preparation statements.
31441
31442 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31443
31444         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31445         (process_init_element): New argument of type struct obstack *.
31446
31447         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31448         (set_init_index, set_init_label, set_nonincremental_init)
31449         (set_nonincremental_init_from_string, find_init_member)
31450         (output_init_element, output_pending_init_elements)
31451         (process_init_element): New argument braced_init_obstack.  Pass it
31452         down.
31453         (push_range_stack, add_pending_init): New argument
31454         braced_init_obstack.  Use obstack allocation.
31455
31456         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31457         braced_init_obstack.  Pass it down.
31458         (c_parser_braced_init): New variables ret, braced_init_obstack.
31459         Initialize obstack, pass it down and finally free it.
31460
31461 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31462
31463         PR middle-end/29274
31464         * tree-pass.h (pass_optimize_widening_mul): Declare.
31465         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31466         gate_optimize_widening_mul): New static functions.
31467         (pass_optimize_widening_mul): New.
31468         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31469         <case MULT_EXPR>: Remove support for widening multiplies.
31470         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31471         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31472         simplify_gen_unary rather than directly building extensions.
31473         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31474         WIDEN_MULT_EXPR.
31475         * expmed.c (expand_widening_mult): New function.
31476         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31477
31478 2010-04-21  Jan Hubicka  <jh@suse.cz>
31479
31480         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31481         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31482         * lto-wpa-fixup.c: Remove.
31483         * Makefile.in (lto-wpa-fixup.o): Remove.
31484         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31485         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31486         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31487
31488 2010-04-21  Jan Hubicka  <jh@suse.cz>
31489
31490         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31491         add write_optimization_summary, read_optimization_summary.
31492         (ipa_write_summaries_of_cgraph_node_set): Remove.
31493         (ipa_write_optimization_summaries): Declare.
31494         (ipa_read_optimization_summaries): Declare.
31495         * ipa-cp.c (pass_ipa_cp): Update.
31496         * ipa-reference.c (pass_ipa_reference): Update.
31497         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31498         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31499         Update.
31500         * ipa-inline.c (pass_ipa_inline): Update.
31501         * ipa.c (pass_ipa_whole_program): Update.
31502         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31503         * passes.c (ipa_write_summaries_1): Do not test wpa.
31504         (ipa_write_optimization_summaries_1): New.
31505         (ipa_write_optimization_summaries): New.
31506         (ipa_read_summaries): Do not test ltrans.
31507         (ipa_read_optimization_summaries_1): New.
31508         (ipa_read_optimization_summaries): New.
31509
31510 2010-04-21  Jan Hubicka  <jh@suse.cz>
31511
31512         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31513         for boundary nodes.
31514         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31515
31516 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31517
31518         PR debug/40040
31519         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31520         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31521
31522 2010-04-21  Jan Hubicka  <jh@suse.cz>
31523
31524         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31525
31526 2010-04-21  Jan Hubicka  <jh@suse.cz>
31527
31528         * varpool.c (decide_is_variable_needed): Variable is always needed
31529         during ltrans.
31530
31531 2010-04-21  Jan Hubicka  <jh@suse.cz>
31532
31533         * opts.c (decode_options): Enable pure-const pass for whopr.
31534
31535 2010-04-21  Jan Hubicka  <jh@suse.cz>
31536
31537         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31538         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31539         at WPA dumping.
31540         (cgraph_decide_inlining): Do not expect callee to be removed in all
31541         cases.
31542
31543 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31544
31545         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31546
31547 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31548
31549         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31550         amdfam10_decode attributes.
31551
31552 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31553
31554         PR middle-end/43570
31555         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31556         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31557         (lower_copyprivate_clauses): Use private var in outer
31558         context instead of original var.  Make sure the types
31559         are correct for VLAs.
31560
31561 2010-04-21  Richard Guenther  <rguenther@suse.de>
31562
31563         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31564         to non-pointer objects.
31565
31566 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31567
31568         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31569         last chain entry if it starts with the still current label.
31570         (add_location_or_const_value_attribute): Check that
31571         loc_list->first->next is NULL instead of comparing ->first with ->last.
31572         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31573         to add_var_loc_to_decl.
31574
31575         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31576         >= 4 add also address size and segment size fields into CIE header.
31577
31578         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31579         long as address size is the same as sizeof (void *) and
31580         segment size is 0.
31581         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31582         address size or segment size is unexpected, return DW_EH_PE_omit.
31583         (classify_object_over_fdes): If get_cie_encoding returned
31584         DW_EH_PE_omit, return -1.
31585         (init_object): If classify_object_over_fdes returned -1,
31586         pretend there were no FDEs at all.
31587
31588 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31589
31590         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31591         bswap{si,di}2 using SWI48 mode iterator.
31592         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31593         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31594         set modrm attribute of bswap insn to 0 and remove length attribute.
31595         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31596         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31597         set mode attribute to <MODE> and remove length attribute.
31598
31599 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31600
31601         PR rtl-optimization/43520
31602         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31603         zero available registers.
31604
31605 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31606
31607         * builtins.c (fold_builtin_cproj): Fold more cases.
31608
31609 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31610
31611         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31612         (fold_builtin_1): Fold builtin cproj.
31613         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31614         Use ATTR_CONST_NOTHROW_LIST.
31615
31616 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31617
31618         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31619         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31620         ffsi2_no_cmove for !TARGET_CMOVE.
31621         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31622         (ffssi2): Remove expander.
31623         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31624         mode iterator.
31625         (ctz<mode>2): Ditto from ctz{si,di}2.
31626         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31627         mode iterator.
31628         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31629         mode iterator.
31630
31631 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31632
31633         * dwarf2out.c (AT_linkage_name): Define.
31634         (clone_as_declaration): Handle DW_AT_linkage_name.
31635         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31636         of DW_AT_MIPS_linkage_name.
31637         (move_linkage_attr): Likewise.
31638         (dwarf2out_finish): Likewise.
31639
31640 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31641
31642         PR middle-end/41952
31643         * fold-const.c (fold_comparison): New folding rule.
31644
31645 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31646
31647         * double-int.h (double_int_setbit): Declare.
31648         * double-int.c (double_int_setbit): New function.
31649         * rtl.h (immed_double_int_const): Declare.
31650         * emit-rtl.c (immed_double_int_const): New function.
31651         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31652         and immed_double_int_const functions.
31653         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31654         expand_copysign_bit): (Ditto.).
31655         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31656         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31657         * dojump.c (prefer_and_bit_test): (Ditto.).
31658         * expr.c (convert_modes, reduce_to_bit_field_precision,
31659         const_vector_from_tree): (Ditto.).
31660         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31661
31662 2010-04-20  Jan Hubicka  <jh@suse.cz>
31663
31664         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31665         (dump_cgraph_node): Dump new flags.
31666         * cgraph.h (struct cgraph_node): Add flags
31667         reachable_from_other_partition and in_other_partition.
31668         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31669         other partition can not be removed.
31670         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31671         the other partition must be output; silence sanity checking on
31672         leaking functions bodies from other paritition.
31673         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31674         (lto_output_node): Output new flags; do not sanity check that inline
31675         clones are output; drop lto_forced_extern_inline_p code; do not mock
31676         visibility flags at partition boundaries.
31677         (add_node_to): New function.
31678         (output_cgraph): Use it to sort functions so masters appear before
31679         clones.
31680         (input_overwrite_node): Input new flags.
31681         * passes.c (ipa_write_summaries): Do not call
31682         lto_new_extern_inline_states.
31683         * lto-section-out.c (forced_extern_inline,
31684         lto_new_extern_inline_states lto_delete_extern_inline_states,
31685         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31686         * lto-streamer.h (lto_new_extern_inline_states,
31687         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31688         lto_forced_extern_inline_p): Kill.
31689
31690 2010-04-20  Richard Guenther  <rguenther@suse.de>
31691
31692         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31693         from vars that can have pointers.
31694         (process_constraint): Dump useless constraints.
31695
31696 2010-04-20  Richard Guenther  <rguenther@suse.de>
31697
31698         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31699         (dump_sa_points_to_info): Remove asserts.
31700         (init_base_vars): nothing_id isn't an escape point nor does it
31701         have pointers.
31702
31703 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31704
31705         * tree.h (TYPE_REF_IS_RVALUE): Define.
31706         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31707         should_move_die_to_comdat, prune_unused_types_walk): Handle
31708         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31709         (modified_type_die, gen_reference_type_die): Emit
31710         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31711         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31712
31713 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31714
31715         PR target/43635
31716         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31717         calls for -fpic -m31 if they have been sibcall optimized.
31718
31719 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31720
31721         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31722         ar.lc fixed and call-used.
31723
31724         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31725
31726 2010-04-19  Jan Hubicka  <jh@suse.cz>
31727
31728         * opts.c (decode_options): Disable whpr incompatible passes.
31729         * lto/lto.c (lto_1_to_1_map): Skip clones.
31730         (read_cgraph_and_symbols): Do not mark everything as needed.
31731         (do_whole_program_analysis): Do map only after optimizing;
31732         set proper cgraph_state; use passmanager.
31733
31734 2010-04-19  DJ Delorie  <dj@redhat.com>
31735
31736         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31737         POINTER_PLUS_EXPR and fix them.
31738
31739 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31740
31741         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31742         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31743         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31744         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31745         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31746         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31747         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31748         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31749         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31750         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31751         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31752
31753 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31754
31755         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31756         (check_cond_move_block): Likewise.
31757         (cond_move_process_if_block): Likewise.
31758         (noce_find_if_block): Improve formatting.
31759         (find_if_header): Pass 0 to memset and tweak conditions.
31760         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31761
31762 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31763
31764         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31765         for -gdwarf-4.
31766
31767         PR middle-end/43337
31768         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31769         with non-local decl doesn't need chain.
31770
31771 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31772
31773         * ira-color.c (allocno_reload_assign): Avoid accumulating
31774         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31775
31776 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31777
31778         * gimple.h (create_tmp_reg): Declare.
31779         * gimplify.c (create_tmp_reg): New function.
31780         (gimplify_return_expr): Use create_tmp_reg.
31781         (gimplify_omp_atomic): Likewise.
31782         (gimple_regimplify_operands): Likewise.
31783         * tree-dfa.c (make_rename_temp): Likewise.
31784         * tree-predcom.c (predcom_tmp_var): Likewise.
31785         (reassociate_to_the_same_stmt): Likewise.
31786         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31787         (get_replaced_param_substitute): Likewise.
31788         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31789         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31790         * tree-ssa-pre.c (get_representative_for): Likewise.
31791         (create_expression_by_pieces): Likewise.
31792         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31793         (create_tailcall_accumulator): Likewise.
31794
31795 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31796
31797         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31798         new_stmt.
31799         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31800
31801 2010-04-19  Richard Guenther  <rguenther@suse.de>
31802
31803         PR tree-optimization/43796
31804         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31805         from SCEV in the lattice.
31806         (vrp_visit_phi_node): Dump change.
31807
31808 2010-04-19  Richard Guenther  <rguenther@suse.de>
31809
31810         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31811         * configure: Re-generated.
31812
31813 2010-04-19  Richard Guenther  <rguenther@suse.de>
31814
31815         PR tree-optimization/43783
31816         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31817         constant ARRAY_REF operands two and three if possible.
31818
31819 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31820
31821         PR target/43766
31822         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31823
31824 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31825
31826         PR target/43662
31827         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31828
31829 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31830
31831         PR tree-optimization/37027
31832         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31833         and macro to access it.
31834         (vectorizable_reduction): Add argument.
31835         (vect_get_slp_defs): Likewise.
31836         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31837         statements for possible use in SLP.
31838         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31839         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31840         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31841         add new argument.
31842         (vectorizable_reduction): Likewise.
31843         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31844         vect_get_slp_defs.
31845         (vectorizable_type_demotion, vectorizable_type_promotion,
31846         vectorizable_store): Likewise.
31847         (vect_analyze_stmt): Update call to vectorizable_reduction.
31848         (vect_transform_stmt): Likewise.
31849         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
31850         (vect_build_slp_tree): Fix indentation. Check that there are no loads
31851         from different interleaving chains in same node.
31852         (vect_slp_rearrange_stmts): New function.
31853         (vect_supported_load_permutation_p): Allow load permutations for
31854         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
31855         inside SLP nodes if necessary.
31856         (vect_analyze_slp_instance): Handle reductions.
31857         (vect_analyze_slp): Try to build SLP instances originating from groups
31858         of reductions.
31859         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
31860         (vect_get_constant_vectors): Create initial vectors for reductions
31861         according to reduction code. Add new argument.
31862         (vect_get_slp_defs): Add new argument, pass it to
31863         vect_get_constant_vectors.
31864         (vect_schedule_slp_instance): Remove SLP tree root statements.
31865
31866 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31867
31868         * tree.h (ENUM_IS_SCOPED): Define.
31869         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
31870         for ENUM_IS_SCOPED enums.
31871
31872 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
31873
31874         * fold-const.c (fold_comparison): Use ssizetype.
31875         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
31876         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
31877         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
31878         * tree-object-size.c (compute_object_sizes): Use size_type_node.
31879
31880         * tree.h (initialize_sizetypes): Remove parameter.
31881         (build_common_tree_nodes): Remove second parameter.
31882         * stor-layout.c (initialize_sizetypes): Remove parameter.
31883         Always create an unsigned type.
31884         (set_sizetype): Assert that the passed type is unsigned and simplify.
31885         * tree.c (build_common_tree_nodes): Remove second parameter.
31886         Adjust call to initialize_sizetypes.
31887         * c-decl.c (c_init_decl_processing): Remove second argument in call to
31888         build_common_tree_nodes.
31889
31890 2010-04-18  Matthias Klose  <doko@ubuntu.com>
31891
31892         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
31893
31894 2010-04-18  Ira Rosen  <irar@il.ibm.com>
31895
31896         PR tree-optimization/43771
31897         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
31898         load permutation doesn't have gaps.
31899
31900 2010-04-18  Jan Hubicka  <jh@suse.cz>
31901
31902         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
31903         (sse_prologue_save_insn expander): Use new pattern.
31904         (sse_prologue_save_insn1): New pattern and splitter.
31905         (sse_prologue_save_insn): Update to deal also with 64bit aligned
31906         blocks.
31907         * i386.c (setup_incoming_varargs_64): Do not compute jump
31908         destination here.
31909         (ix86_gimplify_va_arg): Update alignment needed.
31910         (ix86_local_alignment): Do not align all local arrays to 128bit.
31911
31912 2010-04-17  Jan Hubicka  <jh@suse.cz>
31913
31914         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
31915
31916 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31917
31918         * arm.md (negdi2): Remove redundant code to force values into a
31919         register.
31920
31921 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31922
31923         * arm/bpabi.S: Add EABI alignment attributes to objects.
31924         * arm/bpabi-v6m.S: Likewise.
31925         * arm/crti.asm: Likewise.
31926         * arm/crtn.asm: Likewise.
31927         * arm/lib1funcs.asm: Likewise.
31928         * arm/libunwind.S: Likewise.
31929
31930 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31931
31932         * arm-protos.h (tune_params): New structure.
31933         * arm.c (current_tune): New variable.
31934         (arm_constant_limit): Delete.
31935         (struct processors): Add pointer to the tune parameters.
31936         (arm_slowmul_tune): New tuning option.
31937         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
31938         (all_cores): Adjust to pick up the tuning model.
31939         (arm_constant_limit): New function.
31940         (arm_override_options): Select the appropriate tuning model.  Delete
31941         initialization of arm_const_limit.
31942         (arm_split_constant): Use the new constant-limit model.
31943         (arm_rtx_costs): Pick up the current tuning model.
31944         * arm.md (is_strongarm, is_xscale): Delete.
31945         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
31946         for Xscale variant architectures.
31947         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
31948
31949 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31950
31951         * config/arm/arm.c (arm_gen_constant): Remove unused variable
31952         can_shift.
31953         (arm_rtx_costs_1): Remove unused variable extra_cost.
31954         (arm_unwind_emit_set): Use variable offset.
31955         (thumb1_output_casesi): Remove unused variable flags.
31956
31957 2010-04-16  Jeff Law  <law@redhat.com>
31958
31959         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
31960         needing assignment rather than doing a two-phase assignment.  Remove
31961         unused variable 'm'.
31962
31963 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31964
31965         PR bootstrap/43767
31966         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
31967
31968 2010-04-16  Doug Kwan  <dougkwan@google.com>
31969
31970         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
31971         (next_operand_entry_id): New static variable.
31972         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
31973         (add_to_ops_vec): Assigned unique ID to operand entry.
31974         (struct oecount_s): New field ID.
31975         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
31976         (undistribute_ops_list): Assign unique IDs to oecounts.
31977         (init_reassoc): reset next_operand_entry_id.
31978
31979 2010-04-16  Doug Kwan  <dougkwan@google.com>
31980
31981         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
31982         missing left parenthesis.
31983
31984 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
31985
31986         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
31987         *btdi_rex64 using SWI48 mode iterator.
31988         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
31989         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
31990         *jcc_btdi_mask_rex64.
31991
31992 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
31993
31994         * double-int.h (tree_to_double_int): Convert to macro.
31995         * double-int.c (tree_to_double_int): Remove.
31996
31997 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31998
31999         PR debug/43762
32000         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32001         with want_address 2 and in case a single element list might be
32002         possible, call it again with want_address 0.
32003
32004 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32005
32006         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32007         case 'W' print operands for HI mode.
32008         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32009         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32010         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32011         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32012
32013         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32014
32015         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32016         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32017         #xx:3 and #xx:4 mode.
32018
32019         * config/h8300/h8300.md (inverted load with HImode dest): Add
32020         support for H8300SX.
32021
32022         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32023         satisfy 'U' constraint.
32024
32025 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32026
32027         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32028         * configure: Regenerate.
32029         * config.in: Regenerate.
32030         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32031         works.
32032
32033 2010-04-16  Richard Guenther  <rguenther@suse.de>
32034
32035         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32036         (struct tree_decl_common): ... here.
32037         (DECL_PT_UID): Adjust.
32038         (SET_DECL_PT_UID): Likewise.
32039         (DECL_PT_UID_SET_P): Likewise.
32040
32041 2010-04-16  Richard Guenther  <rguenther@suse.de>
32042
32043         PR tree-optimization/43572
32044         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32045         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32046         * tree-flow.h (is_call_clobbered): Remove.
32047         * tree-flow-inline.h (is_call_clobbered): Likewise.
32048         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32049         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32050         (execute_return_slot_opt): Adjust.
32051         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32052         check for call clobbered vars here.
32053         (find_tail_calls): Move tailcall verification to the
32054         proper place.
32055
32056 2010-04-16  Diego Novillo  <dnovillo@google.com>
32057
32058         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32059
32060 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32061
32062         PR target/40603
32063         * config/arm/arm.md (cbranchqi4): New pattern.
32064         * config/arm/predicates.md (const0_operand,
32065         cbranchqi4_comparison_operator): New predicates.
32066
32067 2010-04-16  Richard Guenther  <rguenther@suse.de>
32068
32069         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32070         (dump_gimple_stmt): Likewise.
32071
32072 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32073
32074         * recog.h (struct recog_data): New field is_operator.
32075         (struct insn_operand_data): New field is_operator.
32076         * recog.c (extract_insn): Set recog_data.is_operator.
32077         * genoutput.c (output_operand_data): Emit code to set the
32078         is_operator field.
32079         * reload.c (find_reloads): Use it rather than testing for an
32080         empty constraint string.
32081
32082         PR target/41514
32083         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32084         If the previous insn is a cbranchsi4_insn with the same arguments,
32085         omit the compare instruction.
32086
32087         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32088         register, inputs must be low registers and we need a low register
32089         scratch.  Handle alternative 2 like alternative 3.
32090
32091 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32092
32093         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32094         don't call get_addr on both.  If one expression is a VALUE and
32095         the other a REG, check VALUE's locs if the REG isn't among them.
32096
32097 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32098
32099         * config/sh/sh.h (sh_frame_pointer_required): New function.
32100         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32101         (flag_omit_frame_pointer) Set.
32102         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32103         (rounded_frame_size): Adjust size with outgoing_args_size.
32104         (sh_set_return_address): Must return from stack pointer.
32105         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32106         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32107         (ACCUMULATE_OUTGOING_ARGS): Define.
32108         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32109         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32110
32111 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32112
32113         PR target/43471
32114         * config/sh/sh.c (sh_legitimize_reload_address): Use
32115         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32116         Remove a unneeded check for offset_base.
32117
32118 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32119
32120         * configure: Regenerated.
32121
32122 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32123
32124         * config/s390/s390.c (s390_call_save_register_used): Switch back
32125         to HARD_REGNO_NREGS.
32126
32127 2010-04-15  Richard Guenther  <rguenther@suse.de>
32128
32129         * alias.c (alias_set_subset_of): Handle alias-set zero
32130         child properly.
32131
32132 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32133             Julian Brown  <julian@codesourcery.com>
32134
32135         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32136         alternatives according to use of high and low regs.
32137         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32138         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32139         optimizing for size on Thumb-2.
32140
32141 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32142
32143         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32144
32145 2010-04-15  Richard Guenther  <rguenther@suse.de>
32146
32147         * tree-ssa-structalias.c (struct variable_info): Add
32148         is_fn_info flag.
32149         (new_var_info): Initialize it.
32150         (dump_constraints): Support printing last added constraints.
32151         (debug_constraints): Adjust.
32152         (dump_constraint_graph): Likewise.
32153         (make_heapvar_for): Check for NULL cfun.
32154         (get_function_part_constraint): New function.
32155         (get_fi_for_callee): Likewise.
32156         (find_func_aliases): Properly implement IPA PTA constraints.
32157         (process_ipa_clobber): New function.
32158         (find_func_clobbers): Likewise.
32159         (insert_into_field_list_sorted): Remove.
32160         (create_function_info_for): Properly allocate vars for IPA mode.
32161         Do not use insert_into_field_list_sorted.
32162         (create_variable_info_for): Properly generate constraints for
32163         global vars in IPA mode.
32164         (dump_solution_for_var): Always dump the solution.
32165         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32166         (find_what_var_points_to): Adjust.
32167         (pt_solution_set): Change.
32168         (pt_solution_ior_into): New function.
32169         (pt_solution_empty_p): Export.
32170         (pt_solution_includes_global): Adjust.
32171         (pt_solution_includes_1): Likewise.
32172         (pt_solutions_intersect_1): Likewise.
32173         (dump_sa_points_to_info): Check some invariants.
32174         (solve_constraints): Move constraint dumping ...
32175         (compute_points_to_sets): ... here.
32176         (ipa_pta_execute): ... and here.
32177         (compute_may_aliases): Do not re-compute points-to info
32178         locally if IPA info is available.
32179         (ipa_escaped_pt): New global var.
32180         (ipa_pta_execute): Properly implement IPA PTA.
32181         * tree-into-ssa.c (dump_decl_set): Support dumping
32182         decls not in referenced-vars.
32183         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32184         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32185         (dump_points_to_solution): Likewise.
32186         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32187         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32188         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32189         (copy_decl_to_var): Copy DECL_PT_UID.
32190         (copy_result_decl_to_var): Likewise.
32191         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32192         (copy_node_stat): Copy it.
32193         * tree.h (DECL_PT_UID): New macro.
32194         (SET_DECL_PT_UID): Likewise.
32195         (DECL_PT_UID_SET_P): Likewise.
32196         (struct tree_decl_minimal): Add pt_uid member.
32197         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32198         (pt_solution_empty_p): Declare.
32199         (pt_solution_set): Adjust.
32200         (ipa_escaped_pt): Declare.
32201         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
32202         * gimple-pretty-print.c (pp_points_to_solution): New function.
32203         (dump_gimple_call): Dump call clobber/use information.
32204         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
32205         * tree-pass.h (TDF_ALIAS): New dump option.
32206         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
32207         * doc/invoke.texi (-fipa-pta): Update documentation.
32208
32209 2010-04-15  Richard Guenther  <rguenther@suse.de>
32210
32211         * Makefile.in (OBJS-common): Add gimple-fold.o.
32212         (gimple-fold.o): New rule.
32213         * tree.h (maybe_fold_offset_to_reference,
32214         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
32215         prototypes ...
32216         * gimple.h: ... here.
32217         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
32218         may_propagate_address_into_dereference): Move prototypes ...
32219         * gimple.h: ... here.
32220         * tree-ssa-ccp.c (get_symbol_constant_value,
32221         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
32222         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
32223         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
32224         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
32225         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
32226         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
32227         gimplify_and_update_call_from_tree): Move ...
32228         * gimple-fold.c: ... here.  New file.
32229         (ccp_fold_builtin): Rename to ...
32230         (gimple_fold_builtin): ... this.
32231         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
32232
32233 2010-04-15  Richard Guenther  <rguenther@suse.de>
32234
32235         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
32236         fit_double_type, force_fit_type_double, add_double_with_sign,
32237         neg_double, mul_double_with_sign, lshift_double, rshift_double,
32238         lrotate_double, rrotate_double, div_and_round_double): Move ...
32239         * double-int.c: ... here.
32240         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
32241         add_double, neg_double, mul_double_with_sign, mul_double,
32242         lshift_double, rshift_double, lrotate_double, rrotate_double,
32243         div_and_round_double): Move prototypes ...
32244         * double-int.h: ... here.
32245
32246 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
32247
32248         PR target/43742
32249         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
32250         matching constraints to ensure inputs match the output.
32251
32252 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32253
32254         PR target/43742
32255         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
32256         in an input-only operand.
32257
32258 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
32259
32260         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
32261         (double_int_not, double_int_lshift, double_int_rshift): Declare.
32262         (double_int_negative_p): Convert to static inline function.
32263         * double-int.c (double_int_lshift, double_int_lshift): New functions.
32264         (double_int_negative_p): Remove.
32265         * tree.h (lshift_double, rshift_double):
32266         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
32267         * fold-const.c (fold_convert_const_int_from_real,
32268         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
32269         (lshift_double): Change type of arith argument to bool.
32270         (rshift_double): Change type of arith argument to bool. Correct
32271         comment.
32272         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32273
32274 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
32275
32276         PR target/21803
32277         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
32278         at the start and end of the then/else blocks, and omit them from the
32279         conversion.
32280         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
32281         argument; all callers changed.  Pass zero to old_insns_match_p instead.
32282         (flow_find_head_matching_sequence): New function.
32283         (old_insns_match_p): Check REG_EH_REGION notes for calls.
32284         * basic-block.h (flow_find_cross_jump,
32285         flow_find_head_matching_sequence): Declare functions.
32286
32287 2010-04-14  Jason Merrill  <jason@redhat.com>
32288
32289         PR c++/36625
32290         * c-common.c (attribute_takes_identifier_p): New fn.
32291         * c-common.h: Declare it.
32292
32293 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32294
32295         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
32296         splitter condition.
32297         (*udivmod<mode>4): Ditto.
32298
32299 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32300
32301         * config/i386/i386.md (maxmin_int): Rename code attribute from
32302         maxminiprefix and update all users.
32303         (maxmin_float): Ditto from maxminfprefix.
32304         (logic): Ditto from logicprefix.
32305         (absneg_mnemonic): Ditto from absnegprefix.
32306         * config/i386/mmx.md: Update all users of maxminiprefix,
32307         maxminfprefix and logicprefix for rename.
32308         * config/i386/sse.md: Ditto.
32309         * config/i386/sync.md (sync_<code><mode>): Update for
32310         logicprefix rename.
32311
32312 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32313
32314         PR 42966
32315         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
32316         warnings converted to errors.
32317
32318 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32319
32320         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
32321         used insn_type variable.
32322         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
32323         to avoid set-but-not-used warning.
32324
32325 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32326
32327         * df-core.c (df_ref_debug): Change format string placeholder
32328         from 0x%x to %#x.
32329         * dwarf2asm.c (dw2_asm_output_data_raw,
32330         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
32331         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
32332         * dwarf2out.c (output_cfi, output_cfi_directive,
32333         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
32334         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
32335         Ditto.
32336         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
32337         * print-rtl.c (print_rtx): Ditto.
32338
32339 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32340
32341         PR middle-end/42694
32342         * builtins.c (expand_builtin_pow_root): New function to expand pow
32343         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
32344         series of sqrt and cbrt calls under -ffast-math.
32345         (expand_builtin_pow): Call it.
32346
32347 2010-04-14  Michael Matz  <matz@suse.de>
32348
32349         PR tree-optimization/42963
32350         * tree-cfg.c (touched_switch_bbs): New static variable.
32351         (group_case_labels_stmt): New function broken out from ...
32352         (group_case_labels): ... here, use the above.
32353         (start_recording_case_labels): Allocate touched_switch_bbs.
32354         (end_recording_case_labels): Deallocate it, call
32355         group_case_labels_stmt.
32356         (gimple_redirect_edge_and_branch): Remember index of affected BB.
32357
32358 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32359
32360         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
32361         from insn template.
32362
32363 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32364
32365         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
32366
32367 2010-04-13  Jan Hubicka  <jh@suse.cz>
32368
32369         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32370         of optimized out static functions.
32371         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32372         cost computation.  Also sanity check for overflows.
32373         (update_caller_keys): Update cgraph_edge_badness call; properly
32374         update fibheap and sanity check that it is up to date.
32375         (add_new_edges_to_heap): Update cgraph_edge_badness.
32376         (cgraph_decide_inlining_of_small_function): Likewise;
32377         add sanity checking that badness in heap is up to date;
32378         improve dumping of reason; Update badness of calls to the
32379         offline copy of function currently inlined; dump badness
32380         of functions not inlined because of unit growth limits.
32381
32382 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32383
32384         PR middle-end/32628
32385         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32386         because of sign-extension change when converting to sizetype here...
32387         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32388
32389         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32390         the folding to constants.  Remove redundant final conversion.
32391         (fold_binary) <associate>: Do not associate if the re-association of
32392         constants alone overflows.
32393         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32394         to the end of the list.
32395         (multiple_of_p) <COND_EXPR>: New case.
32396
32397 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32398
32399         * opt-functions.awk (opt_sanitized_name): New.
32400         (opt_enum): New.
32401         * optc-gen.awk: Use it
32402         * opth-gen.awk: Use it.
32403
32404 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32405
32406         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32407         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32408         children.  Call replace_uses_with_default_def_ssa_name to handle
32409         SSA_NAES on lhs.
32410
32411 2010-04-13  Michael Matz  <matz@suse.de>
32412
32413         PR middle-end/43730
32414         * builtins.c (expand_builtin_interclass_mathfn): Also create
32415         a register if the predicate doesn't match.
32416
32417 2010-04-13  Diego Novillo  <dnovillo@google.com>
32418
32419         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32420         * c-pch.c: Include timevar.h.
32421         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32422         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32423         * ggc-common.c: Include timevar.h.
32424         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32425         * timevar.def (TV_PCH_SAVE): Define.
32426         (TV_PCH_CPP_SAVE): Define.
32427         (TV_PCH_PTR_REALLOC): Define.
32428         (TV_PCH_PTR_SORT): Define.
32429         (TV_PCH_RESTORE): Define.
32430         (TV_PCH_CPP_RESTORE): Define.
32431
32432 2010-04-13  Michael Matz  <matz@suse.de>
32433
32434         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32435         into MINUS_EXPRs.
32436         (can_reassociate_p): New function.
32437         (break_up_subtract_bb, reassociate_bb): Use it.
32438
32439 2010-04-13  Richard Guenther  <rguenther@suse.de>
32440
32441         PR bootstrap/43737
32442         * builtins.c (c_readstr): Fix assert.
32443
32444 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32445
32446         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32447         when generating cltd insn.
32448
32449         (*ashl<mode>3_1): Remove special handling for register operand 2.
32450         (*ashlsi3_1_zext): Ditto.
32451         (*ashlhi3_1): Ditto.
32452         (*ashlhi3_1_lea): Ditto.
32453         (*ashlqi3_1): Ditto.
32454         (*ashlqi3_1_lea): Ditto.
32455         (*<shiftrt_insn><mode>3_1): Ditto.
32456         (*<shiftrt_insn>si3_1_zext): Ditto.
32457         (*<shiftrt_insn>qi3_1_slp): Ditto.
32458         (*<rotate_insn><mode>3_1): Ditto.
32459         (*<rotate_insn>si3_1_zext): Ditto.
32460         (*<rotate_insn>qi3_1_slp): Ditto.
32461
32462 2010-04-13  Richard Guenther  <rguenther@suse.de>
32463
32464         * tree-ssa-structalias.c (callused_id): Remove.
32465         (call_stmt_vars): New.
32466         (get_call_vi): Likewise.
32467         (lookup_call_use_vi): Likewise.
32468         (lookup_call_clobber_vi): Likewise.
32469         (get_call_use_vi): Likewise.
32470         (get_call_clobber_vi): Likewise.
32471         (make_transitive_closure_constraints): Likewise.
32472         (handle_const_call): Adjust to do per-call call-used handling.
32473         (handle_pure_call): Likewise.
32474         (find_what_var_points_to): Remove general callused handling.
32475         (init_base_vars): Likewise.
32476         (init_alias_vars): Initialize call_stmt_vars.
32477         (compute_points_to_sets): Process call-used and call-clobbered
32478         vars for call statements.
32479         (delete_points_to_sets): Free call_stmt_vars.
32480
32481 2010-04-13  Richard Guenther  <rguenther@suse.de>
32482
32483         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32484         Only add RW dependence for dependence distance zero.
32485         Adjust maximal vectorization factor according to dependences.
32486         Move alignment handling ...
32487         (vect_find_same_alignment_drs): ... here.  New function.
32488         (vect_analyze_data_ref_dependences): Adjust.
32489         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32490         (vect_analyze_data_refs): Adjust minimal vectorization factor
32491         according to data references.
32492         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32493         dependences before determining the vectorization factor.
32494         Analyze alignment after determining the vectorization factor.
32495         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32496         dependences before alignment.
32497         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32498         Adjust prototype.
32499         (vect_analyze_data_refs): Likewise.
32500         (MAX_VECTORIZATION_FACTOR): New define.
32501
32502 2010-04-13  Duncan Sands  <baldrick@free.fr>
32503
32504         * except.h (lang_eh_type_covers): Remove.
32505         * except.c (lang_eh_type_covers): Likewise.
32506
32507 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32508             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32509
32510         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32511         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32512         UNITS_PER_LONG where it is ABI relevant.
32513         (s390_return_addr_rtx): Likewise.
32514         (s390_back_chain_rtx): Likewise.
32515         (s390_frame_area): Likewise.
32516         (s390_frame_info): Likewise.
32517         (s390_initial_elimination_offset): Likewise.
32518         (save_gprs): Likewise.
32519         (s390_emit_prologue): Likewise.
32520         (s390_emit_epilogue): Likewise.
32521         (s390_function_arg_advance): Likewise.
32522         (s390_function_arg): Likewise.
32523         (s390_va_start): Likewise.
32524         (s390_gimplify_va_arg): Likewise.
32525         (s390_function_profiler): Likewise.
32526         (s390_optimize_prologue): Likewise.
32527         (s390_rtx_costs): Likewise.
32528         (s390_secondary_reload): Likewise.
32529         (s390_promote_function_mode): Likewise.
32530         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32531         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32532         registers available.
32533         (s390_unwind_word_mode): New function.
32534         (s390_function_value): Split 64 bit values into register pair if
32535         used as return value.
32536         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32537         function call parameters.  Handle parallels.
32538         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32539         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32540         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32541         (s390_expand_setmem): Remove unused variable src_addr.
32542         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32543         deal with 64 bit registers.
32544         * config/s390/s390.h: Define __zarch__ predefined macro.
32545         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32546         (UNITS_PER_LONG): New macro.
32547         * libjava/include/s390-signal.h: Define extended ucontext
32548         structure containing the upper halfs of the 64 bit registers.
32549
32550 2010-04-13  Simon Baldwin  <simonb@google.com>
32551
32552         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32553
32554 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32555
32556         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32557         rvalue on the RHS if the LHS is of a non-renamable type.
32558         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32559
32560 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32561
32562         * gcc.c (cc1_options): Handle -iplugindir before processing
32563         the cc1 spec. Only add -iplugindir once.
32564         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32565         found.
32566         * common.opt (iplugindir): Remove `Separate' property, initialize.
32567         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32568         option.
32569         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32570         (distclean): Remove plugin dir.
32571         * doc/invoke.texi: Document -iplugindir.
32572
32573 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32574
32575         * doc/plugins.texi (Loading Plugins): Document short
32576         -fplugin=foo option.
32577         (Plugin API): Mention default_plugin_dir_name function.
32578
32579         * gcc.c (find_file_spec_function): Add new declaration.
32580         (static_spec_func): Use it for "find-file".
32581         (find_file_spec_function): Add new function.
32582         (cc1_options): Add -iplugindir option if -fplugin* options found.
32583
32584         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32585
32586         * plugin.c (add_new_plugin): Updated comment, and handle short
32587         plugin name.
32588         (default_plugin_dir_name): Added new function.
32589
32590         * common.opt (iplugindir): New option to set the plugin directory.
32591
32592 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32593
32594         * config/i386/i386.md (any_rotate): New code iterator.
32595         (rotate_insn): New code attribute.
32596         (rotate): Ditto.
32597         (SWIM124): New mode iterator.
32598         (<rotate_insn>ti3): New expander.
32599         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32600         any_rotate code iterator.
32601         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32602         using any_rotate code iterator and SWIM124 mode iterator.
32603         (ix86_rotlti3): New insn_and_split pattern.
32604         (ix86_rotrti3): Ditto.
32605         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32606         ix86_rotl{di,ti}3 patterns.
32607         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32608         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32609         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32610         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32611         code iterator and SWI mode iterator.
32612         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32613         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32614         code iterator.
32615         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32616         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32617         (bswap rotatert splitter): Add splitter.
32618         (bswap splitter): Macroize splitter using any_rotate code iterator.
32619         Add insn predicate to split only for TARGET_USE_XCHGB or when
32620         optimizing function for size.
32621
32622 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32623
32624         * config/pa/pa.c (emit_move_sequence): Remove use of
32625         deleted variable flag_argument_noalias.
32626
32627 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32628
32629         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32630         configurations.
32631         Add to unsupported targets list.
32632         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32633         sparc*-sun-solaris2.[567]* from target lists.
32634         * configure: Regenerate.
32635         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32636         removal.
32637         Remove Solaris 7 patch references.
32638         (Specific, sparc-sun-solaris2.7): Removed.
32639         (sparc-sun-solaris2*): Update Solaris 7 example.
32640         (sparc64-*-solaris2*): Likewise.
32641
32642 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32643
32644         * config.build (alpha*-dec-osf4*): Remove.
32645         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32646         of obsolete configurations.
32647         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32648         support.
32649         * config/alpha/t-osf4: Renamed to ...
32650         * config/alpha/t-osf5: ... this.
32651         * config/alpha/osf.h: Renamed to ...
32652         * config/alpha/osf5.h: ... this.
32653         Merged old osf5.h contents.
32654         Update comments.
32655         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32656         (EXTRA_SPECS): Removed.
32657         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32658         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32659         Document that.
32660
32661 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32662
32663         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32664
32665 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32666
32667         PR/43702
32668         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32669         __thiscall convention.
32670
32671 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32672
32673         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32674         orig_base.
32675         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32676
32677 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32678
32679         * function.c (assign_parms_initialize_all): Add unused attribute
32680         to fntype.
32681
32682 2010-04-12  Richard Guenther  <rguenther@suse.de>
32683
32684         * gsstruct.def (GSS_CALL): New.
32685         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32686         * gimple.h: Include tree-ssa-alias.h.
32687         (struct gimple_statement_call): New.
32688         (union gimple_statement_struct_d): Add gimple_call member.
32689         (gimple_call_reset_alias_info): Declare.
32690         (gimple_call_use_set): New function.
32691         (gimple_call_clobber_set): Likewise.
32692         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32693         * gimple.c (gimple_call_reset_alias_info): New function.
32694         (gimple_build_call_1): Call it.
32695         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32696         * tree-inline.c (remap_gimple_stmt): Likewise.
32697         (expand_call_inline): Remove callused handling.
32698         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32699         * tree-dfa.c (dump_variable): Likewise.
32700         * tree-parloops.c (parallelize_loops): Likewise.
32701         * tree-ssa.c (init_tree_ssa): Likewise.
32702         (delete_tree_ssa): Likewise.
32703         * tree-flow-inline.h (is_call_used): Remove.
32704         * tree-flow.h (struct gimple_df): Remove callused member.
32705         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32706         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32707         (ref_maybe_used_by_call_p_1): Simplify.
32708         (call_may_clobber_ref_p_1): Likewise.
32709         * tree-ssa-structalias.c (compute_points_to_sets): Set
32710         the call stmt used and clobbered sets.
32711         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32712         (find_tail_calls): Verify the tail call.
32713
32714 2010-04-12  Richard Guenther  <rguenther@suse.de>
32715
32716         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32717         single-iteration always-inline inlining.
32718         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32719         (cgraph_decide_inlining): Do not handle always-inline specially.
32720         (try_inline): Remove always-inline cycle detection special case.
32721         Do not recurse on always-inlines.
32722         (cgraph_early_inlining): Do not iterate if not optimizing.
32723         (cgraph_gate_early_inlining): remove.
32724         (pass_early_inline): Run unconditionally.
32725         (gate_cgraph_decide_inlining): New function.
32726         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32727         not inlining or optimizing.
32728         (cgraph_decide_inlining_of_small_functions): Also consider
32729         always-inline functions.
32730         (cgraph_default_inline_p): Return true for nodes which should
32731         disregard inline limits.
32732         (estimate_function_body_sizes): Assume zero size and time for
32733         nodes which are marked as disregarding inline limits.
32734         (cgraph_decide_recursive_inlining): Do not perform recursive
32735         inlining on always-inline nodes.
32736
32737 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32738
32739         PR bootstrap/43699
32740         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32741         for exprs satisfying handled_component_p.
32742
32743 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32744
32745         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32746         non-constant aggregate elements.
32747
32748         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32749         is a real initialization.
32750
32751 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32752
32753         PR c/36774
32754         * c-decl.c (start_function): Move forward check for nested function.
32755
32756 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32757
32758         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32759         * config/sh/sh.c: Include reload.h.
32760         (sh_legitimize_reload_address): New.
32761         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32762         sh_legitimize_reload_address.
32763
32764 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32765
32766         * config/sh/sh.md (*movqi_pop): New insn pattern.
32767         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32768
32769 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32770
32771         * config/i386/i386.md (any_shiftrt): New code iterator.
32772         (shiftrt_insn): New code attribute.
32773         (shiftrt): Ditto.
32774         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32775         using any_shiftrt code iterator.
32776         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32777         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32778         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32779         pattern from corresponding peephole2 patterns.
32780         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32781         using any_shiftrt code iterator.
32782         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32783         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32784         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32785         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32786         *{ashr,lshr}<mode>3_cmp_zext.
32787         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32788
32789 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32790
32791         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32792         scratch register.
32793         (*lshr<mode>3_cconly): Ditto.
32794
32795 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32796
32797         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32798         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32799         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32800         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32801         DWI mode iterator.
32802         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32803         from corresponding peephole2 patterns.
32804         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32805         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32806         and *lshrdi3_1_rex64 using SWI mode iterator.
32807         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32808         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32809         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32810         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32811         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32812         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32813         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32814         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32815         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32816         SWI mode iterator.
32817
32818 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32819
32820         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32821         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32822         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32823         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32824         DWI mode iterator.
32825         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32826         from corresponding peephole2 patterns.
32827         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32828         (ashrsi3_cvt): Rename from ashrsi3_31.
32829         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32830         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32831         and x86_64_shift_adj_3 using SWI48 mode iterator.
32832         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32833         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32834         and *ashrdi3_1_rex64 using SWI mode iterator.
32835         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32836         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32837         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32838         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32839         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32840         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32841         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32842         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32843         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32844         SWI mode iterator.
32845         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
32846         * config/i386/i386.c (ix86_split_ashr): Update for renamed
32847         x86_shift<mode>_adj_3 expanders.
32848
32849 2010-04-10  Wei Guozhi  <carrot@google.com>
32850
32851         PR target/42601
32852         * config/arm/arm.c (arm_pic_static_addr): New function.
32853         (legitimize_pic_address): Call arm_pic_static_addr when it detects
32854         a static symbol.
32855         (arm_output_addr_const_extra): Output expression for new pattern.
32856         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
32857
32858 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
32859
32860         * ira-costs.c (record_reg_classes): Ignore alternatives that are
32861         not enabled.
32862
32863         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
32864         * web.c: Include "insn-config.h" and "recog.h".
32865         (union_match_dups): New function.
32866         (web_main): Call it.
32867         (union_defs): Don't try to recognize match_dups.
32868
32869         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
32870         if doing so would replace the entire pattern.
32871
32872 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32873
32874         PR target/43707
32875         PR target/43709
32876         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
32877         and splitter pattern.  Change splitter operand 1 predicate to
32878         nonmemory_operand.
32879
32880 2010-04-09  Martin Jambor  <mjambor@suse.cz>
32881
32882         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
32883         lattices are addresses of CONST_DECLs with the same initial value.
32884         (ipcp_print_all_lattices): Print values of CONST_DECLs.
32885         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
32886
32887 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
32888             Bernd Schmidt  <bernds@codesourcery.com>
32889
32890         * loop-invariant.c (replace_uses): New static function.
32891         (move_invariant_reg): Use it to ensure we can replace the uses.
32892
32893 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
32894
32895         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
32896         function template.
32897         (picochip_override_options): Enable section anchors only above -O1.
32898         (picochip_reorg): Fixed a couple of build warnings.
32899
32900 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32901
32902         * configure.ac (plugin -rdynamic test): Log result.
32903         * configure: Regenerate.
32904         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
32905         (RDYNAMIC_SPEC): Define.
32906         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
32907
32908 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32909
32910         * configure.ac: Determine Sun ld version numbers.
32911         (comdat_group): Restrict GNU ld version checks to gld.
32912         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
32913         (enable_comdat): Support --enable-comdat.
32914         * configure: Regenerate.
32915         * doc/install.texi (Configuration): Document --enable-comdat.
32916
32917 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32918
32919         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
32920         * config/sol2-gld.h: ... here.
32921         * config.gcc (sparc*-*-solaris2*): Reflect this.
32922         (i[34567]86-*-solaris2*): Use it.
32923
32924 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
32925
32926         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
32927         setup_clocks_p.
32928         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
32929
32930 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32931
32932         PR 42965
32933         * diagnostic.c (diagnostic_initialize): Initialize
32934         some_warnings_are_errors.
32935         (diagnostic_finish): New.
32936         (diagnostic_action_after_output): Call it before exiting.
32937         (diagnostic_report_diagnostic): Do not print message here. Set
32938         some_warnings_are_errors.
32939         * diagnostic.h (diagnostic_context): Delete
32940         issue_warnings_are_errors_message. Add some_warnings_are_errors.
32941         (diagnostic_finish): Declare.
32942         * toplev.c (toplev_main): Call it before exit.
32943
32944 2010-04-09  Jason Merrill  <jason@redhat.com>
32945
32946         PR c++/42623
32947         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
32948         for incomplete type.
32949
32950         PR c++/41788
32951         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
32952         based on a warning flag.
32953
32954 2010-04-09  Richard Guenther  <rguenther@suse.de>
32955
32956         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
32957
32958 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
32959
32960         PR bootstrap/43684
32961         * varasm.c (default_assemble_visibility): Wrap vars that are
32962         set, but unused, by targets without GAS.
32963         * config/rs6000/rs6000.c (paired_emit_vector_compare):
32964         Remove set, but unused, vars.
32965         (rs6000_legitimize_tls_address): Likewise.
32966         (altivec_expand_dst_builtin): Likewise.
32967         * config/darwin.c (machopic_classify_symbol): Likewise.
32968         (machopic_indirection_name): Likewise.
32969
32970 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32971
32972         * config/i386/i386.md (DWI): New mode iterator.
32973         (S): New mode attribute.
32974         (shift_operand): Ditto.
32975         (shift_immediate_operand): Ditto.
32976         (ashl_input_operand): Ditto.
32977         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
32978         using SDWIM mode iterator.
32979         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32980         pattern from *ashl{di,ti}3_1 and corresponding splitters using
32981         DWI mode iterator.
32982         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
32983         from corresponding peephole2 patterns.
32984         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
32985         and x86_64_shift_adj_1 using SWI48 mode iterator.
32986         (x86_shift<mode>_adj_2): Ditto.
32987         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
32988         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
32989         using SWI48 mode iterator.
32990         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
32991         *ashldi3_cmp_rex64 using SWI mode iterator.
32992         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
32993         *ashldi3_cconly_rex64 using SWI mode iterator.
32994         * config/i386/i386.c (ix86_split_ashl): Update for renamed
32995         x86_shift<mode>_adj_{1,2}.
32996         (ix86_split_ashr): Ditto.
32997         (ix86_split_lshr): Ditto.
32998
32999 2010-04-09  Richard Guenther  <rguenther@suse.de>
33000
33001         * target.h (builtin_conversion): Pass in input and output types.
33002         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33003         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33004         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33005         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33006
33007         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33008         Handle AVX modes.
33009         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33010
33011 2010-04-09  Richard Guenther  <rguenther@suse.de>
33012
33013         PR target/43152
33014         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33015
33016 2010-04-09  Richard Guenther  <rguenther@suse.de>
33017
33018         * tree-vectorizer.h (struct _stmt_vec_info): Document
33019         that vectype is the type of the LHS.
33020         (supportable_widening_operation, supportable_narrowing_operation):
33021         Get both input and output vector types as arguments.
33022         (vect_is_simple_use_1): Declare.
33023         (get_same_sized_vectype): Likewise.
33024         * tree-vect-loop.c (vect_determine_vectorization_factor):
33025         Set STMT_VINFO_VECTYPE to the vector type of the def.
33026         (vectorizable_reduction): Adjust.
33027         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33028         Adjust.  Specify the output vector type.
33029         (vect_pattern_recog_1): Adjust.
33030         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33031         (vectorizable_call): Adjust.
33032         (vectorizable_conversion): Likewise.
33033         (vectorizable_operation): Likewise.
33034         (vectorizable_type_demotion): Likewise.
33035         (vectorizable_type_promotion): Likewise.
33036         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33037         the def.
33038         (vect_is_simple_use_1): New function.
33039         (supportable_widening_operation): Get both input and output
33040         vector types.
33041         (supportable_narrowing_operation): Likewise.
33042         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33043
33044 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33045
33046         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33047         __thiscall and _thiscall as predefined macros.
33048         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33049         thiscall attribute handling.
33050         (ix86_comp_type_attributes): Likewise.
33051         (ix86_function_regparm): Likewise.
33052         (ix86_return_pops_args): Likewise.
33053         (init_cumulative_args): Likewise.
33054         (find_drap_reg): Likewise.
33055         (ix86_static_chain): Likewise.
33056         (x86_this_parameter): Likewise.
33057         (x86_output_mi_thunk): Likewise.
33058         (ix86_attribute_table): Add description for thiscall attribute.
33059         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33060         * doc/extend.texi: Add documentation for thiscall.
33061
33062 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33063
33064         PR c++/28584
33065         * c.opt (Wint-to-pointer-cast): Available in C++.
33066         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33067
33068 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33069
33070         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33071         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33072         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33073         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33074         function type instead.  Reorder and simplify checks.
33075
33076         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33077
33078 2010-04-08  Jing Yu  <jingyu@google.com>
33079             Zdenek Dvorak  <ook@ucw.cz>
33080
33081         PR tree-optimization/42720
33082         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33083         loop unswitch conditions here from ...
33084         (tree_unswitch_single_loop): ... here.
33085
33086 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33087
33088         * tree-if-conv.c: Fix comments and simplify logic.
33089
33090 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33091
33092         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33093         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33094         (main_tree_if_conversion): Update call to tree_if_conversion.
33095
33096 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33097
33098         PR 42485
33099         * doc/invoke.texi (-b,-V): Delete.
33100         * doc/tm.texi: Do not mention -b.
33101         * gcc.c (display_help): Delete -b and -V.
33102         (process_command): Delete -b and -V.
33103         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33104
33105 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33106             Wolfgang Gellerich  <gellerich@de.ibm.com>
33107
33108         Implement target hook for loop unrolling
33109         * target.h (loop_unroll_adjust): Add a new target hook function.
33110         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33111         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33112         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33113         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33114         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33115         target hook.
33116         (decide_unroll_stupid): Likewise.
33117
33118 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33119
33120         PR target/43643
33121         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33122
33123 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33124
33125         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33126         (Specific, *-*-solaris2*): Likewise.
33127         Don't prefer Sun as over GNU as.
33128
33129 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33130
33131         * config/s390/s390.c (override_options): Adjust the z10 defaults
33132         for max-unroll-times, max-completely-peeled-insns
33133         and max-completely-peel-times.
33134
33135 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33136
33137         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33138         instructions for z10.
33139         (s390_expand_setmem): Likewise.
33140         (s390_expand_cmpmem): Likewise.
33141
33142 2010-04-08  Richard Guenther  <rguenther@suse.de>
33143
33144         PR tree-optimization/43679
33145         * tree-ssa-pre.c (eliminate): Only propagate copies.
33146
33147 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33148
33149         PR bootstrap/43681
33150         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33151         set but not used variable warning.
33152
33153 2010-04-08  Wei Guozhi  <carrot@google.com>
33154
33155         PR target/41653
33156         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33157         (arm_size_rtx_costs): Call the new function when optimized for size.
33158
33159 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33160
33161         PR debug/43670
33162         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33163         op0 is not a MEM, just return NULL instead of assertion
33164         failure.
33165         (discover_nonconstant_array_refs): Don't walk debug stmts.
33166
33167 2010-04-08  Doug Kwan  <dougkwan@google.com>
33168
33169         * configure.ac: Recognize gold and do not use its version number
33170         to test ld features.
33171         * configure: Regenerate.
33172
33173 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33174
33175         PR middle-end/40815
33176         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33177         (negate_value): Move code to push elements to broken_up_substracts ...
33178         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33179         negative pair to plus_negates.
33180         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33181
33182 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33183
33184         * doc/install.texi (Configuration): Move description of
33185         --enable-lto, --with-libelf*, --enable-gold from Java section to
33186         general section.
33187
33188         * doc/generic.texi (Working with declarations)
33189         (Function Properties, C and C++ Trees): Fix typos.
33190         * doc/sourcebuild.texi (Top Level): Likewise.
33191
33192 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33193
33194         PR c/18624
33195         * tree.h (DECL_READ_P): Define.
33196         (struct tree_decl_common): Add decl_read_flag.
33197         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33198         a set but not used warning.
33199         (merge_decls): Merge DECL_READ_P flag.
33200         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
33201         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
33202         * c-common.c (handle_used_attribute, handle_unused_attribute):
33203         Likewise.
33204         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
33205         New prototypes.
33206         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
33207         New functions.
33208         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
33209         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
33210         c_parser_binary_expression, c_parser_cast_expression,
33211         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
33212         Call default_function_array_read_conversion instead of
33213         default_function_array_conversion where needed.
33214         (c_parser_unary_expression, c_parser_conditional_expression,
33215         c_parser_postfix_expression_after_primary, c_parser_initelt):
33216         Likewise.  Call mark_exp_read where needed.
33217         (c_parser_statement_after_labels, c_parser_asm_operands,
33218         c_parser_typeof_specifier, c_parser_sizeof_expression,
33219         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
33220         where needed.
33221         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
33222         New.
33223         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
33224         (warn_unused_but_set_parameter): Default to warn_unused
33225         && extra_warnings.
33226         * doc/invoke.texi: Document -Wunused-but-set-variable and
33227         -Wunused-but-set-parameter.
33228
33229         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
33230         used count variable.
33231         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
33232         when operandN variables aren't used in the body of the expander
33233         or splitter.
33234         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
33235         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
33236         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
33237         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
33238         FOR_EACH_IMM_USE_ON_STMT): Likewise.
33239         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
33240         * tree.c (PROCESS_ARG): Likewise.
33241
33242 2010-04-07  Simon Baldwin  <simonb@google.com>
33243
33244         * diagnostic.h (diagnostic_override_option_index): New macro to
33245         set a diagnostic's option_index.
33246         * c-tree.h (c_cpp_error): Add warning reason argument.
33247         * opts.c (_warning_as_error_callback): New.
33248         (register_warning_as_error_callback): Store callback for
33249         warnings enabled via enable_warning_as_error.
33250         (enable_warning_as_error): Call callback, minor code tidy.
33251         * opts.h (register_warning_as_error_callback): Declare.
33252         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
33253         response to -Werror=.
33254         (c_common_init_options): Register warning_as_error_callback in opts.c.
33255         * common.opt: Add -Wno-cpp option.
33256         * c-common.c (struct reason_option_codes_t): Map cpp warning
33257         reason codes to gcc option indexes.
33258         * (c_option_controlling_cpp_error): New function, lookup the gcc
33259         option index for a cpp warning reason code.
33260         * (c_cpp_error): Add warning reason argument, call
33261         c_option_controlling_cpp_error for diagnostic_override_option_index.
33262         * doc/invoke.texi: Document -Wno-cpp.
33263
33264 2010-04-07  Richard Guenther  <rguenther@suse.de>
33265
33266         * ipa-reference.c (mark_load): Use get_base_address.
33267         (mark_store): Likewise.
33268
33269         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
33270         inserting GIMPLE_NOPs into the IL.
33271         * tree-ssa-structalias.c (get_constraint_for_component_ref):
33272         Explicitly strip handled components and indirect references.
33273
33274         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
33275         folding address expressions.
33276         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
33277         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
33278         operand_equal_p to compare decls.
33279         (ptr_deref_may_alias_decl_p): Likewise.
33280         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
33281         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
33282         Handle reversed comparison ops.
33283         * tree-sra.c (asm_visit_addr): Use get_base_address.
33284         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
33285         * ipa-reference.c (mark_address): Use get_base_address.
33286
33287 2010-04-07  Richard Guenther  <rguenther@suse.de>
33288
33289         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
33290         Propagate constants everywhere.
33291
33292 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33293
33294         PR debug/43516
33295         * tree.c (MAX_INT_CACHED_PREC): Define.
33296         (nonstandard_integer_type_cache): New array.
33297         (build_nonstandard_integer_type): Cache results for precision
33298         <= MAX_INT_CACHED_PREC.
33299
33300 2010-04-07  Richard Guenther  <rguenther@suse.de>
33301
33302         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
33303         -fargument-noalias-global, -fargument-noalias-anything): Remove.
33304         * common.opt: Likewise.
33305         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
33306         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
33307         (nonoverlapping_memrefs_p): Likewise.
33308         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
33309         * opts.c (common_handle_option): Handle OPT_fargument_alias,
33310         OPT_fargument_noalias, OPT_fargument_noalias_anything and
33311         OPT_fargument_noalias_global for backward compatibility.
33312
33313 2010-04-07  Richard Guenther  <rguenther@suse.de>
33314
33315         PR tree-optimization/43270
33316         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
33317         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
33318         * tree-ssa-pre.c (phi_translate_1): Adjust.
33319         (fully_constant_expression): Split out vn_reference handling to ...
33320         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
33321         Fold reads from constant strings.
33322         (vn_reference_lookup): Handle fully constant references.
33323         (vn_reference_lookup_pieces): Likewise.
33324         * Makefile.in (expmed.o-warn): Add -Wno-error.
33325
33326 2010-04-07  Martin Jambor  <mjambor@suse.cz>
33327
33328         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
33329
33330 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
33331
33332         PR driver/41594
33333         * gcc.c: Add -static-libstdc++ to list of recognized options.
33334
33335 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33336
33337         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
33338
33339 2010-04-07  Richard Guenther  <rguenther@suse.de>
33340
33341         PR middle-end/42617
33342         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
33343         bases build simple mem attributes to retain points-to information.
33344
33345 2010-04-07  Richard Guenther  <rguenther@suse.de>
33346
33347         PR middle-end/42617
33348         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
33349         preserve points-to related information.
33350
33351 2010-04-07  Richard Guenther  <rguenther@suse.de>
33352
33353         PR middle-end/42617
33354         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
33355         discard plain indirect references.
33356         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
33357         * tree.c (tree_nop_conversion): Likewise.
33358
33359 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
33360
33361         PR debug/43628
33362         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
33363
33364 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
33365
33366         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33367         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33368
33369 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33370
33371         * tree-if-conv.c: Fix indentation and comments.
33372
33373 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33374
33375         * tree-if-conv.c: Sort static functions in topological order.
33376
33377 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33378
33379         * tree-if-conv.c: Fix indentation and comments.
33380
33381 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33382
33383         PR middle-end/43519
33384         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33385         lang_hooks.types.type_for_size instead of
33386         build_nonstandard_integer_type.
33387         When converting an unsigned type to signed, double its precision.
33388         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33389         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33390         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33391         use lb <= ub.
33392
33393 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33394
33395         PR middle-end/43519
33396         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33397         POINTER_PLUS_EXPR for pointer types.
33398
33399 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33400
33401         PR middle-end/43519
33402         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33403         * graphite-clast-to-gimple.c: Include langhooks.h.
33404         (max_signed_precision_type): New.
33405         (max_precision_type): Takes two types as arguments.
33406         (precision_for_value): New.
33407         (precision_for_interval): New.
33408         (gcc_type_for_interval): New.
33409         (gcc_type_for_value): New.
33410         (gcc_type_for_clast_term): New.
33411         (gcc_type_for_clast_red): New.
33412         (gcc_type_for_clast_bin): New.
33413         (gcc_type_for_clast_expr): Split up into several functions.
33414         (gcc_type_for_clast_eq): Rewritten.
33415         (compute_bounds_for_level): New.
33416         (compute_type_for_level_1): New.
33417         (compute_type_for_level): New.
33418         (gcc_type_for_cloog_iv): Removed.
33419         (gcc_type_for_iv_of_clast_loop): Rewritten.
33420         (graphite_create_new_loop): Compute the lower and upper bound types
33421         with gcc_type_for_clast_expr.
33422         (graphite_create_new_loop_guard): Same.
33423         (find_cloog_iv_in_expr): Removed.
33424         (compute_cloog_iv_types_1): Removed.
33425         (compute_cloog_iv_types): Removed.
33426         (gloog): Do not call compute_cloog_iv_types.
33427         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33428         GBB_CLOOG_IV_TYPES.
33429         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33430         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33431         (GBB_CLOOG_IV_TYPES): Removed.
33432
33433 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33434
33435         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33436         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33437         (detect_commutative_reduction): Same.
33438
33439 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33440
33441         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33442         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33443         argument.
33444         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33445         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33446         (rewrite_commutative_reductions_out_of_ssa): Same.
33447         * passes.c (execute_function_todo): Call verify_ssa for every pass
33448         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33449         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33450         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33451         with an extra argument.
33452         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33453         verify_ssa only when the extra argument is true.
33454         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33455         with an extra argument.
33456         (tree_transform_and_unroll_loop): Same.
33457
33458 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33459
33460         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33461         for all the passes of the LNO having LOOP_CLOSED_SSA.
33462         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33463         * tree-loop-distribution.c (pass_loop_distribution): Same.
33464         * tree-pass.h (TODO_verify_loops): Removed.
33465         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33466         (pass_lim): Same.
33467         (pass_tree_unswitch): Same.
33468         (pass_predcom): Same.
33469         (pass_vectorize): Same.
33470         (pass_linear_transform): Same.
33471         (pass_graphite_transforms): Same.
33472         (pass_iv_canon): Same.
33473         (pass_complete_unroll): Same.
33474         (pass_complete_unrolli): Same.
33475         (pass_parallelize_loops): Same.
33476         (pass_loop_prefetch): Same.
33477         (pass_iv_optimize): Same.
33478
33479 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33480
33481         PR middle-end/32824
33482         * passes.c (init_optimization_passes): Move pass_lim before
33483         pass_copy_prop and pass_dce_loop.
33484
33485 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33486
33487         PR target/43667
33488         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33489         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33490         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33491         MULTI_* defines for 4 argument vpermil2p* builtins.
33492
33493 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33494
33495         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33496         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33497         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33498         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33499         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33500         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33501         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33502         Use x86_maybe_negate_const_int to output insn mnemonic.
33503         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33504         check from instruction predicate.  Update comments.
33505         * config/i386/sync.md (sync_add<mode>): Use
33506         x86_maybe_negate_const_int to output insn mnemonic.
33507
33508 2010-04-06  Jan Hubicka  <jh@suse.cz>
33509
33510         PR tree-optimization/42906
33511         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33512         IGNORE_SELF argument.  Set visited_control_parents for fully
33513         processed BBs.
33514         (find_obviously_necessary_stmts): Update call of
33515         mark_control_dependent_edges_necessary.
33516         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33517
33518 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33519
33520         * config/i386/i386.md: Remove comment about 'e' and 'E'
33521         operand modifier.
33522
33523 2010-04-06  Richard Guenther  <rguenther@suse.de>
33524
33525         PR tree-optimization/43627
33526         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33527         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33528         not varying.
33529
33530 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33531
33532         * BASE-VER: Change to 4.6.0.
33533
33534         PR target/43638
33535         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33536         handling.
33537
33538 2010-04-06  Richard Guenther  <rguenther@suse.de>
33539
33540         PR middle-end/43661
33541         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33542
33543 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33544
33545         * doc/invoke.texi (Optimize Options): Document that LTO
33546         won't remove object access purely due to incompatible
33547         declarations.
33548
33549 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33550
33551         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33552         Initialize variable.
33553
33554 2010-04-03  Richard Guenther  <rguenther@suse.de>
33555
33556         PR middle-end/42509
33557         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33558         require a non-NULL MEM_OFFSET.
33559
33560 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33561
33562         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33563         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33564         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33565         config/alpha/predicates.md, config/arm/arm.md,
33566         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33567         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33568         config/darwin9.h, config/darwin.c, config/darwin.h,
33569         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33570         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33571         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33572         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33573         config/mips/mips.md, config/mn10300/mn10300.c,
33574         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33575         config/rs6000/aix.h, config/rs6000/dfp.md,
33576         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33577         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33578         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33579         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33580         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33581         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33582         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33583         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33584         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33585         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33586         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33587         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33588         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33589         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33590         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33591         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33592         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33593         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33594         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33595         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33596         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33597         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33598         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33599         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33600         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33601         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33602         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33603         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33604         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33605         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33606         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33607         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33608         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33609         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33610         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33611         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33612
33613 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33614
33615         PR other/43620
33616         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33617         * aclocal.m4: Regenerate.
33618
33619 2010-04-02  Richard Guenther  <rguenther@suse.de>
33620
33621         PR tree-optimization/43629
33622         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33623         if we have seen a constant value.
33624
33625 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33626
33627         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33628
33629 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33630
33631         PR target/43469
33632         * arm.c (legitimize_tls_address): Adjust call to
33633         gen_tls_load_dot_plus_four.
33634         (arm_note_pic_base): New function.
33635         (arm_cannot_copy_insn_p): Use it.
33636         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33637         constraint.
33638
33639 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33640
33641         PR bootstrap/43531
33642
33643         Revert:
33644         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33645
33646         * Makefile.in ($(out_object_file)): Depend on
33647         gt-$(basename $(notdir $(out_file))).h.
33648
33649 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33650
33651         * config.gcc (lm32-*-rtems*): Add t-lm32.
33652
33653 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33654
33655         * config.gcc: Add lm32-*-rtems*.
33656         * config/lm32/rtems.h: New file.
33657
33658 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33659
33660         PR target/42609
33661         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33662
33663 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33664
33665         * dwarf2out.c (output_compilation_unit_header): For
33666         -gdwarf-4 use version 4 instead of version 3.
33667         (output_line_info): For version 4 and above emit additional
33668         maximum ops per insn header field.
33669         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33670
33671         * dwarf2out.c (is_c_family, is_java): Remove.
33672         (lower_bound_default): New function.
33673         (add_bound_info, gen_descr_array_type_die): Use it.
33674
33675 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33676
33677         PR debug/43325
33678         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33679         re-declaration when it happens in a function.
33680
33681 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33682
33683         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33684         (cgraph_remove_function_insertion_hook): Same.
33685         (cgraph_call_function_insertion_hooks): Same.
33686
33687 2010-04-01  Richard Guenther  <rguenther@suse.de>
33688
33689         PR middle-end/43614
33690         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33691         and TREE_THIS_VOLATILE.
33692         (copy_ref_info): Likewise.
33693         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33694         * tree.c (build6_stat): Ignore side-effects of all but arg5
33695         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33696         TARGET_MEM_REF.
33697
33698 2010-04-01  Richard Guenther  <rguenther@suse.de>
33699
33700         PR tree-optimization/43607
33701         * ipa-type-escape.c (check_call): Do not access non-existing
33702         arguments.
33703
33704 2010-04-01  Richard Guenther  <rguenther@suse.de>
33705
33706         PR middle-end/43602
33707         Revert
33708         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33709                     Jack Howarth  <howarth@bromo.med.uc.edu>
33710
33711         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33712         variables TLS.
33713
33714 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33715
33716         * doc/install.texi (Prerequisites): Document libelf usability on
33717         IRIX 5/6 and Solaris 2.
33718         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33719         Update GNU as, GNU ld requirements.
33720         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33721         Document Sun Studio compiler download.
33722         Update and simplify as, ld recommendations.
33723         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33724
33725 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33726
33727         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33728         with_tune_32 to pentium4.
33729
33730 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33731
33732         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33733
33734 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33735
33736         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33737         obsoletion, removal.
33738         Update IDO URL.
33739         Document GNU as requirement.
33740         Update configure requirements.
33741         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33742         Recomment IRIX 6.5.18+.
33743         Document IDF/IDL requirement.
33744         Document GNU as requirement.
33745         Document GNU ld bootstrap failure.
33746         Remove freeware.sgi.com reference.
33747
33748 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33749
33750         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33751         UNIX V4.0, V5.0 obsoletion, removal.
33752         Remove --with-gc=simple reference.
33753         Update VM requirements during bootstrap.
33754         Remove -oldas bootstrap description.
33755         Update binutils reference.
33756         Remove comparison failure note.
33757
33758 2010-03-31  Richard Guenther  <rguenther@suse.de>
33759             Zdenek Dvorak  <ook@ucw.cz>
33760             Sebastian Pop  <sebastian.pop@amd.com>
33761
33762         PR middle-end/43464
33763         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33764         with multiple arguments.
33765         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33766
33767 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33768
33769         * graphite-dependences.c (print_pddr): Call print_pdr with an
33770         extra argument.
33771         * graphite-poly.c (debug_pdr): Add an extra argument for the
33772         verbosity level.
33773         (print_pdr): Same.
33774         (print_pbb_domain): Same.
33775         (print_pbb): Same.
33776         (print_scop_context): Same.
33777         (print_scop): Same.
33778         (print_cloog): Same.
33779         (debug_pbb_domain): Same.
33780         (debug_pbb): Same.
33781         (print_pdrs): Same.
33782         (debug_pdrs): Same.
33783         (debug_scop_context): Same.
33784         (debug_scop): Same.
33785         (debug_cloog): Same.
33786         (print_scop_params): Same.
33787         (debug_scop_params): Same.
33788         (print_iteration_domain): Same.
33789         (print_iteration_domains): Same.
33790         (debug_iteration_domain): Same.
33791         (debug_iteration_domains): Same.
33792         (print_scattering_function): Same.
33793         (print_scattering_functions): Same.
33794         (debug_scattering_function): Same.
33795         (debug_scattering_functions): Same.
33796         * graphite-poly.h (debug_pdr): Update declaration.
33797         (print_pdr): Same.
33798         (print_pbb_domain): Same.
33799         (print_pbb): Same.
33800         (print_scop_context): Same.
33801         (print_scop): Same.
33802         (print_cloog): Same.
33803         (debug_pbb_domain): Same.
33804         (debug_pbb): Same.
33805         (print_pdrs): Same.
33806         (debug_pdrs): Same.
33807         (debug_scop_context): Same.
33808         (debug_scop): Same.
33809         (debug_cloog): Same.
33810         (print_scop_params): Same.
33811         (debug_scop_params): Same.
33812         (print_iteration_domain): Same.
33813         (print_iteration_domains): Same.
33814         (debug_iteration_domain): Same.
33815         (debug_iteration_domains): Same.
33816         (print_scattering_function): Same.
33817         (print_scattering_functions): Same.
33818         (debug_scattering_function): Same.
33819         (debug_scattering_functions): Same.
33820
33821 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33822
33823         * graphite-poly.c (print_scattering_function_1): New.
33824         (print_scattering_function): Call it.
33825         (print_scop_params): Remove spaces at the end of lines.
33826         (print_cloog): New.
33827         (debug_cloog): New.
33828         * graphite-poly.h (print_cloog): Declared.
33829         (debug_cloog): Declared.
33830
33831 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33832
33833         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33834         in loop->header.
33835         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33836         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33837         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33838         to switch between adding the IV bump in loop->latch or in loop->header.
33839
33840 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33841
33842         * graphite-poly.c (print_scattering_function): Pretty print following
33843         the scoplib format.
33844         (print_pdr): Same.
33845         (print_pbb_domain): Same.
33846         (dump_gbb_cases): Same.
33847         (dump_gbb_conditions): Same.
33848         (print_pdrs): Same.
33849         (print_pbb): Same.
33850         (print_scop_params): Same.
33851         (print_scop_context): Same.
33852         (print_scop): Same.
33853         (print_pbb_body): New.
33854         (lst_indent_to): New.
33855         (print_lst): Start new lines with a #.
33856         * graphite-poly.h (pbb_bb): New.
33857         (pbb_index): Use pbb_bb.
33858         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
33859         disjuncts.
33860         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
33861
33862 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33863
33864         * dwarf2out.c (size_of_die): For -gdwarf-4 use
33865         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
33866         and 0 instead of 1 for dw_val_class_flag.
33867         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
33868         dw_val_class_range_list, dw_val_class_loc_list,
33869         dw_val_class_lineptr and dw_val_class_macptr, use
33870         DW_FORM_flag_present for dw_val_class_flag and
33871         DW_FORM_exprloc for dw_val_class_loc.
33872         (output_die): For -gdwarf-4 print dw_val_class_loc
33873         size as uleb128 instead of 1 or 2 bytes and don't print
33874         anything for dw_val_class_flag.
33875
33876         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
33877         instead of cselib_lookup following by tweaking locs->setting_insn.
33878
33879         PR bootstrap/43596
33880         * cselib.c (cselib_process_insn): Clear cselib_current_insn
33881         even before returning from label, setjmp call or volatile asm
33882         handling.
33883
33884 2010-03-31  Richard Guenther  <rguenther@suse.de>
33885
33886         PR middle-end/43600
33887         * cgraphunit.c (cgraph_output_in_order): Do not allocate
33888         temporary data on stack.
33889
33890 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33891
33892         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
33893         (PUSHSECTION_ASM_OP): Remove.
33894         (POPSECTION_ASM_OP): Remove.
33895         (PUSHSECTION_FORMAT): Remove.
33896         * config/sol2.h (PUSHSECTION_FORMAT): Define.
33897         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
33898         * config/sol2.c (solaris_output_init_fini): Use it.
33899
33900 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33901
33902         PR 43574
33903         * opt-functions.awk (var_type_struct): Use signed char type
33904         for simple variables.
33905
33906 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33907
33908         * config/sol2.c: Include output.h.
33909         (solaris_assemble_visibility): New function.
33910         * config/t-sol2 (sol2.o): Add output.h dependency.
33911         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
33912         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
33913         Redefine.
33914
33915 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33916
33917         PR target/43580
33918         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
33919         V2SImode or XFmode on PRE_DEC.
33920
33921         PR debug/43557
33922         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
33923         BLKmode.
33924
33925 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33926
33927         PR 43562
33928         * reload.h (caller_save_initialized_p): Declare.
33929         * toplev.c (backend_init_target): Don't call
33930         init_caller_save but set caller_save_initialized_p to false.
33931         * caller-save.c (caller_save_initialized_p): Define.
33932         (init_caller_save): Check caller_save_initialized_p.
33933         * ira.c (ira): Call init_caller_save if flag_caller_saves.
33934
33935 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33936
33937         PR target/39048
33938         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
33939         and soft-fp/t-softfp to tmake_file.
33940         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
33941         (LIBGCC2_TF_CEXT): Define.
33942         (TF_SIZE): Define.
33943
33944 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
33945
33946         PR debug/42977
33947         * cselib.c (n_useless_values): Document handling of debug locs.
33948         (n_useless_debug_values, n_debug_values): New variables.
33949         (new_elt_loc_list): Don't add to debug values, keep count.
33950         (promote_debug_loc): New.
33951         (cselib_reset_table): Zero new variables.
33952         (entry_and_rtx_equal_p): Promote debug locs.
33953         (discard_useless_locs): Increment n_useless_debug_values for
33954         debug values.
33955         (remove_useless_values): Adjust n_useless_values and n_debug_values
33956         with n_useless_debug_values.
33957         (add_mem_for_addr): Promote debug locs.
33958         (cselib_lookup_mem): Likewise.
33959         (cselib_lookup_addr): Renamed to...
33960         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
33961         (cselib_log_lookup): ... this.  Turn into...
33962         (cselib_lookup_addr): ... new wrapper.
33963         (cselib_lookup_from_insn): New.
33964         (cselib_invalidate_regno): Increment n_useless_debug_values for
33965         debug values.
33966         (cselib_invalidate_mem): Likewise.
33967         (cselib_process_insn): Take n_deleted and n_debug_values into
33968         account to guard remove_useless_value call.
33969         (cselib_finish): Zero n_useless_debug_values.
33970         * cselib.h (cselib_lookup_from_insn): Declare.
33971         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
33972         (sched_analyze_2): Likewise.
33973
33974 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
33975
33976         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
33977         functions.
33978         (adjust_mems): Replace narrowing SUBREG of expression containing
33979         just PLUS, MINUS, MULT and ASHIFT of registers and constants
33980         with operations in the narrower mode.
33981
33982         PR debug/43593
33983         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
33984         regs_invalidated_by_call instead all call_used_reg_set registers.
33985
33986 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
33987
33988         PR middle-end/43430
33989         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
33990         pointer comparisons with types_compatible_p.
33991         * tree-vect-stmts.c (vectorizable_call): Same.
33992         (vectorizable_condition): Same.
33993
33994 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33995
33996         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
33997         stack check if the mask would be zero.
33998
33999 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34000             Jack Howarth  <howarth@bromo.med.uc.edu>
34001
34002         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34003         variables TLS.
34004
34005 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34006
34007         PR other/25232
34008         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34009         and __unordtf2.
34010         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34011         Include ___unordxf2 and ___unordtf2.
34012         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34013         GCC_4.4.0 here.
34014
34015 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34016
34017         * config/lm32/t-lm32: New file.
34018         * config.gcc: Use the above file when targetting lm32.
34019
34020 2010-03-28  Duncan Sands  <baldrick@free.fr>
34021
34022         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34023
34024 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34025
34026         PR middle-end/43431
34027         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34028         Improve vectorization cost model diagnostic.
34029
34030 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34031
34032         PR middle-end/43436
34033         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34034         compute_data_dependences_for_loop returns false, early exit
34035         and output an extra diagnostic for the failed data reference
34036         analysis.
34037
34038 2010-03-29  Richard Guenther  <rguenther@suse.de>
34039
34040         PR tree-optimization/43560
34041         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34042         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34043
34044 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34045
34046         PR 43564
34047         * toplev.c (process_options): Set optimization_default_node
34048         and optimization_current_node.
34049         * opts.c (decode_options): Don't set optimization_default_node
34050         and optimization_current_node.
34051
34052 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34053
34054         * config/rtems.h: Abandon -qrtems_debug.
34055
34056 2010-03-28  Jan Hubicka  <jh@suse.cz>
34057
34058         PR tree-optimization/43505
34059         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34060         map should not be copied.
34061
34062 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34063
34064         PR middle-end/41674
34065         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34066         cdtors, set DECL_PRESERVE_P.
34067         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34068         should be preseved.
34069
34070 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34071
34072         PR tree-optimization/43528
34073         * stor-layout.c (place_field): Check that constant fits into
34074         unsigned HWI when skipping calculation of MS bitfield layout.
34075
34076 2010-03-27  Jan Hubicka  <jh@suse.cz>
34077
34078         PR middle-end/43391
34079         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34080         notice_global_symbol work.
34081
34082 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34083
34084         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34085         instead of dwarf2out_decl.
34086         (struct var_loc_node): Remove section_label field.
34087         (dwarf2out_function_decl): New function.
34088         (dwarf2out_var_location): Don't set section_label field.
34089         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34090
34091 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34092
34093         PR tree-optimization/43544
34094         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34095         First argument for builtin vectorized function hook is now a
34096         tree to be able to distinguish between machine specific and
34097         standard builtins.
34098         * targhooks.c (default_builtin_vectorized_function): Ditto.
34099         * targhooks.h (default_builtin_vectorized_function): Ditto.
34100         * target.h (struct gcc_target): Ditto.
34101         * tree-vect-stmts.c (vectorizable_function): Ditto.
34102         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34103         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34104         Ditto.
34105
34106 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34107
34108         PR c/43381
34109         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34110         nested binding iff it is a FUNCTION_DECL.
34111         (store_parm_decls_newstyle): Pass nested=true to bind for
34112         FUNCTION_DECLs amongst parameters.
34113
34114 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34115
34116         * var-tracking.c (vt_expand_loc_callback): Don't run
34117         cselib_expand_value_rtx_cb in dummy mode if
34118         cselib_dummy_expand_value_rtx_cb returned false.
34119
34120         * var-tracking.c (emit_note_insn_var_location): For one part
34121         notes with offset 0, don't add EXPR_LIST around the location.
34122         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34123         add_location_or_const_value_attribute): Adjust for that change.
34124
34125         PR debug/43540
34126         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34127         into first operand and location into second.
34128         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34129         dw_cfi_oprnd_loc for DW_CFA_expression.
34130         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34131         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34132         assume first argument is regnum and second argument is location.
34133
34134 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34135
34136         PR target/42113
34137         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34138         of scratch register to DImode.  Split to DImode comparison operator.
34139         Use SImode subreg of scratch register in the multiplication.
34140         (*cmp_sadd_sidi): Ditto.
34141         (*cmp_ssub_si): Ditto.
34142         (*cmp_ssub_sidi): Ditto.
34143
34144 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34145
34146         PR target/43524
34147         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34148         Remove invalid assert and wrong comment.
34149
34150 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34151
34152         PR debug/43516
34153         * flags.h (final_insns_dump_p): New extern.
34154         * final.c (final_insns_dump_p): New variable.
34155         (rest_of_clean_state): Set it before -fdump-final-insns=
34156         dumping, clear afterwards.
34157         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34158         MEM_ALIAS_SET on MEMs.
34159
34160 2010-03-26  David S. Miller  <davem@davemloft.net>
34161
34162         * configure.ac: Fix sparc GOTDATA_OP bug check.
34163         * configure: Rebuild.
34164
34165 2010-03-26  Alan Modra  <amodra@gmail.com>
34166
34167         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34168
34169 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34170
34171         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34172         TLS_SECTION_ASM_FLAG.
34173
34174 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34175
34176         PR bootstrap/43511
34177         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34178         Clear first_function_block_is_cold.
34179
34180         PR c/43385
34181         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34182         argument if the argument is truth_value_p.
34183
34184 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34185
34186         * config/rs6000/constraints.md: Update copyright year for my changes.
34187
34188         PR target/43484
34189         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34190         used in reg+reg addressing, swap registers.
34191
34192 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34193
34194         PR debug/43293
34195         * target.h (struct gcc_target): Add code_end hook.
34196         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34197         if not yet defined.
34198         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
34199         * toplev.c (compile_file): Call targetm.asm_out.code_end
34200         hook before unwind info/debug info output.
34201         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
34202         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
34203         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34204         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
34205         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34206         * config/i386/i386.c (ix86_file_end): Renamed to...
34207         (ix86_code_end): ... this.  Make static.  Don't call
34208         file_end_indicate_exec_stack.  Emit unwind info using
34209         final_start_function/final_end_function.
34210         (darwin_x86_file_end): Remove.
34211         (TARGET_ASM_CODE_END): Define.
34212         * config/i386/i386.h (TARGET_ASM_FILE_END,
34213         NEED_INDICATE_EXEC_STACK): Don't define.
34214         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
34215         (TARGET_ASM_FILE_END): Define to darwin_file_end.
34216         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
34217         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
34218
34219         PR target/43498
34220         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
34221         at the beginning and final_end_function at the end.
34222         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
34223
34224 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34225
34226         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
34227         and Sun as TLS syntax.
34228         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
34229         * configure: Regenerate.
34230         * config.in: Regenerate.
34231         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
34232         (default_elf_asm_named_section): Use it.
34233         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
34234         (i386_output_dwarf_dtprel): Likewise.
34235         (output_addr_const_extra): Likewise.
34236         (output_pic_addr_const): Lowercase @GOTTPOFF.
34237         (output_addr_const_extra): Likewise.
34238         (output_pic_addr_const): Lowercase @GOTNTPOFF.
34239         (output_addr_const_extra): Likewise.
34240         (output_pic_addr_const): Lowercase @INDNTPOFF.
34241         (output_addr_const_extra): Likewise.
34242         (output_pic_addr_const): Lowercase @NTPOFF.
34243         (output_addr_const_extra): Likewise.
34244         (output_pic_addr_const): Lowercase @TPOFF.
34245         (output_addr_const_extra): Likewise.
34246         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
34247         (*tls_global_dynamic_64): Likewise.
34248         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
34249         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
34250
34251         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
34252         (ASM_OUTPUT_TLS_COMMON): Use it.
34253         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
34254
34255         PR target/38118
34256         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
34257         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
34258         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
34259         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
34260         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34261         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
34262
34263 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34264
34265         * config/i386/i386.c (override_options): Don't accept
34266         -mtls-dialect=sun any longer.
34267         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
34268         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
34269         (*tls_local_dynamic_base_32_sun): Likewise.
34270         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34271
34272 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34273
34274         PR debug/43508
34275         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34276         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
34277
34278         PR debug/43479
34279         * ira.c (adjust_cleared_regs): New function.
34280         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
34281
34282         PR debug/19192
34283         PR debug/43479
34284         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
34285         from gimple_block.
34286         * expr.c (expand_expr_real): Restore previous
34287         curr_insn_source_location and curr_insn_block after
34288         expand_expr_real_1 call.
34289         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
34290         instead of expand_expr_real_1.
34291
34292 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
34293
34294         PR rtl-optimization/43413
34295         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
34296         hard regs too.
34297
34298 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
34299
34300         PR target/43348
34301         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
34302         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
34303
34304 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
34305
34306         * config/i386/i386.c (ix86_target_string): Add -mfma.
34307         Fix a typo in comment.
34308
34309 2010-03-22  Mike Stump  <mikestump@comcast.net>
34310
34311         PR target/23071
34312         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
34313         Don't overly align based upon packed packed fields.
34314
34315 2010-03-22  Jason Merrill  <jason@redhat.com>
34316
34317         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
34318         Use () rather than [], and move before the element type.
34319
34320 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34321
34322         * doc/configfiles.texi (Configuration Files): Removed
34323         fixinc/Makefile*, intl/Makefile.*.
34324         * doc/makefile.texi: Fixed markup. Abstract from version
34325         control system used.
34326         (Makefile): Removed obsolete java/parse.y example.
34327         * doc/sourcebuild.texi: Likewise.
34328         (Top Level): Added config, gnattools, libdecnumber, libgcc,
34329         libgomp, libssp.  Removed fastjar.
34330         (Miscellaneous Docs): Clarify location.
34331         Added COPYING3, COPYING3.LIB.
34332         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
34333
34334 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34335
34336         PR target/38085
34337         * config/i386/i386.c (x86_function_profiler)
34338         [!NO_PROFILE_COUNTERS]: Fix typo.
34339         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
34340         instead of callq.
34341
34342 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
34343             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34344
34345         * doc/sourcebuild.texi (Test Directives): Split into six
34346         subsections, with most of the current text in new subsections
34347         Directives, Selectors, and Final Actions.
34348         (Directives): Split list of test directives into multiple
34349         subsubsections.
34350         (Selectors): Describe use and syntax of selectors.
34351         (Effective-Target Keywords): Describe all existing keywords.
34352         (Add Options): Describe features for dg-add-options.
34353         (Require Support): Describe variants of dg-require-support.
34354         (Final Actions): Describe commands to use in dg-final.
34355
34356 2010-03-22  Michael Matz  <matz@suse.de>
34357
34358         PR middle-end/43475
34359         * recog.c (validate_replace_rtx_group): Replace also in
34360         REG_EQUAL and REG_EQUIV notes.
34361
34362 2010-03-22  Richard Guenther  <rguenther@suse.de>
34363
34364         PR tree-optimization/43390
34365         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
34366         sure vector extracts are type correct.
34367
34368 2010-03-22  Richard Guenther  <rguenther@suse.de>
34369
34370         PR middle-end/40106
34371         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34372         x * sqrt (x) even when optimizing for size if the target
34373         has native support for sqrt.
34374
34375 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34376
34377         * varasm.c (make_decl_rtl_for_debug): Also clear
34378         flag_mudflap for the duration of make_decl_rtl call.
34379
34380         PR debug/43443
34381         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34382         locs from preserved VALUEs.
34383
34384 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34385
34386         PR middle-end/42718
34387         * pa.md (movmemsi): Set align to one if zero.
34388         (movmemdi): Likewise.
34389
34390 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34391
34392         PR target/42321
34393         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34394         with their corresponding prologue pushes.
34395
34396 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34397
34398         PR target/43156
34399         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34400         at the begining or end.
34401         (spu_expand_epilogue): Likewise.
34402
34403 2010-03-20  Richard Guenther  <rguenther@suse.de>
34404
34405         PR rtl-optimization/43438
34406         * combine.c (make_extraction): Properly zero-/sign-extend an
34407         extraction of the low part of a CONST_INT.  Also handle
34408         CONST_DOUBLE.
34409
34410 2010-03-19  Mike Stump  <mikestump@comcast.net>
34411
34412         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34413         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34414         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34415
34416 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34417
34418         PR c/43211
34419         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34420         an error.
34421
34422 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34423
34424         PR rtl-optimization/42258
34425         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34426         use that may match DEF.
34427
34428         PR target/40697
34429         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34430         the cost of loading the constant rather than assuming
34431         COSTS_N_INSNS (1).
34432         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34433         outer code is AND, do the same tests as the andsi3 expander and
34434         return COSTS_N_INSNS (1) if and is cheap.
34435
34436         * optabs.c (avoid_expensive_constant): Fix formatting.
34437
34438 2010-03-19  Michael Matz  <matz@suse.de>
34439
34440         PR c++/43116
34441         * attribs.c (decl_attributes): When rebuilding a function pointer
34442         type use the same qualifiers as the original pointer type.
34443
34444 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34445
34446         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34447         and is_gimple_ip_invariant_address.
34448
34449 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34450
34451         Revert
34452         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34453
34454         * config/arm/arm.c (arm_override_options): Turn off
34455         flag_dwarf2_cfi_asm for AAPCS variants.
34456
34457 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34458
34459         PR target/43399
34460         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34461         Use PRE_MODIFY instead of PRE_DEC.
34462         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34463         (vfp_emit_fstmd): Likewise.
34464
34465 2010-03-19  Michael Matz  <matz@suse.de>
34466
34467         PR target/43305
34468         * builtins.c (expand_builtin_interclass_mathfn,
34469         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34470         if that fails.
34471
34472 2010-03-19  Richard Guenther  <rguenther@suse.de>
34473
34474         PR tree-optimization/43415
34475         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34476         (phi_translate_1): ... this.
34477         (phi_translate): Move all caching here.  Cache all NARY
34478         and REFERENCE translations.
34479
34480 2010-03-19  David S. Miller  <davem@davemloft.net>
34481
34482         With help from Eric Botcazou.
34483         * config/sparc/sparc.c: Include dwarf2out.h.
34484         (emit_pic_helper): Delete.
34485         (pic_helper_symbol_name): Delete.
34486         (pic_helper_emitted_p): Delete.
34487         (pic_helper_needed): New.
34488         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34489         (get_pc_thunk_name): New.
34490         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34491         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34492         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34493         (sparc_expand_prologue): Update load_pic_register call.
34494         (sparc_output_mi_thunk): Likewise.
34495         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34496         thunk if possible.  Output CFI information as needed.
34497
34498 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34499             Jack Howarth  <howarth@bromo.med.uc.edu>
34500
34501         PR target/36399
34502         * config/i386/i386.h: Fix ABI on darwin x86-32.
34503
34504 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34505
34506         * tree.h: Declare make_decl_rtl_for_debug.
34507         * varasm.c (make_decl_rtl_for_debug): New.
34508         * dwarf2out.c (rtl_for_decl_location): Call it.
34509         * cfgexpand.c (expand_debug_expr): Call it.
34510
34511 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34512
34513         PR bootstrap/43399
34514         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34515         mem_mode.
34516
34517         PR bootstrap/43403
34518         * var-tracking.c (vt_init_cfa_base): Do nothing if
34519         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34520
34521 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34522
34523         PR debug/42873
34524         * var-tracking.c (canonicalize_vars_star): New.
34525         (dataflow_post_merge_adjust): Use it.
34526
34527 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34528
34529         PR debug/43058
34530         * var-tracking.c (non_suitable_const): New function.
34531         (add_uses): For DEBUG_INSNs with constants, don't record any
34532         value, instead just the constant value itself.
34533         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34534         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34535         (emit_notes_in_bb): Likewise.
34536         (emit_note_insn_var_location): For onepart variables if
34537         cur_loc is a VOIDmode constant, use DECL_MODE.
34538
34539 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34540
34541         PR middle-end/42450
34542         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34543         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34544         all non-clones.  Moved call redirection...
34545         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34546         (cgraph_materialize_all_clones): Dispose of all
34547         combined_args_to_skip bitmaps.
34548         (verify_cgraph_node): Do not check for edges pointing to wrong
34549         nodes in inline clones.
34550         * tree-inline.c (copy_bb): Call
34551         cgraph_redirect_edge_call_stmt_to_callee.
34552         * ipa.c (cgraph_remove_unreachable_nodes): Call
34553         cgraph_node_remove_callees even when there are used clones.
34554
34555 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34556
34557         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34558
34559 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34560
34561         PR target/43383
34562         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34563         for 32bit.
34564
34565 2010-03-18  Michael Matz  <matz@suse.de>
34566
34567         PR middle-end/43419
34568         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34569         into sqrt(x) if we need to preserve signed zeros.
34570
34571 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34572             Eric Botcazou  <ebotcazou@adacore.com>
34573
34574         PR rtl-optimization/43360
34575         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34576         note if we don't know its invariant status.
34577
34578 2010-03-18  Michael Matz  <matz@suse.de>
34579
34580         PR tree-optimization/43402
34581         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34582         PHI chains of ssa names registered for update.
34583
34584 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34585
34586         PR target/42427
34587         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34588         non-offsettable and pre_modify update addressing.
34589         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34590         and "2" alternatives "#".
34591         (*movdd_softfloat32): Make all alternatives "#";
34592         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34593         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34594         (*movdf_softfloat32): Make all alternatives "#";
34595         (movdi): Use the new DIFD mode iterator to create a common splitter
34596         for movdi, movdf and movdd patterns.
34597
34598 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34599
34600         * common.opt (dumpdir): Remove redundant tab.
34601
34602 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34603
34604         PR tree-optimization/43347
34605         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34606         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34607
34608 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34609
34610         PR rtl-optimization/42216
34611         * regrename.c (create_new_chain): New function, broken out from...
34612         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34613         appending a use to an empty chain.
34614         (build_def_use): Remove previous changes that convert OP_INOUT to
34615         OP_OUT operands; instead detect the case where an OP_INOUT operand
34616         uses a previously untracked register and create an empty chain for it.
34617
34618 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34619
34620         * doc/extend.texi (Function Attributes): Rewrite unfinished
34621         sentence in ms_abi documentation.
34622
34623 2010-03-17  Alan Modra  <amodra@gmail.com>
34624
34625         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34626         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34627         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34628         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34629
34630 2010-03-16  Richard Henderson  <rth@redhat.com>
34631
34632         PR middle-end/43365
34633         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34634         (lower_try_finally): Save and restore eh_seq around the expansion
34635         of the try-finally.
34636
34637 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34638
34639         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34640         statements before splitting block.
34641
34642 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34643
34644         * doc/sourcebuild.texi (Testsuites): Fix markup.
34645         Use pathnames relative to gcc/testsuite.
34646         (Test Directives): Move description of how timeout is determined.
34647         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34648         (C Tests): Correct gcc.misc-tests directory.
34649         Framework tests now live in gcc.test-framework.
34650
34651 2010-03-16  Richard Guenther  <rguenther@suse.de>
34652
34653         PR middle-end/43379
34654         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34655         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34656
34657 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34658             Alexandre Oliva  <aoliva@redhat.com>
34659
34660         PR tree-optimization/42917
34661         * lambda-code.c (remove_iv): Skip debug statements.
34662         (lambda_loopnest_to_gcc_loopnest): Likewise.
34663         (not_interesting_stmt): Debug statements are not interesting.
34664
34665 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34666
34667         PR debug/43051
34668         PR debug/43092
34669         * cselib.c (cselib_preserve_constants,
34670         cfa_base_preserved_val): New static variables.
34671         (preserve_only_constants): New function.
34672         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34673         clear its REG_VALUES.  If cselib_preserve_constants, don't
34674         empty the whole hash table, but preserve there VALUEs with constants,
34675         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34676         (cselib_preserve_cfa_base_value): New function.
34677         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34678         (cselib_init): Change argument to int bitfield.  Set
34679         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34680         is in it.
34681         (cselib_finish): Clear cselib_preserve_constants and
34682         cfa_base_preserved_val.
34683         * cselib.h (enum cselib_record_what): New enum.
34684         (cselib_init): Change argument to int.
34685         (cselib_preserve_cfa_base_value): New prototype.
34686         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34687         * dse.c (dse_step1): Likewise.
34688         * cfgcleanup.c (thread_jump): Likewise.
34689         * sched-deps.c (sched_analyze): Likewise.
34690         * gcse.c (local_cprop_pass): Likewise.
34691         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34692         If FN is non-NULL, call the callback always and whenever it returns
34693         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34694         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34695         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34696         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34697         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34698         * var-tracking.c: Include recog.h.
34699         (bb_stack_adjust_offset): Remove.
34700         (vt_stack_adjustments): Don't call it, instead just gather the
34701         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34702         (adjust_stack_reference): Remove.
34703         (compute_cfa_pointer): New function.
34704         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34705         (struct adjust_mem_data): New type.
34706         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34707         functions.
34708         (get_address_mode): New function.
34709         (replace_expr_with_values): Use it.
34710         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34711         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34712         (adjust_sets): Remove.
34713         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34714         Use get_address_mode.
34715         (get_adjusted_src): Remove.
34716         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34717         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34718         (add_with_sets): Don't call adjust_sets.
34719         (fp_setter, vt_init_cfa_base): New functions.
34720         (vt_initialize): Change return type to bool.  Move most of pool etc.
34721         initialization to the beginning of the function from end.  Pass
34722         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34723         If !frame_pointer_needed, call vt_stack_adjustment before mos
34724         vector is filled, call vt_init_cfa_base if argp/framep has been
34725         eliminated to sp.  If frame_pointer_needed and argp/framep has
34726         been eliminated to hard frame pointer, set
34727         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34728         encountering fp setter in the prologue.  For MO_ADJUST, call
34729         log_op_type before pusing the op into mos vector, not afterwards.
34730         Call adjust_insn before cselib_process_insn/add_with_sets,
34731         call cancel_changes (0) afterwards.
34732         (variable_tracking_main_1): Adjust for vt_initialize calling
34733         vt_stack_adjustments and returning whether it succeeded or not.
34734
34735 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34736
34737         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34738         debug statements.
34739
34740 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34741
34742         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34743         has been set.
34744         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34745         drap_reg has not been set.
34746
34747 2010-03-15  Michael Matz  <matz@suse.de>
34748
34749         PR middle-end/43300
34750         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34751         use it to expand block copies.
34752         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34753         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34754         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34755
34756 2010-03-15  Richard Guenther  <rguenther@suse.de>
34757
34758         PR tree-optimization/43367
34759         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34760         elimination check.
34761
34762 2010-03-15  Richard Guenther  <rguenther@suse.de>
34763
34764         PR tree-optimization/43317
34765         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34766
34767 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34768
34769         PR tree-optimization/43141
34770         * tree-sra.c (create_abstract_origin): New function.
34771         (modify_function): Call create_abstract_origin.
34772
34773 2010-03-15  Chris Demetriou  <cgd@google.com>
34774
34775         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34776         wasn't copied.
34777
34778 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34779
34780         PR middle-end/43354
34781         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34782         call insert_out_of_ssa_copy for default definitions.
34783
34784 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34785
34786         * graphite-clast-to-gimple.c (my_long_long): Defined.
34787         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34788         * graphite-sese-to-poly.c (my_long_long): Defined.
34789         (scop_ivs_can_be_represented): Use it.
34790
34791 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34792
34793         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34794         graphite-max-bbs-per-function, and loop-block-tile-size.
34795         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34796         with "maximum".
34797         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34798
34799 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34800
34801         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34802         forward declaration.
34803         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34804         (add_upper_bounds_from_estimated_nit): New.
34805         (build_loop_iteration_domains): Use it.
34806
34807 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34808
34809         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34810
34811 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34812
34813         PR middle-end/43306
34814         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34815         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34816
34817 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34818
34819         * graphite.c (graphite_initialize): To bound the number of bbs per
34820         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34821         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34822         * doc/invoke.texi: Document it.
34823
34824 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34825
34826         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34827         * graphite-sese-to-poly.h (build_poly_scop): Same.
34828
34829 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34830
34831         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34832         the number of parameters in the scop.  Use as an upper bound
34833         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34834         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34835         * doc/invoke.texi: Document it.
34836
34837 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34838
34839         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34840         * doc/c-tree.texi: Remove.
34841         * doc/generic.texi: Merge c-tree.texi here.
34842         * doc/gccint.texi (Trees): Remove menu entry.
34843         (c-tree.texi): Remove @include.
34844         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34845         * doc/languages.texi (Reading RTL): Ditto.
34846
34847 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
34848
34849         PR target/42869
34850         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
34851
34852 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
34853
34854         PR middle-end/42431
34855         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
34856         code added to work around reload clobbering CONST insns.
34857
34858 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
34859
34860         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
34861         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
34862         (cselib_preserve_only_values): Remove retain argument, don't
34863         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
34864         * cselib.h (cselib_preserve_only_values): Remove retain argument.
34865         * var-tracking.c (micro_operation): Move insn field before union.
34866         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
34867         (struct variable_tracking_info_def): Remove n_mos field, change
34868         mos into a vector of micro_operations.
34869         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
34870         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
34871         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
34872         changing into a vector.
34873         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
34874         come before all other uops generated by add_stores.
34875         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
34876         argument removal.
34877         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
34878         a vector.  Run just one pass over the bbs instead of separate counting
34879         and computation phase.
34880         (vt_finalize): Free VTI (bb)->mos vector instead of array.
34881
34882         PR debug/43329
34883         * tree-inline.c (remap_decls): Put old_var rather than origin_var
34884         into *nonlocalized_list vector.
34885         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
34886         even if origin is non-NULL.
34887         (gen_variable_die): Likewise.
34888         (process_scope_var): Don't change origin.
34889         (gen_decl_die): Likewise.
34890         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
34891         before adding new edges instead of after it, fix moving over
34892         debug stmts.
34893
34894 2010-03-11  David S. Miller  <davem@davemloft.net>
34895
34896         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
34897         of four.
34898         * configure: Rebuild.
34899
34900 2010-03-11  Martin Jambor  <mjambor@suse.cz>
34901
34902         PR tree-optimization/43257
34903         * tree.c (assign_assembler_name_if_neeeded): New function.
34904         (free_lang_data_in_cgraph): Assembler name assignment moved to the
34905         above new function.
34906         * tree.h (assign_assembler_name_if_neeeded): Declare.
34907         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
34908         the function if needed.
34909
34910 2010-03-11  Chris Demetriou  <cgd@google.com>
34911
34912         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
34913         include/stdint-gcc.h, and include/stdint.h world-readable.
34914
34915 2010-03-11  Richard Guenther  <rguenther@suse.de>
34916
34917         PR tree-optimization/43255
34918         * tree-vrp.c (process_assert_insertions_for): Do not insert
34919         asserts for trivial conditions.
34920
34921 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34922
34923         PR tree-optimization/43280
34924         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
34925         generation.  Move calculation of size out of the if branch.
34926         (find_bswap): Modify compare number generation.
34927
34928 2010-03-11  Richard Guenther  <rguenther@suse.de>
34929
34930         PR lto/43200
34931         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
34932         (input_gimple_stmt): Fixup handled component types during
34933         operand read.  Also fix up decls in ADDR_EXPRs.
34934
34935 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
34936
34937         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
34938         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
34939
34940 2010-03-10  Jan Hubicka  <jh@suse.cz>
34941
34942         PR c/43288
34943         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
34944         * varasm.c (get_variable_section): Don't do that here...
34945         (make_decl_rtl): ... and here.
34946         (do_assemble_alias): Produce decl RTL.
34947         (assemble_alias): Likewise.
34948
34949 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
34950
34951         PR debug/43290
34952         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
34953         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
34954         of fde->vdrap_reg.
34955         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
34956         (based_loc_descr): Only express drap or vdrap regno based expressions
34957         using DW_OP_fbreg when not optimizing.
34958         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
34959         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
34960         REG_CFA_SET_VDRAP note.
34961
34962 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
34963
34964         PR tree-optimization/43236
34965         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
34966         error in calculation of base address in reverse iteration case.
34967         (generate_builtin): Take number of latch executions if the statement
34968         is in the latch.
34969
34970 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
34971
34972         PR middle-end/42859
34973         * tree-eh.c: Include pointer-set.h.
34974         (lower_eh_dispatch): Filter out duplicate case labels and
34975         remove the unneeded edge when the label is unused.  Return
34976         true when some edges are removed.
34977         (execute_lower_eh_dispatch): When any lowering resulted in
34978         removing an edge, also delete unreachable blocks.
34979
34980 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
34981
34982         PR bootstrap/43287
34983         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
34984         UNSPEC_MACHOPIC_OFFSET.
34985
34986 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
34987
34988         PR target/43294
34989         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
34990         (m68k_delegitimize_address): New function.
34991
34992 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
34993
34994         PR debug/43299
34995         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
34996
34997         PR debug/43299
34998         * var-tracking.c (adjust_sets): New function.
34999         (count_with_sets, add_with_sets): Use it.
35000         (get_adjusted_src): New inline function.
35001         (add_stores): Use it.
35002
35003         PR debug/43304
35004         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35005         call cselib_dummy_expand_value_rtx_cb instead of
35006         cselib_expand_value_rtx_cb.
35007
35008         PR debug/43293
35009         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35010         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35011         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35012         and .cfi_endproc around the pic thunks.
35013         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35014         all queued unwind info register saves are saved before the call.
35015         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35016         considered as sp-=4 for unwind info and the pop as sp+=4 which
35017         also clobbers dest, but doesn't actually restore it.
35018
35019         PR debug/43290
35020         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35021         RTX_FRAME_RELATED_P.
35022
35023 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35024
35025         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35026         whitespaces in output template.
35027
35028 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35029
35030         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35031         out array boundary.
35032
35033 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35034
35035         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35036         builtins.exp in a separate job.
35037
35038 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35039
35040         * graphite-sese-to-poly.c (add_param_constraints): Use
35041         lower_bound_in_type and upper_bound_in_type.
35042
35043 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35044
35045         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35046         instead of unsigned_type_node.
35047
35048 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35049             Reza Yazdani  <reza.yazdani@amd.com>
35050
35051         PR middle-end/43065
35052         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35053         on pointer type parameters.
35054
35055 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35056
35057         PR middle-end/42644
35058         PR middle-end/42130
35059         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35060         handle conversions from pointer to integers.
35061         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35062         induction variable, to be able to work with code generated by CLooG.
35063         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35064         (build_poly_scop): Bail out if we cannot codegen a loop.
35065
35066 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35067
35068         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35069         code generation with gloog_error.
35070
35071 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35072
35073         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35074         Call fold_convert on all the returned values.
35075         (expand_scalar_variables_expr): Pass to
35076         expand_scalar_variables_ssa_name the type of the resulting expression.
35077
35078 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35079
35080         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35081         ppl_min_for_le_pointset.
35082         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35083         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35084
35085 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35086
35087         * graphite-dependences.c (map_into_dep_poly): Removed.
35088         (dependence_polyhedron_1): Use combine_context_id_scat.
35089
35090 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35091
35092         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35093         (struct poly_bb): Same.
35094         (combine_context_id_scat): New.
35095
35096 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35097
35098         PR middle-end/42326
35099         * sese.c (name_defined_in_loop_p): Return false for default
35100         definitions.
35101
35102 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35103
35104         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35105         and clean up the logic.
35106
35107 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35108
35109         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35110         early return.
35111
35112 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35113
35114         * var-tracking.c (remove_cselib_value_chains): Define only for
35115         ENABLE_CHECKING.
35116         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35117         delete_slot_part, emit_notes_for_differences_1): Don't call
35118         remove_cselib_value_chains here.
35119         (set_slot_part, emit_notes_for_differences_2): Don't call
35120         add_cselib_value_chains here.
35121         (preserved_values): New vector.
35122         (preserve_value): New function.
35123         (add_uses, add_stores, vt_add_function_parameters): Use it
35124         instead of cselib_preserve_value.
35125         (changed_values_stack): New vector.
35126         (check_changed_vars_0): New function.
35127         (check_changed_vars_1, check_changed_vars_2): Use it.
35128         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35129         changed_values_stack VALUEs.
35130         (vt_emit_notes): For all preserved_values call
35131         add_cselib_value_chains.  If ENABLE_CHECKING call
35132         remove_cselib_value_chains before verifying value_chains is empty.
35133         Initialize and free changed_values_stack.
35134         (vt_initialize): Initialize preserved_values.
35135         (vt_finalize): Free preserved_values.
35136
35137 2010-03-08  Richard Guenther  <rguenther@suse.de>
35138
35139         PR tree-optimization/43269
35140         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35141         region detection.
35142
35143 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35144
35145         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35146         (ipa_is_param_called): Removed.
35147         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35148         (ipa_print_node_params): Do not print the called flag.
35149         (ipa_write_node_info): Do not stream the called flag.
35150         (ipa_read_node_info): Likewise.
35151
35152 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35153
35154         PR debug/43176
35155         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35156         * cselib.c (struct expand_value_data): Add dummy field.
35157         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35158         dummy to false.
35159         (cselib_dummy_expand_value_rtx_cb): New function.
35160         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35161         any rtl.
35162         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35163         * var-tracking.c: Include pointer-set.h.
35164         (variable): Change n_var_parts to char from int.  Add
35165         cur_loc_changed and in_changed_variables fields.
35166         (variable_canonicalize): Remove.
35167         (shared_var_p): New inline function.
35168         (unshare_variable): Maintain cur_loc_changed and
35169         in_changed_variables fields.  If var was in changed_variables,
35170         replace it there with new_var.  Just copy cur_loc instead of
35171         resetting it to something else.
35172         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35173         (dataflow_set_union): Don't call variable_canonicalize.
35174         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35175         of their DEBUG_EXPR_TREE_DECLs.
35176         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35177         and in_changed_variables and cur_loc_changed is false.
35178         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35179         and cur_loc_changed.  Don't update cur_loc here.
35180         (variable_merge_over_src): Don't call variable_canonicalize.
35181         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35182         removing loc that is equal to cur_loc, clear cur_loc,
35183         set cur_loc_changed and ensure variable_was_changed is called.
35184         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35185         compare pointers in cur_loc check, if it is equal to loc,
35186         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35187         (variable_different_p): Remove compare_current_location argument,
35188         don't compare cur_loc.
35189         (dataflow_set_different_1): Adjust variable_different_p caller.
35190         (variable_was_changed): If dv had some var in changed_variables
35191         already, reset in_changed_variables flag for it and propagate
35192         cur_loc_changed over to the new variable.  On empty var
35193         always set cur_loc_changed.  Set in_changed_variables on whatever
35194         var is added to changed_variables.
35195         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35196         Use shared_var_p.  When removing loc that is equal to cur_loc,
35197         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35198         end, don't set it to something else, just call variable_was_changed.
35199         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
35200         loc being removed, clear cur_loc and set cur_loc_changed.
35201         Set cur_loc_changed if all locations have been removed.
35202         (struct expand_loc_callback_data): New type.
35203         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
35204         allocated.  Always create SUBREGs if simplify_subreg failed.
35205         Prefer to use cur_loc, when that fails and still in
35206         changed_variables (and seen first time) recompute it.  Set
35207         cur_loc_changed of variables which had to change cur_loc and
35208         compute elcd->cur_loc_changed if any of the subexpressions used
35209         had to change cur_loc.
35210         (vt_expand_loc): Adjust to pass arguments in
35211         expand_loc_callback_data structure.
35212         (vt_expand_loc_dummy): New function.
35213         (emitted_notes): New variable.
35214         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
35215         that weren't used for any other decl in current
35216         emit_notes_for_changes call call vt_expand_loc_dummy to update
35217         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
35218         first loc_chain location if NULL before.  Always use just
35219         cur_loc instead of first loc_chain location.  When cur_loc_changed
35220         is false, when not --enable-checking=rtl just don't emit any note.
35221         When rtl checking, compute the note and assert it is the same
35222         as previous note.  Clear cur_loc_changed and in_changed_variables
35223         at the end before removing from changed_variables.
35224         (check_changed_vars_3): New function.
35225         (emit_notes_for_changes): Traverse changed_vars to call
35226         check_changed_vars_3 on each changed var.
35227         (emit_notes_for_differences_1): Clear cur_loc_changed and
35228         in_changed_variables.  Recompute cur_loc of new_var.
35229         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
35230         (vt_emit_notes): Initialize and destroy emitted_notes.
35231
35232 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
35233
35234         PR rtl-optimization/42220
35235         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
35236         Use verify_reg_tracked to determine if we should use OP_OUT rather
35237         than OP_INOUT.
35238         (build_def_use): If we see an in-out operand for a register that we
35239         know nothing about, treat is an output if possible, fail the block if
35240         not.
35241
35242 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35243
35244         PR debug/42897
35245         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
35246         permanently.
35247
35248 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35249
35250         PR debug/42897
35251         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
35252         uses of relevant DEFs that are dead outside the loop too.
35253
35254 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35255
35256         * var-tracking.c (dataflow_set_merge): Swap src and src2.
35257         Reverted:
35258         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35259         PR debug/41371
35260         * var-tracking.c (values_to_unmark): New variable.
35261         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35262         values_to_unmark vector.  Moved body to...
35263         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35264         instead queue it into values_to_unmark vector.
35265         (vt_find_locations): Free values_to_unmark vector.
35266
35267 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
35268
35269         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
35270         (site.exp): Export them when plugins are enabled.
35271
35272 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
35273
35274         PR middle-end/42326
35275         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
35276         that contain scevs.
35277         (chrec_fold_multiply): Same.
35278
35279 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35280
35281         PR c/43248
35282         * c-decl.c (build_compound_literal): Return early if init is
35283         an error_mark_node.
35284
35285 2010-03-04  Martin Jambor  <mjambor@suse.cz>
35286
35287         PR tree-optimization/43164
35288         PR tree-optimization/43191
35289         * tree-sra.c (type_consists_of_records_p): Reject records with
35290         zero-size bit-fields at the end.
35291
35292 2010-03-04  Mike Stump  <mikestump@comcast.net>
35293
35294         * Makefile.in (TAGS): Remove *.y.
35295
35296 2010-03-04  Richard Guenther  <rguenther@suse.de>
35297
35298         PR tree-optimization/40761
35299         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
35300         in reverse order.
35301         (my_rev_post_order_compute): New function.
35302         (init_pre): Call it.
35303
35304 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35305
35306         PR middle-end/43209
35307         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
35308         decrease the cost of an IV candidate when the cost is infinite.
35309
35310 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35311
35312         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
35313         Use '3DNow!' for the extension of that name, ensure normal space
35314         after the string.
35315         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
35316
35317 2010-03-03  Jeff Law  <law@redhat.com>
35318
35319         * PR middle-end/32693
35320         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
35321         than gen_rtx_SUBREG.
35322         (extract_bit_field_1): Likewise.
35323
35324 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
35325
35326         * doc/sourcebuild.texi (Test directives): Document that arguments
35327         include-opts and exclude-opts are now optional for dg-skip-if,
35328         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
35329
35330 2010-03-03  Jason Merrill  <jason@redhat.com>
35331
35332         PR c++/12909
35333         * cgraph.h (varpool_node): Add extra_name field.
35334         * varpool.c (varpool_extra_name_alias): New.
35335         (varpool_assemble_decl): Emit extra name aliases.
35336         (varpool_mark_needed_node): Look past an extra name alias.
35337         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
35338         * lto-streamer-in.c (lto_input_tree): Read it.
35339         * lto-streamer-out.c (output_unreferenced_globals): Write it.
35340
35341 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35342
35343         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
35344         (sparc*-*-solaris2*): ...this.
35345
35346 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
35347
35348         PR debug/43229
35349         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
35350         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
35351         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
35352         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
35353
35354         PR debug/43237
35355         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
35356         fallthrough to default handling, just with want_address 0 instead of 2.
35357         For single element lists, add_AT_loc directly, otherwise create an
35358         artificial variable DIE and stick location list to it.
35359
35360         PR debug/43177
35361         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
35362         (VAL_EXPR_HAS_REVERSE): Define.
35363         (reverse_op): New function.
35364         (add_stores): For reversible operations add an extra MO_VAL_USE.
35365
35366 2010-03-02  Jason Merrill  <jason@redhat.com>
35367
35368         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35369
35370 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35371
35372         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35373         (sparc64-*-linux*): Likewise.
35374         (sparc64-*-solaris2*): Include assembler files before linker ones.
35375         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35376         * config/sparc/gas.h: Delete.
35377         * config/sparc/sol2-64.h: Add copyright notice.
35378         * config/sparc/sol2-gas-bi.h: Likewise.
35379         * config/sparc/sol2-gld.h: Likewise.
35380         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35381         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35382         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35383         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35384         (sparc_elf_asm_named_section): Rename into...
35385         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35386
35387 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35388
35389         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35390
35391 2010-03-02  Jeff Law  <law@redhat.com>
35392
35393         PR middle-end/42431
35394         * reload1.c (rtx_p, substitute_stack): Declare.
35395         (substitute): Record addresses of changed rtxs.
35396         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35397         Restore the original rtx when complete.
35398         (reload): Free subsitute_stack when complete.
35399
35400 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35401
35402         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35403         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35404         new chapter.
35405         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35406         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35407         Torture Tests): Change from subsection to section.
35408
35409 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35410             Steven Bosscher  <steven@gcc.gnu.org>
35411
35412         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35413         instead of bb.
35414
35415 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35416
35417         PR middle-end/42640
35418         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35419         the assignment from the new induction variable to the assignment
35420         of the value from the original loop PHI function.
35421
35422 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35423             Daniel Jacobowitz  <dan@codesourcery.com>
35424
35425         * doc/sourcebuild.texi (Test directives): Clarify options to
35426         dg-skip-if.
35427
35428 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35429
35430         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35431         Disable cfi directives unless GCC and gas agree on using read-only
35432         .eh_frame sections for 64-bit.
35433         * configure: Regenerate.
35434
35435 2010-03-01  Richard Guenther  <rguenther@suse.de>
35436
35437         PR tree-optimization/43220
35438         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35439         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35440
35441 2010-03-01  Richard Guenther  <rguenther@suse.de>
35442             Martin Jambor  <mjambor@suse.cz>
35443
35444         PR middle-end/41250
35445         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35446         gimplified parameters.
35447
35448 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35449
35450         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35451
35452 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35453
35454         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35455
35456 2010-03-01  Richard Guenther  <rguenther@suse.de>
35457
35458         PR middle-end/43213
35459         * expr.c (expand_assignment): Use the alias-oracle to tell
35460         if the rhs aliases the result decl.
35461
35462 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35463
35464         PR pch/14940
35465         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35466         to sol_gt_pch_get_address.
35467         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35468         64-bit, SPARC and x86.
35469         (sol_gt_pch_get_address): New function.
35470
35471 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35472
35473         * toplev.h (inform_n, error_n): Declare.
35474         * diagnostic.c (inform_n, error_n): New function.
35475
35476 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35477
35478         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35479         has no rtl yet when processing local_decls, queue it and recheck
35480         if deferred stack allocation hasn't assigned it rtl.
35481
35482 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35483
35484         * config/sh/sh.c (unspec_bbr_uid): New.
35485         (gen_block_redirect): Use it instead of INSN_UID.
35486         (gen_far_branch): Likewise.
35487
35488 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35489
35490         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35491         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35492
35493 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35494
35495         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35496         (Warning Options): -Wno-conversion-null is valid for
35497         Objective-C++ as well.
35498         * doc/tm.texi (Named Address Spaces): Likewise.
35499         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35500         * doc/tree-ssa.texi (Tree SSA): Likewise.
35501
35502 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35503
35504         PR bootstrap/43202
35505         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35506         by default.  Don't set the default arch for
35507         i[34567]86-*-darwin*|x86_64-*-darwin*.
35508
35509 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35510
35511         PR bootstrap/43202
35512         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35513         default.  Set the default 32bit/64bit archs with $with_arch
35514         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35515
35516 2010-02-27  Richard Guenther  <rguenther@suse.de>
35517
35518         PR tree-optimization/43186
35519         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35520         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35521         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35522         unroller iterations.
35523
35524 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35525
35526         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35527         required and i[34567]86-*-* targets don't support 64bit ISA.
35528
35529 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35530
35531         PR ada/43096
35532         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35533         the same alias set.
35534
35535 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35536
35537         * config.gcc: Set the default arch at least to Prescott for
35538         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35539         if SSE math is enabled.
35540
35541 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35542
35543         * diagnostic.c (diagnostic_initialize): Update.
35544         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35545         informative notes.
35546         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35547         (diagnostic_inhibit_notes): New.
35548         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35549
35550 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35551
35552         PR c/20631
35553         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35554         * doc/standards.texi: Likewise.
35555         * doc/extend.texi: Likewise.
35556         * doc/trouble.texi: Likewise.
35557         * doc/cppopts.texi: Likewise.
35558         * doc/install.texi: Likewise.
35559         * c.opt (std=c90,std=gnu90): New options.
35560         * c-opts.c (c_common_handle_option): Handle them.
35561
35562 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35563
35564         PR c/24577
35565         * c-decl.c (undeclared_variable): Use an informative note.
35566
35567 2010-02-26  Richard Guenther  <rguenther@suse.de>
35568
35569         PR tree-optimization/43186
35570         * gimple.h (gimple_fold): Remove.
35571         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35572         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35573         Try harder for conditions.
35574
35575 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35576
35577         PR debug/43190
35578         * function.c (used_types_insert): Don't skip through named pointer
35579         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35580         and it is different from the main variant's type.
35581
35582 2010-02-26  Nick Clifton  <nickc@redhat.com>
35583
35584         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35585
35586 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35587
35588         * config.gcc: Support --with-fpmath=sse for x86.
35589
35590         * config/i386/ssemath.h: New.
35591
35592         * doc/install.texi (--with-fpmath=sse): Documented.
35593
35594 2010-02-26  Richard Guenther  <rguenther@suse.de>
35595
35596         PR tree-optimization/43188
35597         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35598         vector types of over-aligned element type.
35599
35600 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35601
35602         PR target/43175
35603         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35604         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35605
35606 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35607
35608         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35609
35610 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35611
35612         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35613         * var-tracking.c: Include diagnostic.h.
35614         (debug_dv): New function.
35615         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35616
35617         PR debug/43160
35618         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35619         (add_value_chain, add_value_chains, remove_value_chain,
35620         remove_value_chains): Handle DEBUG_EXPRs.
35621         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35622
35623         PR debug/43161
35624         * regcprop.c (struct queued_debug_insn_change): New type.
35625         (struct value_data_entry): Add debug_insn_changes field.
35626         (struct value_data): Add n_debug_insn_changes field.
35627         (debug_insn_changes_pool): New variable.
35628         (free_debug_insn_changes, apply_debug_insn_changes,
35629         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35630         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35631         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35632         fields.
35633         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35634         changes for them.
35635         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35636         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35637         changes, call cprop_find_used_regs via note_stores.
35638         (copyprop_hardreg_forward): When copying vd from predecessor
35639         which has any queued DEBUG_INSN changes, make sure the pointers are
35640         cleared.  At the end call df_analyze and then if there are any
35641         DEBUG_INSN changes queued at the end of some basic block for still
35642         live registers, apply them.
35643         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35644
35645 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35646
35647         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35648         (arm*-*-*): Ditto.
35649
35650 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35651
35652         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35653         targets.  Set the default with_cpu/with_arch from arch/cpu.
35654         Allow x86-64 and native for with_cpu/with_arch.
35655
35656 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35657
35658         * ebitmap.c: Change calls to verify_popcount with calls to
35659         sbitmap_verify_popcount.
35660         (ebitmap_clear_bit): Fixed map->cacheindex test and
35661         map>cache update when bit clearing results in an empty
35662         element.
35663
35664 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35665
35666         PR target/43154
35667         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35668         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35669         and support both V2DF and V2DI modes.
35670         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35671         support both V2DF and V2DI modes.
35672         (general): Delete trailing whitespace from a few patterns.
35673
35674         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35675         V2DF/V2DI interleave high/low builtins.
35676
35677         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35678         new VSX builtins.
35679
35680         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35681         interleave high/low functions.
35682
35683 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35684
35685         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35686         #pragma extern_prefix.
35687
35688 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35689
35690         PR debug/43166
35691         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35692         BLKmode, assert op0 is a MEM and just adjust its mode.
35693
35694         PR debug/43165
35695         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35696         if bitpos isn't multiple of mode's bitsize.
35697
35698 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35699
35700         * c.opt (-ftemplate-depth=): New.
35701         (-ftemplate-depth-): Deprecate.
35702         * optc-gen.awk: Handle -ftemplate-depth=.
35703         * opth-gen.awk: Likewise.
35704         * c-opts.c (c_common_handle_option): Likewise.
35705         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35706
35707 2010-02-24  Jason Merrill  <jason@redhat.com>
35708
35709         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35710
35711 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35712
35713         * cfg.c (alloc_aux_for_block): Remove inline.
35714         (alloc_aux_for_edge): Likewise.
35715
35716 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35717
35718         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35719
35720 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35721
35722         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35723         * config/i386/sol2-gas.h: New file.
35724         * config.gcc (i[34567]86-*-solaris2*): Use it.
35725
35726 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35727
35728         PR c/43128
35729         * c-typeck.c (ep_convert_and_check): New.
35730         (build_conditional_expr): Use it.
35731         (build_binary_op): Likewise.
35732
35733 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35734
35735         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35736
35737         PR debug/43150
35738         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35739         bounds even for -O+.
35740         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35741         expr needs to have DECL_NAME set.
35742
35743 2010-02-24  Nick Clifton  <nickc@redhat.com>
35744
35745         * config/mep/mep.c: Include gimple.h.
35746         (mep_function_uses_sp): Delete unused function.
35747         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35748         parameters.  Use unsigned integers to count args.  Return a
35749         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35750
35751 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35752
35753         PR target/43107
35754         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35755         greater or equal to nelt instead of 2 * nelt.
35756         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35757         with nelt - 1.
35758
35759 2010-02-23  Jason Merrill  <jason@redhat.com>
35760
35761         PR debug/42800
35762         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35763         in cfun->local_decls even if they have register types.
35764
35765         PR c++/42837
35766         * stor-layout.c (place_field): Don't warn about unnecessary
35767         DECL_PACKED if the type is packed.
35768
35769 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35770
35771         PR target/43139
35772         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35773         GOTOFF relocs, even when the base reg isn't pic pointer.
35774
35775 2010-02-23  Michael Matz  <matz@suse.de>
35776
35777         PR debug/43077
35778         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35779         (expand_gimple_basic_block): Generate and use debug temps if there
35780         are debug uses left after the last real use of TERed ssa names.
35781         Unlink debug immediate uses when they are expanded.
35782
35783 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35784
35785         PR 43123
35786         * config/i386/i386.c (override_options): Reorganise to provide
35787         better error messages.
35788
35789 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35790
35791         PR middle-end/43083
35792         * graphite-scop-detection.c (create_single_exit_edge): Move
35793         the call to find_single_exit_edge to....
35794         (create_sese_edges): ...here.  Don't handle multiple edges
35795         exiting the function.
35796         (build_graphite_scops): Don't handle multiple edges
35797         exiting the function.
35798
35799 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35800
35801         PR middle-end/43097
35802         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35803         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35804
35805 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35806
35807         PR middle-end/43026
35808         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35809
35810 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35811
35812         PR c++/43126
35813         * c-typeck.c (convert_arguments): Print declaration location.
35814         * c-common.c (validate_nargs): Rename as
35815         builtin_function_validate_nargs.
35816         (check_builtin_function_arguments): Update.
35817
35818 2010-02-22  Richard Guenther  <rguenther@suse.de>
35819
35820         PR lto/43045
35821         * tree-inline.c (declare_return_variable): Use the type of
35822         the call stmt lhs if available.
35823
35824 2010-02-22  Duncan Sands  <baldrick@free.fr>
35825
35826         * passes.c (register_pass): Always consider all pass lists when
35827         ref_pass_instance_number is zero.
35828
35829 2010-02-22  Richard Guenther  <rguenther@suse.de>
35830
35831         PR tree-optimization/42749
35832         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35833         parameter.  Do arithmetic in the original type.
35834         (update_accumulator_with_ops): Likewise.
35835         (adjust_accumulator_values): Adjust.
35836
35837 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35838
35839         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35840         (QI to BLKmode splitter): New splitter.
35841
35842 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35843
35844         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35845         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
35846
35847 2010-02-22  Richard Guenther  <rguenther@suse.de>
35848
35849         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
35850
35851 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
35852
35853         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
35854         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
35855         ($(T)crti.o, $(T)crtn.o): Remove rules.
35856
35857 2010-02-21  Tobias Burnus  <burnus@net-b.de>
35858
35859         PR fortran/35259
35860         * doc/invoke.texi (-fassociative-math): Document that this
35861         option is automatically enabled for Fortran.
35862
35863 2010-02-20  David S. Miller  <davem@davemloft.net>
35864
35865         * configure.ac: Test if linker and assembler properly support
35866         GOTDATA_OP relocations.
35867         * configure: Rebuild.
35868         * config.in: Likewise.
35869         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
35870         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
35871         (movsi_high_pic): Likewise.
35872         (movdi_lo_sum_pic): Likewise.
35873         (movdi_high_pic): Likewise.
35874         (movsi_pic_gotdata_op): New pattern.
35875         (movdi_pic_gotdata_op): Likewise.
35876         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
35877         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
35878
35879 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
35880
35881         PR target/43067
35882         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
35883         attribute to ssemul.
35884         (xop_mulv2div2di3_high): Ditto.
35885
35886 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35887
35888         PR c++/35669
35889         * c.opt (Wconversion-null): New option.
35890         * doc/invoke.texi (Wconversion-null): Document.
35891
35892 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35893
35894         * common.opt (Wlarger-than-): Add Undocumented.
35895
35896 2010-02-19  Mike Stump  <mikestump@comcast.net>
35897
35898         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
35899
35900 2010-02-19  Jason Merrill  <jason@redhat.com>
35901
35902         PR target/40332
35903         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
35904         * configure: Likewise.
35905
35906 2010-02-20  Alan Modra  <amodra@gmail.com>
35907
35908         PR middle-end/42344
35909         * cgraph.h (cgraph_make_decl_local): Declare.
35910         * cgraph.c (cgraph_make_decl_local): New function.
35911         (cgraph_make_node_local): Use it.
35912         * cgraphunit.c (cgraph_function_versioning): Likewise.
35913         * ipa.c (function_and_variable_visibility): Likewise.
35914
35915 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35916
35917         PR bootstrap/43121
35918         * except.c (sjlj_emit_function_enter): Don't call
35919         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
35920         directly.
35921         * rtl.h (add_reg_br_prob_note): Remove prototype.
35922
35923 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35924
35925         PR 41779
35926         * c-common.c (conversion_warning): Remove widening conversions
35927         before checking the conversion of integers to reals.
35928
35929 2010-02-19  Mike Stump  <mikestump@comcast.net>
35930
35931         PR middle-end/43125
35932         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
35933
35934         PR objc/43061
35935         * cgraphunit.c (process_function_and_variable_attributes): Check
35936         DECL_PRESERVE_P instead of looking up attribute "used".
35937         * ipa-pure-const.c (check_decl): Likewise.
35938         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
35939         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
35940         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
35941         instead of attribute "used".
35942         * config/sol2-c.c (solaris_pragma_init): Likewise.
35943         (solaris_pragma_fini): Likewise.
35944
35945 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35946
35947         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
35948         Use XCNEW instead of xcalloc.
35949         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
35950         XNEW instead of xmalloc.
35951         (get_fields): Use XNEWVEC instead of xmalloc.
35952
35953         PR debug/43084
35954         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
35955         populate vars array.
35956         (create_new_general_access): For debug stmts just reset value.
35957         (get_stmt_accesses): For accesses within debug stmts just record them
35958         using add_access_to_acc_sites instead of preventing the peeling or
35959         counting them as accesses.
35960
35961         PR middle-end/42233
35962         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
35963
35964 2010-02-19  Richard Guenther  <rguenther@suse.de>
35965
35966         PR tree-optimization/42916
35967         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
35968         instructions.
35969
35970 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
35971
35972         * configure.ac: Replace all uses of changequote in macro arguments
35973         with proper quoting.
35974
35975 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35976
35977         PR middle-end/42233
35978         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
35979
35980 2010-02-19  Richard Guenther  <rguenther@suse.de>
35981
35982         PR tree-optimization/42944
35983         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
35984         test for aliasing with errno.
35985
35986 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35987
35988         PR middle-end/42233
35989         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
35990         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
35991         * dojump.c: Include output.h.
35992         (inv): New inline function.
35993         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
35994         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
35995         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
35996         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
35997         argument, pass it down to other calls.
35998         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
35999         add REG_BR_PROB note to the conditional jump.
36000         * cfgexpand.c (add_reg_br_prob_note): Removed.
36001         (expand_gimple_cond): Don't call it, add the probability
36002         as last argument to jumpif_1/jumpifnot_1.
36003         * Makefile.in (dojump.o): Depend on output.h.
36004         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36005         callers.
36006         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36007         * stmt.c (do_jump_if_equal): Likewise.
36008         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36009         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36010         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36011         Likewise.
36012         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36013         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36014         jumpifnot_1 callers.
36015         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36016         callers.
36017         (store_expr): Adjust jumpifnot caller.
36018         (store_constructor): Adjust jumpif caller.
36019
36020         PR middle-end/42233
36021         * gimplify.c (gimple_boolify): For __builtin_expect call
36022         gimple_boolify also on its first argument.
36023
36024 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36025
36026         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36027         changequote block.
36028         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36029         * configure: Regenerated.
36030
36031 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36032
36033         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36034         lang_hooks.types_compatible_p instead of comptypes.
36035
36036 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36037
36038         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36039         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36040         if __prefer_thumb__ is defined.
36041
36042 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36043
36044         PR tree-optimization/43066
36045         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36046         array with zero-sized element type.
36047
36048 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36049
36050         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36051         rtx, allocate struct var_loc_node here and return it to the
36052         caller, and only if it is actually needed.
36053         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36054         move it earlier and return immediately if it returns NULL.
36055
36056 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36057
36058         * config/sparc/gas.h: New file.  Restore
36059         TARGET_ASM_NAMED_SECTION to its ELF default.
36060         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36061         check !HAVE_GNU_AS.
36062         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36063         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36064         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36065         after sparc/sysv4.h.
36066
36067 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36068
36069         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36070
36071 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36072
36073         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36074         patterns from predicated pattern.
36075
36076 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36077
36078         PR target/43103
36079         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36080         for insn mnemonic suffix.
36081
36082 2010-02-17  Richard Guenther  <rguenther@suse.de>
36083
36084         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36085         to loop PHI nodes.
36086
36087 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36088
36089         PR debug/42918
36090         * caller-save.c (save_call_clobbered_regs): If BB ends with
36091         a DEBUG_INSN, move any notes in between last real insn and the last
36092         DEBUG_INSN after the last DEBUG_INSN.
36093
36094 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36095
36096         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36097         Fix return type.  Fix argument type.  Explain meaning of return value.
36098
36099 2010-02-16  Richard Guenther  <rguenther@suse.de>
36100
36101         PR tree-optimization/41043
36102         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36103         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36104         statements ...
36105         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36106
36107 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36108
36109         PR tree-optimization/43074
36110         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36111         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36112         vectorizable cycles in hybrid SLP check.
36113         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36114
36115 2010-02-16  Richard Guenther  <rguenther@suse.de>
36116
36117         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36118         (true_dependence): If memrefs_conflict_p computes must-alias
36119         trust it.  Move TBAA check after offset-based disambiguation.
36120         (canon_true_dependence): Likewise.
36121
36122 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36123
36124         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36125         * doc/invoke.texi: Document it.
36126         * var-tracking.c: Include toplev.h and params.h.
36127         (vt_find_locations): Return bool indicating success.  Compute
36128         hash sizes unconditionally.  Check new parameter, report.
36129         (variable_tracking_main_1): Check vt_find_locations results and
36130         retry.  Renamed from...
36131         (variable_tracking_main): ... this.  New wrapper to preserve
36132         flag_var_tracking_assignments.
36133         * Makefile.in (var-tracking.o): Adjust dependencies.
36134
36135 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36136             Jakub Jelinek  <jakub@redhat.com>
36137
36138         PR target/42854
36139         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36140         if weak_import attribute is present.
36141         * config/darwin.c (machopic_select_section): Likewise.
36142
36143 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36144
36145         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36146         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36147         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36148         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36149
36150         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36151         types.
36152
36153         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36154         Fix argument types.
36155
36156         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36157         Rewrite text to refer to the names.
36158
36159 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36160
36161         * config/i386/i386-builtin-types.def
36162         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36163         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36164         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36165         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36166         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36167         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36168         IX86_BUILTIN_VPERMIL2PS256.
36169         (MULTI_ARG_4_DF2_DI_I): Defined.
36170         (MULTI_ARG_4_DF2_DI_I1): Defined.
36171         (MULTI_ARG_4_SF2_SI_I): Defined.
36172         (MULTI_ARG_4_SF2_SI_I1): Defined.
36173         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36174         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36175         __builtin_ia32_vpermil2ps256.
36176         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36177         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36178         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36179         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36180         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36181         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36182         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36183         CODE_FOR_xop_vpermil2v8sf3.
36184         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36185         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36186         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36187         (_mm256_permute2_pd): New.
36188         (_mm_permute2_ps): New.
36189         (_mm256_permute2_ps): New.
36190
36191 2010-02-15  Nick Clifton  <nickc@redhat.com>
36192
36193         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36194         boolean parameters.  Use emit_jump_insn when emitting a pop
36195         instruction containing a return insn.
36196         (push): Use 'true' rather than '1' as second parameter to F.
36197         (h8300_expand_prologue): Likewise.
36198         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
36199         (h8300_expand_epilogue): Likewise.
36200
36201 2010-02-15  Richard Guenther  <rguenther@suse.de>
36202
36203         PR middle-end/43068
36204         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
36205         if that is zero.
36206
36207 2010-02-15  Nick Clifton  <nickc@redhat.com>
36208
36209         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
36210         delta.
36211
36212 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
36213
36214         * intl.c (fake_ngettext): New function.
36215         * intl.h (fake_ngettext): Declare.
36216         (ngettext): Define macro.
36217         * collect2.c (notice_translated): New function.
36218         (main): Use notice_translated and ngettext.
36219         * collect2.h (notice_translated): Declare.
36220
36221 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
36222
36223         * reorg.c (delete_computation): Comment fixes.
36224         * caller-save.c (setup_save_areas): Idem.
36225         * sel-sched-dump.c (dump_lv_set): Idem.
36226         * rtl.def: Idem.
36227
36228 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36229
36230         * config/s390/s390.c (s390_sched_init): New function.
36231         (TARGET_SCHED_INIT): Target hook defined.
36232
36233 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
36234             Jack Howarth  <howarth@bromo.med.uc.edu>
36235             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
36236
36237         PR target/42982
36238         Partial revert of unintended change in fix for PR41605.
36239         * config/darwin.h: Fix typo.
36240         * config/darwin9.h: Same.
36241
36242 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36243
36244         * c-pch.c (pch_init): Clear v.
36245
36246 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36247
36248         PR middle-end/42930
36249         * graphite-scop-detection.c (graphite_can_represent_scev): Call
36250         graphite_can_represent_init for MULT_EXPR.
36251
36252 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36253
36254         PR middle-end/42914
36255         PR middle-end/42530
36256         * graphite-sese-to-poly.c (remove_phi): New.
36257         (translate_scalar_reduction_to_array): Call remove_phi.
36258
36259 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36260
36261         PR middle-end/42771
36262         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
36263         * graphite-clast-to-gimple.h (gloog): Update declaration.
36264         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
36265         * graphite-poly.h (struct poly_bb): Add missing comments.
36266         (struct scop): Add poly_scop_p field.
36267         (POLY_SCOP_P): New.
36268         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
36269         * graphite.c (graphite_transform_loops): Build the polyhedral
36270         representation for each scop before code generation.
36271         * sese.c (rename_variables_in_operand): Removed.
36272         (rename_variables_in_expr): Return the renamed expression.
36273         (rename_sese_parameters): New.
36274         * sese.h (rename_sese_parameters): Declared.
36275
36276 2010-02-11  Richard Guenther  <rguenther@suse.de>
36277
36278         PR tree-optimization/42998
36279         * tree-ssa-pre.c (create_expression_by_pieces): Treat
36280         POINTER_PLUS_EXPR properly.
36281
36282 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36283             Changpeng Fang  <changpeng.fang@amd.com>
36284
36285         PR middle-end/40886
36286         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
36287         the cost of an IV candidate when the IV is used in a test against zero.
36288
36289         * gcc.dg/tree-ssa/ivopts-3.c: New.
36290
36291 2010-02-11  Richard Guenther  <rguenther@suse.de>
36292
36293         PR lto/41664
36294         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
36295         pointer-vs-decl case by swapping refs.  Handle some cases
36296         of pointer-vs-decl disambiguations more conservatively.
36297         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
36298         to false after expanding.
36299
36300 2010-02-11  Richard Guenther  <rguenther@suse.de>
36301
36302         PR driver/43021
36303         * gcc.c (process_command): Handle LTO file@offset case more
36304         appropriately.
36305
36306 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36307
36308         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
36309         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
36310         of DEBUG_INSNs.
36311         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
36312
36313         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
36314         if MEM's mode size isn't DWARF2_ADDR_SIZE.
36315         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
36316         Optimize eq/ne comparisons when both arguments are known to be
36317         zero-extended.
36318         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
36319         Don't mask operands unnecessarily if they are known to be already
36320         zero-extended.
36321
36322 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
36323
36324         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
36325         instead of loop.
36326
36327 2010-02-10  Richard Guenther  <rguenther@suse.de>
36328
36329         PR tree-optimization/43017
36330         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
36331         for wrapping signed arithmetic.
36332
36333 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36334
36335         PR debug/43010
36336         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
36337         if no debug info should be emitted for it.
36338
36339 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
36340
36341         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
36342         note when flag_exceptions is set.
36343
36344 2010-02-10  Duncan Sands  <baldrick@free.fr>
36345
36346         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
36347
36348 2010-02-10  Richard Guenther  <rguenther@suse.de>
36349
36350         PR c/43007
36351         * tree.c (get_unwidened): Handle constants.
36352         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
36353
36354 2010-02-10  Martin Jambor  <mjambor@suse.cz>
36355
36356         PR lto/42985
36357         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
36358         check for variable argument counts independently.
36359
36360 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36361
36362         PR target/42841
36363         * config/sh/sh.c (find_barrier): Increase length for non delayed
36364         conditional branches.
36365
36366 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36367
36368         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36369
36370 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36371
36372         * builtins.c (set_builtin_user_assembler_name): Also handle
36373         ffs if int is smaller than word.
36374
36375 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36376
36377         PR middle-end/42973
36378         * ira-conflicts.c (get_dup): Remove.
36379         (process_reg_shuffles): Add new parameter.  Use it as an
36380         additional guard for copy generation.
36381         (add_insn_allocno_copies): Rewrite.
36382
36383 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36384
36385         * common.opt (fsched2-use-traces): Preserved for backward
36386         compatibility.
36387         * doc/invoke.texi: Remove the documentation about option
36388         -fsched2-use-traces.
36389         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36390         flag_sched2_use_traces.
36391         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36392         the backward compatibility flag section.
36393
36394 2010-02-09  Richard Guenther  <rguenther@suse.de>
36395
36396         PR tree-optimization/43008
36397         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36398         make HEAP variables initialized from global memory if they
36399         are not known builtin functions.
36400         (find_func_aliases): Adjust.
36401
36402 2010-02-09  Richard Guenther  <rguenther@suse.de>
36403
36404         PR tree-optimization/43000
36405         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36406         arithmetic manually.
36407
36408 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36409
36410         PR tree-optimization/42931
36411         * tree-loop-linear.c (try_interchange_loops): Don't call
36412         double_int_mul if estimated_loop_iterations failed.
36413
36414 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36415
36416         PR middle-end/42898
36417         * tree-sra.c (build_accesses_from_assign): Do not mark in
36418         should_scalarize_away_bitmap if stmt has volatile ops.
36419         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36420         has volatile ops.
36421
36422 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36423
36424         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36425
36426 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36427
36428         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36429         before the pattern.
36430
36431 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36432
36433         PR middle-end/42946
36434         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36435
36436 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36437
36438         PR middle-end/42988
36439         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36440         to unknown_dependence.
36441         (graphite_legal_transform_dr): Handle the unknown_dependence.
36442         (graphite_carried_dependence_level_k): Same.
36443
36444 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36445
36446         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36447
36448 2010-02-07  Richard Guenther  <rguenther@suse.de>
36449
36450         PR middle-end/42991
36451         * expr.c (get_inner_reference): Always initialize *pbitsize.
36452
36453 2010-02-07  Richard Guenther  <rguenther@suse.de>
36454
36455         PR middle-end/42956
36456         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36457         new ARRAY_REFs on variable size element or minimal index arrays.
36458         Complete.
36459         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36460         gimple_fold_indirect_ref.
36461
36462 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36463
36464         PR target/42957
36465         * arm.c (arm_override_options): Just return if the user has specified
36466         an invalid fpu name.
36467
36468 2010-02-03  Jason Merrill  <jason@redhat.com>
36469
36470         PR c++/42870
36471         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36472         i386_pe_maybe_record_exported_symbol.
36473
36474 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36475
36476         PR target/42924
36477         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36478         (pa_delegitimize_address): New function.
36479
36480 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36481
36482         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36483         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36484
36485 2010-02-05  Richard Guenther  <rguenther@suse.de>
36486
36487         PR lto/42762
36488         * lto-streamer-in.c (get_resolution): Deal with references
36489         to undefined functions.
36490
36491 2010-02-05  Richard Guenther  <rguenther@suse.de>
36492
36493         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36494         (fold_const_aggregate_ref): Likewise.
36495         (ccp_fold_stmt): Substitute loads.
36496         (maybe_fold_reference): Verify types before substituting.
36497         Unshare properly.
36498         (fold_gimple_assign): Unshare properly.
36499         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36500
36501 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36502
36503         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36504         for rs6000_gen_cell_microcode.
36505
36506 2010-02-04  Richard Guenther  <rguenther@suse.de>
36507
36508         PR rtl-optimization/42952
36509         * dse.c (const_or_frame_p): Remove MEM handling.
36510
36511 2010-02-04  Nick Clifton  <nickc@redhat.com>
36512
36513         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36514         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36515         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36516         (mn10300_asm_output_mi_thunk): New function.
36517         (mn10300_can_output_mu_thunk): New function.
36518         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36519         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36520         (FUNCTION_ARG): Delete incorrect comment.
36521
36522 2010-02-03  Jason Merrill  <jason@redhat.com>
36523
36524         PR c++/40138
36525         * fold-const.c (operand_equal_p): Handle erroneous types.
36526
36527 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36528
36529         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36530
36531 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36532
36533         PR rtl-optimization/42941
36534         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36535         of xmalloc.
36536
36537 2010-02-03  Jason Merrill  <jason@redhat.com>
36538
36539         PR c++/35652
36540         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36541
36542 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36543
36544         PR debug/42896
36545         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36546         (cselib_reset_table): Renamed from...
36547         (cselib_reset_table_with_next_value): ... this.
36548         (cselib_get_next_uid): Renamed from...
36549         (cselib_get_next_unknown_value): ... this.
36550         * cselib.c (next_uid): Renamed from...
36551         (next_unknown_value): ... this.
36552         (cselib_clear_table): Adjust.
36553         (cselib_reset_table): Adjust.  Renamed from...
36554         (cselib_reset_table_with_next_value): ... this.
36555         (cselib_get_next_uid): Adjust.  Renamed from...
36556         (cselib_get_next_unknown_value): ... this.
36557         (get_value_hash): Use hash.
36558         (cselib_hash_rtx): Likewise.
36559         (new_cselib_val): Adjust.  Set and dump uid.
36560         (cselib_lookup_mem): Pass next_uid as hash.
36561         (cselib_subst_to_values): Likewise.
36562         (cselib_log_lookup): Dump uid.
36563         (cselib_lookup): Pass next_uid as hash.  Adjust.
36564         (cselib_process_insn): Adjust.
36565         (cselib_init): Initialize next_uid.
36566         (cselib_finish): Adjust.
36567         (dump_cselib_table): Likewise.
36568         * dse.c (canon_address): Dump value uid.
36569         * print-rtl.c (print_rtx): Print value uid.
36570         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36571         (dvuid): New type.
36572         (dv_uid): New function, sort of renamed from...
36573         (dv_htab_hash): ... this, reimplemented in terms of it and...
36574         (dv_uid2hash): ... this.  New.
36575         (variable_htab_eq): Drop excess assertions.
36576         (tie_break_pointers): Removed.
36577         (canon_value_cmp): Compare uids.
36578         (variable_post_merge_New_vals): Print uids.
36579         (vt_add_function_parameters): Adjust.
36580         (vt_initialize): Reset table.  Adjust.
36581
36582 2010-02-03  Richard Guenther  <rguenther@suse.de>
36583
36584         PR tree-optimization/42944
36585         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36586         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36587         malloc and calloc clobbering errno.
36588
36589 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36590
36591         * doc/invoke.texi: Fix name of sched1 dump.
36592
36593         * opts.c (decode_options): Set flag_tree_switch_conversion
36594         only conditionally on optimize >= 2.
36595
36596         * gcse.c: Assorted comment fixes in pass description.
36597
36598 2010-02-03  Anthony Green  <green@moxielogic.com>
36599
36600         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36601         nop padding in order to maintain alignment of storage location of
36602         target function address.
36603         (moxie_trampoline_init): Store target function address at newly
36604         aligned location.
36605         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36606         to 32.
36607         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36608
36609 2010-02-03  Richard Guenther  <rguenther@suse.de>
36610
36611         PR middle-end/42927
36612         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36613
36614 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36615
36616         * config.gcc: Reenable check for obsolete targets.
36617         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36618         mips-sgi-irix6.[0-4]*.
36619
36620 2010-02-02  Nick Clifton  <nickc@redhat.com>
36621
36622         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36623         constant size of 4 as being the same as 0.
36624         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36625         can take values in the range 0..4.
36626
36627 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36628
36629         PR java/41991
36630         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36631         as _darwin10_Unwind_FindEnclosingFunction().
36632         * libgcc-libsystem.ver: New.
36633
36634 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36635
36636         PR target/41399
36637         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36638         implicitly set registers.
36639
36640 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36641
36642         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36643         (arm_override_options): Allow automatic selection of the thread
36644         pointer register if thumb2.
36645         (legitimize_pic_address): Improve code sequences for Thumb2.
36646         (arm_call_tls_get_addr): Likewise.
36647         (legitimize_tls_address): Likewise.
36648         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36649         (pic_load_addr_32bit): ... this.  New named pattern.
36650         * thumb2.md (pic_load_addr_thumb2): Delete.
36651         (pic_load_dot_plus_four): Delete.
36652         (tls_load_dot_plus_four): New named pattern.
36653
36654 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36655
36656         PR libgomp/29986
36657         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36658         Document fix for TLS bug.
36659
36660 2010-01-31  Richard Guenther  <rguenther@suse.de>
36661
36662         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36663         conservatively correct.
36664
36665 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36666
36667         PR target/42850
36668         Revert:
36669         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36670
36671         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36672
36673 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36674
36675         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36676
36677 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36678
36679         * config.gcc: Adjust order of makefile fragments for mingw targets.
36680
36681 2010-01-31  Richard Guenther  <rguenther@suse.de>
36682
36683         PR middle-end/42898
36684         * gimplify.c (gimplify_init_constructor): For volatile LHS
36685         initialize a temporary.
36686
36687 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36688
36689         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36690         --with-headers
36691         * configure: Regenerate.
36692
36693 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36694
36695         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36696         the same alias set and their sizes different constantness.
36697         (aliasing_component_refs_p): Revert 2009-10-24 change.
36698
36699 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36700
36701         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36702         unused.
36703
36704 2010-01-29  Richard Guenther  <rguenther@suse.de>
36705
36706         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36707         Assert we successfully updated the call.
36708
36709 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36710
36711         PR rtl-optimization/42889
36712         * df.h (df_set_bb_dirty_nonlr): New prototype.
36713         * df-core.c (df_set_bb_dirty_nonlr): New function.
36714         * df-scan.c (df_insn_rescan): Call it instead of
36715         df_set_bb_dirty for DEBUG_INSNs.
36716
36717 2010-01-29  Richard Guenther  <rguenther@suse.de>
36718
36719         PR middle-end/37448
36720         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36721         quadratic behavior in most cases.
36722
36723 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36724
36725         PR target/42891
36726         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36727         in the call to gen_x86_movsicc_0_m1.
36728
36729 2010-01-28  Richard Guenther  <rguenther@suse.de>
36730
36731         PR tree-optimization/42871
36732         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36733
36734 2010-01-28  Richard Guenther  <rguenther@suse.de>
36735
36736         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36737         into call arguments.
36738
36739 2010-01-28  Richard Guenther  <rguenther@suse.de>
36740
36741         PR middle-end/42883
36742         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36743         the forwarder if the destination is an EH landing pad.
36744
36745 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36746
36747         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36748         block list passed to gimple_duplicate_sese_tail.
36749         (parallelize_loops): Avoid parallelization when the function
36750         has_nonlocal_label.
36751         Avoid parallelization when the preheader is IRREDUCIBLE.
36752         Try to optimize when estimated_loop_iterations_int is unresolved.
36753         Add the loop's location to the dump file.
36754         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36755         (gimple_duplicate_sese_tail): Remove the check for the latch.
36756         Redirect nexits to the exit block.
36757         Remove handling of the incoming edges to the latch.
36758         Redirect the backedge from the copied latch to the exit bb.
36759
36760 2010-01-28  Michael Matz  <matz@suse.de>
36761
36762         PR target/42881
36763         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36764         Wrap force_reg into a sequence, emit it before user.
36765
36766 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36767
36768         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36769         (arm_rev): New.
36770         (arm_legacy_rev): Likewise.
36771         (thumb_legacy_rev): Likewise.
36772
36773 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36774
36775         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36776         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36777         on MEM's address failed, try avoid_constant_pool_reference and
36778         recurse if it returned something different.
36779         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36780         address, try avoid_constant_pool_reference and recurse if it
36781         returned something different.
36782         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36783         address and avoid_constant_pool_reference returned something
36784         different, don't set have_address.
36785
36786 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36787
36788         PR debug/42861
36789         * var-tracking.c (val_store): Add modified argument, obey it.
36790         Adjust callers.
36791         (count_uses): Move down logging of main.
36792         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36793         don't need resolution.
36794         (emit_notes_in_bb): Likewise.
36795
36796 2010-01-27  Richard Guenther  <rguenther@suse.de>
36797
36798         PR middle-end/42878
36799         * tree-inline.c (remap_decl): Delay remapping of SSA name
36800         default definitions until we need them.
36801
36802 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36803
36804         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36805         (rs6000_delegitimize_address): New function.
36806
36807         * config/s390/s390.c (s390_delegitimize_address): Call
36808         delegitimize_mem_from_attrs.
36809
36810         PR middle-end/42874
36811         * tree-inline.c (cannot_copy_type_1): Removed.
36812         (copy_forbidden): Don't forbid copying of functions containing
36813         records/unions with variable length fields.
36814
36815 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36816
36817         Revert:
36818         PR target/42841
36819         * config/sh/sh.c (find_barrier): Increase length for non delayed
36820         conditional branches.
36821
36822 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36823
36824         * configure.ac (gnu-unique-object): Fix ldd version check.
36825         * configure: Regenerate.
36826
36827 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36828
36829         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36830         HAVE_GNU_AS value.
36831         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36832         Test for HAVE_GNU_AS value.
36833
36834 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36835
36836         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36837         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36838         INT64_TYPE): Define.
36839         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36840         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36841         INT_LEAST64_TYPE): Define.
36842         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36843         UINT_LEAST64_TYPE): Define.
36844         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36845         INT_FAST64_TYPE): Define.
36846         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
36847         UINT_FAST64_TYPE): Define.
36848         (INTMAX_TYPE, UINTMAX_TYPE): Define.
36849         (INTPTR_TYPE, UINTPTR_TYPE): Define.
36850         (SIG_ATOMIC_TYPE): Define.
36851
36852 2010-01-26  Richard Guenther  <rguenther@suse.de>
36853
36854         * df-scan.c (df_scan_set_bb_info): Remove assert.
36855         (df_insn_rescan_debug_internal): Merge asserts.
36856         (df_install_ref): Likewise.
36857         (df_mark_reg): Use bitmap_set_range.
36858         (df_hard_reg_used_p): Remove assert.
36859         (df_hard_reg_used_count): Likewise.
36860
36861 2010-01-26  Richard Guenther  <rguenther@suse.de>
36862
36863         PR rtl-optimization/42685
36864         * web.c (web_main): Ignore DEBUG_INSNs.
36865
36866 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
36867
36868         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
36869
36870         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
36871         Fix types of fndecl and arglist parameters.
36872
36873 2010-01-26  Richard Guenther  <rguenther@suse.de>
36874
36875         PR middle-end/42806
36876         * tree-eh.c (unsplit_eh): Skip debug insns.
36877
36878 2010-01-26  Richard Guenther  <rguenther@suse.de>
36879
36880         PR tree-optimization/42250
36881         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
36882
36883 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
36884
36885         PR fortran/42866
36886         * omp-low.c (expand_omp_sections): Only use single_pred if
36887         l2_bb is single_pred_p.
36888
36889 2010-01-25  Christian Bruel  <christian.bruel@st.com>
36890
36891         PR target/42841
36892         * config/sh/sh.c (find_barrier): Increase length for non delayed
36893         conditional branches.
36894         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
36895
36896 2010-01-24  David S. Miller  <davem@davemloft.net>
36897
36898         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
36899         define if not using GAS.
36900         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36901         Likewise.  Delete SECTION_MERGE code, which is only applicable
36902         when using GAS.
36903
36904 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
36905
36906         PR c++/42748
36907         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
36908         mangling of va_list in system headers.
36909
36910 2010-01-23  Toon Moene  <toon@moene.org>
36911
36912         * tree-predcom.c (combine_chains): Return NULL, not false.
36913
36914 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
36915
36916         * tree-loop-distribution.c (distribute_loop): Fix declaration and
36917         initialization of variable res to agree with return type.
36918
36919 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
36920
36921         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
36922         * tree-sra.c: Add include of expr.h.
36923
36924 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
36925
36926         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
36927         insert the debug stmt on the single non-EH edge from the stmt.
36928
36929 2010-01-22  Richard Henderson  <rth@redhat.com>
36930
36931         PR tree-opt/42833
36932         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
36933         the RHS until after generate_subtree_copies has insertted its
36934         code before the current statement.
36935
36936 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
36937
36938         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
36939
36940         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
36941
36942 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36943
36944         PR tree-optimization/42585
36945         * tree-sra.c (struct access): New field grp_total_scalarization.
36946         (dump_access): Dump the new field.
36947         (should_scalarize_away_bitmap): New variable.
36948         (cannot_scalarize_away_bitmap): Likewise.
36949         (sra_initialize): Allocate new bitmaps.
36950         (sra_deinitialize): Free new bitmaps.
36951         (create_access_1): New function.
36952         (create_access): Parts moved to create_access_1.
36953         (type_consists_of_records_p): New function.
36954         (completely_scalarize_record): Likewise.
36955         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
36956         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
36957         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
36958         access.
36959         (analyze_all_variable_accesses): Completely scalarize small eligible
36960         records.
36961
36962 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36963
36964         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
36965
36966 2010-01-21  Andrew Haley  <aph@redhat.com>
36967
36968         * gcc.c (process_command): Move lang_specific_driver before
36969         setting cc_libexec_prefix.
36970
36971 2010-01-21  Richard Guenther  <rguenther@suse.de>
36972
36973         PR middle-end/19988
36974         * fold-const.c (negate_expr_p): Pretend only negative
36975         real constants are easily negatable.
36976
36977 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
36978             Jason Merrill  <jason@redhat.com>
36979
36980         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
36981         (TYPE_TRANSPARENT_AGGR): this, for union and record.
36982         * calls.c (initialize argument_information): Handle it.
36983         * c-common.c (handle_transparent_union_attribute): Use new name.
36984         * c-decl.c (finish_struct): Ditto.
36985         * c-typeck.c (type_lists_compatible_p): Ditto.
36986         (convert_for_assignment): Use new name and also handle record.
36987         * function.c (aggregate_value_p): Handle it.
36988         (pass_by_reference): Ditto.
36989         (assign_parm_data_types): Ditto.
36990         * print-tree.c (print_node): Ditto.
36991         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
36992         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
36993         * tree.c (first_field): New fn.
36994
36995 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
36996
36997         PR target/42818
36998         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
36999         even when linking statically, for now.
37000
37001 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37002
37003         PR debug/42715
37004         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37005         without a cselib val.
37006         (count_uses): Accept MO_VAL_SET with no val on stores.
37007         (add_stores): Likewise.
37008
37009 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37010
37011         * var-tracking.c (check_value_val): Add a compile time assertion.
37012         (dv_is_decl_p): Simplify.
37013         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37014         gcc_assert if ENABLE_CHECKING.
37015
37016 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37017
37018         PR debug/42782
37019         * var-tracking.c: Include tree-flow.h.
37020         (mem_dies_at_call): New.
37021         (dataflow_set_preserve_mem_locs): Use it.
37022         (dataflow_set_remove_mem_locs): Likewise.
37023         (dump_var): Renamed from dump_variable.  Adjust all callers.
37024         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37025         * Makefile.in (var-tracking.o): Adjust deps.
37026
37027 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37028
37029         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37030
37031 2010-01-20  Richard Guenther  <rguenther@suse.de>
37032
37033         PR tree-optimization/42717
37034         * tree-ssa-dce.c (get_live_post_dom): Remove.
37035         (forward_edge_to_pdom): Take an arbitrary edge to copy
37036         degenerate PHI args from.
37037         (remove_dead_stmt): Use the first post-dominator even if it
37038         does not contain live statements as redirection destination.
37039
37040 2010-01-20  Richard Guenther  <rguenther@suse.de>
37041
37042         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37043
37044 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37045
37046         * sel-sched.c (create_speculation_check): Remove set but not used
37047         variable twin.
37048         (try_transformation_cache): Remove set but not used variable ds.
37049         (calculate_privileged_insns): Remove set but not used variables
37050         cur_insn and min_spec_insn.
37051         (find_best_expr): Remove set but not used variable avail_n.
37052         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37053         variable e.
37054         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37055         false_label.
37056         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37057         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37058         new_scop_exit_edge.
37059
37060 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37061
37062         PR bootstrap/42786
37063         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37064         cpu types.  Add support for *-sse3 cpu types.
37065         (x86_64-*-*): Ditto.
37066
37067 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37068
37069         PR middle-end/42803
37070         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37071         argument, call initializer_constant_valid_p_1 instead of
37072         initializer_constant_valid_p, pass CACHE to it, return NULL
37073         immediately if first call returns NULL.
37074         (initializer_constant_valid_p_1): New function.
37075         (initializer_constant_valid_p): Use it.
37076
37077 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37078
37079         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37080
37081 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37082
37083         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37084         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37085         (loc_list_from_tree): Don't handle unsigned division.  Handle
37086         signed modulo using DW_OP_{over,over,div,mul,minus}.
37087         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37088         modulo instead of signed.
37089
37090 2010-01-20  DJ Delorie  <dj@redhat.com>
37091
37092         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37093         (Fpa): Pass it
37094         (h8300_emit_stack_adjustment): Propogate it.
37095         (push): Pass it.
37096         (h8300_expand_prologue): Likewise.
37097         (h8300_expand_epilogue): Likewise.
37098
37099 2010-01-19  Michael Matz  <matz@suse.de>
37100
37101         PR tree-optimization/41783
37102         * tree-data-ref.c (toplevel): Include flags.h.
37103         (dump_data_dependence_relation):  Also dump the inputs if the
37104         result will be unknown.
37105         (split_constant_offset_1): Look through some conversions.
37106         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37107         the offset from last element is too large.
37108         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37109         (reassociate_to_the_same_stmt): Handle vector registers.
37110         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37111         (e.g. conversions).
37112         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37113         wide_prolog_niters argument, emit widening instructions.
37114         (vect_do_peeling_for_alignment): Adjust caller, use widened
37115         variant of the iteration cound.
37116         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37117
37118 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37119
37120         PR target/38697
37121         * config/arm/neon-testgen.m (emit_automatics): New parameter
37122         features. Adjust for Fixed_return_reg feature.
37123         (test_intrinsic): Call emit_automatics with new feature.
37124         * config/arm/neon.ml: Update copyright years.
37125         (features): New Fixed_return_reg feature.
37126         (ops): Update feature for Vget_low.
37127
37128 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37129
37130         PR tree-optimization/42719
37131         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37132         stmt uses.
37133
37134         PR debug/42728
37135         * fwprop.c (all_uses_available_at): Return false if def_set dest
37136         is a REG that is used in def_insn.
37137
37138 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37139
37140         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37141
37142         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37143         Add argument names.
37144
37145         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37146
37147         * target.h (struct gcc_target) <secondary_reload>: Change type
37148         of last argument to secondary_reload_info *.
37149
37150 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37151
37152         PR target/42774
37153         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37154         memory references with unaligned offsets.  Remove CQImode handling.
37155         (unaligned_memory_operand): Return 1 for memory references with
37156         unaligned offsets.  Remove CQImode handling.
37157
37158 2010-01-18  Richard Guenther  <rguenther@suse.de>
37159
37160         PR middle-end/39954
37161         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37162         builtin calls.
37163
37164 2010-01-18  Richard Guenther  <rguenther@suse.de>
37165
37166         PR tree-optimization/42781
37167         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37168         restrict processing only if the original variable was artificial.
37169
37170 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37171
37172         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37173         find number of popped argument bytes.
37174
37175         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37176         Fix the text that describes the return value for invalid insns.
37177
37178         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37179
37180         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37181         Clarify what 'cost of the -dependence' is.  Fix quoting.
37182
37183         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37184         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37185
37186 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37187
37188         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37189         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37190
37191 2010-01-17  Richard Guenther  <rguenther@suse.de>
37192
37193         PR middle-end/42248
37194         * function.c (split_complex_args): Take a VEC to modify.
37195         (assign_parms_augmented_arg_list): Build a VEC instead of
37196         a chain of PARM_DECLs.
37197         (assign_parms_unsplit_complex): Take a VEC of arguments.
37198         Do not fixup unmodified parms.
37199         (assign_parms): Deal with the VEC.
37200         (gimplify_parameters): Likewise.
37201
37202 2010-01-17  Richard Guenther  <rguenther@suse.de>
37203
37204         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
37205         node existence check.
37206         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
37207         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
37208         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
37209         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
37210         (gimple_execute_on_growing_pred): Likewise.
37211
37212 2010-01-17  Richard Guenther  <rguenther@suse.de>
37213
37214         PR tree-optimization/42773
37215         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
37216         (compute_antic_aux): Likewise.
37217         (compute_partial_antic_aux): Likewise.
37218
37219 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
37220
37221         PR debug/42767
37222         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
37223         and US_TRUNCATE.
37224
37225 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
37226
37227         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
37228         appearance.
37229
37230         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
37231         Fix markup for strict argument.
37232
37233         (TARGET_SCHED_REORDER2): Fix argument types.
37234
37235         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
37236         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
37237
37238         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
37239         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
37240
37241         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
37242         Add argument name.
37243
37244         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
37245         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
37246         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
37247         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
37248         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
37249
37250         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
37251
37252         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
37253
37254         (TARGET_ASM_RELOC_RW_MASK): Add return type.
37255         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
37256
37257         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
37258
37259         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
37260         Use prototype.
37261
37262         (TARGET_ASM_NAMED_SECTION): Fix argument list.
37263
37264         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
37265         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
37266
37267         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
37268
37269         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
37270
37271         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
37272         referring to it.  Fix language.
37273
37274         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
37275
37276         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
37277
37278         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
37279
37280         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
37281
37282         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
37283         '@var{stream}.  Remove stray 'and'.
37284
37285         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
37286
37287         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
37288
37289         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
37290
37291         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
37292         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
37293
37294         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
37295         Fix description of return value.
37296         Rename argument "sz" to "len."
37297
37298         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
37299         Clarify meaning of 'true' return value.
37300
37301         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
37302
37303         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
37304         rep_mode versus mode_rep.
37305
37306         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
37307
37308         (TARGET_BUILTIN_DECL): Fix name.
37309
37310         (TARGET_COMMUTATIVE_P): Fix type of first argument.
37311
37312         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
37313
37314         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
37315
37316         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
37317
37318         (TARGET_RELAXED_ORDERING): Use @deftypevr.
37319
37320         (TARGET_GET_DRAP_RTX): Note that this is a hook.
37321         Clarify language.
37322
37323         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
37324         Rename argument tm_fn to md_fn.
37325
37326         (TARGET_OPTION_PRINT): Fix argument list.
37327
37328 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
37329
37330         PR target/42664
37331         * config/i386/i386.c (ix86_fixup_binary_operands):
37332         Revert FMA4 fixup of operands.
37333
37334 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37335
37336         PR other/42525
37337         * Makefile.in (write_entries_to_file, install-plugin):
37338         Use \012 instead of \n with tr.
37339
37340 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
37341
37342         * configure.ac (HAVE_AS_REF): New C macro.
37343         * configure: Regenerate.
37344         * config.in: Likewise.
37345         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
37346         if HAVE_AS_REF.
37347         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
37348         if HAVE_AS_REF.
37349
37350 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
37351
37352         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
37353
37354         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
37355
37356         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
37357
37358         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
37359
37360         (TARGET_IN_SMALL_DATA_P): Fix argument type.
37361
37362         (TARGET_BINDS_LOCAL_P): Fix argument type.
37363
37364         (TARGET_ASM_FILE_END): Use prototype.
37365
37366         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37367
37368         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37369
37370         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37371
37372         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37373
37374         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37375         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37376
37377         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37378         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37379
37380         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37381         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37382         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37383         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37384
37385         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37386
37387         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37388
37389         (TARGET_INIT_BUILTINS): Use prototype.
37390
37391         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37392         Put 'const char *' in braces.  Fix parameter types.
37393         (TARGET_INVALID_CONVERSION): Fix parameter types.
37394         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37395         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37396
37397         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37398         Fix argument type.
37399
37400         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37401
37402         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37403
37404 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37405
37406         * doc/tm.texi (TARGET_HELP): Fix return type.
37407
37408         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37409         in braces.  Fix argument types.
37410
37411         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37412
37413         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37414
37415         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37416
37417         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37418         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37419
37420         (TARGET_MANGLE_TYPE): Fix argument types.
37421
37422         (TARGET_IRA_COVER_CLASSES): Use prototype.
37423
37424         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37425
37426         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37427
37428         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37429
37430         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37431
37432         (TARGET_CALLEE_COPIES): Fix argument types.
37433
37434         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37435
37436         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37437
37438         (TARGET_FUNCTION_VALUE): Fix argument types.
37439
37440         (TARGET_RETURN_IN_MSB): Fix argument type.
37441
37442         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37443
37444         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37445
37446         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37447
37448         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37449         agree with return type.
37450
37451         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37452
37453 2010-01-15  Jing Yu  <jingyu@google.com>
37454
37455         PR rtl-optimization/42691
37456         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37457         a pseudo to a constant and are merged, and adjust comments.
37458
37459 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37460
37461         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37462
37463 2010-01-15  Richard Guenther  <rguenther@suse.de>
37464
37465         PR middle-end/42739
37466         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37467         labels of computed or non-local gotos to the destination.
37468         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37469         landing pad label is the first label.
37470
37471 2010-01-15  Richard Guenther  <rguenther@suse.de>
37472
37473         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37474
37475 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37476
37477         PR target/42747
37478         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37479         to allow generation of the xssqrtdp instruction on power7.
37480         (sqrtdf2_fpr): Ditto.
37481
37482 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37483
37484         PR middle-end/42674
37485         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37486         functions with noreturn attribute.
37487
37488         PR c++/42608
37489         * varasm.c (declare_weak): Add weak attribute to decl if it
37490         doesn't have one already.
37491         (assemble_external): Only add decls to weak_decls if they also
37492         have weak attribute.
37493
37494 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37495
37496         * var-tracking.c (var_reg_delete): Don't delete the association
37497         between REGs and values or one-part variables if the register
37498         isn't clobbered.
37499
37500 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37501
37502         PR debug/42657
37503         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37504         because its first operand is a non-localized variable.
37505
37506 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37507
37508         PR tree-optimization/42706
37509         * tree-sra.c (encountered_recursive_call): New variable.
37510         (encountered_unchangable_recursive_call): Likewise.
37511         (sra_initialize): Initialize both new variables.
37512         (callsite_has_enough_arguments_p): New function.
37513         (scan_function): Call decl and flags check only for IPA-SRA, check
37514         whether there is a recursive call and whether it has enough arguments.
37515         (all_callers_have_enough_arguments_p): New function.
37516         (convert_callers): Look for recursive calls only when
37517         encountered_recursive_call is set.
37518         (ipa_early_sra): Bail out either if
37519         !all_callers_have_enough_arguments_p or
37520         encountered_unchangable_recursive_call.
37521
37522 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37523
37524         * sel-sched.c: Add 2010 to copyright years.
37525         * sel-sched-ir.c: Likewise.
37526         * sel-sched-ir.h: Likewise.
37527
37528 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37529
37530         PR tree-optimization/42714
37531         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37532         constructors specially.
37533
37534 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37535
37536         * config/i386/drivers-i386.c (detect_caches_intel):
37537         Add l2sizekb parameter and fill in.
37538         (host_detect_local_cpu): Add l2sizekb, fill in.
37539         Add Atom small cache heuristic.
37540
37541 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37542
37543         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37544         Add level3 parameter and fill in.
37545         (detect_caches_intel): Handle level3 cache.
37546
37547 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37548
37549         * config/i386/drivers-i386.c (host_detect_local_cpu):
37550         Fix core duo detection.
37551
37552 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37553
37554         * config/i386/drivers-i386.c (host_detect_local_cpu):
37555         Fix Atom detection.
37556
37557 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37558
37559         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37560         (rs6000_variable_issue_1): this.  Use...
37561         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37562
37563 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37564
37565         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37566         sel_restore_notes.  Update all callers.  Call reemit_notes
37567         for all insns.
37568
37569 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37570
37571         PR rtl-optimization/42246
37572         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37573         loops.
37574
37575 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37576
37577         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37578         all successors is the same as number of successors in current region.
37579
37580 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37581
37582         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37583         to rename is not separable.  Otherwise check that its LHS is not NULL.
37584
37585 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37586
37587         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37588
37589 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37590
37591         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37592         available registers when failed to discover LHS register class.
37593         Fix indentation.  Update comment.
37594
37595 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37596             Alexander Monakov  <amonakov@ispras.ru>
37597
37598         PR rtl-optimization/42389
37599         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37600         to can_issue_more.
37601         (advance_state_on_fence): Likewise.
37602         (sel_target_adjust_priority): Print debug output only when
37603         sched_verbose >= 4, not 2.
37604         (get_expr_cost): Do not issue all unique insns on the next cycle.
37605         (fill_insns): Initialize can_issue_more from the value saved
37606         with the fence.
37607         * sel-sched-ir.c (flist_add): New parameter issue_more.
37608         Init FENCE_ISSUE_MORE with it.
37609         (merge_fences): Likewise.
37610         (init_fences): Update call to flist_add.
37611         (add_to_fences, add_clean_fence_to_fences)
37612         (add_dirty_fence_to_fences): Likewise.
37613         (move_fence_to_fences): Update call to merge_fences.
37614         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37615         sched groups.
37616         * sel-sched-ir.h (struct _fence): New field issue_more.
37617         (FENCE_ISSUE_MORE): New accessor macro.
37618
37619 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37620
37621         PR rtl-optimization/42388
37622         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37623         that have no predecessors nor successors.  Do not call move_bb_info
37624         for empty blocks outside of current region.
37625
37626 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37627
37628         PR rtl-optimization/42294
37629         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37630         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37631         originators' originators.
37632
37633 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37634
37635         PR rtl-optimization/39453
37636         PR rtl-optimization/42246
37637         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37638         for pipelining_p.
37639         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37640
37641 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37642             Alexander Monakov  <amonakov@ispras.ru>
37643
37644         PR middle-end/42245
37645         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37646         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37647         argument.  Update all callers.
37648         (tidy_control_flow): ... and here.  Recompute topological order
37649         of basic blocks in region if necessary.
37650         (sel_redirect_edge_and_branch): Change return type.  Return true
37651         if topological order might have been invalidated.
37652         (purge_empty_blocks): Export and move from...
37653         * sel-sched.c (purge_empty_blocks): ... here.
37654         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37655         (maybe_tidy_empty_bb): Delete prototype.
37656         (purge_empty_blocks): Declare.
37657
37658 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37659
37660         PR rtl-optimization/42249
37661         * sel-sched.c (try_replace_dest_reg): When chosen register
37662         and original register is the same, do not bail out early, but
37663         still check all original insns for validity of replacing destination
37664         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37665         in this case.
37666
37667 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37668
37669         PR c/42721
37670         Port from no-undefined-overflow branch:
37671         2009-03-09  Richard Guenther  <rguenther@suse.de>
37672
37673         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37674
37675 2010-01-14  Richard Guenther  <rguenther@suse.de>
37676
37677         PR lto/42665
37678         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37679
37680 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37681
37682         PR tree-optimization/42709
37683         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37684         as scalar type in creation of constant vector operand.
37685
37686 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37687
37688         PR testsuite/42414
37689         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37690         (check-parallel-%): Match `testsuite' directory component only
37691         at the end.
37692
37693 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37694
37695         PR translation/39521
37696         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37697         strings with _().
37698
37699 2010-01-13  Richard Guenther  <rguenther@suse.de>
37700
37701         PR tree-optimization/42730
37702         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37703         offset zero.
37704
37705 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37706
37707         PR target/pr42542
37708         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37709         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37710         them signed.
37711
37712 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37713
37714         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37715         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37716         ___umulsi3_highpart.
37717
37718         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37719         rather than schedule_insns if the pass is enabled.
37720
37721 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37722
37723         PR tree-optimization/42704
37724         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37725         SSA_NAMEs.
37726
37727 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37728
37729         PR tree-optimization/42703
37730         * tree-sra.c (analyze_access_subtree): Check that we can build a
37731         reference to the original data within the aggregate.
37732
37733 2010-01-13  Richard Guenther  <rguenther@suse.de>
37734
37735         PR tree-optimization/42705
37736         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37737
37738 2010-01-13  Richard Guenther  <rguenther@suse.de>
37739
37740         PR middle-end/42716
37741         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37742
37743 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37744
37745         PR debug/41371
37746         * var-tracking.c (values_to_unmark): New variable.
37747         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37748         values_to_unmark vector.  Moved body to...
37749         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37750         instead queue it into values_to_unmark vector.
37751         (vt_find_locations): Free values_to_unmark vector.
37752
37753 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37754
37755         * config/s390/s390.c (override_options): Set
37756         default of max-pending-list-length to 256
37757
37758 2010-01-13  Richard Guenther  <rguenther@suse.de>
37759
37760         PR lto/42678
37761         * tree-pass.h (PROP_gimple_lcx): New.
37762         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37763         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37764         before the final cleanup_eh.
37765         (dump_properties): Dump PROP_gimple_lcx.
37766         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37767         (tree_lower_complex_O0): Remove.
37768         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37769         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37770         tree_lower_complex, schedule TODO_update_ssa.
37771         * lto-streamer-out.c (output_function): Stream the functions
37772         properties.
37773         * lto-streamer-in.c (input_function): Likewise.
37774         (lto_read_body): Do not override them here.
37775
37776 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37777
37778         PR c/42708
37779         * c-typeck.c (build_c_cast): Fold value cast to union type before
37780         wrapping it in a CONSTRUCTOR.
37781
37782 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37783
37784         PR rtl-optimization/42699
37785         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37786         involved.
37787
37788 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37789
37790         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37791         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37792         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37793         SUBTARGET_WARN_UNUSED_SPEC): ... here
37794         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37795
37796 2010-01-12  Julian Brown  <julian@codesourcery.com>
37797
37798         * config/arm/neon-schedgen.ml (Utils): Don't try to
37799         open missing module.
37800         (find_with_result): New.
37801
37802 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37803
37804         PR debug/42662
37805         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37806         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37807
37808         PR tree-optimization/42645
37809         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37810         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37811         decl_map, set processing_debug_stmt to -1 and return name without
37812         any remapping.
37813
37814 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37815
37816         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37817         binutils version, and reword target configuration description.
37818
37819 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37820
37821         * config/avr/avr.h (LINKER_NAME): Remove.
37822
37823 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37824
37825         PR target/42416
37826         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37827         that support VSX, warn for -mno-altivec if vsx is not disabled,
37828         and disable vsx.
37829
37830 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37831             Shujing Zhao  <pearly.zhao@oracle.com>
37832
37833         PR translation/42469
37834         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37835         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37836         character between option name and help text.
37837         * c.opt (imultilib): Likewise.
37838
37839 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37840
37841         * lto-streamer-out.c (output_unreferenced_globals): Output static
37842         variables.
37843
37844 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37845
37846         PR rtl-optimization/42621
37847         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
37848         optimizing for size.
37849         (duplicate_computed_gotos): Remove now-redundant check.
37850
37851 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
37852
37853         PR target/37454
37854         * configure.ac: Save and restore LDFLAGS and LIBS
37855         * configure: Regenerate.
37856
37857 2010-01-10  Richard Guenther  <rguenther@suse.de>
37858
37859         PR middle-end/42667
37860         * builtins.c (fold_builtin_strlen): Add type argument and
37861         convert the resulting length to it.
37862         (fold_builtin_1): Adjust.
37863
37864 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37865
37866         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
37867         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
37868         1 insn.
37869         (num_insns_constant_wide): Adjust for that change.
37870
37871 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37872
37873         PR debug/42631
37874         * web.c (union_defs): Add used argument, to combine uses of
37875         uninitialized regs.
37876         (entry_register): Adjust type and tests of used argument.
37877         (web_main): Widen used for new use.  Pass it to union_defs.
37878         * df.h (union_defs): Adjust prototype.
37879
37880 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37881
37882         PR debug/42630
37883         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
37884         uses in new incoming argument.  Free body.
37885         (reset_debug_uses_in_loop): New.
37886         (analyze_insn_to_expand_var): Call the latter if the former found
37887         anything.  Fix whitespace.  Reject invalid dest overlaps before
37888         going through all insns in the loop.
37889
37890 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37891
37892         PR debug/42629
37893         * haifa-sched.c (dying_use_p): Debug insns don't count.
37894
37895 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37896
37897         PR middle-end/42363
37898         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
37899         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
37900         (verify_gimple_call): Reject LHS in noreturn calls.
37901
37902 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37903
37904         PR debug/42604
37905         PR debug/42395
37906         * tree-vect-loop-manip.c (adjust_info): New type.
37907         (adjust_vec): New pointer to vector.
37908         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
37909         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
37910         (slpeel_update_phis_for_duplicate_loop): Use them.
37911         (slpeel_update_phi_nodes_for_guard1): Likewise.
37912         (slpeel_update_phi_nodes_for_guard2): Likewise.
37913         (slpeel_tree_peel_loop_to_edge): Likewise.
37914         (vect_update_ivs_after_vectorizer): Likewise.
37915
37916 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37917
37918         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
37919         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
37920
37921 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37922
37923         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
37924         bogus uninitialized warning.
37925
37926 2010-01-09  Richard Guenther  <rguenther@suse.de>
37927
37928         PR middle-end/42512
37929         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
37930         the evolution is compatible with the initial condition.
37931
37932 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37933
37934         * gcc.c (process_command): Update copyright notice dates.
37935         * gcov.c (print_version): Likewise.
37936         * gcov-dump.c (print_version): Likewise.
37937         * mips-tfile.c (main): Likewise.
37938         * mips-tdump.c (main): Likewise.
37939
37940 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37941
37942         PR target/41885
37943         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
37944         (rotlhi3): Delete.
37945         (rotlhi3_8): Delete.
37946         (rotlsi3): Delete.
37947         (rotlsi3_8): Delete.
37948         (rotlsi3_16): Delete.
37949         (rotlsi3_24): Delete.
37950         (rotl<mode>3): New.
37951         (*rotw<mode>3): New.
37952         (*rotb<mode>3): New.
37953         * config/avr/avr.c (avr_rotate_bytes): New function.
37954         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
37955
37956 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
37957
37958         PR target/37454
37959         * configure.ac: Modify -rdynamic check.
37960         * configure: Regenerate.
37961
37962 2010-01-08  DJ Delorie  <dj@redhat.com>
37963
37964         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
37965         register popping order.
37966
37967 2010-01-08  Richard Guenther  <rguenther@suse.de>
37968
37969         PR lto/42528
37970         * c.opt (fsigned-char): Also let LTO handle this option.
37971         (funsigned-char): Likewise.
37972
37973 2010-01-07  Richard Guenther  <rguenther@suse.de>
37974
37975         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
37976         (gimple_op): Likewise.
37977         (gimple_op_ptr): Likewise.
37978         (gimple_assign_set_lhs): Remove gcc_assert.
37979         (gimple_assign_set_rhs1): Likewise.
37980         (gimple_assign_set_rhs2): Likewise.
37981         (gimple_call_set_lhs): Likewise.
37982         (gimple_call_set_fn): Likewise.
37983         (gimple_call_set_fndecl): Likewise.
37984         (gimple_call_fndecl): Likewise.
37985         (gimple_call_return_type): Likewise.
37986         (gimple_call_set_chain): Likewise.
37987         (gimple_call_num_args): Likewise.
37988         (gimple_call_set_arg): Likewise.
37989         (gimple_cond_set_code): Likewise.
37990         (gimple_cond_set_lhs): Likewise.
37991         (gimple_cond_set_rhs): Likewise.
37992         (gimple_cond_set_true_label): Likewise.
37993         (gimple_cond_set_false_label): Likewise.
37994         (gimple_label_set_label): Likewise.
37995         (gimple_goto_set_dest): Likewise.
37996         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
37997         (gimple_debug_bind_get_value): Likewise.
37998         (gimple_debug_bind_get_value_ptr): Likewise.
37999         (gimple_debug_bind_set_var): Likewise.
38000         (gimple_debug_bind_set_value): Likewise.
38001         (gimple_debug_bind_reset_value): Likewise.
38002         (gimple_debug_bind_has_value_p): Likewise.
38003         (gimple_return_retval_ptr): Remove gcc_assert.
38004         (gimple_return_retval): Likewise.
38005         (gimple_return_set_retval): Likewise.
38006         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38007         (safe_referenced_var_iterator): Remove.
38008         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38009         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38010         (fill_referenced_var_vec): Remove.
38011         (first_readonly_imm_use): Remove redundant gcc_assert.
38012         (phi_arg_index_from_use): Combine gcc_asserts.
38013         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38014         (first_imm_use_stmt): Remove redundant gcc_assert.
38015         * tree-cfg.c (verify_gimple_call): Verify function and chain
38016         operands.  Verify arguments.
38017         (verify_types_in_gimple_stmt): Verify condition code and labels.
38018
38019 2010-01-07  Richard Guenther  <rguenther@suse.de>
38020
38021         PR tree-optimization/42641
38022         * sese.c (rename_map_elt_info): Use the SSA name version, do
38023         not hash pointers.
38024
38025 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38026
38027         PR tree-optimization/42625
38028         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38029         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38030
38031 2010-01-07  Duncan Sands  <baldrick@free.fr>
38032
38033         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38034
38035 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38036
38037         PR target/42511
38038         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38039         note itself is not function_invariant_p.
38040
38041 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38042
38043         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38044         Do not add the DF_NOTE problem.
38045         * store-motion.c (execute_rtl_store_motion): Likewise.
38046
38047 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38048
38049         PR tree-optimization/42157
38050         * tree-sra.c (compare_access_positions): Stabilize sort if both
38051         accesses have integer types, return zero immediately if they are the
38052         same.
38053
38054 2010-01-06  Richard Henderson  <rth@redhat.com>
38055
38056         PR middle-end/41883
38057         * haifa-sched.c (add_to_note_list): Merge into ...
38058         (concat_note_lists): ... here, and ...
38059         (unlink_other_notes, rm_other_notes): Merge into...
38060         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38061         NOTE_INSN_EPILOGUE_BEG.
38062
38063 2010-01-06  Richard Guenther  <rguenther@suse.de>
38064
38065         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38066         not inline regular functions into always-inline functions.
38067
38068 2010-01-06  Nick Clifton  <nickc@redhat.com>
38069
38070         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38071         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38072         used together.
38073         (OVERRIDE_OPTIONS): Delete.
38074         (OPTIMIZATION_OPTIONS): Define.
38075         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38076         * config/rx/rx.c (rx_handle_option): Issue an error message if
38077         -mcpu=rx200 and -fpu are used together.
38078         (rx_set_optimization_options): New function.  Issue an error
38079         message if an optimization attribute attempts to reset the FPU/
38080         math optimization pairing.
38081         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38082         * config/rx/rx.opt: Set the default to 32-bit doubles.
38083         * config/rx/t-rx: Add multilibs for -nofpu option.
38084         * doc/invoke.texi: Update documentation of RX options.
38085
38086 2010-01-06  Richard Guenther  <rguenther@suse.de>
38087
38088         * tree-ssa-pre.c (name_to_id): New global.
38089         (alloc_expression_id): Simplify SSA name handling.
38090         (lookup_expression_id): Likewise.
38091         (init_pre): Zero name_to_id.
38092         (fini_pre): Free it.
38093
38094 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38095
38096         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38097
38098 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38099
38100         PR target/42542
38101         * config/i386/sse.md (smaxv2di3): New.
38102         (umaxv2di3): Likewise.
38103         (sminv2di3): Likewise.
38104         (uminv2di3): Likewise.
38105
38106 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38107
38108         PR target/42564
38109         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38110         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38111         (legitimize_tls_address): Likewise.
38112         (sparc_tls_referenced_p): Likewise.
38113         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38114         and adjust calls to legitimize_pic_address.
38115         (legitimate_constant_p) Use sparc_tls_referenced_p.
38116         (legitimate_pic_operand_p): Likewise.
38117         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38118         (sparc_tls_symbol_ref_1): Delete.
38119         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38120         (legitimize_tls_address): Make static, handle CONST patterns.
38121         (legitimize_pic_address): Make static, remove unused parameter and
38122         adjust recursive calls.
38123         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38124         and adjust call to legitimize_pic_address.
38125         (sparc_output_mi_thunk): Likewise.
38126
38127 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38128             H.J. Lu  <hongjiu.lu@intel.com>
38129
38130         PR target/42542
38131         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38132         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38133         operands to make them signed.
38134
38135         Revert:
38136         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38137
38138         PR target/42542
38139         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38140         GTU to GT for V4SI and V2DI.
38141
38142         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38143         (umin<mode>3): Removed.
38144         (uminv8hi3): New.
38145         (uminv4si3): Likewise.
38146
38147 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38148
38149         PR tree-optimization/42462
38150         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38151         current_function_decl to helper functions and macros.
38152
38153 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38154
38155         PR bootstrap/41771
38156         * flags.h: Don't include real.h.
38157         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38158         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38159         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38160         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38161         * dominance.c: Update copyright.
38162         * gimple.c (walk_gimple_op): Remove inline.
38163         * tree-ssa-reassoc.c: Include real.h.
38164         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38165         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38166
38167 2010-01-05  Nick Clifton  <nickc@redhat.com>
38168
38169         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38170         register to push into the stack frame when the accumulator has to
38171         be saved during interrupts.
38172
38173 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38174
38175         * doc/invoke.texi: Remove the documentation about option
38176         -Wunreachable-code.
38177         * common.opt (Wunreachable-code):  Preserved for backward
38178         compatibility.
38179         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38180         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38181         the backward compatibility flag section.
38182
38183 2010-01-05  Richard Guenther  <rguenther@suse.de>
38184
38185         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38186
38187 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38188
38189         PR other/42611
38190         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38191
38192         PR tree-optimization/42508
38193         * tree-sra.c (convert_callers): Check for recursive call
38194         by comparing cgraph nodes instead of decls.
38195         (modify_function): Call ipa_modify_formal_parameters also
38196         on all same_body aliases.
38197
38198         * cgraphunit.c (cgraph_materialize_all_clones): Compare
38199         cgraph nodes when checking for same_body aliases.
38200
38201 2010-01-05  Richard Guenther  <rguenther@suse.de>
38202
38203         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
38204         allocation and lookup.
38205         (get_or_alloc_expr_for_constant): Likewise.
38206         (phi_translate): Sink allocation.
38207
38208 2010-01-04  Richard Guenther  <rguenther@suse.de>
38209
38210         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
38211         a new entry only if needed.
38212         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
38213         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
38214         hashtable lookup.
38215         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
38216         the result array.
38217         (phi_translate): Handle CONSTANTs early.
38218
38219 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38220
38221         PR tree-optimization/42398
38222         * tree-sra.c (struct access): Removed flag grp_different_types.
38223         (dump_access): Do not dump the removed flag.
38224         (sort_and_splice_var_accesses): Do not set the removed flag.
38225         (sra_modify_expr): Check for type compatibility directly.
38226
38227 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38228
38229         PR tree-optimization/42366
38230         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
38231         edges with variable number of parameters.
38232         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
38233         flag instead of asserting it.
38234         (ipa_read_node_info): Read uses_analysis_done flag.
38235
38236 2010-01-04  Richard Guenther  <rguenther@suse.de>
38237
38238         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
38239         iterative_hash_* as intended.
38240         (vn_reference_compute_hash): Likewise.  Simplify hashing
38241         SSA names.
38242         (vn_reference_lookup_2): Likewise.
38243         (vn_nary_op_compute_hash): Likewise.
38244         (vn_phi_compute_hash): Likewise.
38245         (expressions_equal_p): Remove strange code.
38246         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
38247         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
38248         (bitmap_insert_into_set_1): Take value-id as parameter.
38249         (add_to_value): Pass it.
38250         (bitmap_insert_into_set): Likewise.
38251         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
38252
38253 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
38254
38255         PR driver/42442
38256         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
38257         (do_self_spec): For switches with SWITCH_IGNORE set set also
38258         SWITCH_IGNORE_PERMANENTLY.
38259         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
38260         of SWITCH_IGNORE.
38261
38262 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
38263
38264         * lto-streamer-out.c (output_unreferenced_globals): Output the full
38265         tree of an unreferenced global var.
38266
38267 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38268
38269         PR target/42542
38270         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38271         GTU to GT for V4SI and V2DI.
38272
38273         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38274         (umin<mode>3): Removed.
38275         (uminv8hi3): New.
38276         (uminv4si3): Likewise.
38277
38278 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38279
38280         PR lto/42581
38281         * collect2.c (main): Turn on trace in collect2 if -v is passed
38282         to gcc with LTO.
38283
38284 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
38285
38286         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
38287         description of expression operand.
38288
38289 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
38290
38291         * configure.ac: Add install-html to target_list for Make-hooks.
38292         * configure: Regenerate.
38293         * fortran/Make-lang.in (F95_HTMLFILES): New.
38294         (fortran.html): Use it.
38295         (fortran.install-html): New.
38296         * Makefile.in (install-html): Add lang.install-html.
38297         * java/Make-lang.in (JAVA_HTMLFILES): New.
38298         (java.html): Use it.
38299         (java.install-html): New.
38300         * objc/Make-lang.in (objc.install-html): New.
38301         * objcp/Make-lang.in (obj-c++.install-html): New.
38302         * cp/Make-lang.in (c++.install-html): New.
38303         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
38304         * lto/Make-lang.in (lto.install-html): New.
38305
38306 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38307
38308         PR lto/42520
38309         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
38310
38311 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38312
38313         PR rtl-optimization/41862
38314         * store-motion.c (store_killed_in_insn, compute_store_table,
38315         remove_reachable_equiv_notes, replace_store_insn,
38316         build_store_vectors): Ignore all DEBUG_INSNs.
38317
38318 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38319
38320         PR lto/41564
38321         * common.opt: Add dumpdir.
38322
38323         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
38324         isn't specified.
38325         (option_map): Add --dumpdir.
38326
38327         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
38328
38329         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
38330
38331         * opts.c (decode_options): Try dump_dir_name first if
38332         dump_base_name isn't an absolute path.
38333         (common_handle_option): Handle OPT_dumpdir.
38334
38335         * toplev.c (dump_dir_name): New.
38336         (print_switch_values): Also ignore -dumpdir.
38337
38338         * toplev.h (dump_dir_name): New.
38339
38340 2010-01-03  Richard Guenther  <rguenther@suse.de>
38341
38342         PR tree-optimization/42589
38343         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
38344         double-word expansion of bswap32.
38345
38346 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38347
38348         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
38349         with BLOCK_FOR_INSN.
38350         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
38351         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
38352         noce_process_if_block): Likewise.
38353         * gcse.c (compute_local_properties, insert_expr_in_table,
38354         insert_set_in_table, canon_list_insert, find_avail_set,
38355         pre_insert_copy_insn): Likewise.
38356
38357         * basic-block.h (BLOCK_NUM): Move from here...
38358         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
38359
38360 2010-01-03  Richard Guenther  <rguenther@suse.de>
38361
38362         PR tree-optimization/42438
38363         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
38364         contains_may_not_return_call flag.
38365         (BB_MAY_NOTRETURN): New.
38366         (valid_in_sets): Trapping nary operations are not valid
38367         in blocks that may not return.
38368         (insert_into_preds_of_block): Remove check for trapping expressions.
38369         (compute_avail): Compute also BB_MAY_NOTRETURN.
38370
38371 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38372
38373         * doc/invoke.texi: Add 2010 to copyright years.
38374
38375 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38376
38377         * config/sparc/sparc.c: Fix formatting nits.
38378
38379 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38380             Alexander Monakov  <amonakov@ispras.ru>
38381
38382         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38383
38384 2010-01-02  Richard Guenther  <rguenther@suse.de>
38385
38386         PR middle-end/42577
38387         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38388         (simplify_switch_using_ranges): Mark to be removed edges
38389         as non-executable.
38390
38391 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38392
38393         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38394
38395         * collect2.c (scan_libraries): Add missing argument in call to
38396         scan_prog_file.
38397
38398 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38399
38400         PR target/42448
38401         * config/alpha/predicates.md (aligned_memory_operand): Return false
38402         for CQImode.
38403         (unaligned_memory_operand): Return true for CQImode.
38404         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38405         doesn not cross aligned SImode word boundary.
38406
38407 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38408
38409         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38410         Remove.
38411         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38412         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38413
38414 2010-01-02  Richard Guenther  <rguenther@suse.de>
38415
38416         PR lto/41597
38417         * toplev.c (compile_file): Emit LTO marker properly.  Change
38418         it to __gnu_lto_v1.
38419         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38420
38421 2010-01-01  Richard Guenther  <rguenther@suse.de>
38422
38423         PR debug/42455
38424         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38425
38426 2010-01-01  Richard Guenther  <rguenther@suse.de>
38427
38428         PR c/42570
38429         * c-decl.c (grokdeclarator): For zero-size arrays force
38430         structural equality checks as layout_type does.
38431
38432 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38433
38434         * builtins.c: Update copyright to 2010.
38435
38436 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38437
38438         PR lto/42531
38439         * lto-streamer-out.c (produce_asm): Revert the last change.
38440         (copy_function): Likewise.
38441
38442         * lto-streamer.c (lto_get_section_name): Skip any leading
38443         asterisk in name.
38444
38445 2010-01-01  Richard Guenther  <rguenther@suse.de>
38446
38447         PR middle-end/42559
38448         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38449         for LABEL_DECLs.
38450
38451 \f
38452 Copyright (C) 2010 Free Software Foundation, Inc.
38453
38454 Copying and distribution of this file, with or without modification,
38455 are permitted in any medium without royalty provided the copyright
38456 notice and this notice are preserved.