OSDN Git Service

2b3ec04d1351ab7f218036a137ca7ef73f60a42d
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * tree.h: Include real.h and fixed-value.h as basic datatypes.
4         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
5         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
6         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
7         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
8         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
9         tree-pretty-print.c, tree-loop-distribution.c,
10         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
11         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
12         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
13         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
14         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
15         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
16         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
17         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
18         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
19         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
20         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
21         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
22         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
23         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
24         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
25         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
26         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
27         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
29         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
30         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
31         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
32         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
33         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
34         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
35         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
36         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
37         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
38         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
39         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
40         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
41         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
42         config/score/score7.c, config/score/score.c, config/arm/arm.c,
43         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
44         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
45         config/bfin/bfin.c:
46         Clean up redundant includes.
47         * Makefile.in: Update accordingly.
48
49 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
50
51         PR middle-end/44204
52         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
53         statement has no arguments.
54
55 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
56
57         PR/44139
58         * varasm.c (emutls_decl): Merge attributes to new decl.
59
60 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
61
62         PR middle-end/44101
63         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
64         around the uniquized constructor if its type requires a conversion.
65
66 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
67
68         PR debug/44205
69         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
70         at -O0 goto_locus of any of the incoming edges differs from
71         goto_locus of outgoing edge, or gimple_location of any of the
72         labels differs.
73
74 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
75
76         * ira.c (ira_non_ordered_class_hard_regs): Define.
77         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
78         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
79         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
80         cost of unaligned hard regs when allocating multi-reg pseudos.
81
82 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
83
84         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
85         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
86         for TARGET_NO_FLOAT.
87         * config/mips/mips.c (mips_file_start): Expand conditional expression
88         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
89         (mips_override_options): Move -mno-float override -msoft-float and
90         -mhard-float.
91         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
92         Condition(TARGET_SUPPORTS_NO_FLOAT).
93         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
94         __mips_no_float here.
95         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
96         (TARGET_SUPPORTS_NO_FLOAT): Define.
97         * config/mips/sdemtk.opt: Delete.
98
99 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
100
101         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail
102         out if !cond.
103
104 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
105
106         PR target/43733
107         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
108         * configure: Regenerate.
109         * config.in: Regenerate.
110         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
111         instead of sahf only for 64bit targets.
112
113 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
114
115         PR debug/44178
116         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
117         setup_ref_regs for DEBUG_INSNs.
118
119 2010-05-20  Jan Hubicka  <jh@suse.cz>
120
121         PR middle-end/44197
122         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
123
124 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
125
126         PR bootstrap/43870
127         * df-scan.c (df_ref_compare): Stabilize sort.
128
129 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
130
131         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
132         argument.  Don't use DW_OP_piece if offset is non-zero,
133         put offset into second DW_OP_bit_piece argument.
134         (dw_sra_loc_expr): Adjust callers.  For memory expressions
135         compute offset.
136
137 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
138
139         PR target/44202
140         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
141         settings for 16-bit-constant "addo" alternative.
142
143 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
144
145         * config/mips/mips-dsp.md (add<DSPV:mode>3,
146         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
147
148         PR target/43764
149         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
150         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
151         Use it.
152
153 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
154
155         * diagnostic.c (FLOAT, FFS): Don't undefine.
156         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
157         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
158         include ordering.
159
160 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
161
162         * combine.c (propagate_for_debug): Call make_compound_operation
163         on the source value.
164         (try_combine): When implementing a split chosen by find_split_point,
165         either copy i2src or set it to null.  Assert that i2src is not null
166         before substituting into CALL_INSN_FUNCTION_USAGE.
167
168 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
169
170         * double-int.h (double_int_ior): New function.
171         * tree.h (build_int_cst_wide_type): Remove.
172         * tree.c (build_int_cst_wide_type): Remove.
173         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
174         of build_int_cst_wide_type.
175         * stor-layout.c (set_sizetype): (Ditto.).
176         * dojump.c (do_jump): Use build_int_cstu instead of
177         build_int_cst_wide_type.
178
179 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
180
181         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
182         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
183         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
184         * gimplify.c: (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
185         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
186         propagate the 'data' argument to copy_tree_r.
187         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
188         Propagate 'data' argument to walk_tree.
189         (copy_if_shared): New function.
190         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
191         (unmark_visited): New function.
192         (unshare_body): Call copy_if_shared instead of doing it manually.
193         (unvisit_body): Call unmark_visited instead of doing it manually.
194
195 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
196
197         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
198         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
199         * hooks.c: Likewise.
200         * target-def.h (TARGET_FOLD_BUILTIN): Define to
201         hook_tree_tree_int_treep_bool_null.
202         * target.h: (struct gcc_target): Update signature of fold_builtin
203         field.
204         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
205         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
206         instead of the call expression.
207         (fold_builtin_call_array): Pass n and argarray directly.
208         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
209         consing a list.
210         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
211         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
212         `i' and use it in place of `arity'.
213         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
214         Dereference `args' directly.
215         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
216
217 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
218
219         * doc/sourcebuild.texi (Effective-Target Keywords): Document
220         3dnow, sse3, sse2.
221         (Directives): Document optional dg-require-effective-target
222         selector.
223
224 2010-05-19  Richard Guenther  <rguenther@suse.de>
225
226         PR lto/44196
227         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
228
229 2010-05-19  Richard Guenther  <rguenther@suse.de>
230
231         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
232         * common.opt (fwhopr=): New.
233         * opts.c (common_handle_option): Handle OPT_fwhopr.
234         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
235         * collect2.c (main): Match -fwhopr*.
236         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
237         Execute ltrans stage in parallel when jobs is bigger than 1.
238
239 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
240
241         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
242         pentiumpro on Solaris 8/x86 with Sun as.
243         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
244         hidden alias bug.
245         (gcc_cv_as_ix86_quad): Check for .quad directive.
246         * configure: Regenerate.
247         * config.in: Regenerate.
248         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
249
250 2010-05-19  Martin Jambor  <mjambor@suse.cz>
251
252         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
253         also for indirect edges.  Actual printing moved...
254         (ipa_print_node_jump_functions_for_edge): ...here.
255         (ipa_compute_jump_functions): Renamed to
256         ipa_compute_jump_functions_for_edge and made static.
257         (ipa_compute_jump_functions): New function.
258         (make_edge_direct_to_target): Check if the number of arguments on
259         the newly direct edge is the same as the number of parametrs of
260         the callee.
261         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
262         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
263         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
264         analysis functions unconditionally, call the new
265         ipa_analyze_params_uses on the node instead of every edge.
266
267 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
268
269         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
270         to tree.
271         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
272         also checks for a constant int vs.  non-constant but
273         loop-invariant steps.
274         (find_or_create_group): Change the sort algorithm to only consider
275         steps that are constant ints.
276         (idx_analyze_ref): Adopt code to handle a tree instead of a
277         HOST_WIDE_INT for step.
278         (gather_memory_references_ref): Handle tree instead of int and be
279         prepared to see a NULL_TREE.
280         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
281         prefetches if the step cannot be calculated at compile time.
282         (issue_prefetch_ref): Issue prefetches for non-constant but
283         loop-invariant steps.
284
285 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
286
287         Revert:
288         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
289
290         * tree.h (build_call_list): Remove.
291         * tree.c (build_call_list): Remove.
292
293 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
294
295         * tree.h (build_call_list): Remove.
296         * tree.c (build_call_list): Remove.
297
298 2010-05-18  Jan Hubicka  <jh@suse.cz>
299
300         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
301
302 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
303
304         PR rtl-optimization/43332
305         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
306
307 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
308
309         * tree.h (build_int_cstu): Implement as static inline.
310         * tree.c (build_int_cstu): Remove function.
311         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
312         sign extended.
313
314 2010-05-18  Richard Guenther  <rguenther@suse.de>
315
316         PR lto/44143
317         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
318         (debug): Initialize from -save-temps.
319         (collect_execute): Print command-line when verbose.
320         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
321         for ltrans invocation.  Produce -dumpbase flag again.
322         (process_args): Remove.
323         (main): Simplify.
324         * collect2.c (maybe_run_lto_and_relink): Only pass object
325         files to lto-wrapper.
326         * gcc.c (LINK_COMMAND_SPEC): Likewise.
327
328 2010-05-18  Jan Hubicka  <jh@suse.cz>
329
330         * opts.c (decode_options): Do not disable whopr at ipa_cp.
331         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
332
333 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
334
335         PR lto/44184
336         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
337         in a GIMPLE_ASM.
338         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
339         in a GIMPLE_ASM.
340
341 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
342
343         PR debug/41371
344         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
345         rtx_equal_p inline.
346
347 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
348
349         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
350         lto-macho as lto_binary_reader.
351
352         * darwin.c (darwin_asm_named_section): Do not add assembler comment
353         after .section directive; just print it before the directive instead.
354
355 2010-05-17  Jan Hubicka  <jh@suse.cz>
356
357         * cgraph.c (cgraph_create_virtual_clone): Only check
358         versionable_function_p when not in wpa and checking is enabled.
359         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
360         there are no more functions to materialize.
361
362 2010-05-17  Jan Hubicka  <jh@suse.cz>
363
364         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
365         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
366         New functions.
367         (output_cgraph): Call output_cgraph_opt_summary.
368         (input_cgrpah): Call input_cgraph_opt_summary.
369         (output_cgraph_opt_summary_p, output_node_opt_summary,
370         input_node_opt_summary, input_cgraph_opt_section): New functions.
371         * lto-section-in.c (lto_section_name): Add cgraphopt.
372         * tree-inline.c (tree_function_versioning): Handle parm_num.
373         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
374         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
375
376 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
377
378         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
379         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
380         the insn to prefetch ratio heuristic to loops with known trip count.
381
382 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
383
384         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
385         (schedule_prefetches): Do not generate a prefetch if the unroll factor
386         is far from what is required by the prefetch.
387
388 2010-05-17  Jan Hubicka  <jh@suse.cz>
389
390         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
391         (ipcp_estimate_growth): Likewise.
392         (ipcp_const_param_count): Likewise.
393         (ipcp_insert_stage): Likewise.
394         * ipa-prop.c (visit_load_for_mod_analysis): New function.
395         (visit_store_addr_for_mod_analysis): Set used flag.
396         (ipa_detect_param_modifications): Set used flag for SSE params;
397         update use of walk_stmt_load_store_addr_ops.
398         (ipa_print_node_params): Print used flag.
399         (ipa_write_node_info): Stream used flag.
400         (ipa_read_node_info): Likewise.
401         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
402         (ipa_is_param_used): New function.
403         (lto_ipa_fixup_call_notes): Remove unused declaration.
404
405 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
406
407         PR target/44074
408         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
409         * configure: Regenerate.
410         * config.in: Regenerate.
411         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
412         !HAVE_AS_IX86_REP_LOCK_PREFIX.
413         Don't emit whitespace.
414         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
415         (*rep_movsi): Likewise.
416         (*rep_movsi_rex64): Likewise.
417         (*rep_movqi): Likewise.
418         (*rep_movqi_rex64): Likewise.
419         (*rep_stosdi_rex64): Likewise.
420         (*rep_stossi): Likewise.
421         (*rep_stossi_rex64): Likewise.
422         (*rep_stosqi): Likewise.
423         (*rep_stosqi_rex64): Likewise.
424         (*cmpstrnqi_nz_1): Use {%;} after repz.
425         (*cmpstrnqi_nz_rex_1): Likewise.
426         (*cmpstrnqi_1): Likewise.
427         (*cmpstrnqi_rex_1): Likewise.
428         (*strlenqi_1): Use {%;} after repnz.
429         (*strlenqi_rex_1): Likewise.
430         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
431         (*sync_compare_and_swap<mode>): Likewise.
432         (sync_double_compare_and_swap<mode>): Likewise.
433         (*sync_double_compare_and_swapdi_pic): Likewise.
434         (sync_old_add<mode>): Likewise.
435         (sync_add<mode>): Likewise.
436         (sync_sub<mode>): Likewise.
437         (sync_<code><mode>): Likewise.
438
439 2010-05-17  Martin Jambor  <mjambor@suse.cz>
440
441         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
442         otr_token and polymorphic.
443         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
444         (cgraph_clone_edge): Copy the above fields.
445         * tree.c (get_binfo_at_offset): New function.
446         * tree.h (get_binfo_at_offset): Declare.
447         * ipa-prop.h (enum jump_func_type): Added known_type jump function
448         type, reordered items, updated comments.
449         (union jump_func_value): Added base_type field, reordered fields.
450         (enum ipa_lattice_type): Moved down in the file.
451         (struct ipa_param_descriptor): New field polymorphic.
452         (ipa_is_param_polymorphic): New function.
453         * ipa-prop.c: Include gimple.h and gimple-fold.h.
454         (ipa_print_node_jump_functions): Print known type jump functions.
455         (compute_complex_pass_through): Renamed to...
456         (compute_complex_assign_jump_func): this.
457         (compute_complex_ancestor_jump_func): New function.
458         (compute_known_type_jump_func): Likewise.
459         (compute_scalar_jump_functions): Create known type and complex ancestor
460         jump functions.
461         (ipa_note_param_call): New parameter polymorphic, set the corresponding
462         flag in the call note accordingly.
463         (ipa_analyze_call_uses): Renamed to...
464         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
465         variable var only in the block where it is used.
466         (ipa_analyze_virtual_call_uses): New function.
467         (ipa_analyze_call_uses): Likewise.
468         (combine_known_type_and_ancestor_jfs): Likewise.
469         (update_jump_functions_after_inlining): Implemented handling of a
470         number of new jump function types combination.
471         (print_edge_addition_message): Removed.
472         (make_edge_direct_to_target): New function.
473         (try_make_edge_direct_simple_call): Likewise.
474         (try_make_edge_direct_virtual_call): Likewise.
475         (update_call_notes_after_inlining): Renamed to...
476         (update_indirect_edges_after_inlining): this.  Moved edge creation for
477         indirect calls to try_make_edge_direct_simple_call, also calls
478         try_make_edge_direct_virtual_call for virtual calls.
479         (ipa_print_node_params): Changed the header message.
480         (ipa_write_jump_function): Stream also known type jump functions.
481         (ipa_read_jump_function): Likewise.
482         (ipa_write_indirect_edge_info): Stream new fields in
483         cgraph_indirect_call_info.
484         (ipa_read_indirect_edge_info): Likewise.
485         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
486         GIMPLE_FOLD_H.
487
488 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
489
490         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
491
492 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
493
494         * tree.h (CALL_EXPR_ARGS): Delete.
495         (call_expr_arglist): Delete.
496         * tree.c (call_expr_arglist): Delete.
497         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
498         targetm.fold_builtin.
499         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
500         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
501         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
502         arglist parameter.  Use CALL_EXPR_ARG.
503         (picochip_expand_builtin_3op): Likewise.
504         (picochip_expand_builtin_2opvoid): Likewise.
505         (picochip_expand_array_get): Likewise.
506         (picochip_expand_array_put): Likewise.
507         (picochip_expand_array_testport): Likewise.
508         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
509         rather than arglist.
510         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
511         CALL_EXPR_ARGS.
512         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
513         than TREE_VALUE and TREE_CHAIN.
514         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
515         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
516         the arglist.
517
518 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
519
520         PR bootstrap/42347
521         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
522         to have no fallthru edge.
523
524         PR middle-end/44102
525         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
526         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
527         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
528         add BARRIER after previous bb if needed.
529
530 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
531
532         * tree.c (build_function_type_list_1): Remove bogus assert condition.
533
534 2010-05-17  Alan Modra  <amodra@gmail.com>
535
536         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
537         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
538         with copy_reg rtx param.
539         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
540         Correct cases where code for ABI_V4 did not initialise the reg
541         used to access frame.  Also leave frame_reg_rtx as sp for large
542         frames that save no regs.
543
544 2010-05-17  Martin Jambor  <mjambor@suse.cz>
545
546         PR middle-end/44133
547         * tree-sra.c (create_access_replacement): New parameter rename, mark
548         the replaement for renaming only when it is true.
549         (get_access_replacement): Pass true in the rename parameter of
550         create_access_replacement.
551         (get_unrenamed_access_replacement): New function.
552         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
553         replacement declaration from it.
554
555 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
556
557         * function.c (try_fit_stack_local, add_frame_space): New static
558         functions.
559         (assign_stack_local_1): Use them.  Look for opportunities to use
560         space previously wasted on alignment.
561         * function.h (struct frame_space): New.
562         (struct rtl_data): Add FRAME_SPACE_LIST member.
563         * reload1.c (something_was_spilled): New static variable.
564         (alter_reg): Set it.
565         (reload): Test it in addition to testing if the frame size changed.
566
567 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
568
569         * config/s390/s390.c: Define sane prefetch settings and activate
570         flag_prefetch_loop_arrays on -O3.
571         * config/s390/s390.h: Declare that read can use write prefetch.
572
573 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
574
575         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
576         build.
577
578 2010-05-16  Jan Hubicka  <jh@suse.cz>
579
580         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
581         function body; do not check stdarg field of struct function.
582
583 2010-05-16  Jan Hubicka  <jh@suse.cz>
584
585         * cgraph.c (dump_cgraph_node): Dump versionable flag.
586         * cgraph.h (cgraph_local_info): Add versionable flag.
587         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
588         (ipcp_versionable_function_p): Use it.
589         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
590         versionable flag.
591
592 2010-05-16  Jan Hubicka  <jh@suse.cz>
593
594         * cgraph.c (cgraph_clone_node): Take decl argument and insert
595         clone into hash when it is different from orig.
596         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
597         * cgraph.h (cgraph_clone_node): Update prototype.
598         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
599         (lto_cgraph_encoder_delete): Delete body map.
600         (lto_cgraph_encoder_size): Move to header.
601         (lto_cgraph_encoder_encode_body_p,
602         lto_set_cgraph_encoder_encode_body): New.
603         (lto_output_node): Do not take written_decls argument; output clone_of
604         pointer.
605         (add_node_to): Add include_body_argument; call
606         lto_set_cgraph_encoder_encode_body on master of the clone.
607         (add_references): Update use of add_node_to.
608         (compute_ltrans_boundary): Likewise.
609         (output_cgraph): Do not create written_decls bitmap.
610         (input_node): Take nodes argument; stream in clone_of correctly.
611         (input_cgraph_1): Update use of input_node.
612         * lto-streamer-out.c (lto_output): Use encoder info to decide
613         what bodies to output.
614         * ipa-inline.c (cgraph_clone_inlined_nodes,
615         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
616         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
617         (lto_cgraph_encoder_size): Define here.
618         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
619         Declare.
620
621 2010-05-16  Richard Guenther  <rguenther@suse.de>
622
623         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
624         -fipa-type-escape.
625         * ipa-type-escape.c (gate_type_escape_vars): Run when
626         -fipa-struct-reorg runs.
627         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
628         * common.opt (fipa-type-escape): Remove.
629
630 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
631
632         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
633         (decode_options): Likewise.
634         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
635
636 2010-05-16  Jan Hubicka  <jh@suse.cz>
637
638         * ipa.c (function_and_variable_visibility): Also bring local all
639         aliases.
640
641 2010-05-16  Richard Guenther  <rguenther@suse.de>
642
643         * alias.c (nonoverlapping_memrefs_p): Remove use of
644         IPA type-escape information.
645
646 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
647
648         * c-common.c (c_common_reswords): Add _Static_assert for C.
649         * c-parser.c (c_token_starts_declaration,
650         c_parser_next_token_starts_declaration,
651         c_parser_static_assert_declaration_no_semi,
652         c_parser_static_assert_declaration): New.
653         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
654         Handle static assertions if static_assert_ok.
655         (c_parser_external_declaration, c_parser_declaration_or_fndef,
656         c_parser_compound_statement_nostart, c_parser_label,
657         c_parser_for_statement, c_parser_objc_methodprotolist,
658         c_parser_omp_for_loop): All callers of
659         c_parser_declaration_or_fndef changed.
660         (c_parser_struct_declaration): Handle static assertions.
661         (c_parser_compound_statement_nostart): Use
662         c_parser_next_token_starts_declaration and
663         c_token_starts_declaration to detect start of declarations.
664         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
665         Likewise.
666
667 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
668
669         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
670         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
671         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
672         TARGET_FUNCTION_VALUE_REGNO_P): Define.
673         (mmix_function_outgoing_value): Rename to...
674         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
675         (mmix_function_value_regno_p): Make static.
676         (mmix_libcall_value): New function.
677         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
678         mmix_function_value_regno_p): Remove declaration.
679
680 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
681
682         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
683         BUILT_IN_ALLOCA if stack checking is enabled.
684
685 2010-05-16  Richard Guenther  <rguenther@suse.de>
686
687         * var-tracking.c (vars_copy_1): Inline ...
688         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
689         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
690         (variable_merge_over_cur): Adjust.  Merge asserts.
691         (variable_merge_over_src): Likewise.
692         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
693         (variable_post_merge_new_vals): Merge asserts.
694         (variable_post_merge_perm_vals): Likewise.
695         (find_mem_expr_in_1pdv): Likewise.
696         (dataflow_set_different_value): Remove.
697         (onepart_variable_different_p): Merge asserts.
698         (variable_different_p): Likewise.
699         (dataflow_set_different_1): Inline ...
700         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
701         (emit_notes_for_differences_1): Merge asserts.
702
703 2010-05-16  Richard Guenther  <rguenther@suse.de>
704
705         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
706         * optabs.c (libfunc_decl_hash): Likewise.
707         * varasm.c (emutls_decl): Likewise.
708
709 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
710
711         * c-decl.c: Don't include gimple.h.
712         (merge_decls): Do not copy gimple_body.
713
714 2010-05-15  Jason Merrill  <jason@redhat.com>
715
716         * c.opt: Add -fnothrow-opt.
717
718 2010-05-15  Jan Hubicka  <jh@suse.cz>
719
720         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
721         analyzed.
722         * passes.c (ipa_write_summaries): Write all analyzed nodes.
723
724 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
725
726         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
727         * Makefile.in: Add it.
728         Fix all other Makefile dependencies for changes below.
729         * tree.h: Include it instead of defining VEC primitives here.
730         * gimple.h: Likewise.
731         * rtl.h: Likewise.
732         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
733         * except.h: Include vecir.h, break dependence on tree.h.
734
735         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
736         Move from here...
737         * tree-iterator.c: ...to here.
738         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
739
740         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
741         tm_p.h.
742         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
743         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
744         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
745         tree-mudflap.h, and target.h.
746         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
747         predict.h, tree-inline.h, gimple.h, and langhooks.h.
748         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
749         Add FIXME for why gimple.h is still included (should be unnecessary
750         since GCC 4.5 gimplification unit-at-a-time).
751         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
752         * c-pragma.c: Add FIXME for why function.h needs to be included just
753         for cfun, at front-end level.
754         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
755         Do not include ggc.h, but include vecprim.h for VEC(char).
756         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
757         Explain why target.h is included.
758         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
759         Explain why gimple.h is included.
760         * c-ppoutput.c: Do not include tm.h.
761         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
762         * c-parses.c: Explain why rtl.h is included, and that this (and only
763         this) is also why tm.h must be included.
764         Do not include except.h.
765         * c-lang.c: Do not include ggc.h.
766
767 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
768
769         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
770
771 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
772
773         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
774         unions by default if those structs and unions have no tags.  Do
775         not condition anonymous struct and unions handling on flag_iso.
776         Allow anonymous structs and unions for C1X.
777         (finish_struct): Do not diagnose lack of named fields when
778         anonymous structs and unions present for C1X.  Accept flexible
779         array members in structure with anonymous structs or unions but no
780         directly named fields.
781         * doc/extend.texi (Unnamed Fields): Update.
782
783 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
784
785         * gimple.h (compare_field_offset): Rename into...
786         (gimple_compare_field_offset): ...this.
787         * gimple.c (compare_field_offset): Rename into...
788         (gimple_compare_field_offset): ...this.  Compare the full access if
789         the offset is self-referential.
790         (gimple_types_compatible_p): Adjust for above renaming.
791         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
792         DECL_NONADDRESSABLE_P flag of fields before merging them.
793
794 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
795
796         * tree.h (ctor_to_list): Delete.
797         * tree.c (ctor_to_list): Delete.
798
799 2010-05-15  Jan Hubicka  <jh@suse.cz>
800
801         * ipa-reference.c: Include toplev.h
802         (is_proper_for_analysis): Only add to all_module_statics
803         if it is allocated.
804         (write_node_summary_p, stream_out_bitmap,
805         ipa_reference_write_optimization_summary,
806         ipa_reference_read_optimization_summary): New.
807         (struct ipa_opt_pass_d pass_ipa_reference): Add
808         optimization summary streaming.
809         * lto-cgraph.c (referenced_from_this_partition_p,
810         reachable_from_this_partition_p): New functions.
811         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
812         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
813         * opts.c (decode_options): Enable ipa_reference.
814         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
815         * lto-streamer.h (referenced_from_this_partition_p,
816         reachable_from_this_partition_p): Declare.
817
818 2010-05-15  Richard Guenther  <rguenther@suse.de>
819
820         PR tree-optimization/44038
821         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
822         taking the address of a V_C_E of a constant.
823
824 2010-05-14  Jan Hubicka  <jh@suse.cz>
825
826         * tree.h (memory_identifier_string): Remove.
827         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
828         (ipa_reference_global_vars_info_d): Remove statics_not_read and
829         statics_not_written.
830         (ipa_reference_optimization_summary_d): New structure.
831         (ipa_reference_optimization_summary_t): New type and vector.
832         (ipa_reference_vars_info_d): Embedd structures instead of using
833         pointers.
834         (reference_vars_to_consider): Remove out of GGC space.
835         (module_statics_escape): Remove.
836         (global_info_obstack): Rename to ...
837         (optimization_summary_obstack): ... this one.
838         (initialization_status_t): Remove.
839         (memory_identifier_string): Remove.
840         (get_reference_vars_info): Fix indenting.
841         (set_reference_vars_info): Likewise.
842         (get_reference_optimization_summary): New.
843         (set_reference_optimization_summary): New.
844         (get_global_reference_vars_info): Remove.
845         (ipa_reference_get_read_global): Remove.
846         (ipa_reference_get_written_global): Remove.
847         (ipa_reference_get_not_read_global): Update.
848         (ipa_reference_get_not_written_global): Update.
849         (is_proper_for_analysis): Outlaw addressable.
850         (propagate_bits): Update for new datastructures.
851         (analyze_variable): Remove.
852         (init_function_info): Update for new datastructures.
853         (clean_function_local_data): Remove.
854         (clean_function): Remove.
855         (copy_global_bitmap): Use optimizations_summary_obstack.
856         (duplicate_node_data): Duplicate optimization summary only.
857         (remove_node_data): Remove optimization summary only.
858         (generate_summary): Do not analyze variables; do not compute
859         module_statics_escape; do not prune solutions by it.
860         (read_write_all_from_decl): Fix typos in comments.
861         (propagate): Doscover readonly and nonaddressable first;
862         update for new datastructures; share global bitmaps.
863         * ipa-reference.h (ipa_reference_get_read_global,
864         ipa_reference_get_written_global): Remove.
865         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
866         * Makefile.in: Remove ipa-refereference from GT files.
867
868 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
869
870         PR debug/44112
871         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
872         for all SYMBOL_REF_DECLs.
873
874 2010-05-14  Jan Hubicka  <jh@suse.cz>
875
876         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
877         (varpool_all_refs_explicit_p): New inline function.
878         * ipa-reference.c: Update comment.
879         (module_statics_written): Remove.
880         (get_static_decl): Remove.
881         (ipa_init): Do not initialize module_statics_written.
882         (analyze_function): Likewise.
883         (generate_summary): Likewise; do not compute module_statics_readonly
884         and do not update variable flags.
885         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
886         * ipa.c: Inlucde flags.h
887         (cgraph_local_node_p): New.
888         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
889         promote functions to local.
890         (ipa_discover_readonly_nonaddressable_vars): New function.
891         (function_and_variable_visibility): Use cgraph_local_node_p.
892         * varpool.c (varpool_finalize_decl): Set force_output for
893         DECL_PRESERVE_P vars.
894
895 2010-05-14  Jan Hubicka  <jh@suse.cz>
896
897         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
898
899 2010-05-14  Richard Guenther  <rguenther@suse.de>
900
901         PR tree-optimization/44119
902         * tree-ssa-pre.c (eliminate): Properly mark replacement of
903         a PHI node necessary.
904
905 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
906
907         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
908
909 2010-05-14  Jason Merrill  <jason@redhat.com>
910
911         PR c++/44127
912         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
913         (gimple_call_set_nothrow): New.
914         * gimple.c (gimple_build_call_from_tree): Call it.
915         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
916
917         PR c++/44127
918         * gimplify.c (gimplify_seq_add_stmt): No longer static.
919         * gimple.h: Declare it.
920         * gimple.c (gimple_build_eh_filter): No ops.
921
922 2010-05-14  Jan Hubicka  <jh@suse.cz>
923
924         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
925         nodes already in queue.
926         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
927         re-enqueueing node.
928
929 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
930
931         PR debug/44136
932         * cfgexpand.c (expand_debug_expr): If non-memory op0
933         has BLKmode, return NULL.
934
935 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
936
937         * config.gcc: Add support for --with-cpu option for bdver1.
938         * config/i386/i386.h (TARGET_BDVER1): New macro.
939         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
940         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
941         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
942         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
943         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
944         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
945         (processor_type): Add PROCESSOR_BDVER1.
946         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
947         processor_type in config/i386/i386.h.
948         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
949         movaps <reg, reg> instead of movapd <reg, reg> when replacing
950         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
951         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
952         to emit packed xor instead of packed double/packed integer
953         xor for SSE and AVX when moving a zero value.
954         * config/i386/sse.md: Add check for
955         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
956         movapd/movdqa for SSE and AVX.
957         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
958         single logical operations i.e and, or and xor instead of packed double
959         logical operations for SSE and AVX.
960         * config/i386/i386-c.c (ix86_target_macros_internal):
961         Add PROCESSOR_BDVER1.
962         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
963         (has_fma4, has_xop): New.
964         * config/i386/i386.c (bdver1_cost): New variable.
965         (m_BDVER1): New macro.
966         (m_AMD_MULTIPLE): Add m_BDVER1.
967         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
968         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
969         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
970         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
971         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
972         x86_tune_sse_partial_reg_dependency,
973         x86_tune_sse_unaligned_load_optimal,
974         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
975         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
976         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
977         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
978         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
979         Enable/disable for bdver1.
980         (processor_target_table): Add bdver1_cost.
981         (cpu_names): Add bdver1.
982         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
983          processor_alias_table.
984         (ix86_expand_vector_move_misalign): Change.
985         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
986         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
987         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
988         of movupd/movdqu for SSE and AVX.
989         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
990         (ix86_tune_adjust_cost): Add code for bdver1.
991         (standard_sse_constant_opcode): Add check for
992         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
993         of packed double xor for SSE and AVX.
994
995 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
996
997         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
998         result to unsigned.
999
1000 2010-05-14  Tristan Gingold  <gingold@adacore.com>
1001
1002         * toplev.c (default_debug_hooks): Remove this variable.
1003         (process_options): Remove assignments to default_debug_hooks.
1004
1005 2010-05-14  Martin Jambor  <mjambor@suse.cz>
1006
1007         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
1008         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
1009         * langhooks.h (struct lang_hooks_for_decls): Removed field
1010         fold_obj_type_ref.
1011         * tree.c (free_lang_data): Remove assignment to
1012         lang_hooks.fold_obj_type_ref.
1013         * tree.def (OBJ_TYPE_REF): Update comment.
1014
1015 2010-05-14  Richard Guenther  <rguenther@suse.de>
1016
1017         PR tree-optimization/44124
1018         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
1019
1020 2010-05-14  Alan Modra  <amodra@gmail.com>
1021
1022         PR target/44075
1023         * config/rs6000/rs6000.c (struct machine_function): Reorder
1024         fields for better packing.  Add lr_save_state.
1025         (rs6000_ra_ever_killed): Return lr_save_state if set.
1026         (rs6000_emit_eh_reg_restore): Set lr_save_state.
1027
1028 2010-05-13  Jan Hubicka  <jh@suse.cz>
1029
1030         * varpool.c (decide_is_variable_needed): Drop code checking
1031         TREE_SYMBOL_REFERENCED.
1032
1033 2010-05-13  Jan Hubicka  <jh@suse.cz>
1034
1035         * final.c (output_addr_const): Do not call mark_decl_referenced.
1036         * cgraphunit.c (process_function_and_variable_attributes): Use
1037         mark_needed_node dirrectly.
1038         (assemble_thunk): Do not call mark_decl_referenced.
1039
1040 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
1041
1042         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
1043
1044 2010-05-13  Jeff Law  <law@redhat.com>
1045
1046         * ira-conflicts.c (print_allocno_conflicts): New function broken out
1047         from...
1048         (print_conflicts): Call print_allocno_conflicts.
1049
1050 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
1051
1052         PR debug/44104
1053         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
1054         if it is NULL.
1055
1056 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
1057
1058         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
1059         t-mingw-w64 or t-mingw-w32 for multilib configuration.
1060         * config/i386/t-mingw-w32: New.
1061         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
1062
1063 2010-05-13  Martin Jambor  <mjambor@suse.cz>
1064
1065         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
1066         gimple-fold.c).
1067         * gimple-fold.c (get_base_binfo_for_type): New function.
1068         (gimple_get_relevant_ref_binfo): Likewise.
1069         (gimple_fold_obj_type_ref_known_binfo): Likewise.
1070         (gimple_fold_obj_type_ref): Likewise.
1071         (fold_gimple_call): Simplify condition for folding virtual calls
1072         and call gimple_fold_obj_type_ref.
1073         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
1074         (gimple_fold_obj_type_ref_known_binfo): Likewise.
1075
1076 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
1077
1078         * config/rs6000/rs6000-protos.h
1079         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
1080         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
1081         (rs6000_debug_mode_dependent_address)
1082         (rs6000_mode_dependent_address_ptr): Likewise.
1083
1084 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
1085
1086         PR debug/43983
1087         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
1088         by SRA.
1089         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
1090         * tree-sra.c (create_access_replacement): Call unshare_expr before
1091         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
1092         * dwarf2out.c: Include tree-flow.h.
1093         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
1094         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
1095         Handle DW_OP_bit_piece.
1096         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
1097         construct_piece_list, adjust_piece_list): New functions.
1098         (add_var_loc_to_decl): Handle SRA optimized variables.
1099         Adjust for var_loc_note to loc field renaming.
1100         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
1101         in VAR_LOCATION note.
1102         (new_loc_descr_op_bit_piece): New function.
1103         (dw_sra_loc_expr): New function.
1104         (dw_loc_list): Use it.  Don't handle the last range after the
1105         loop, handle it inside of the loop.  Adjust for var_loc_note
1106         to loc field renaming.
1107         (add_location_or_const_value_attribute): Only special case
1108         single entry loc lists if loc is NOTE_P.  Adjust for
1109         var_loc_note to loc field renaming.
1110         (dwarf2out_var_location): Don't set newloc->var_loc_note
1111         and newloc->next here.
1112
1113 2010-05-12  Jan Hubicka  <jh@suse.cz>
1114
1115         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
1116         flag.
1117         * cgraph.h (cgraph_only_called_directly_p,
1118         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
1119         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
1120         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
1121         (assemble
1122         * ipa.c (cgraph_remove_unreachable_nodes): Use
1123         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
1124         flags.
1125         * tree-inline.c (copy_bb): Check address_taken flag.
1126         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
1127         externally_visible flag.
1128
1129 2010-05-12  Jason Merrill  <jason@redhat.com>
1130
1131         PR bootstrap/44048
1132         PR target/44099
1133         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
1134         * sdbout.c (plain_type_1): Likewise.
1135         * dwarf2out.c (is_base_type): Likewise.
1136         (gen_type_die_with_usage): Likewise.  Generate
1137         DW_TAG_unspecified_type for any LANG_TYPE.
1138
1139 2010-05-12  Jan Hubicka  <jh@suse.cz>
1140
1141         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
1142         indrect edges too.
1143         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
1144         (cgraph_clone_edge): Update.
1145         (cgraph_node_remove_callees): Remove indirect calls too.
1146         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
1147         (cgraph_create_indirect_edge): Update prototype.
1148         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
1149         is_proper_for_analysis.
1150         (add_new_function, visited_nodes, function_insertion_hook_holder,
1151         get_local_reference_vars_info, mark_address_taken, mark_address,
1152         mark_load, mark_store, check_asm_memory_clobber, check_call,
1153         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
1154         (ipa_init): Do not initialize visited_nodes;
1155         function_insertion_hook_holder.
1156         (analyze_variable): Rewrite.
1157         (analyze_function): Rewrite.
1158         (copy_local_bitmap): Remove.
1159         (duplicate_node_dat): Do not duplicate local info.
1160         (generate_summary): Simplify to only walk cgraph.
1161         (write_node_summary_p, ipa_reference_write_summary,
1162         ipa_reference_read_summary): Remove.
1163         (propagate): Do not remove function insertion;
1164         generate summary.
1165         (pass_ipa_reference): NULLify summary handling fields.
1166         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
1167         (input_edge): Input ecf_flags.
1168         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
1169         (update_indirect_edges_after_inlining): Ignore edges with unknown
1170         param.
1171
1172 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
1173
1174         * implicit-zee.c: New file.
1175         * tree-pass.h (pass_implicit_zee): Declare.
1176         * passes.c (init_optimization_passes): Add zee pass.
1177         * common.opt (fzee): New flag.
1178         * timevar.def (TV_ZEE): Define.
1179         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
1180         and beyond.
1181         * Makefile.in (implicit-zee.o): Add new build file.
1182
1183 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1184             Nathan Froyd  <froydnj@codesourcery.com>
1185
1186         * c-common.c (sync_resolve_params): Remove write-only variable.
1187
1188 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
1189
1190         * target.h (struct gcc_target): Add mode_dependent_address_p field.
1191         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
1192         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
1193         * targhooks.c (default_mode_dependent_address_p): New function.
1194         * targhooks.h (default_mode_dependent_address_p): Declare function.
1195         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
1196         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
1197         * recog.c: (mode_dependent_address_p): Call mode_dependent_address_p
1198         target hook. Change return type to bool.
1199         * recog.h: (mode_dependent_address_p): Change return type to bool.
1200
1201 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1202             Nathan Froyd  <froydnj@codesourcery.com>
1203
1204         * tree-mudflap.c (build_function_type_0, build_function_type_1,
1205         build_function_type_2, build_function_type_3): Remove.
1206         (mudflap_init): Use build_function_type_list.
1207
1208 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1209             Nathan Froyd  <froydnj@codesourcery.com>
1210
1211         * coverage.c (build_fn_info_value): Call build_constructor instead of
1212         build_constructor_from_list.
1213         (build_ctr_info_value): Likewise.
1214         (build_gcov_info): Likewise.
1215
1216 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
1217
1218         * tree.c (build_constructor): Compute TREE_CONSTANT for the
1219         resultant constructor.
1220         (build_constructor_single): Don't set TREE_CONSTANT.
1221         (build_constructor_from_list): Don't compute TREE_CONSTANT.
1222
1223 2010-05-12  Jan Hubicka  <jh@suse.cz>
1224
1225         * cgraph.h (struct varpool_node): Add aux.
1226         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
1227         * varpool.c (varpool_remove_node): Do not remove initializer.
1228         (varpool_reset_queue): Export.
1229         (varpool_finalize_decl): Volatile vars are forced to be output.
1230         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
1231         replaced decl.
1232         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
1233         process_references, varpool_can_remove_if_no_refs): New functions.
1234         (cgraph_remove_unreachable_nodes): Handle variables too.
1235
1236 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1237
1238         PR target/44088
1239         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
1240
1241 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
1242
1243         PR middle-end/44085
1244         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
1245         change value of ORT_TASK.
1246         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
1247         (omp_notice_threadprivate_variable): New function.
1248         (omp_notice_variable): Call it for threadprivate variables.
1249         If enclosing ctx is a task, print enclosing task rather than
1250         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
1251         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
1252         if task has untied clause.
1253
1254         PR debug/42278
1255         * dwarf2out.c (base_type_die): Don't add name attribute here.
1256         (modified_type_die): Instead of sizetype use
1257         its underlying original type.  If a DW_TAG_base_type doesn't
1258         have name added, add __unknown__.
1259         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
1260         always call force_type_die instead.
1261
1262 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
1263
1264         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
1265         for __stack_chk_guard.
1266
1267 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
1268
1269         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
1270         don't call start_source_file debug hook here...
1271         (finish_options): ... but here, after outputting predefined and
1272         command line defines and undefs.
1273
1274         PR middle-end/44071
1275         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
1276         no fallthru edge.
1277         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
1278         optimizing away empty bb with no successors, move over its
1279         footer chain to fallthru predecessor.
1280         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
1281         (rtl_split_edge): For asm goto call patch_jump_insn even if
1282         splitting fallthru edge.
1283
1284         PR c++/44059
1285         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
1286         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
1287         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
1288         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
1289         on DW.ref.* decls.
1290
1291         PR c++/44062
1292         * c-parser.c (c_parser_expression): Mark LHS of a comma
1293         expression as read if it is a decl, handled component or
1294         COMPOUND_EXPR with that on the RHS.
1295         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
1296         if it is a decl or handled component.
1297
1298 2010-05-11  Jan Hubicka  <jh@suse.cz>
1299
1300         * lto-symtab.c (lto_symtab_free): New function.
1301         * lto-streamer.h (lto_symtab_free): Declare.
1302
1303 2010-05-11  Jan Hubicka  <jh@suse.cz>
1304
1305         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
1306         that if function is needed it is reachable.
1307         (lto_output_node): See if it the function is reachable or referenced.
1308         (output_cgraph): Update call of lto_output_node.
1309         * lto-streamer.h (reachable_from_other_partition_p): Declare.
1310
1311 2010-05-11  Jan Hubicka  <jh@suse.cz>
1312
1313         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
1314         Mark as used.
1315
1316 2010-05-11  Jan Hubicka  <jh@suse.cz>
1317
1318         PR tree-optimize/44063
1319         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
1320         queue.
1321         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
1322         limits.
1323         (estimate_function_body_sizes): Compute sizes even when disregarding.
1324
1325 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
1326
1327         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
1328
1329 2010-05-11  Jan Hubicka  <jh@suse.cz>
1330
1331         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
1332         into every boundary.
1333
1334 2010-05-11  Jan Hubicka  <jh@suse.cz>
1335
1336         * matrix-reorg.c (matrix_reorg): Rebuild edges.
1337
1338 2010-05-11  Jan Hubicka  <jh@suse.cz>
1339
1340         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
1341         lto_streamer_cache_delete): Put nodes into heap.
1342         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
1343         heap.
1344
1345 2010-05-11  Jan Hubicka  <jh@suse.cz>
1346
1347         * cgraphbuild.c (cgraph_rebuild_references): New.
1348         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
1349         out extern inlines.
1350         * cgraph.h (cgraph_rebuild_references): Declare.
1351         * tree-inline.c (tree_function_versioning): Use it.
1352         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
1353
1354 2010-05-11  Jan Hubicka  <jh@suse.cz>
1355
1356         * cgraph.c: Include ipa-utils.h
1357         (cgraph_create_virtual_clone): Update references.
1358         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
1359
1360 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
1361
1362         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
1363         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
1364         cache size.
1365
1366 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
1367
1368         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
1369
1370 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
1371
1372         * gcc.c (execute): For -### don't quote arguments that
1373         contain just alphanumerics and _/-. characters.
1374         * doc/invoke.texi: Document that change for -###.
1375
1376         PR debug/44023
1377         * df-problems.c (struct dead_debug): Add to_rescan field.
1378         (dead_debug_init): Clear to_rescan field.
1379         (dead_debug_finish): Rescan all debug insns in to_rescan
1380         bitmap and free the bitmap.
1381         (dead_debug_insert_before): Instead of rescanning debug insns
1382         immediately queue their rescanning until dead_debug_finish.
1383         (df_note_bb_compute): After dead_debug_add do continue instead
1384         of break.
1385
1386 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
1387
1388         PR debug/44028
1389         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
1390         clear also INSN_REG_USE_LIST.
1391
1392 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1393
1394         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
1395
1396 2010-05-10  Jan Hubicka  <jh@suse.cz>
1397
1398         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
1399         commited change.
1400
1401 2010-05-10  Jan Hubicka  <jh@suse.cz>
1402
1403         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
1404         Allocate encoders.
1405         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
1406         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
1407         (lto_streamer_cache_create): Init alloc pool.
1408         (lto_streamer_cache_delete): Free alloc pool.
1409         * lto-streamer.h: Include alloc pool.
1410         (lto_streamer_cache_d): Use alloc pool.
1411         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
1412
1413 2010-05-10  Jan Hubicka  <jh@suse.cz>
1414
1415         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
1416         * cgraphbuild.c: Include except.h
1417         (record_type_list, record_eh_tables): New function.
1418         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
1419
1420 2010-05-10  Jan Hubicka  <jh@suse.cz>
1421
1422         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
1423         __frame_dummy_init_array_entry, force_to_data): Attribute as used
1424         rather than unused.
1425
1426 2010-05-10  Michael Matz  <matz@suse.de>
1427
1428         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
1429         (can_reassociate_p): Use FLOAT_TYPE_P.
1430         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
1431         (vect_force_simple_reduction): ... this.
1432         * tree-parloops.c (gather_scalar_reductions): Use
1433         vect_force_simple_reduction.
1434         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
1435         vect_is_simple_reduction, add modify argument, if true rewrite
1436         "a-b" into "a+(-b)".
1437         (vect_is_simple_reduction, vect_force_simple_reduction): New
1438         functions.
1439         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
1440
1441 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1442             Vladimir Makarov  <vmakarov@redhat.com>
1443
1444         PR rtl-optimization/44012
1445         * ira-build.c (remove_unnecessary_allocnos): Nullify
1446         regno_allocno_map of the removed allocno.
1447
1448 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1449
1450         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
1451         to /dev/null.
1452         * configure: Regenerate.
1453
1454 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1455
1456         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
1457         unused.
1458         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
1459         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
1460         support in Sun ld.
1461         * configure: Regenerate.
1462
1463 2010-05-10  Richard Guenther  <rguenther@suse.de>
1464
1465         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
1466         marked if the entry identifier is marked.
1467
1468 2010-05-10  Richard Guenther  <rguenther@suse.de>
1469
1470         * c-common.c (struct c_common_attributes): Add fnspec attribute.
1471         (handle_fnspec_attribute): New function.
1472         * gimple.h (gimple_call_return_flags): Declare.
1473         (gimple_call_arg_flags): Likewise.
1474         * gimple.c (gimple_call_arg_flags): New function.
1475         (gimple_call_return_flags): Likewise.
1476         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
1477         New argument flags.
1478         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
1479         return value flags.
1480         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
1481         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
1482         main work to ...
1483         (make_heapvar_for): ... this new function.
1484         (handle_rhs_call): Handle fnspec attribute argument specifiers.
1485         (handle_lhs_call): Likewise.
1486         (find_func_aliases): Adjust.
1487
1488 2010-05-10  Richard Guenther  <rguenther@suse.de>
1489
1490         PR tree-optimization/44050
1491         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
1492
1493 2010-05-10  Wei Guozhi  <carrot@google.com>
1494
1495         PR target/42879
1496         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
1497
1498 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
1499
1500         PR c/10676
1501         * c-typeck.c (lookup_field): Take a type directly.  Update
1502         recursive calls.
1503         (build_component_ref): Update call to lookup_field.
1504         (set_init_label): Use lookup_field to find initialized field.
1505         Handle returned list of fields like a sequence of designators.
1506
1507 2010-05-09  Richard Guenther  <rguenther@suse.de>
1508
1509         PR middle-end/44024
1510         * fold-const.c (tree_single_nonzero_warnv_p): Properly
1511         handle &FUNCTION_DECL.
1512
1513 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
1514
1515         PR c/4784
1516         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
1517         structures and unions recursively.
1518         (detect_field_duplicates): Move duplicate detection with a hash to
1519         detect_field_duplicates_hash.  Always use a hash if anonymous
1520         structures or unions are present.
1521         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
1522         give errors.
1523
1524 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1525
1526         PR target/44046
1527         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
1528         detect Atom, Core 2 and Core i7.
1529
1530 2010-05-09  Richard Guenther  <rguenther@suse.de>
1531
1532         * gcc.c (store_arg): Handle temporary file deletion for
1533         joined arguments.
1534
1535 2010-05-09  Richard Guenther  <rguenther@suse.de>
1536
1537         PR middle-end/44043
1538         * ipa-inline.c (estimate_function_body_sizes): Return after
1539         disregarding inline limits.
1540
1541 2010-05-09  Richard Guenther  <rguenther@suse.de>
1542
1543         * gcc.c (store_arg): Revert last change.
1544
1545 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
1546
1547         PR middle-end/28685
1548         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
1549         (optimize_ops_list): Call it.
1550
1551 2010-05-08  Richard Guenther  <rguenther@suse.de>
1552
1553         PR tree-optimization/44030
1554         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
1555         NECESSARY flag if we propagate from a inserted expression.
1556
1557 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1558
1559         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
1560         domain types as equal if they are both PLACEHOLDER_EXPRs.
1561
1562 2010-05-08  Richard Guenther  <rguenther@suse.de>
1563
1564         * lto-wrapper.c (run_gcc): Remove linker output from
1565         command line for LTRANS invocation.
1566
1567 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
1568
1569         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1570         lto-macho as lto_binary_reader.
1571         * target.h (struct gcc_target): New hooks lto_start and lto_end.
1572         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
1573         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
1574         in lto_start and lto_end calls.
1575         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
1576         magic numbers.
1577         (scan_prog_file): Update is_elf_or_coff call.
1578         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
1579
1580         * collect2.c (main): Fix enum comparison.
1581
1582         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
1583         Add prototypes.
1584         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
1585         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
1586         and TARGET_ASM_LTO_END.
1587         * darwin.c: Include obstack.h and lto-streamer.h.
1588         (lto_section_names_offset, lto_section_names_obstack,
1589         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
1590         global variables.
1591         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
1592         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
1593         to a temporary file.
1594         (darwin_asm_lto_end): New function.  Restore asm_out_file.
1595         (darwin_asm_named_section): For LTO sections, replace the name with
1596         the offset of the section name in a string table, and build this
1597         table.
1598         (darwin_file_start): Initialize global vars for LTO support.
1599         (darwin_file_end): If output to asm_out_file was redirected, append it
1600         to the proper asm_out_file here.  Add the section names section.
1601
1602 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
1603
1604         * c-pragma.c (pending_weak_d, pending_weak): New.
1605         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
1606         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
1607         handle_pragma_weak): Update the uses of pending_weaks.
1608
1609 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1610
1611         PR documentation/44016
1612         * doc/standards.texi (Standards): Link to unversioned
1613         cxx0x_status.html page.
1614
1615 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
1616
1617         PR target/43708
1618         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
1619         in addition to TREE_USED, to avoid "set but unused" warnings.
1620
1621 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
1622
1623         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
1624         (is_loop_prefetching_profitable): Do not insert prefetches
1625         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
1626         times the prefetch ahead distance.
1627
1628 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
1629
1630         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
1631         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
1632         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
1633         the unroll_factor.
1634
1635 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
1636
1637         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
1638         a diagnostic info when the insn-to-mem ratio is too small.
1639
1640 2010-05-07  Richard Guenther <rguenther@suse.de>
1641
1642         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
1643         the linker plugin.
1644         (store_arg): Queue temp_filename for deletion instead of
1645         the whole argument.
1646
1647 2010-05-07  Richard Guenther  <rguenther@suse.de>
1648
1649         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
1650         (run_gcc): Handle LTRANS phase invocation.
1651         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
1652
1653 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
1654
1655         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
1656         this is also meaningful on PARM_DECLs and RESULT_DECLs.
1657
1658 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1659
1660         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
1661
1662 2010-05-07  Richard Guenther  <rguenther@suse.de>
1663
1664         PR tree-optimization/44020
1665         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
1666         code when PRE is not yet initialized.
1667
1668 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1669
1670         * config/mips/dbxmdebug.h: Remove.
1671         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
1672
1673 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
1674
1675         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
1676         with null pointer and also warn about ordered comparison of zero with
1677         pointer if -Wextra.
1678
1679 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1680
1681         * graphite-blocking.c
1682         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
1683         * graphite-clast-to-gimple.c
1684         (clast_to_gcc_expression): Same.
1685         (precision_for_value): Same.
1686         (precision_for_interval): Same.
1687         (gcc_type_for_interval): Same.
1688         (graphite_create_new_guard): Same.
1689         (compute_bounds_for_level): Same.
1690         (graphite_create_new_loop_guard): Same.
1691         * graphite-interchange.c
1692         (build_linearized_memory_access): Same.
1693         (pdr_stride_in_loop): Same.
1694         (memory_strides_in_loop_1): Same.
1695         (memory_strides_in_loop): Same.
1696         (extend_scattering): Same.
1697         (psct_scattering_dim_for_loop_depth): Same.
1698         (pbb_number_of_iterations): Same.
1699         * graphite-poly.h
1700         (debug_iteration_domains): Same.
1701         * graphite-ppl.c
1702         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
1703         (ppl_set_inhomogeneous_gmp): Same.
1704         (ppl_strip_loop): Same.
1705         (ppl_lexico_compare_linear_expressions): Same.
1706         (ppl_read_polyhedron_matrix): Same.
1707         (ppl_max_for_le_pointset): Same.
1708         * graphite-ppl.h
1709         (ppl_read_polyhedron_matrix): Same.
1710         (tree_int_to_gmp): Same.
1711         (gmp_cst_to_tree): Same.
1712         (ppl_set_inhomogeneous): Same.
1713         (ppl_set_inhomogeneous_tree): Same.
1714         (ppl_set_coef): Same.
1715         (ppl_set_coef_tree): Same.
1716         * graphite-sese-to-poly.c
1717         (build_pbb_scattering_polyhedrons): Same.
1718         (build_scop_scattering): Same.
1719         (scan_tree_for_params_right_scev): Same.
1720         (scan_tree_for_params): Same.
1721         (find_params_in_bb): Same.
1722         (find_scop_parameters): Same.
1723         (add_upper_bounds_from_estimated_nit): Same.
1724         (build_loop_iteration_domains): Same.
1725         (add_condition_to_domain): Same.
1726         (pdr_add_memory_accesses): Same.
1727
1728 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1729
1730         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
1731         CLooG's value_* macros to their respective mpz_* counterparts.
1732         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
1733         (graphite_create_new_loop_guard): Same.
1734         * graphite-interchange.c (build_linearized_memory_access): Same.
1735         (pdr_stride_in_loop): Same.
1736         (memory_strides_in_loop_1): Same.
1737         (1st_interchange_profitable_p): Same.
1738         * graphite-poly.c (extend_scattering): Same.
1739         (psct_scattering_dim_for_loop_depth): Same.
1740         (pbb_number_of_iterations): Same.
1741         (pbb_number_of_iterations_at_time): Same.
1742         * graphite-poly.h (new_1st_loop): Same.
1743         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
1744         (oppose_constraint): Same.
1745         (insert_constraint_into_matrix): Same.
1746         (ppl_set_inhomogeneous_gmp): Same.
1747         (ppl_set_coef_gmp): Same.
1748         (ppl_strip_loop): Same.
1749         (ppl_lexico_compare_linear_expressions): Same.
1750         (ppl_max_for_le_pointset): Same.
1751         (ppl_min_for_le_pointset): Same.
1752         (ppl_build_realtion): Same.
1753         * graphite-ppl.h (gmp_cst_to_tree): Same.
1754         (ppl_set_inhomogeneous): Same.
1755         (ppl_set_inhomogeneous_tree): Same.
1756         (ppl_set_coef): Same.
1757         (ppl_set_coef_tree): Same.
1758         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
1759         (build_scop_scattering): Same.
1760         (add_value_to_dim): Same.
1761         (scan_tree_for_params_right_scev): Same.
1762         (scan_tree_for_params_int): Same.
1763         (scan_tree_for_params): Same.
1764         (find_params_in_bb): Same.
1765         (find_scop_parameters): Same.
1766         (add_upper_bounds_from_estimated_nit): Same.
1767         (build_loop_iteration_domains): Same.
1768         (create_linear_expr_from_tree): Same.
1769         (add_condition_to_domain): Same.
1770         (pdr_add_memory_accesses): Same.
1771
1772 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
1773             Jason Merrill  <jason@redhat.com>
1774
1775         * c-common.c (c_common_reswords): Add nullptr.
1776         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
1777         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
1778         (gen_type_die_with_usage): Likewise.
1779         * dbxout.c (dbxout_type): Likewise.
1780         * sdbout.c (plain_type_1): Likewise.
1781
1782 2010-05-06  Jason Merrill  <jason@redhat.com>
1783
1784         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
1785         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
1786         ret appropriately.
1787         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
1788
1789         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
1790         stripping WITH_SIZE_EXPR.
1791         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
1792         change.
1793
1794 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1795
1796         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
1797         list of obsolete configurations.
1798         Disabled check for obsolete configurations.
1799         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
1800         Removed support for previous versions.
1801         * config/mips/iris.h: Removed.
1802         * config/mips/iris5.h: Removed.
1803         * config/mips/iris6.h: Merged old iris.h contents.
1804         (TARGET_IRIX): Removed.
1805         (DRIVER_SELF_SPECS): Removed mabi=32.
1806         (IDENT_ASM_OP): Removed undef.
1807         (STARTFILE_SPEC): Removed mabi=32.
1808         (ENDFILE_SPEC): Likewise.
1809         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
1810         (MACHINE_TYPE): Update for IRIX 6.5.
1811         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
1812         TARGET_IRIX by TARGET_IRIX6.
1813         (mips_file_start): Likewise.
1814         (mips_output_external): Remove IRIX 5/6 O32 support.
1815         (mips_output_function_prologue): Likewise.
1816         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
1817         TARGET_IRIX6.
1818         (TARGET_CPU_CPP_BUILTINS): Likewise.
1819         (TARGET_IRIX): Removed.
1820         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
1821         (MULTILIB_DIRNAMES): Removed 32.
1822         (MULTILIB_OSDIRNAMES): Removed ../lib.
1823         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
1824         (Specific, mips-sgi-irix5): Document removal.
1825         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
1826         Remove references to older IRIX 6 releases and the O32 ABI.
1827
1828 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
1829
1830         PR bootstrap/43994
1831         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
1832         instead of DF_REF_REAL_REG.
1833
1834 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
1835
1836         PR target/43888
1837         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
1838         handling to still return true for x64 targets.
1839
1840 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1841
1842         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
1843
1844 2010-05-06  Jan Hubicka  <jh@suse.cz>
1845
1846         PR tree-optimization/43791
1847         * ipa-inline.c (update_caller_keys): Remove bogus
1848         disregard_inline_limits check.
1849
1850 2010-05-06  Michael Matz  <matz@suse.de>
1851
1852         PR tree-optimization/43984
1853         * tree-ssa-pre.c (inserted_phi_names): Remove.
1854         (inserted_exprs): Change to bitmap.
1855         (create_expression_by_pieces): Set bits, don't append to vector.
1856         (insert_into_preds_of_block): Don't handle inserted_phi_names.
1857         (eliminate): Don't look at inserted_phi_names, remove deleted
1858         insns from inserted_exprs.
1859         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
1860         (init_pre, fini_pre): Allocate and free bitmaps.
1861         (execute_pre): Insert insns on edges before elimination.
1862
1863 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1864
1865         * tree.c (initializer_zerop): Handle STRING_CST.
1866
1867 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1868
1869         PR 40989
1870         * doc/invoke.texi (Wimplicit): Document as C only.
1871         * opts.c (common_handle_option): Add argument kind.
1872         (handle_option): Rename as read_cmdline_option. Factor out code to...
1873         (handle_option): ... here. New.
1874         (handle_options): Rename as read_cmdline_options.
1875         (decode_options): Update call.
1876         (set_option): Use option index instead of option pointer. Classify
1877         diagnostics correctly.
1878         (enable_warning_as_error): Call handle_option.
1879         * opts.h (set_option): Update declaration.
1880         (handle_option): Declare.
1881         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
1882         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
1883         * c-opts.c (set_Wimplicit): Delete.
1884         (c_family_lang_mask): New static constant.
1885         (c_common_handle_option): Add argument kind. Use handle_option
1886         instead of set_Wimplicit.
1887         (c_common_post_options): warn_implicit and warn_implicit_int
1888         are disabled by default.
1889         * c-common.c (warn_implicit): Do not define here.
1890         * c-common.h (warn_implicit): Do not declare here.
1891         (c_common_handle_option): Update declaration.
1892         * lto-opts.c (lto_reissue_options): Update call to set_option.
1893
1894 2010-05-06  Richard Guenther  <rguenther@suse.de>
1895
1896         PR tree-optimization/43571
1897         * domwalk.c (walk_dominator_tree): Walk the dominator
1898         sons in more optimal order.
1899
1900 2010-05-06  Richard Guenther  <rguenther@suse.de>
1901
1902         PR tree-optimization/43934
1903         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
1904         (stmt_cost): Likewise.
1905         (extract_true_false_args_from_phi): New helper.
1906         (determine_max_movement): For PHI nodes verify we can hoist them
1907         and compute their cost.
1908         (determine_invariantness_stmt): Handle PHI nodes.
1909         (move_computations_stmt): Likewise.  Hoist PHI nodes in
1910         if-converted form using COND_EXPRs.
1911         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
1912         (tree_ssa_lim): Likewise.
1913         * tree-flow.h (tree_ssa_lim): Adjust prototype.
1914         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
1915
1916 2010-05-06  Richard Guenther  <rguenther@suse.de>
1917
1918         PR tree-optimization/43987
1919         * tree-ssa-structalias.c (could_have_pointers): For possibly
1920         address-taken variables force pointers to be recorded.
1921         (create_variable_info_for_1): Likewise.
1922         (push_fields_onto_fieldstack): Pass in wheter all fields
1923         must have pointers.
1924         (find_func_aliases): Query types instead of vars whether
1925         they contain pointers where appropriate.
1926
1927 2010-05-06  Jan Hubicka  <jh@suse.cz>
1928
1929         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
1930         (record_reference, mark_address, mark_load, mark_store): Record
1931         references.
1932         (record_references_in_initializer): Update call of record_references.
1933         (rebuild_cgraph_edges): Remove all references before rebuiding.
1934         * cgraph.c (cgraph_create_node): Clear ref list.
1935         (cgraph_remove_node): Remove references.
1936         (dump_cgraph_node): Dump references.
1937         (cgraph_clone_node): Clone references.
1938         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
1939         (struct cgraph_node, varpool_node): Add ref_lst.
1940         * ipa-ref.c: New file.
1941         * ipa-ref.h: New file.
1942         * ipa-ref-inline.h: New file.
1943         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
1944         (referenced_from_other_partition_p): New function.
1945         (lto_output_varpool_node): Take set arugment; call
1946         referenced_from_other_partition.
1947         (lto_output_ref): New.
1948         (add_references): New.
1949         (output_refs): New.
1950         (output_cgraph): Compute boundary based on references; output refs.
1951         (output_varpool): Accept cgraph_node_set argument.
1952         (input_ref): New.
1953         (input_refs): New.
1954         (input_cgraph): Call input_refs.
1955         * lto-section-in.c (lto_section_name): Add refs.
1956         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
1957         (ipa-ref.o): New file.
1958         * varpool.c (varpool_node): Clear ipa ref list.
1959         (varpool_remove_node): Remove references.
1960         (dump_varpool_node): Dump references.
1961         (varpool_assemble_decl): Only compile finalized ones.
1962         (varpool_extra_name_alias): Initialize ref list.
1963         * lto-streamer.c (lto-get_section_name): Add .refs section.
1964         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
1965         (referenced_from_other_partition_p): Declared.
1966
1967 2010-05-06  Ira Rosen  <irar@il.ibm.com>
1968
1969         PR tree-optimization/43901
1970         * tree-vect-stmts.c (vectorizable_call): Assert that vector
1971         type is not NULL if it's transformation phase, and return
1972         FALSE if it's analysis.
1973         (vectorizable_conversion, vectorizable_operation,
1974         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
1975
1976 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
1977
1978         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
1979         Delete.
1980         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
1981         New define.
1982         * config/mips/mips-protos.h
1983         (mips_small_register_classes_for_mode_p): Delete prototype.
1984
1985 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
1986
1987         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
1988         * config/arm/arm.c (multiple_operation_profitable_p,
1989         compute_offset_order): New static functions.
1990         (load_multiple_sequence, store_multiple_sequence): Use them.
1991         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
1992         memory offsets, not register numbers.
1993         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
1994
1995 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
1996
1997         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
1998         (get_pending_sizes, put_pending_size, put_pending_sizes):
1999         Update the uses of pending_sizes.
2000         * c-decl.c (store_parm_decls): Likewise.
2001         * c-tree.h (struct c_arg_info): Likewise.
2002         * tree.h: Update the prototype for get_pending_sizes and
2003         put_pending_sizes.
2004
2005 2010-05-05  Jason Merrill  <jason@redhat.com>
2006
2007         PR debug/43370
2008         * c-common.c (handle_aligned_attribute): Respect
2009         ATTR_FLAG_TYPE_IN_PLACE.
2010
2011         PR testsuite/43758
2012         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
2013         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2014         (TARGET_INITIALIZER): Use it.
2015         * c-common.c (attribute_takes_identifier_p): Call it.
2016         * c-common.h: Update prototype.
2017         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
2018         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2019
2020 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
2021
2022         PR debug/43950
2023         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
2024         DW_ID_down_case for Fortran compilation units.
2025
2026 2010-05-05  Jan Hubicka  <jh@suse.cz>
2027
2028         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
2029         handle aliases.
2030
2031 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2032
2033         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
2034         a variable-sized RESULT_DECL.
2035
2036 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
2037
2038         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
2039
2040 2010-05-05  Jason Merrill  <jason@redhat.com>
2041
2042         PR c++/43787
2043         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
2044         returns GS_OK.
2045         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
2046
2047 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
2048             Jakub Jelinek  <jakub@redhat.com>
2049
2050         PR debug/43478
2051         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
2052         (dead_debug_init, dead_debug_finish): New functions.
2053         (dead_debug_add, dead_debug_insert_before): Likewise.
2054         (df_note_bb_compute): Initialize a dead_debug object, add dead
2055         debug uses to it, insert debug bind insns before death insns,
2056         reset debug insns that refer to pending uses at the end.
2057         * rtl.h (make_debug_expr_from_rtl): New prototype.
2058         * varasm.c (make_debug_expr_from_rtl): New function.
2059
2060 2010-05-05  Jan Hubicka  <jh@suse.cz>
2061
2062         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
2063         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
2064         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
2065         lto_varpool_encoder_deref, lto_varpool_encoder_size,
2066         lto_varpool_encoder_encode_initializer_p,
2067         lto_set_varpool_encoder_encode_initializer): New functions.
2068         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
2069         call output_varpool.
2070         (input_varpool_node): Do not always set analyzed.
2071         (input_cgraph_1): Return vector of cgraph nodes.
2072         (input_varpool_1): Return vector of varpools.
2073         (input_cgraph): Free the vectors.
2074         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2075         output only initializers needed.
2076         (lto_output): Only call output_cgraph.
2077         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
2078         * lto-section-out.c (lto_new_out_decl_state): Initialize
2079         state->varpool_node_encoder.
2080         * lto-streamer.h (lto_varpool_encoder_d): New.
2081         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
2082         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
2083         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
2084         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
2085         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
2086         Declare.
2087         (output_varpool, input_varpool): Remove declarations.
2088
2089 2010-05-05  Jan Hubicka  <jh@suse.cz>
2090
2091         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
2092         with body can prevail.
2093
2094 2010-05-05  Jan Hubicka  <jh@suse.cz>
2095
2096         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
2097         size.
2098
2099 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2100
2101         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
2102
2103         * gengtype.h (erro_at_line): Constify pos argument.
2104
2105         * gengtype.c: Include hashtab.h.
2106         (enum gc_used): Document GC_MAYBE_POINTED_TO.
2107         (error_at_line): Constify pos argument.
2108         (do_typedef): Initialize p->opt field.
2109         (get_file_gtfilename): Fix comment typo.
2110         (struct walk_type_data): Constify line field.
2111         (get_output_file_for_structure): New function.
2112         (write_local_func_for_structure): Constify orig_s argument.
2113         Use get_output_file_for_structure.
2114         (write_func_for_structure): Use get_output_file_for_structure.
2115         (INDENT): New define.
2116         (dump_pair, dump_type, dump_type_list, dump_typekind)
2117         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
2118         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
2119         functions.
2120         (seen_types): New variable.
2121         (main): New variable do_dump.  Process "-d" command line option.
2122         Call dump_everything if dump requested.
2123
2124 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
2125
2126         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
2127         in a temporary instead of invoking the macro multiple times.
2128         (track_expr_p): Likewise.
2129
2130 2010-05-04  Neil Vachharajani <nvachhar@google.com>
2131
2132         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
2133         per new semantics.
2134         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
2135         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
2136         conditions for printing notes.
2137         * common.opt (-Wcoverage-mismatch): Allow negative, default to
2138         true, update documentation.
2139         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
2140
2141 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
2142
2143         PR c/43981
2144         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
2145         on dimen.
2146
2147 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2148
2149         PR target/43799
2150         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
2151         (*sse_prologue_save_insn1): Likewise.
2152         (SSE prologue save splitter): Likewise.
2153
2154 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2155
2156         * tree.c (free_lang_data_in_one_sizepos): New inline function.
2157         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
2158         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
2159         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
2160         all decls.  Call it on DECL_FIELD_OFFSET of fields.
2161         (find_decls_types_r): Follow DECL_VALUE_EXPR.
2162         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
2163
2164 2010-05-04  Martin Jambor  <mjambor@suse.cz>
2165
2166         * tree-sra.c (build_access_from_expr_1): The first parameter type
2167         changed to simple tree.
2168         (build_access_from_expr): Likewise, gsi parameter was eliminated.
2169         (scan_assign_result): Renamed to assignment_mod_result, enum elements
2170         renamed as well.
2171         (build_accesses_from_assign): Removed all parameters except for a
2172         simple gimple statement.  Now returns a simple bool.
2173         (scan_function): All non-analysis parts moved to separate functions
2174         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
2175         parameters and updated both callers.
2176         (sra_modify_expr): Removed parameter data.
2177         (sra_modify_function_body): New function.
2178         (perform_intra_sra): Call sra_modify_function_body to modify the
2179         function body.
2180         (replace_removed_params_ssa_names): Parameter data changed into
2181         adjustments vector.
2182         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
2183         changed the parameter dont_convert to convert with the opposite
2184         meaning.
2185         (sra_ipa_modify_assign): Parameter data changed into adjustments
2186         vector, return value changed to bool.
2187         (ipa_sra_modify_function_body): New function.
2188         (sra_ipa_reset_debug_stmts): Updated a comment.
2189         (modify_function): Use ipa_sra_modify_function_body to modify function
2190         body.
2191
2192 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2193
2194         PR middle-end/43671
2195         * alias.c (true_dependence): Handle the same VALUE in x and mem.
2196         (canon_true_dependence): Likewise.
2197         (write_dependence_p): Likewise.
2198
2199 2010-05-04  Jan Hubicka  <jh@suse.cz>
2200
2201         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
2202         * cgraphbuild.c: Include ipa-utils.h
2203         (record_reference_ctx): New struct.
2204         (record_reference): Simplify to work on initializers; not statements.
2205         (mark_address, mark_load, mark_store): New.
2206         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
2207         walk PHI nodes too.
2208         (record_references_in_initializer): Update use of record_reference.
2209         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
2210         walk PHI nodes too.
2211
2212 2010-05-04  Jan Hubicka  <jh@suse.cz>
2213
2214         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
2215         node will be removed anyway.
2216         (lto_varpool_replace_node): Allow also unanalyzed nodes;
2217         relink aliases of node into prevailing node.
2218         * varpool.c (varpool_remove_node): Remove aliases properly;
2219         when removing node, remove all its aliases too; remove DECL_INITIAL
2220         of removed node; ggc_free the varpool node.
2221
2222 2010-05-04  Richard Guenther  <rguenther@suse.de>
2223
2224         PR tree-optimization/43879
2225         * tree-ssa-structalias.c (alias_get_name): Use
2226         DECL_ASSEMBLER_NAME if available.
2227         (create_function_info_for): Return the varinfo node.
2228         (ipa_pta_execute): Associate same-body aliases and extra names
2229         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
2230
2231 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
2232
2233         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
2234
2235 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
2236
2237         PR bootstrap/43964
2238         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
2239         only if HONOR_REG_ALLOC_ORDER is not defined.
2240
2241 2010-05-04  Richard Guenther  <rguenther@suse.de>
2242
2243         PR tree-optimization/43949
2244         * tree-vrp.c (extract_range_from_binary_expr): Only handle
2245         TRUNC_MOD_EXPR.
2246
2247 2010-04-26  Jason Merrill  <jason@redhat.com>
2248
2249         * c.opt (-fstrict-enums): New.
2250         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
2251
2252 2010-05-03  David Ung <davidu@mips.com>
2253             James E. Wilson  <wilson@codesourcery.com>
2254
2255         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
2256         emit the trap instruction before the divide for TUNE_74K.
2257
2258 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
2259
2260         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
2261         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
2262         based on the above, for new target hook.
2263
2264         * hooks.c (hook_bool_mode_true): New generic hook.
2265         * hooks.h (hook_bool_mode_true): Add prototype.
2266
2267         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
2268         target hook.
2269         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
2270         target hook, set to hook_bool_mode_false.
2271         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
2272         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
2273         with targetm.small_register_classes_for_mode_p.
2274         (find_reusable_reload): Likewise.
2275         (combine_reloads): Likewise.
2276         * reload1.c (reload_as_needed): Likewise.
2277         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
2278         * ifcvt.c (noce_process_if_block, check_cond_move_block,
2279         dead_or_predicable): Likewise.
2280         * regmove.c (optimize_reg_copy_1): Likewise.
2281         * calls.c (prepare_call_address): Likewise.
2282         (precompute_register_parameters): Likewise.
2283
2284         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
2285         hook definition.
2286         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
2287         implementation of the hook that considers all register classes
2288         small except for SH64.
2289         (sh_override_options): Use the new hook.
2290         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
2291         Add prototype.
2292
2293         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
2294         hook definition.
2295         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
2296         implementation of the hook that considers all register classes
2297         small for THUMB1.
2298         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
2299         Add prototype.
2300
2301         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
2302         hook definition.
2303         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
2304         implementation of the hook that considers all register classes
2305         small for MIPS16.
2306         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
2307         Add prototype.
2308
2309         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
2310         hook definition.
2311         * config/m32c/m32c.h: Likewise.
2312         * config/pdp11/pdp11.h: Likewise.
2313         * config/avr/avr.h: Likewise.
2314         * config/xtensa/xtensa.h: Likewise.
2315         * config/m68hc11/m68hc11.h: Likewise.
2316         * config/mn10300/mn10300.h: Likewise.
2317         * config/mcore/mcore.h: Likewise.
2318         * config/h8300/h8300.h: Likewise.
2319         * config/bfin/bfin.h: Likewise.
2320
2321         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
2322         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
2323
2324 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
2325
2326         * double-int.h (tree_to_double_int): Remove macro.
2327         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
2328         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
2329         (tree_to_double_int): New function.
2330         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
2331         Move ...
2332         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
2333
2334 2010-05-03  Richard Guenther  <rguenther@suse.de>
2335
2336         PR tree-optimization/43971
2337         * tree-ssa-structalias.c (get_constraint_for_1): Fix
2338         constraints in the !flag_delete_null_pointer_checks case.
2339
2340 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
2341
2342         PR debug/43972
2343         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
2344         result mode matches original rtl mode.
2345
2346 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
2347
2348         PR target/43888
2349         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
2350
2351 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2352
2353         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
2354         when processing flag options.
2355
2356 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2357
2358         * gcov-iov.c (main): Change format string placeholder
2359         from %#08x to 0x%08x.
2360         * genchecksum.c (dosum): Change format string placeholder
2361         from %#02x to 0x%02x.
2362
2363 2010-05-02  Richard Guenther  <rguenther@suse.de>
2364
2365         PR tree-optimization/43879
2366         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
2367
2368 2010-05-02  Bruno Haible  <bruno@clisp.org>
2369
2370         * doc/extend.texi (Function Attributes): Fix a typo.
2371
2372 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2373
2374         Revert:
2375         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
2376         placeholder from 0x%x to %#x.
2377         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
2378         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
2379         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
2380         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
2381         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
2382         * config/i386/i386.c (ix86_target_string): Ditto.
2383         * config/i386/i386.c (output_pic_addr_const): Ditto.
2384         (print_operand): Ditto.
2385
2386 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2387
2388         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
2389         placeholder from 0x%x to %#x.
2390         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
2391         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
2392         (ASM_OUTPUT_DEBUG_DATA): Ditto.
2393         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
2394         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
2395         * optc-gen.awk: Ditto.
2396         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
2397         (HOST_WIDE_INT_PRINT_HEX): Ditto.
2398         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
2399         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
2400
2401 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
2402
2403         * target.h (struct calls): Add function_value_regno_p field.
2404         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2405         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
2406         * targhooks.c (default_function_value_regno_p): New function.
2407         * targhooks.h (default_function_value_regno_p): Declare function.
2408         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
2409         * builtins.c. (apply_result_size): (Ditto.).
2410         * combine.c. (likely_spilled_retval_p): (Ditto.).
2411         * mode-switching.c. Include 'target.h'.
2412         (create_pre_exit): Use function_value_regno_p hook.
2413         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
2414         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
2415         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
2416
2417         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
2418         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
2419         (ix86_function_value_regno_p): Declare as static, change argument
2420         type to const unsigned int.
2421         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
2422
2423 2010-05-01  Richard Guenther  <rguenther@suse.de>
2424
2425         PR tree-optimization/43949
2426         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
2427         types.
2428         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
2429
2430 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
2431
2432         * rtl.h (CONST_DOUBLE_P): Define.
2433         (rtx_to_double_int): Declare.
2434         * emit-rtl.c (rtx_to_double_int): New function.
2435         * dwarf2out.c (insert_double): New function.
2436         (loc_descriptor, add_const_value_attribute): Clean up, use
2437         rtx_to_double_int and insert_double functions.
2438
2439 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
2440
2441         * doc/extend.texi (Inline): Add missing return keyword to examples.
2442         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
2443         "command-line".
2444
2445 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2446
2447         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
2448         the variable part of the offset as well.  Use highest_pow2_factor for
2449         all alignment checks.
2450
2451 2010-04-30  Richard Guenther  <rguenther@suse.de>
2452
2453         PR tree-optimization/43879
2454         * tree-ssa-structalias.c (type_could_have_pointers): Functions
2455         can have pointers.
2456
2457 2010-04-30  Jan Hubicka  <jh@suse.cz>
2458
2459         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
2460         varpool.
2461         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
2462
2463 2010-04-30  Jan Hubicka  <jh@suse.cz>
2464
2465         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
2466         New.
2467         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
2468         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
2469         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
2470         cgraph_node_set_needs_ltrans_p): Remove.
2471
2472 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2473
2474         * sdbout.c: Include vec.h, do not include varray.h.
2475         (deferred_global_decls, sdbout_global_decl,
2476         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
2477         * toplev.c: Do not include varray.h.
2478         (dump_memory_report): Do not dump VARRAY statistics.
2479         * gengtype.c (open_base_file): Ignore varray.h.
2480         * Makefile.in: Update for abovementioned changes.
2481         Remove all traces of varray.c and varray.h.
2482         * varray.c: Remove file.
2483         * varray.h: Remove file.
2484
2485 2010-04-30  Jan Hubicka  <jh@suse.cz>
2486
2487         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
2488         references.
2489
2490 2010-04-30  Jan Hubicka  <jh@suse.cz>
2491
2492         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
2493         needed.
2494
2495 2010-04-30  Richard Guenther  <rguenther@suse.de>
2496
2497         * tree-ssa-structalias.c (get_constraint_for_1): Generate
2498         constraints for CONSTRUCTOR.
2499
2500 2010-04-30  Richard Guenther  <rguenther@suse.de>
2501
2502         PR lto/43946
2503         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
2504         first after all lowering passes.
2505
2506 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2507
2508         * toplev.c: Include varray.h for statistics dumping.
2509         * tree.h: Do not declare varray_head_tag.
2510         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
2511         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
2512         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
2513         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
2514         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
2515         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
2516         c-common.c, c-common.h, reg-stack.c, basic-block.h,
2517         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
2518         include varray.h.
2519         * Makefile.in: Update for abovementioned changes.
2520
2521 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
2522
2523         PR debug/43942
2524         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
2525
2526 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
2527
2528         * config/picochip/picochip.c (picochip_legitimize_address): Define.
2529         Use this function to do machine-specific conversion.
2530         (picochip_legitimize_reload_address): Likewise.
2531         (picochip_legitimate_address_p): Check valid base register only if
2532         strict.
2533         (picochip_check_conditional_copy): Check for modw only if opnd is
2534         register.
2535         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
2536         to call the function in c.
2537         * config/picochip/picochip-protos.h
2538         (picochip_legitimize_reload_address): Define.
2539         * config/picochip/picochip.md (supported_compare1): Define.
2540
2541 2010-04-30  Jan Hubicka  <jh@suse.cz>
2542
2543         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
2544         (cgraph_global_info): Remove inlined.
2545         (LTO_cgraph_tag_names): Remove.
2546         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
2547         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
2548         simplify cgraph tags and document.
2549         (lto_output_node): Use only LTO_cgraph_unavail_node and
2550         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
2551         for_functions_valid, global info, process and output flags.
2552         (input_overwrite_node): Initialize estimated stack size and
2553         estimated growth.  Do not read flags we no longer store.
2554         (input_node): Likewise do not read info no longer stored.
2555         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
2556         flag.
2557
2558 2010-04-30  Richard Guenther  <rguenther@suse.de>
2559
2560         PR tree-optimization/43879
2561         * tree-ssa-structalias.c (get_constraint_for_1): Properly
2562         handle non-zero initializers.
2563
2564 2010-04-30  Richard Guenther  <rguenther@suse.de>
2565
2566         * builtins.c (fold_builtin_1): Delete free (0).
2567
2568 2010-04-29  Jan Hubicka  <jh@suse.cz>
2569
2570         * gengtype.c (open_base_files): Add lto-streamer.h
2571         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
2572         (pass_ipa_cp): GGC collect.
2573         * toplev. (compile_file): Do not output symbols.
2574         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
2575         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
2576         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
2577         * lto-section-in.c: Include ggc.h
2578         (lto_new_in_decl_state): Alloc in GGC.
2579         (lto_delete_in_decl_state): Likewise.
2580         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
2581         Collect.
2582
2583 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
2584
2585         PR target/42895
2586         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
2587         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
2588         (HONOR_REG_ALLOC_ORDER): Describe new macro.
2589         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
2590         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
2591         account only if HONOR_REG_ALLOC_ORDER is not defined.
2592         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
2593         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
2594
2595 2010-04-29  Jon Grant  <04@jguk.org>
2596
2597         * collect2.c (vflag): Change type from int to bool.
2598         (debug): Likewise.
2599         (helpflag): New global bool.
2600         (main): Set vflag and debug with boolean, not integer truth values.
2601         Accept new "--help" option and output usage text if found.
2602         * collect2.h (vflag): Update prototype.
2603         (debug): Likewise.
2604
2605 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2606
2607         PR bootstrap/43936
2608         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
2609
2610 2010-04-29  Richard Guenther  <rguenther@suse.de>
2611
2612         PR bootstrap/43935
2613         * plugin.h (invoke_plugin_callbacks): Annotate arguments
2614         with ATTRIBUTE_UNUSED.
2615
2616 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2617
2618         PR target/43921
2619         * config/i386/i386.c (get_some_local_dynamic_name): Replace
2620         INSN_P with NONDEBUG_INSN_P.
2621         (distance_non_agu_define): Likewise.
2622         (distance_agu_use): Likewise.
2623
2624 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
2625
2626         From Dominique d'Humieres <dominiq@lps.ens.fr>
2627         PR bootstrap/43858
2628         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
2629         test_set.
2630
2631 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
2632
2633         * plugin.h (invoke_plugin_callbacks): New inline function.
2634         * plugin.c (flag_plugin_added): New global flag.
2635         (add_new_plugin): Initialize above flag.
2636         (invoke_plugin_callbacks): Rename to ...
2637         (invoke_plugin_callbacks_full): ... this.
2638
2639 2010-04-28  Jan Hubicka  <jh@suse.cz>
2640
2641         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
2642         (lto_varpool_replace_node): New.
2643         (lto_symtab_resolve_symbols): Resolve varpool nodes.
2644         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
2645         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
2646         * cgraph.h (varpool_node_ptr): New type.
2647         (varpool_node_ptr): New vector.
2648         (varpool_node_set_def): New structure.
2649         (varpool_node_set): New type.
2650         (varpool_node_set): New vector.
2651         (varpool_node_set_element_def): New structure.
2652         (varpool_node_set_element, const_varpool_node_set_element): New types.
2653         (varpool_node_set_iterator): New type.
2654         (varpool_node): Add prev pointers, add used_from_other_partition,
2655         in_other_partition.
2656         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
2657         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
2658         varpool_get_node, varpool_remove_node): Declare.
2659         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
2660         varpool_node_set_size): New inlines.
2661         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
2662         * tree-pass.h (varpool_node_set_def): Forward declare.
2663         (ipa_opt_pass_d): Summary writting takes vnode sets too.
2664         (ipa_write_optimization_summaries): Update prototype.
2665         * ipa-cp.c (ipcp_write_summary): Update.
2666         * ipa-reference.c (ipa_reference_write_summary): Update.
2667         * lto-cgraph.c (lto_output_varpool_node): New static function.
2668         (output_varpool): New function.
2669         (input_varpool_node): New static function.
2670         (input_varpool_1): New function.
2671         (input_cgraph): Input varpool.
2672         * ipa-pure-const.c (pure_const_write_summary): Update.
2673         * lto-streamer-out.c (lto_output): Update, output varpool too.
2674         (write_global_stream): Kill WPA hack.
2675         (produce_asm_for_decls): Update.
2676         (output_alias_pair_p): Handle variables.
2677         (output_unreferenced_globals): Output only needed partition of varpool.
2678         * ipa-inline.c (inline_write_summary): Update.
2679         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
2680         cgraph.
2681         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
2682         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
2683         varpool_node_set_new, varpool_node_set_add,
2684         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
2685         debug_varpool_node_set): New functions.
2686         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
2687         (execute_one_pass): Process new decls too.
2688         (ipa_write_summaries_2): Pass around vsets.
2689         (ipa_write_summaries_1): Likewise.
2690         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
2691         to add.
2692         (ipa_write_optimization_summaries_1): Pass around vsets.
2693         (ipa_write_optimization_summaries): Likewise.
2694         * varpool.c (varpool_get_node): New.
2695         (varpool_node): Update doubly linked lists.
2696         (varpool_remove_node): New.
2697         (dump_varpool_node): More dumping.
2698         (varpool_enqueue_needed_node): Update doubly linked lists.
2699         (decide_is_variable_needed): Kill ltrans hack.
2700         (varpool_finalize_decl): Kill lto hack.
2701         (varpool_assemble_decl): Skip decls in other partitions.
2702         (varpool_assemble_pending_decls): Update doubly linkes lists.
2703         (varpool_empty_needed_queue): Likewise.
2704         (varpool_extra_name_alias): Likewise.
2705         * lto-streamer.c (lto_get_section_name): Add vars section.
2706         * lto-streamer.h (lto_section_type): Update.
2707         (output_varpool, input_varpool): Declare.
2708
2709 2010-04-28  Mike Stump  <mikestump@comcast.net>
2710
2711         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
2712
2713 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2714
2715         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
2716         record or union type with RECORD_OR_UNION_TYPE_P predicate.
2717         (lto_input_ts_type_tree_pointers): Likewise.
2718         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
2719         (lto_output_ts_type_tree_pointers): Likewise.
2720
2721 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2722
2723         Uniquization of constants at the Tree level
2724         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
2725         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
2726         bit to the end.
2727         (tree_output_constant_def): Declare.
2728         * gimplify.c (gimplify_init_constructor): When using block copy, first
2729         uniquize the constant constructor on the RHS.
2730         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
2731         DECL_IN_CONSTANT_POOL flag.
2732         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
2733         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
2734         constant pool.
2735         (assemble_variable): Deal with symbols belonging to the tree constant
2736         pool.
2737         (get_constant_section): Add ALIGN parameter and simplify.
2738         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
2739         (assemble_constant_contents): Use the expression of the VAR_DECL.
2740         (output_constant_def_contents): Use the alignment of the VAR_DECL.
2741         (tree_output_constant_def): New global function.
2742         (mark_constant): Use the expression of the VAR_DECL.
2743         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
2744         its expression.
2745         (output_object_block): Likewise and assemble the expression.
2746
2747 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2748
2749         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
2750         hash_tree, eq_tree): New tree hash table.
2751         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
2752         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
2753         lto_orig_address_remove): Reimplement.
2754
2755 2010-04-28  Xinliang David Li  <davidxl@google.com>
2756
2757         PR c/42643
2758         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
2759         (compute_uninit_opnds_pos): New function.
2760         (is_non_loop_exit_postdominating): New function.
2761         (compute_control_dep_chain): New function.
2762         (find_pdom): New function.
2763         (convert_control_dep_chain_into_preds): New function.
2764         (find_predicates): New function.
2765         (find_control_equiv_block): New function.
2766         (collect_phi_def_edges): New function.
2767         (find_def_preds): New function.
2768         (find_dom): New function.
2769         (dump_predicates): New function.
2770         (get_cmp_code): New function.
2771         (is_value_included_in): New function.
2772         (find_matching_predicate_in_rest_chains): New function.
2773         (use_pred_not_overlap_with_undef_path_pred): New function.
2774         (is_use_properly_guarded): New function.
2775         (normalize_cond_1): New function.
2776         (is_and_or_or): New function.
2777         (normalize_cond): New function.
2778         (is_gcond_subset_of): New function.
2779         (is_subset_of_any): New function.
2780         (is_or_set_subset_of): New function.
2781         (is_and_set_subset_of): New function.
2782         (is_norm_cond_subset_of): New function.
2783         (is_pred_expr_subset_of): New function.
2784         (is_pred_chain_subset_of): New function.
2785         (is_included_in): New function.
2786         (is_superset_of): New function.
2787         (find_uninit_use): New function.
2788         (warn_uninitialized_phi): New function.
2789         (compute_possibly_undefined_names): New function.
2790         (ssa_undefined_value_p): New function.
2791         (execute_late_warn_uninitialized): New function.
2792         * tree-ssa.c (ssa_undefined_value_p): Removed.
2793         (warn_uninit): Changed to extern.
2794         (warn_uninitialized_phi): Removed.
2795         (warn_uninitialized_vars): Changed to extern.
2796         (execute_late_warn_uninitialized): Removed
2797         * tree-flow.h: Add new prototypes.
2798         * timevar.def: Add new time variable.
2799         * Makefile.in: Add new build file.
2800
2801 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
2802
2803         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
2804         type if available.
2805
2806 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2807
2808         PR target/22224
2809         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
2810
2811 2010-04-28  Martin Jambor  <mjambor@suse.cz>
2812
2813         * cgraph.h (struct cgraph_node): New field indirect_calls.
2814         (struct cgraph_indirect_call_info): New type.
2815         (struct cgraph_edge): Removed field indirect_call. New fields
2816         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
2817         (cgraph_create_indirect_edge): Declare.
2818         (cgraph_make_edge_direct): Likewise.
2819         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
2820         * ipa-prop.h (struct ipa_param_call_note): Removed.
2821         (struct ipa_node_params): Removed field param_calls.
2822         (ipa_create_all_structures_for_iinln): Declare.
2823         * cgraph.c: Described indirect edges and uids in initial comment.
2824         (cgraph_add_edge_to_call_site_hash): New function.
2825         (cgraph_edge): Search also among the indirect edges, use
2826         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
2827         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
2828         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
2829         site hash.
2830         (initialize_inline_failed): Assign a reason to indirect edges.
2831         (cgraph_create_edge_1): New function.
2832         (cgraph_create_edge): Moved some functionality to
2833         cgraph_create_edge_1.
2834         (cgraph_create_indirect_edge): New function.
2835         (cgraph_edge_remove_callee): Add an assert checking for
2836         non-indirectness.
2837         (cgraph_edge_remove_caller): Special-case indirect edges.
2838         (cgraph_remove_edge): Likewise.
2839         (cgraph_set_edge_callee): New function.
2840         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
2841         (cgraph_make_edge_direct): New function.
2842         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
2843         the declaration of the call statement matches.
2844         (cgraph_node_remove_callees): Special-case indirect edges.
2845         (cgraph_clone_edge): Likewise.
2846         (cgraph_clone_node): Clone also the indirect edges.
2847         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
2848         indirect_call, dump count of indirect_calls edges.
2849         * ipa-prop.c (iinlining_processed_edges): New variable.
2850         (ipa_note_param_call): Create indirect edges instead of
2851         creating notes.  New parameter node.
2852         (ipa_analyze_call_uses): New parameter node, pass it on to
2853         ipa_note_param_call.
2854         (ipa_analyze_stmt_uses): Likewise.
2855         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
2856         (print_edge_addition_message): Work on edges rather than on notes.
2857         (update_call_notes_after_inlining): Likewise, renamed to
2858         update_indirect_edges_after_inlining.
2859         (ipa_create_all_structures_for_iinln): New function.
2860         (ipa_free_node_params_substructures): Do not free notes.
2861         (ipa_edge_duplication_hook): Propagate bits within
2862         iinlining_processed_edges bitmap.
2863         (ipa_node_duplication_hook): Do not duplicate notes.
2864         (free_all_ipa_structures_after_ipa_cp): Renamed to
2865         ipa_free_all_structures_after_ipa_cp.
2866         (free_all_ipa_structures_after_iinln): Renamed to
2867         ipa_free_all_structures_after_iinln.
2868         (ipa_write_param_call_note): Removed.
2869         (ipa_read_param_call_note): Removed.
2870         (ipa_write_indirect_edge_info): New function.
2871         (ipa_read_indirect_edge_info): Likewise.
2872         (ipa_write_node_info): Do not stream notes, do stream information
2873         in indirect edges.
2874         (ipa_read_node_info): Likewise.
2875         (lto_ipa_fixup_call_notes): Removed.
2876         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
2877         * ipa-inline.c (pass_ipa_inline): Likewise.
2878         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
2879         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
2880         * tree-inline.c (copy_bb): Removed an unnecessary double check for
2881         is_gimple_call.
2882         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
2883         edges.
2884         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
2885         (output_cgraph): Stream also indirect edges.
2886         (lto_output_edge): Added capability to stream indirect edges.
2887         (input_edge): Likewise.
2888         (input_cgraph_1): Likewise.
2889         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
2890         of indirect edges.
2891
2892 2010-04-28  Richard Guenther  <rguenther@suse.de>
2893
2894         PR tree-optimization/43879
2895         PR tree-optimization/43909
2896         * tree-ssa-structalias.c (struct variable_info): Add
2897         only_restrict_pointers flag.
2898         (new_var_info): Initialize it.  Increment stats.total_vars here.
2899         (create_function_info_for): Do not increment stats.total_vars here.
2900         (get_function_part_constraint): Fix build with C++.
2901         (insert_into_field_list): Remove.
2902         (push_fields_onto_fieldstack): Properly merge fields.
2903         (create_variable_info_for): Split and simplify.
2904         (create_variable_info_for_1): New piece.
2905         (intra_create_variable_infos): Properly make restrict constraints
2906         from parameters.
2907
2908 2010-04-28  Richard Guenther  <rguenther@suse.de>
2909
2910         PR c++/43880
2911         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
2912
2913 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2914             Jan Hubicka <hubicka@ucw.cz>
2915
2916         * doc/invoke.texi (-Wsuggest-attribute=const,
2917         -Wsuggest-attribute=pure): Document.
2918         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
2919         (function_always_visible_to_compiler_p,
2920         suggest_attribute, warn_function_pure, warn_function_const):
2921         New functions.
2922         (check_call): Improve debug info.
2923         (analyze_function): Do not check availability.
2924         (add_new_function): Check availability.
2925         (propagate): Output warnings.
2926         (skip_function_for_local_pure_const): New function.
2927         (local_pure_const): Use it; output warnings.
2928         * common.opt (Wsuggest-attribute=const,
2929         Wsuggest-attribute=pure): New.
2930
2931 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
2932
2933         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
2934         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
2935         or DW_CFA_def_cfa_offset{,_sf}.
2936
2937 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
2938
2939         * tree.h: Fix truncated long macros.
2940
2941 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
2942
2943         * collect2.c (TARGET_64BIT): Redefine to target's default.
2944         * tlink.c: Likewise.
2945         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
2946         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
2947         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
2948         for underscoring __USER_LABEL_PREFIX__.
2949         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
2950         (SUB_LINK_ENTRY32): New.
2951         (SUB_LINK_ENTRY64): New.
2952         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
2953         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
2954         (SUB_LINK_ENTRY64): New.
2955         (SUB_LINK_ENTRY): New.
2956         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
2957         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
2958         x64 target is choosen.
2959         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
2960         * configure: Regenerated.
2961         * configure.ac (leading-mingw64-underscores): Option added.
2962
2963 2010-04-27  Jan Hubicka  <jh@suse.cz>
2964
2965         * doc/invoke.texi (-fipa-profile): Document.
2966         * opts.c (decode_options): Enable ipa-profile at -O1.
2967         * timevar.def (TV_IPA_PROFILE): Define.
2968         * common.opt (fipa-profile): Add.
2969         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
2970         flag for clones.
2971         (cgraph_propagate_frequency): Handle only local ones.
2972         * tree-pass.h (pass_ipa_profile): Declare.
2973         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
2974         (pass_ipa_profile): Use TV_IPA_PROFILE.
2975         * ipa.c (ipa_profile): New function.
2976         (gate_ipa_profile): Likewise.
2977         (pass_ipa_profile): New global variable.
2978         * passes.c (pass_ipa_profile): New.
2979
2980 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
2981
2982         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
2983
2984 2010-04-27  Martin Jambor  <mjambor@suse.cz>
2985
2986         PR middle-end/43812
2987         * ipa.c (dissolve_same_comdat_group_list): New function.
2988         (function_and_variable_visibility): Call
2989         dissolve_same_comdat_group_list when comdat group contains external or
2990         newly local nodes.
2991         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
2992         lists are circular and that they contain only DECL_ONE_ONLY nodes.
2993
2994 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
2995
2996         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
2997         (const_hash_1) <VECTOR_CST>: New case.
2998         (compare_constant) <VECTOR_CST>: Likewise.
2999         <ADDR_EXPR>: Deal with LABEL_REFs.
3000         (copy_constant) <VECTOR_CST>: New case.
3001
3002 2010-04-27  Jan Hubicka  <jh@suse.cz>
3003
3004         * cgraph.c (cgraph_propagate_frequency): New function.
3005         * cgraph.h (cgraph_propagate_frequency): Declare.
3006         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
3007         cgraph_propagate_frequency.
3008
3009 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
3010
3011         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
3012
3013 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
3014
3015         PR target/40657
3016         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
3017         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
3018         here to determine which regs to push and how much stack to reserve.
3019
3020 2010-04-27  Jie Zhang  <jie@codesourcery.com>
3021
3022         * doc/gimple.texi (gimple_statement_with_ops): Remove
3023         addresses_taken field.
3024         (gimple_statement_with_memory_ops): Likewise.
3025
3026 2010-04-27  Jan Hubicka  <jh@suse.cz>
3027
3028         * tree-inline.c (eni_inlining_weights): Remove.
3029         (estimate_num_insns): Special case more builtins.
3030
3031 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
3032
3033         PR c/32207
3034         * c-typeck.c (build_binary_op): Move forward check for comparison
3035         pointer with null pointer constant and adjust the diagnostic message.
3036
3037 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
3038
3039         PR lto/42776
3040         * configure.ac (gcc_cv_as_section_has_align): Set if installed
3041         binutils supports extended .section directive needed by LTO, or
3042         warn if older binutils found.
3043         (LTO_BINARY_READER): New AC_SUBST'd variable.
3044         (LTO_USE_LIBELF): Likewise.
3045         * gcc/config.gcc (lto_binary_reader): New target-specific configure
3046         variable.
3047         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
3048         (LTO_USE_LIBELF): Likewise.
3049         * configure: Regenerate.
3050
3051         * collect2.c (is_elf): Rename from this ...
3052         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
3053          object files in addition to ELF-formatted ones.
3054         (scan_prog_file): Caller updated.  Also allow for LTO info marker
3055         symbol to be prefixed or not by an extra underscore.
3056
3057         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
3058         * config/i386/winnt.c: Also #include lto-streamer.h
3059         (i386_pe_asm_named_section): Specify 1-byte section alignment for
3060         LTO named sections.
3061         (i386_pe_asm_output_aligned_decl_common): Add comment.
3062         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
3063
3064 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
3065
3066         PR target/43889
3067         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
3068         Add missing earlyclobber for second alternative.
3069
3070 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
3071
3072         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
3073         bits for artificial defs at the top of the block.
3074         * fwprop.c (single_def_use_enter_block): Don't call it.
3075
3076 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
3077
3078         PR 43715
3079         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
3080         instead of "$gcc_cv_objdump -T".
3081         Use "-undefined dynamic_lookup" on darwin.
3082         * gcc/configure: Regenerate.
3083
3084 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
3085
3086         PR c/43893
3087         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
3088
3089 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
3090
3091         * c-parser.c (struct c_token): Move location field up.
3092         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
3093         (struct c_declspecs): Convert typespec_word, storage_class, and
3094         default_int_p into bitfields.
3095         (struct c_declarator): Move loc field up.
3096
3097 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
3098
3099         * cfgloop.h (struct loop): Move can_be_parallel field up.
3100         * ipa-prop.h (struct ip_node_params): Move bitfields up.
3101         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
3102         down.
3103         (struct iv_cand): Convert pos field into a bitfield.
3104         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
3105         field up.
3106         (struct _stmt_vec_info): Shuffle fields for better packing.
3107
3108 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
3109
3110         * varasm.c (IN_NAMED_SECTION): Remove guard.
3111         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
3112         (IN_NAMED_SECTION_P): ...this.
3113         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
3114         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3115
3116 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
3117
3118         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
3119         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
3120         of shadowing it.  Fix comments.
3121
3122 2010-04-26  Jan Hubicka  <jh@suse.cz>
3123
3124         * cgraph.c (cgraph_create_node): Set node frequency to normal.
3125         (cgraph_clone_node): Copy function frequency.
3126         * cgraph.h (node_frequency): New enum
3127         (struct cgraph_node): Add.
3128         * final.c (rest_of_clean_state): Update.
3129         * lto-cgraph.c (lto_output_node): Output node frequency.
3130         (input_overwrite_node): Input node frequency.
3131         * tre-ssa-loop-ivopts (computation_cost): Update.
3132         * lto-streamer-out.c (output_function): Do not output function
3133         frequency.
3134         * predict.c (maybe_hot_frequency_p): Update and handle functions
3135         executed once.
3136         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
3137         attribute lookup.
3138         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
3139         (compute_function_frequency): Set noreturn functions to be executed
3140         once.
3141         (choose_function_section): Update.
3142         * lto-streamer-in.c (input_function): Do not input function frequency.
3143         * function.c (allocate_struct_function): Do not initialize function
3144         frequency.
3145         * function.h (function_frequency): Remove.
3146         (struct function): Remove function frequency.
3147         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
3148         (try_update): Update.
3149         * tree-inline.c (initialize_cfun): Do not update function frequency.
3150         * passes.c (pass_init_dump_file): Update.
3151         * i386.c (ix86_compute_frame_layout): Update.
3152         (ix86_pad_returns): Update.
3153
3154 2010-04-26  Jie Zhang  <jie@codesourcery.com>
3155
3156         PR tree-optimization/43833
3157         * tree-vrp.c (range_int_cst_p): New.
3158         (range_int_cst_singleton_p): New.
3159         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
3160         when both operands are constants.  Use range_int_cst_p in
3161         BIT_IOR_EXPR case.
3162
3163 2010-04-26  Jan Hubicka  <jh@suse.cz>
3164
3165         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
3166
3167 2010-04-26  Richard Guenther  <rguenther@suse.de>
3168
3169         PR lto/43080
3170         * gimple.c (gimple_decl_printable_name): Deal gracefully
3171         with a NULL DECL_NAME.
3172
3173 2010-04-26  Richard Guenther  <rguenther@suse.de>
3174
3175         PR lto/42425
3176         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
3177         if emitting debug information and it is either a function
3178         or a namespace decl.
3179
3180 2010-04-26  Ira Rosen  <irar@il.ibm.com>
3181
3182         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
3183         determine if the statement is vectorizable, and a macro to access it.
3184         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3185         Skip statements that can't be vectorized. If the analysis fails,
3186         mark the statement as unvectorizable if vectorizing basic block.
3187         (vect_compute_data_refs_alignment): Likewise.
3188         (vect_verify_datarefs_alignment): Skip statements marked as
3189         unvectorizable. Add print.
3190         (vect_analyze_group_access): Skip statements that can't be
3191         vectorized. If the analysis fails, mark the statement as
3192         unvectorizable if vectorizing basic block.
3193         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
3194         * tree-vect-stmts.c (vectorizable_store): Fix the number of
3195         generated stmts for SLP.
3196         (new_stmt_vec_info): Initialize the new field.
3197         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
3198         statements marked as unvectorizable.
3199
3200 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
3201
3202         * c-common.c (flag_isoc1x): New.
3203         (flag_isoc99): Update comment.
3204         * c-common.h (flag_isoc1x): New.
3205         (flag_isoc99): Update comment.
3206         * c-cppbuiltin.c (builtin_define_float_constants): Also define
3207         __<type>_DECIMAL_DIG__.
3208         * c-opts.c (set_std_c1x): New.
3209         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
3210         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
3211         * c.opt (-std=c1x, -std=gnu1x): New options.
3212         * doc/cpp.texi: Mention -std=c1x.
3213         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
3214         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
3215         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
3216         * doc/standards.texi: Mention C1X.
3217         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
3218         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
3219         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
3220         Define for C1X.
3221
3222 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
3223
3224         * config/i386/gmon-sol2.c (_mcleanup): Change format string
3225         placeholder from 0x%x to %#x.
3226         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3227         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3228         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3229         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3230         * config/i386/i386.c (ix86_target_string): Ditto.
3231         (output_pic_addr_const): Ditto.
3232         (print_operand): Ditto.
3233
3234 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
3235
3236         * combine.c (find_split_point): Add third argument.  Use it
3237         to find nested multiply-accumulate instructions.  Adjust calls.
3238         (try_combine): Adjust call to find_split_point.
3239
3240 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
3241
3242         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
3243
3244 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
3245
3246         PR tree-optimization/41442
3247         * fold-const.c (merge_truthop_with_opposite_arm): New function.
3248         (fold_binary_loc): Call it.
3249
3250 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3251
3252         * toplev.c (general_init): Set default for fdiagnostics-show-option.
3253         * opts.c (common_handle_option): Allow disabling it.
3254         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
3255
3256 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3257
3258         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
3259         between modes if both types are integral.
3260
3261 2010-04-23  Richard Guenther  <rguenther@suse.de>
3262
3263         PR tree-optimization/43572
3264         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
3265
3266 2010-04-23  Richard Guenther  <rguenther@suse.de>
3267
3268         PR lto/43455
3269         * tree-inline.c (tree_can_inline_p): Also check compatibility
3270         of return types.
3271
3272 2010-04-23  Martin Jambor  <mjambor@suse.cz>
3273
3274         PR tree-optimization/43846
3275         * tree-sra.c (struct access): New flag grp_assignment_read.
3276         (build_accesses_from_assign): Set grp_assignment_read.
3277         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
3278         (enum mark_read_status): New type.
3279         (analyze_access_subtree): Propagate grp_assignment_read, create
3280         accesses also if both direct_read and root->grp_assignment_read.
3281
3282 2010-04-23  Martin Jambor  <mjambor@suse.cz>
3283
3284         PR middle-end/43835
3285         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
3286         function does not have type attributes.
3287
3288 2010-04-23  Richard Guenther  <rguenther@suse.de>
3289
3290         PR lto/42653
3291         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
3292         of FUNCTION_DECLs.
3293
3294 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3295
3296         * sese.h (create_if_region_on_edge): Remove.
3297
3298         * sese.c (create_if_region_on_edge): Make static.
3299
3300         * tree-inline.c: Do not include ggc.h.
3301
3302         * expr.c: Do not include ggc.h.
3303
3304         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
3305         dependencies.
3306
3307 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3308
3309         PR target/43744
3310         * config/sh/sh.c (find_barrier): Don't emit a constant pool
3311         in the middle of insns for casesi_worker_2.
3312
3313 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
3314
3315         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
3316
3317 2010-04-22  Ira Rosen  <irar@il.ibm.com>
3318
3319         PR tree-optimization/43842
3320         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
3321         loop unrolling in update of exit phis. Fix comment.
3322         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
3323         least two reduction statements in the loop before starting SLP
3324         analysis.
3325
3326 2010-04-22  Nick Clifton  <nickc@redhat.com>
3327
3328         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
3329
3330 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
3331
3332         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
3333         to simplify a + ~a.
3334
3335 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3336
3337         * tree-parloops.c (loop_parallel_p): New argument
3338         parloop_obstack.  Pass it down.
3339         (parallelize_loops): New variable parloop_obstack.  Initialize it,
3340         pass it down, free it.
3341
3342         * tree-loop-linear.c (linear_transform_loops): Pass down
3343         lambda_obstack.
3344
3345         * tree-data-ref.h (lambda_compute_access_matrices): New argument
3346         of type struct obstack *.
3347
3348         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
3349         scratch_obstack.  Initialize it, pass down, free it.
3350
3351         * lambda.h (lambda_loop_new): Remove.
3352         (lambda_matrix_new, lambda_matrix_inverse)
3353         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
3354         argument of type struct obstack *.
3355
3356         * lambda-trans.c (lambda_trans_matrix_new): New argument
3357         lambda_obstack.  Pass it down, use obstack allocation for ret.
3358         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
3359         it down.
3360
3361         * lambda-mat.c (lambda_matrix_get_column)
3362         (lambda_matrix_project_to_null): Remove.
3363         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
3364         allocation for mat.
3365         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
3366         lambda_obstack.
3367
3368         * lambda-code.c (lambda_loop_new): New function.
3369         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
3370         (lambda_compute_auxillary_space, lambda_compute_target_space)
3371         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
3372         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
3373         (build_access_matrix): New argument lambda_obstack.  Use obstack
3374         allocation for am.
3375         (lambda_compute_step_signs, lambda_compute_access_matrices): New
3376         argument lambda_obstack.  Pass it down.
3377
3378 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3379
3380         * optabs.h (expand_widening_mult): Declare.
3381
3382 2010-04-22  Richard Guenther  <rguenther@suse.de>
3383
3384         PR tree-optimization/43845
3385         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
3386         lookup the CALL_EXPR function and arguments.
3387
3388 2010-04-22  Nick Clifton  <nickc@redhat.com>
3389
3390         * config/stormy16/stormy16.c
3391         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
3392         * config/stormy16/stormy16.h: Tidy up formatting.
3393         (DONT_USE_BUILTIN_SETJMP): Remove definition.
3394         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
3395         (ineqbranchsi): Delete pattern.
3396         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
3397         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
3398         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
3399         stormy16-lib2-ucmpsi2.c.
3400
3401 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3402
3403         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
3404         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
3405         extra set merge_set_noclobber, and use it to relax the final test
3406         slightly.
3407         * df.h (df_simulate_find_noclobber_defs): Declare.
3408         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
3409         conditional defs.
3410         (df_simulate_find_noclobber_defs): New function.
3411
3412 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
3413
3414         * config/i386/i386.md: Use {} around multi-line preparation statements.
3415
3416 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3417
3418         * c-tree.h (push_init_level, pop_init_level, set_init_index)
3419         (process_init_element): New argument of type struct obstack *.
3420
3421         * c-typeck.c (push_init_level, pop_init_level, set_designator)
3422         (set_init_index, set_init_label, set_nonincremental_init)
3423         (set_nonincremental_init_from_string, find_init_member)
3424         (output_init_element, output_pending_init_elements)
3425         (process_init_element): New argument braced_init_obstack.  Pass it
3426         down.
3427         (push_range_stack, add_pending_init): New argument
3428         braced_init_obstack.  Use obstack allocation.
3429
3430         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
3431         braced_init_obstack.  Pass it down.
3432         (c_parser_braced_init): New variables ret, braced_init_obstack.
3433         Initialize obstack, pass it down and finally free it.
3434
3435 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3436
3437         PR middle-end/29274
3438         * tree-pass.h (pass_optimize_widening_mul): Declare.
3439         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
3440         gate_optimize_widening_mul): New static functions.
3441         (pass_optimize_widening_mul): New.
3442         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
3443         <case MULT_EXPR>: Remove support for widening multiplies.
3444         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
3445         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
3446         simplify_gen_unary rather than directly building extensions.
3447         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
3448         WIDEN_MULT_EXPR.
3449         * expmed.c (expand_widening_mult): New function.
3450         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
3451
3452 2010-04-21  Jan Hubicka  <jh@suse.cz>
3453
3454         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
3455         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
3456         * lto-wpa-fixup.c: Remove.
3457         * Makefile.in (lto-wpa-fixup.o): Remove.
3458         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
3459         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
3460         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
3461
3462 2010-04-21  Jan Hubicka  <jh@suse.cz>
3463
3464         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
3465         add write_optimization_summary, read_optimization_summary.
3466         (ipa_write_summaries_of_cgraph_node_set): Remove.
3467         (ipa_write_optimization_summaries): Declare.
3468         (ipa_read_optimization_summaries): Declare.
3469         * ipa-cp.c (pass_ipa_cp): Update.
3470         * ipa-reference.c (pass_ipa_reference): Update.
3471         * ipa-pure-const.c (pass_ipa_pure_const): Update.
3472         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
3473         Update.
3474         * ipa-inline.c (pass_ipa_inline): Update.
3475         * ipa.c (pass_ipa_whole_program): Update.
3476         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
3477         * passes.c (ipa_write_summaries_1): Do not test wpa.
3478         (ipa_write_optimization_summaries_1): New.
3479         (ipa_write_optimization_summaries): New.
3480         (ipa_read_summaries): Do not test ltrans.
3481         (ipa_read_optimization_summaries_1): New.
3482         (ipa_read_optimization_summaries): New.
3483
3484 2010-04-21  Jan Hubicka  <jh@suse.cz>
3485
3486         * lto-cgraph.c (lto_output_node): Do not output comdat groups
3487         for boundary nodes.
3488         (output_cgraph): Do not arrange comdat groups for boundary nodes.
3489
3490 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3491
3492         PR debug/40040
3493         * dwarf2out.c (add_name_and_src_coords_attributes): Add
3494         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
3495
3496 2010-04-21  Jan Hubicka  <jh@suse.cz>
3497
3498         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
3499
3500 2010-04-21  Jan Hubicka  <jh@suse.cz>
3501
3502         * varpool.c (decide_is_variable_needed): Variable is always needed
3503         during ltrans.
3504
3505 2010-04-21  Jan Hubicka  <jh@suse.cz>
3506
3507         * opts.c (decode_options): Enable pure-const pass for whopr.
3508
3509 2010-04-21  Jan Hubicka  <jh@suse.cz>
3510
3511         * cgraph.c (dump_cgraph_node): Dump also assembler name.
3512         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
3513         at WPA dumping.
3514         (cgraph_decide_inlining): Do not expect callee to be removed in all
3515         cases.
3516
3517 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
3518
3519         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
3520
3521 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
3522
3523         * config/i386/i386.md (x86_shrd): Add athlon_decode and
3524         amdfam10_decode attributes.
3525
3526 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3527
3528         PR middle-end/43570
3529         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
3530         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
3531         (lower_copyprivate_clauses): Use private var in outer
3532         context instead of original var.  Make sure the types
3533         are correct for VLAs.
3534
3535 2010-04-21  Richard Guenther  <rguenther@suse.de>
3536
3537         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
3538         to non-pointer objects.
3539
3540 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3541
3542         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
3543         last chain entry if it starts with the still current label.
3544         (add_location_or_const_value_attribute): Check that
3545         loc_list->first->next is NULL instead of comparing ->first with ->last.
3546         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
3547         to add_var_loc_to_decl.
3548
3549         * dwarf2out.c (output_call_frame_info): For dw_cie_version
3550         >= 4 add also address size and segment size fields into CIE header.
3551
3552         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
3553         long as address size is the same as sizeof (void *) and
3554         segment size is 0.
3555         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
3556         address size or segment size is unexpected, return DW_EH_PE_omit.
3557         (classify_object_over_fdes): If get_cie_encoding returned
3558         DW_EH_PE_omit, return -1.
3559         (init_object): If classify_object_over_fdes returned -1,
3560         pretend there were no FDEs at all.
3561
3562 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
3563
3564         * config/i386/i386.md (bswap<mode>2): Macroize expander from
3565         bswap{si,di}2 using SWI48 mode iterator.
3566         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
3567         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
3568         set modrm attribute of bswap insn to 0 and remove length attribute.
3569         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
3570         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
3571         set mode attribute to <MODE> and remove length attribute.
3572
3573 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
3574
3575         PR rtl-optimization/43520
3576         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
3577         zero available registers.
3578
3579 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3580
3581         * builtins.c (fold_builtin_cproj): Fold more cases.
3582
3583 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3584
3585         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
3586         (fold_builtin_1): Fold builtin cproj.
3587         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
3588         Use ATTR_CONST_NOTHROW_LIST.
3589
3590 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
3591
3592         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
3593         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
3594         ffsi2_no_cmove for !TARGET_CMOVE.
3595         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
3596         (ffssi2): Remove expander.
3597         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
3598         mode iterator.
3599         (ctz<mode>2): Ditto from ctz{si,di}2.
3600         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
3601         mode iterator.
3602         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
3603         mode iterator.
3604
3605 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
3606
3607         * dwarf2out.c (AT_linkage_name): Define.
3608         (clone_as_declaration): Handle DW_AT_linkage_name.
3609         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
3610         of DW_AT_MIPS_linkage_name.
3611         (move_linkage_attr): Likewise.
3612         (dwarf2out_finish): Likewise.
3613
3614 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
3615
3616         PR middle-end/41952
3617         * fold-const.c (fold_comparison): New folding rule.
3618
3619 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
3620
3621         * double-int.h (double_int_setbit): Declare.
3622         * double-int.c (double_int_setbit): New function.
3623         * rtl.h (immed_double_int_const): Declare.
3624         * emit-rtl.c (immed_double_int_const): New function.
3625         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
3626         and immed_double_int_const functions.
3627         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
3628         expand_copysign_bit):  (Ditto.).
3629         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
3630         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
3631         * dojump.c (prefer_and_bit_test): (Ditto.).
3632         * expr.c (convert_modes, reduce_to_bit_field_precision,
3633         const_vector_from_tree): (Ditto.).
3634         * expmed.c (mask_rtx, lshift_value): (Ditto.).
3635
3636 2010-04-20  Jan Hubicka  <jh@suse.cz>
3637
3638         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
3639         (dump_cgraph_node): Dump new flags.
3640         * cgraph.h (struct cgraph_node): Add flags
3641         reachable_from_other_partition and in_other_partition.
3642         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
3643         other partition can not be removed.
3644         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
3645         the other partition must be output; silence sanity checking on
3646         leaking functions bodies from other paritition.
3647         * lto-cgraph.c (reachable_from_other_partition_p): New function.
3648         (lto_output_node): Output new flags; do not sanity check that inline
3649         clones are output; drop lto_forced_extern_inline_p code; do not mock
3650         visibility flags at partition boundaries.
3651         (add_node_to): New function.
3652         (output_cgraph): Use it to sort functions so masters appear before
3653         clones.
3654         (input_overwrite_node): Input new flags.
3655         * passes.c (ipa_write_summaries): Do not call
3656         lto_new_extern_inline_states.
3657         * lto-section-out.c (forced_extern_inline,
3658         lto_new_extern_inline_states lto_delete_extern_inline_states,
3659         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
3660         * lto-streamer.h (lto_new_extern_inline_states,
3661         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
3662         lto_forced_extern_inline_p): Kill.
3663
3664 2010-04-20  Richard Guenther  <rguenther@suse.de>
3665
3666         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
3667         from vars that can have pointers.
3668         (process_constraint): Dump useless constraints.
3669
3670 2010-04-20  Richard Guenther  <rguenther@suse.de>
3671
3672         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
3673         (dump_sa_points_to_info): Remove asserts.
3674         (init_base_vars): nothing_id isn't an escape point nor does it
3675         have pointers.
3676
3677 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
3678
3679         * tree.h (TYPE_REF_IS_RVALUE): Define.
3680         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
3681         should_move_die_to_comdat, prune_unused_types_walk): Handle
3682         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
3683         (modified_type_die, gen_reference_type_die): Emit
3684         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
3685         if TYPE_REF_IS_RVALUE and -gdwarf-4.
3686
3687 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3688
3689         PR target/43635
3690         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
3691         calls for -fpic -m31 if they have been sibcall optimized.
3692
3693 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
3694
3695         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
3696         ar.lc fixed and call-used.
3697
3698         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
3699
3700 2010-04-19  Jan Hubicka  <jh@suse.cz>
3701
3702         * opts.c (decode_options): Disable whpr incompatible passes.
3703         * lto/lto.c (lto_1_to_1_map): Skip clones.
3704         (read_cgraph_and_symbols): Do not mark everything as needed.
3705         (do_whole_program_analysis): Do map only after optimizing;
3706         set proper cgraph_state; use passmanager.
3707
3708 2010-04-19  DJ Delorie  <dj@redhat.com>
3709
3710         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
3711         POINTER_PLUS_EXPR and fix them.
3712
3713 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
3714
3715         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
3716         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
3717         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
3718         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
3719         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
3720         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
3721         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
3722         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
3723         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
3724         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
3725         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
3726
3727 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3728
3729         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
3730         (check_cond_move_block): Likewise.
3731         (cond_move_process_if_block): Likewise.
3732         (noce_find_if_block): Improve formatting.
3733         (find_if_header): Pass 0 to memset and tweak conditions.
3734         (cond_exec_find_if_block): Fix long lines and tweak conditions.
3735
3736 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
3737
3738         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
3739         for -gdwarf-4.
3740
3741         PR middle-end/43337
3742         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
3743         with non-local decl doesn't need chain.
3744
3745 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
3746
3747         * ira-color.c (allocno_reload_assign): Avoid accumulating
3748         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
3749
3750 2010-04-19  Martin Jambor  <mjambor@suse.cz>
3751
3752         * gimple.h (create_tmp_reg): Declare.
3753         * gimplify.c (create_tmp_reg): New function.
3754         (gimplify_return_expr): Use create_tmp_reg.
3755         (gimplify_omp_atomic): Likewise.
3756         (gimple_regimplify_operands): Likewise.
3757         * tree-dfa.c (make_rename_temp): Likewise.
3758         * tree-predcom.c (predcom_tmp_var): Likewise.
3759         (reassociate_to_the_same_stmt): Likewise.
3760         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
3761         (get_replaced_param_substitute): Likewise.
3762         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
3763         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
3764         * tree-ssa-pre.c (get_representative_for): Likewise.
3765         (create_expression_by_pieces): Likewise.
3766         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
3767         (create_tailcall_accumulator): Likewise.
3768
3769 2010-04-19  Martin Jambor  <mjambor@suse.cz>
3770
3771         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
3772         new_stmt.
3773         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
3774
3775 2010-04-19  Richard Guenther  <rguenther@suse.de>
3776
3777         PR tree-optimization/43796
3778         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
3779         from SCEV in the lattice.
3780         (vrp_visit_phi_node): Dump change.
3781
3782 2010-04-19  Richard Guenther  <rguenther@suse.de>
3783
3784         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
3785         * configure: Re-generated.
3786
3787 2010-04-19  Richard Guenther  <rguenther@suse.de>
3788
3789         PR tree-optimization/43783
3790         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
3791         constant ARRAY_REF operands two and three if possible.
3792
3793 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
3794
3795         PR target/43766
3796         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
3797
3798 2010-04-19  Jie Zhang  <jie@codesourcery.com>
3799
3800         PR target/43662
3801         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
3802
3803 2010-04-19  Ira Rosen  <irar@il.ibm.com>
3804
3805         PR tree-optimization/37027
3806         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
3807         and macro to access it.
3808         (vectorizable_reduction): Add argument.
3809         (vect_get_slp_defs): Likewise.
3810         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
3811         statements for possible use in SLP.
3812         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
3813         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
3814         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
3815         add new argument.
3816         (vectorizable_reduction): Likewise.
3817         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
3818         vect_get_slp_defs.
3819         (vectorizable_type_demotion, vectorizable_type_promotion,
3820         vectorizable_store): Likewise.
3821         (vect_analyze_stmt): Update call to vectorizable_reduction.
3822         (vect_transform_stmt): Likewise.
3823         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
3824         (vect_build_slp_tree): Fix indentation. Check that there are no loads
3825         from different interleaving chains in same node.
3826         (vect_slp_rearrange_stmts): New function.
3827         (vect_supported_load_permutation_p): Allow load permutations for
3828         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
3829         inside SLP nodes if necessary.
3830         (vect_analyze_slp_instance): Handle reductions.
3831         (vect_analyze_slp): Try to build SLP instances originating from groups
3832         of reductions.
3833         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
3834         (vect_get_constant_vectors): Create initial vectors for reductions
3835         according to reduction code. Add new argument.
3836         (vect_get_slp_defs): Add new argument, pass it to
3837         vect_get_constant_vectors.
3838         (vect_schedule_slp_instance): Remove SLP tree root statements.
3839
3840 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
3841
3842         * tree.h (ENUM_IS_SCOPED): Define.
3843         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
3844         for ENUM_IS_SCOPED enums.
3845
3846 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3847
3848         * fold-const.c (fold_comparison): Use ssizetype.
3849         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3850         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
3851         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
3852         * tree-object-size.c (compute_object_sizes): Use size_type_node.
3853
3854         * tree.h (initialize_sizetypes): Remove parameter.
3855         (build_common_tree_nodes): Remove second parameter.
3856         * stor-layout.c (initialize_sizetypes): Remove parameter.
3857         Always create an unsigned type.
3858         (set_sizetype): Assert that the passed type is unsigned and simplify.
3859         * tree.c (build_common_tree_nodes): Remove second parameter.
3860         Adjust call to initialize_sizetypes.
3861         * c-decl.c (c_init_decl_processing): Remove second argument in call to
3862         build_common_tree_nodes.
3863
3864 2010-04-18  Matthias Klose  <doko@ubuntu.com>
3865
3866         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
3867
3868 2010-04-18  Ira Rosen  <irar@il.ibm.com>
3869
3870         PR tree-optimization/43771
3871         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
3872         load permutation doesn't have gaps.
3873
3874 2010-04-18  Jan Hubicka  <jh@suse.cz>
3875
3876         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
3877         (sse_prologue_save_insn expander): Use new pattern.
3878         (sse_prologue_save_insn1): New pattern and splitter.
3879         (sse_prologue_save_insn): Update to deal also with 64bit aligned
3880         blocks.
3881         * i386.c (setup_incoming_varargs_64): Do not compute jump
3882         destination here.
3883         (ix86_gimplify_va_arg): Update alignment needed.
3884         (ix86_local_alignment): Do not align all local arrays to 128bit.
3885
3886 2010-04-17  Jan Hubicka  <jh@suse.cz>
3887
3888         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
3889
3890 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
3891
3892         * arm.md (negdi2): Remove redundant code to force values into a
3893         register.
3894
3895 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
3896
3897         * arm/bpabi.S: Add EABI alignment attributes to objects.
3898         * arm/bpabi-v6m.S: Likewise.
3899         * arm/crti.asm: Likewise.
3900         * arm/crtn.asm: Likewise.
3901         * arm/lib1funcs.asm: Likewise.
3902         * arm/libunwind.S: Likewise.
3903
3904 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
3905
3906         * arm-protos.h (tune_params): New structure.
3907         * arm.c (current_tune): New variable.
3908         (arm_constant_limit): Delete.
3909         (struct processors): Add pointer to the tune parameters.
3910         (arm_slowmul_tune): New tuning option.
3911         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
3912         (all_cores): Adjust to pick up the tuning model.
3913         (arm_constant_limit): New function.
3914         (arm_override_options): Select the appropriate tuning model.  Delete
3915         initialization of arm_const_limit.
3916         (arm_split_constant): Use the new constant-limit model.
3917         (arm_rtx_costs): Pick up the current tuning model.
3918         * arm.md (is_strongarm, is_xscale): Delete.
3919         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
3920         for Xscale variant architectures.
3921         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
3922
3923 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3924
3925         * config/arm/arm.c (arm_gen_constant): Remove unused variable
3926         can_shift.
3927         (arm_rtx_costs_1): Remove unused variable extra_cost.
3928         (arm_unwind_emit_set): Use variable offset.
3929         (thumb1_output_casesi): Remove unused variable flags.
3930
3931 2010-04-16  Jeff Law  <law@redhat.com>
3932
3933         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
3934         needing assignment rather than doing a two-phase assignment.  Remove
3935         unused variable 'm'.
3936
3937 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3938
3939         PR bootstrap/43767
3940         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
3941
3942 2010-04-16  Doug Kwan  <dougkwan@google.com>
3943
3944         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
3945         (next_operand_entry_id): New static variable.
3946         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
3947         (add_to_ops_vec): Assigned unique ID to operand entry.
3948         (struct oecount_s): New field ID.
3949         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
3950         (undistribute_ops_list): Assign unique IDs to oecounts.
3951         (init_reassoc): reset next_operand_entry_id.
3952
3953 2010-04-16  Doug Kwan  <dougkwan@google.com>
3954
3955         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
3956         missing left parenthesis.
3957
3958 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
3959
3960         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
3961         *btdi_rex64 using SWI48 mode iterator.
3962         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
3963         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
3964         *jcc_btdi_mask_rex64.
3965
3966 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
3967
3968         * double-int.h (tree_to_double_int): Convert to macro.
3969         * double-int.c (tree_to_double_int): Remove.
3970
3971 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3972
3973         PR debug/43762
3974         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
3975         with want_address 2 and in case a single element list might be
3976         possible, call it again with want_address 0.
3977
3978 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3979
3980         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
3981         case 'W' print operands for HI mode.
3982         * config/h8300/h8300.h (Y0, Y2) : New constraints.
3983         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
3984         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
3985         * config/h8300/predicate.md (bit_register_indirect_operand): New.
3986
3987         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
3988
3989         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
3990         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
3991         #xx:3 and #xx:4 mode.
3992
3993         * config/h8300/h8300.md (inverted load with HImode dest): Add
3994         support for H8300SX.
3995
3996         * config/h8300/predicate.md (bit_operand): Allow immediate values that
3997         satisfy 'U' constraint.
3998
3999 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4000
4001         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
4002         * configure: Regenerate.
4003         * config.in: Regenerate.
4004         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
4005         works.
4006
4007 2010-04-16  Richard Guenther  <rguenther@suse.de>
4008
4009         * tree.h (struct tree_decl_minimal): Move pt_uid ...
4010         (struct tree_decl_common): ... here.
4011         (DECL_PT_UID): Adjust.
4012         (SET_DECL_PT_UID): Likewise.
4013         (DECL_PT_UID_SET_P): Likewise.
4014
4015 2010-04-16  Richard Guenther  <rguenther@suse.de>
4016
4017         PR tree-optimization/43572
4018         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
4019         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
4020         * tree-flow.h (is_call_clobbered): Remove.
4021         * tree-flow-inline.h (is_call_clobbered): Likewise.
4022         * tree-dfa.c (dump_variable): Do not dump call clobber state.
4023         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
4024         (execute_return_slot_opt): Adjust.
4025         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
4026         check for call clobbered vars here.
4027         (find_tail_calls): Move tailcall verification to the
4028         proper place.
4029
4030 2010-04-16  Diego Novillo  <dnovillo@google.com>
4031
4032         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
4033
4034 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4035
4036         PR target/40603
4037         * config/arm/arm.md (cbranchqi4): New pattern.
4038         * config/arm/predicates.md (const0_operand,
4039         cbranchqi4_comparison_operator): New predicates.
4040
4041 2010-04-16  Richard Guenther  <rguenther@suse.de>
4042
4043         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
4044         (dump_gimple_stmt): Likewise.
4045
4046 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4047
4048         * recog.h (struct recog_data): New field is_operator.
4049         (struct insn_operand_data): New field is_operator.
4050         * recog.c (extract_insn): Set recog_data.is_operator.
4051         * genoutput.c (output_operand_data): Emit code to set the
4052         is_operator field.
4053         * reload.c (find_reloads): Use it rather than testing for an
4054         empty constraint string.
4055
4056         PR target/41514
4057         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
4058         If the previous insn is a cbranchsi4_insn with the same arguments,
4059         omit the compare instruction.
4060
4061         * config/arm/arm.md (addsi3_cbranch): If destination is a high
4062         register, inputs must be low registers and we need a low register
4063         scratch.  Handle alternative 2 like alternative 3.
4064
4065 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
4066
4067         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
4068         don't call get_addr on both.  If one expression is a VALUE and
4069         the other a REG, check VALUE's locs if the REG isn't among them.
4070
4071 2010-04-16  Christian Bruel  <christian.bruel@st.com>
4072
4073         * config/sh/sh.h (sh_frame_pointer_required): New function.
4074         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
4075         (flag_omit_frame_pointer) Set.
4076         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
4077         (rounded_frame_size): Adjust size with outgoing_args_size.
4078         (sh_set_return_address): Must return from stack pointer.
4079         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
4080         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
4081         (ACCUMULATE_OUTGOING_ARGS): Define.
4082         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
4083         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
4084
4085 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
4086
4087         PR target/43471
4088         * config/sh/sh.c (sh_legitimize_reload_address): Use
4089         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
4090         Remove a unneeded check for offset_base.
4091
4092 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4093
4094         * configure: Regenerated.
4095
4096 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4097
4098         * config/s390/s390.c (s390_call_save_register_used): Switch back
4099         to HARD_REGNO_NREGS.
4100
4101 2010-04-15  Richard Guenther  <rguenther@suse.de>
4102
4103         * alias.c (alias_set_subset_of): Handle alias-set zero
4104         child properly.
4105
4106 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
4107             Julian Brown  <julian@codesourcery.com>
4108
4109         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
4110         alternatives according to use of high and low regs.
4111         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
4112         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
4113         optimizing for size on Thumb-2.
4114
4115 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
4116
4117         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
4118
4119 2010-04-15  Richard Guenther  <rguenther@suse.de>
4120
4121         * tree-ssa-structalias.c (struct variable_info): Add
4122         is_fn_info flag.
4123         (new_var_info): Initialize it.
4124         (dump_constraints): Support printing last added constraints.
4125         (debug_constraints): Adjust.
4126         (dump_constraint_graph): Likewise.
4127         (make_heapvar_for): Check for NULL cfun.
4128         (get_function_part_constraint): New function.
4129         (get_fi_for_callee): Likewise.
4130         (find_func_aliases): Properly implement IPA PTA constraints.
4131         (process_ipa_clobber): New function.
4132         (find_func_clobbers): Likewise.
4133         (insert_into_field_list_sorted): Remove.
4134         (create_function_info_for): Properly allocate vars for IPA mode.
4135         Do not use insert_into_field_list_sorted.
4136         (create_variable_info_for): Properly generate constraints for
4137         global vars in IPA mode.
4138         (dump_solution_for_var): Always dump the solution.
4139         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
4140         (find_what_var_points_to): Adjust.
4141         (pt_solution_set): Change.
4142         (pt_solution_ior_into): New function.
4143         (pt_solution_empty_p): Export.
4144         (pt_solution_includes_global): Adjust.
4145         (pt_solution_includes_1): Likewise.
4146         (pt_solutions_intersect_1): Likewise.
4147         (dump_sa_points_to_info): Check some invariants.
4148         (solve_constraints): Move constraint dumping ...
4149         (compute_points_to_sets): ... here.
4150         (ipa_pta_execute): ... and here.
4151         (compute_may_aliases): Do not re-compute points-to info
4152         locally if IPA info is available.
4153         (ipa_escaped_pt): New global var.
4154         (ipa_pta_execute): Properly implement IPA PTA.
4155         * tree-into-ssa.c (dump_decl_set): Support dumping
4156         decls not in referenced-vars.
4157         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
4158         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
4159         (dump_points_to_solution): Likewise.
4160         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
4161         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
4162         (remap_gimple_stmt): Reset call clobber/use information if necessary.
4163         (copy_decl_to_var): Copy DECL_PT_UID.
4164         (copy_result_decl_to_var): Likewise.
4165         * tree.c (make_node_stat): Initialize DECL_PT_UID.
4166         (copy_node_stat): Copy it.
4167         * tree.h (DECL_PT_UID): New macro.
4168         (SET_DECL_PT_UID): Likewise.
4169         (DECL_PT_UID_SET_P): Likewise.
4170         (struct tree_decl_minimal): Add pt_uid member.
4171         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
4172         (pt_solution_empty_p): Declare.
4173         (pt_solution_set): Adjust.
4174         (ipa_escaped_pt): Declare.
4175         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
4176         * gimple-pretty-print.c (pp_points_to_solution): New function.
4177         (dump_gimple_call): Dump call clobber/use information.
4178         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
4179         * tree-pass.h (TDF_ALIAS): New dump option.
4180         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
4181         * doc/invoke.texi (-fipa-pta): Update documentation.
4182
4183 2010-04-15  Richard Guenther  <rguenther@suse.de>
4184
4185         * Makefile.in (OBJS-common): Add gimple-fold.o.
4186         (gimple-fold.o): New rule.
4187         * tree.h (maybe_fold_offset_to_reference,
4188         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
4189         prototypes ...
4190         * gimple.h: ... here.
4191         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
4192         may_propagate_address_into_dereference): Move prototypes ...
4193         * gimple.h: ... here.
4194         * tree-ssa-ccp.c (get_symbol_constant_value,
4195         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
4196         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
4197         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
4198         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
4199         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
4200         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
4201         gimplify_and_update_call_from_tree): Move ...
4202         * gimple-fold.c: ... here.  New file.
4203         (ccp_fold_builtin): Rename to ...
4204         (gimple_fold_builtin): ... this.
4205         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
4206
4207 2010-04-15  Richard Guenther  <rguenther@suse.de>
4208
4209         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
4210         fit_double_type, force_fit_type_double, add_double_with_sign,
4211         neg_double, mul_double_with_sign, lshift_double, rshift_double,
4212         lrotate_double, rrotate_double, div_and_round_double): Move ...
4213         * double-int.c: ... here.
4214         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
4215         add_double, neg_double, mul_double_with_sign, mul_double,
4216         lshift_double, rshift_double, lrotate_double, rrotate_double,
4217         div_and_round_double): Move prototypes ...
4218         * double-int.h: ... here.
4219
4220 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
4221
4222         PR target/43742
4223         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
4224         matching constraints to ensure inputs match the output.
4225
4226 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
4227
4228         PR target/43742
4229         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
4230         in an input-only operand.
4231
4232 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
4233
4234         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
4235         (double_int_not, double_int_lshift, double_int_rshift): Declare.
4236         (double_int_negative_p): Convert to static inline function.
4237         * double-int.c (double_int_lshift, double_int_lshift): New functions.
4238         (double_int_negative_p): Remove.
4239         * tree.h (lshift_double, rshift_double):
4240         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
4241         * fold-const.c (fold_convert_const_int_from_real,
4242         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
4243         (lshift_double): Change type of arith argument to bool.
4244         (rshift_double): Change type of arith argument to bool. Correct
4245         comment.
4246         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4247
4248 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
4249
4250         PR target/21803
4251         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
4252         at the start and end of the then/else blocks, and omit them from the
4253         conversion.
4254         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
4255         argument; all callers changed.  Pass zero to old_insns_match_p instead.
4256         (flow_find_head_matching_sequence): New function.
4257         (old_insns_match_p): Check REG_EH_REGION notes for calls.
4258         * basic-block.h (flow_find_cross_jump,
4259         flow_find_head_matching_sequence): Declare functions.
4260
4261 2010-04-14  Jason Merrill  <jason@redhat.com>
4262
4263         PR c++/36625
4264         * c-common.c (attribute_takes_identifier_p): New fn.
4265         * c-common.h: Declare it.
4266
4267 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4268
4269         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
4270         splitter condition.
4271         (*udivmod<mode>4): Ditto.
4272
4273 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4274
4275         * config/i386/i386.md (maxmin_int): Rename code attribute from
4276         maxminiprefix and update all users.
4277         (maxmin_float): Ditto from maxminfprefix.
4278         (logic): Ditto from logicprefix.
4279         (absneg_mnemonic): Ditto from absnegprefix.
4280         * config/i386/mmx.md: Update all users of maxminiprefix,
4281         maxminfprefix and logicprefix for rename.
4282         * config/i386/sse.md: Ditto.
4283         * config/i386/sync.md (sync_<code><mode>): Update for
4284         logicprefix rename.
4285
4286 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4287
4288         PR 42966
4289         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
4290         warnings converted to errors.
4291
4292 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4293
4294         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
4295         used insn_type variable.
4296         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
4297         to avoid set-but-not-used warning.
4298
4299 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4300
4301         * df-core.c (df_ref_debug): Change format string placeholder
4302         from 0x%x to %#x.
4303         * dwarf2asm.c (dw2_asm_output_data_raw,
4304         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
4305         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
4306         * dwarf2out.c (output_cfi, output_cfi_directive,
4307         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
4308         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
4309         Ditto.
4310         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
4311         * print-rtl.c (print_rtx): Ditto.
4312
4313 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4314
4315         PR middle-end/42694
4316         * builtins.c (expand_builtin_pow_root): New function to expand pow
4317         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
4318         series of sqrt and cbrt calls under -ffast-math.
4319         (expand_builtin_pow): Call it.
4320
4321 2010-04-14  Michael Matz  <matz@suse.de>
4322
4323         PR tree-optimization/42963
4324         * tree-cfg.c (touched_switch_bbs): New static variable.
4325         (group_case_labels_stmt): New function broken out from ...
4326         (group_case_labels): ... here, use the above.
4327         (start_recording_case_labels): Allocate touched_switch_bbs.
4328         (end_recording_case_labels): Deallocate it, call
4329         group_case_labels_stmt.
4330         (gimple_redirect_edge_and_branch): Remember index of affected BB.
4331
4332 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4333
4334         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
4335         from insn template.
4336
4337 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4338
4339         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
4340
4341 2010-04-13  Jan Hubicka  <jh@suse.cz>
4342
4343         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
4344         of optimized out static functions.
4345         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
4346         cost computation.  Also sanity check for overflows.
4347         (update_caller_keys): Update cgraph_edge_badness call; properly
4348         update fibheap and sanity check that it is up to date.
4349         (add_new_edges_to_heap): Update cgraph_edge_badness.
4350         (cgraph_decide_inlining_of_small_function): Likewise;
4351         add sanity checking that badness in heap is up to date;
4352         improve dumping of reason; Update badness of calls to the
4353         offline copy of function currently inlined; dump badness
4354         of functions not inlined because of unit growth limits.
4355
4356 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
4357
4358         PR middle-end/32628
4359         * c-common.c (pointer_int_sum): Disregard overflow that occured only
4360         because of sign-extension change when converting to sizetype here...
4361         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
4362
4363         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
4364         the folding to constants.  Remove redundant final conversion.
4365         (fold_binary) <associate>: Do not associate if the re-association of
4366         constants alone overflows.
4367         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
4368         to the end of the list.
4369         (multiple_of_p) <COND_EXPR>: New case.
4370
4371 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4372
4373         * opt-functions.awk (opt_sanitized_name): New.
4374         (opt_enum): New.
4375         * optc-gen.awk: Use it
4376         * opth-gen.awk: Use it.
4377
4378 2010-04-13  Martin Jambor  <mjambor@suse.cz>
4379
4380         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
4381         (sra_modify_assign): Delete stmts loading dead data even if racc has no
4382         children.  Call replace_uses_with_default_def_ssa_name to handle
4383         SSA_NAES on lhs.
4384
4385 2010-04-13  Michael Matz  <matz@suse.de>
4386
4387         PR middle-end/43730
4388         * builtins.c (expand_builtin_interclass_mathfn): Also create
4389         a register if the predicate doesn't match.
4390
4391 2010-04-13  Diego Novillo  <dnovillo@google.com>
4392
4393         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
4394         * c-pch.c: Include timevar.h.
4395         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
4396         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
4397         * ggc-common.c: Include timevar.h.
4398         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
4399         * timevar.def (TV_PCH_SAVE): Define.
4400         (TV_PCH_CPP_SAVE): Define.
4401         (TV_PCH_PTR_REALLOC): Define.
4402         (TV_PCH_PTR_SORT): Define.
4403         (TV_PCH_RESTORE): Define.
4404         (TV_PCH_CPP_RESTORE): Define.
4405
4406 2010-04-13  Michael Matz  <matz@suse.de>
4407
4408         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
4409         into MINUS_EXPRs.
4410         (can_reassociate_p): New function.
4411         (break_up_subtract_bb, reassociate_bb): Use it.
4412
4413 2010-04-13  Richard Guenther  <rguenther@suse.de>
4414
4415         PR bootstrap/43737
4416         * builtins.c (c_readstr): Fix assert.
4417
4418 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
4419
4420         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
4421         when generating cltd insn.
4422
4423         (*ashl<mode>3_1): Remove special handling for register operand 2.
4424         (*ashlsi3_1_zext): Ditto.
4425         (*ashlhi3_1): Ditto.
4426         (*ashlhi3_1_lea): Ditto.
4427         (*ashlqi3_1): Ditto.
4428         (*ashlqi3_1_lea): Ditto.
4429         (*<shiftrt_insn><mode>3_1): Ditto.
4430         (*<shiftrt_insn>si3_1_zext): Ditto.
4431         (*<shiftrt_insn>qi3_1_slp): Ditto.
4432         (*<rotate_insn><mode>3_1): Ditto.
4433         (*<rotate_insn>si3_1_zext): Ditto.
4434         (*<rotate_insn>qi3_1_slp): Ditto.
4435
4436 2010-04-13  Richard Guenther  <rguenther@suse.de>
4437
4438         * tree-ssa-structalias.c (callused_id): Remove.
4439         (call_stmt_vars): New.
4440         (get_call_vi): Likewise.
4441         (lookup_call_use_vi): Likewise.
4442         (lookup_call_clobber_vi): Likewise.
4443         (get_call_use_vi): Likewise.
4444         (get_call_clobber_vi): Likewise.
4445         (make_transitive_closure_constraints): Likewise.
4446         (handle_const_call): Adjust to do per-call call-used handling.
4447         (handle_pure_call): Likewise.
4448         (find_what_var_points_to): Remove general callused handling.
4449         (init_base_vars): Likewise.
4450         (init_alias_vars): Initialize call_stmt_vars.
4451         (compute_points_to_sets): Process call-used and call-clobbered
4452         vars for call statements.
4453         (delete_points_to_sets): Free call_stmt_vars.
4454
4455 2010-04-13  Richard Guenther  <rguenther@suse.de>
4456
4457         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4458         Only add RW dependence for dependence distance zero.
4459         Adjust maximal vectorization factor according to dependences.
4460         Move alignment handling ...
4461         (vect_find_same_alignment_drs): ... here.  New function.
4462         (vect_analyze_data_ref_dependences): Adjust.
4463         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
4464         (vect_analyze_data_refs): Adjust minimal vectorization factor
4465         according to data references.
4466         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
4467         dependences before determining the vectorization factor.
4468         Analyze alignment after determining the vectorization factor.
4469         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
4470         dependences before alignment.
4471         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
4472         Adjust prototype.
4473         (vect_analyze_data_refs): Likewise.
4474         (MAX_VECTORIZATION_FACTOR): New define.
4475
4476 2010-04-13  Duncan Sands  <baldrick@free.fr>
4477
4478         * except.h (lang_eh_type_covers): Remove.
4479         * except.c (lang_eh_type_covers): Likewise.
4480
4481 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4482             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4483
4484         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
4485         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
4486         UNITS_PER_LONG where it is ABI relevant.
4487         (s390_return_addr_rtx): Likewise.
4488         (s390_back_chain_rtx): Likewise.
4489         (s390_frame_area): Likewise.
4490         (s390_frame_info): Likewise.
4491         (s390_initial_elimination_offset): Likewise.
4492         (save_gprs): Likewise.
4493         (s390_emit_prologue): Likewise.
4494         (s390_emit_epilogue): Likewise.
4495         (s390_function_arg_advance): Likewise.
4496         (s390_function_arg): Likewise.
4497         (s390_va_start): Likewise.
4498         (s390_gimplify_va_arg): Likewise.
4499         (s390_function_profiler): Likewise.
4500         (s390_optimize_prologue): Likewise.
4501         (s390_rtx_costs): Likewise.
4502         (s390_secondary_reload): Likewise.
4503         (s390_promote_function_mode): Likewise.
4504         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
4505         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
4506         registers available.
4507         (s390_unwind_word_mode): New function.
4508         (s390_function_value): Split 64 bit values into register pair if
4509         used as return value.
4510         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
4511         function call parameters.  Handle parallels.
4512         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
4513         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
4514         (DWARF_CIE_DATA_ALIGNMENT): New macro.
4515         (s390_expand_setmem): Remove unused variable src_addr.
4516         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
4517         deal with 64 bit registers.
4518         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
4519         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
4520         (UNITS_PER_LONG): New macro.
4521         * libjava/include/s390-signal.h: Define extended ucontext
4522         structure containing the upper halfs of the 64 bit registers.
4523
4524 2010-04-13  Simon Baldwin  <simonb@google.com>
4525
4526         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
4527
4528 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
4529
4530         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
4531         rvalue on the RHS if the LHS is of a non-renamable type.
4532         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
4533
4534 2010-04-13  Matthias Klose  <doko@ubuntu.com>
4535
4536         * gcc.c (cc1_options): Handle -iplugindir before processing
4537         the cc1 spec. Only add -iplugindir once.
4538         (cpp_unique_options): Add -iplugindir option if -fplugin* options
4539         found.
4540         * common.opt (iplugindir): Remove `Separate' property, initialize.
4541         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
4542         option.
4543         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
4544         (distclean): Remove plugin dir.
4545         * doc/invoke.texi: Document -iplugindir.
4546
4547 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
4548
4549         * doc/plugins.texi (Loading Plugins): Document short
4550         -fplugin=foo option.
4551         (Plugin API): Mention default_plugin_dir_name function.
4552
4553         * gcc.c (find_file_spec_function): Add new declaration.
4554         (static_spec_func): Use it for "find-file".
4555         (find_file_spec_function): Add new function.
4556         (cc1_options): Add -iplugindir option if -fplugin* options found.
4557
4558         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
4559
4560         * plugin.c (add_new_plugin): Updated comment, and handle short
4561         plugin name.
4562         (default_plugin_dir_name): Added new function.
4563
4564         * common.opt (iplugindir): New option to set the plugin directory.
4565
4566 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
4567
4568         * config/i386/i386.md (any_rotate): New code iterator.
4569         (rotate_insn): New code attribute.
4570         (rotate): Ditto.
4571         (SWIM124): New mode iterator.
4572         (<rotate_insn>ti3): New expander.
4573         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
4574         any_rotate code iterator.
4575         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
4576         using any_rotate code iterator and SWIM124 mode iterator.
4577         (ix86_rotlti3): New insn_and_split pattern.
4578         (ix86_rotrti3): Ditto.
4579         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
4580         ix86_rotl{di,ti}3 patterns.
4581         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
4582         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
4583         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
4584         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
4585         code iterator and SWI mode iterator.
4586         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
4587         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
4588         code iterator.
4589         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
4590         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
4591         (bswap rotatert splitter): Add splitter.
4592         (bswap splitter): Macroize splitter using any_rotate code iterator.
4593         Add insn predicate to split only for TARGET_USE_XCHGB or when
4594         optimizing function for size.
4595
4596 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
4597
4598         * config/pa/pa.c (emit_move_sequence): Remove use of
4599         deleted variable flag_argument_noalias.
4600
4601 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4602
4603         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
4604         configurations.
4605         Add to unsupported targets list.
4606         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
4607         sparc*-sun-solaris2.[567]* from target lists.
4608         * configure: Regenerate.
4609         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
4610         removal.
4611         Remove Solaris 7 patch references.
4612         (Specific, sparc-sun-solaris2.7): Removed.
4613         (sparc-sun-solaris2*): Update Solaris 7 example.
4614         (sparc64-*-solaris2*): Likewise.
4615
4616 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4617
4618         * config.build (alpha*-dec-osf4*): Remove.
4619         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
4620         of obsolete configurations.
4621         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
4622         support.
4623         * config/alpha/t-osf4: Renamed to ...
4624         * config/alpha/t-osf5: ... this.
4625         * config/alpha/osf.h: Renamed to ...
4626         * config/alpha/osf5.h: ... this.
4627         Merged old osf5.h contents.
4628         Update comments.
4629         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
4630         (EXTRA_SPECS): Removed.
4631         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
4632         reflect removal of Tru64 UNIX V4.0/V5.0 support.
4633         Document that.
4634
4635 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4636
4637         * doc/contrib.texi (Contributors, Rainer Orth): Update.
4638
4639 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
4640
4641         PR/43702
4642         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
4643         __thiscall convention.
4644
4645 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
4646
4647         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
4648         orig_base.
4649         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
4650
4651 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
4652
4653         * function.c (assign_parms_initialize_all): Add unused attribute
4654         to fntype.
4655
4656 2010-04-12  Richard Guenther  <rguenther@suse.de>
4657
4658         * gsstruct.def (GSS_CALL): New.
4659         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
4660         * gimple.h: Include tree-ssa-alias.h.
4661         (struct gimple_statement_call): New.
4662         (union gimple_statement_struct_d): Add gimple_call member.
4663         (gimple_call_reset_alias_info): Declare.
4664         (gimple_call_use_set): New function.
4665         (gimple_call_clobber_set): Likewise.
4666         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
4667         * gimple.c (gimple_call_reset_alias_info): New function.
4668         (gimple_build_call_1): Call it.
4669         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4670         * tree-inline.c (remap_gimple_stmt): Likewise.
4671         (expand_call_inline): Remove callused handling.
4672         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
4673         * tree-dfa.c (dump_variable): Likewise.
4674         * tree-parloops.c (parallelize_loops): Likewise.
4675         * tree-ssa.c (init_tree_ssa): Likewise.
4676         (delete_tree_ssa): Likewise.
4677         * tree-flow-inline.h (is_call_used): Remove.
4678         * tree-flow.h (struct gimple_df): Remove callused member.
4679         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
4680         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
4681         (ref_maybe_used_by_call_p_1): Simplify.
4682         (call_may_clobber_ref_p_1): Likewise.
4683         * tree-ssa-structalias.c (compute_points_to_sets): Set
4684         the call stmt used and clobbered sets.
4685         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
4686         (find_tail_calls): Verify the tail call.
4687
4688 2010-04-12  Richard Guenther  <rguenther@suse.de>
4689
4690         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
4691         single-iteration always-inline inlining.
4692         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
4693         (cgraph_decide_inlining): Do not handle always-inline specially.
4694         (try_inline): Remove always-inline cycle detection special case.
4695         Do not recurse on always-inlines.
4696         (cgraph_early_inlining): Do not iterate if not optimizing.
4697         (cgraph_gate_early_inlining): remove.
4698         (pass_early_inline): Run unconditionally.
4699         (gate_cgraph_decide_inlining): New function.
4700         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
4701         not inlining or optimizing.
4702         (cgraph_decide_inlining_of_small_functions): Also consider
4703         always-inline functions.
4704         (cgraph_default_inline_p): Return true for nodes which should
4705         disregard inline limits.
4706         (estimate_function_body_sizes): Assume zero size and time for
4707         nodes which are marked as disregarding inline limits.
4708         (cgraph_decide_recursive_inlining): Do not perform recursive
4709         inlining on always-inline nodes.
4710
4711 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
4712
4713         PR bootstrap/43699
4714         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
4715         for exprs satisfying handled_component_p.
4716
4717 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4718
4719         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
4720         non-constant aggregate elements.
4721
4722         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
4723         is a real initialization.
4724
4725 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
4726
4727         PR c/36774
4728         * c-decl.c (start_function): Move forward check for nested function.
4729
4730 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4731
4732         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
4733         * config/sh/sh.c: Include reload.h.
4734         (sh_legitimize_reload_address): New.
4735         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
4736         sh_legitimize_reload_address.
4737
4738 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
4739
4740         * config/sh/sh.md (*movqi_pop): New insn pattern.
4741         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
4742
4743 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
4744
4745         * config/i386/i386.md (any_shiftrt): New code iterator.
4746         (shiftrt_insn): New code attribute.
4747         (shiftrt): Ditto.
4748         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
4749         using any_shiftrt code iterator.
4750         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
4751         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
4752         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
4753         pattern from corresponding peephole2 patterns.
4754         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
4755         using any_shiftrt code iterator.
4756         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
4757         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
4758         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
4759         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
4760         *{ashr,lshr}<mode>3_cmp_zext.
4761         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
4762
4763 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
4764
4765         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
4766         scratch register.
4767         (*lshr<mode>3_cconly): Ditto.
4768
4769 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
4770
4771         * config/i386/i386.md (lshr<mode>3): Macroize expander from
4772         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
4773         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
4774         pattern from *lshr{di,ti}3_1 and corresponding splitters using
4775         DWI mode iterator.
4776         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
4777         from corresponding peephole2 patterns.
4778         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
4779         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
4780         and *lshrdi3_1_rex64 using SWI mode iterator.
4781         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
4782         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
4783         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
4784         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
4785         and *lshrdi3_cmp_rex64 using SWI mode iterator.
4786         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
4787         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
4788         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
4789         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
4790         SWI mode iterator.
4791
4792 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
4793
4794         * config/i386/i386.md (ashr<mode>3): Macroize expander from
4795         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
4796         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
4797         pattern from *ashr{di,ti}3_1 and corresponding splitters using
4798         DWI mode iterator.
4799         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
4800         from corresponding peephole2 patterns.
4801         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
4802         (ashrsi3_cvt): Rename from ashrsi3_31.
4803         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
4804         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
4805         and x86_64_shift_adj_3 using SWI48 mode iterator.
4806         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
4807         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
4808         and *ashrdi3_1_rex64 using SWI mode iterator.
4809         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
4810         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
4811         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
4812         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
4813         and *ashrdi3_cmp_rex64 using SWI mode iterator.
4814         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
4815         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
4816         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
4817         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
4818         SWI mode iterator.
4819         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
4820         * config/i386/i386.c (ix86_split_ashr): Update for renamed
4821         x86_shift<mode>_adj_3 expanders.
4822
4823 2010-04-10  Wei Guozhi  <carrot@google.com>
4824
4825         PR target/42601
4826         * config/arm/arm.c (arm_pic_static_addr): New function.
4827         (legitimize_pic_address): Call arm_pic_static_addr when it detects
4828         a static symbol.
4829         (arm_output_addr_const_extra): Output expression for new pattern.
4830         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
4831
4832 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
4833
4834         * ira-costs.c (record_reg_classes): Ignore alternatives that are
4835         not enabled.
4836
4837         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
4838         * web.c: Include "insn-config.h" and "recog.h".
4839         (union_match_dups): New function.
4840         (web_main): Call it.
4841         (union_defs): Don't try to recognize match_dups.
4842
4843         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
4844         if doing so would replace the entire pattern.
4845
4846 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
4847
4848         PR target/43707
4849         PR target/43709
4850         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
4851         and splitter pattern.  Change splitter operand 1 predicate to
4852         nonmemory_operand.
4853
4854 2010-04-09  Martin Jambor  <mjambor@suse.cz>
4855
4856         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
4857         lattices are addresses of CONST_DECLs with the same initial value.
4858         (ipcp_print_all_lattices): Print values of CONST_DECLs.
4859         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
4860
4861 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
4862             Bernd Schmidt  <bernds@codesourcery.com>
4863
4864         * loop-invariant.c (replace_uses): New static function.
4865         (move_invariant_reg): Use it to ensure we can replace the uses.
4866
4867 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
4868
4869         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
4870         function template.
4871         (picochip_override_options): Enable section anchors only above -O1.
4872         (picochip_reorg): Fixed a couple of build warnings.
4873
4874 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4875
4876         * configure.ac (plugin -rdynamic test): Log result.
4877         * configure: Regenerate.
4878         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
4879         (RDYNAMIC_SPEC): Define.
4880         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
4881
4882 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4883
4884         * configure.ac: Determine Sun ld version numbers.
4885         (comdat_group): Restrict GNU ld version checks to gld.
4886         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
4887         (enable_comdat): Support --enable-comdat.
4888         * configure: Regenerate.
4889         * doc/install.texi (Configuration): Document --enable-comdat.
4890
4891 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4892
4893         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
4894         * config/sol2-gld.h: ... here.
4895         * config.gcc (sparc*-*-solaris2*): Reflect this.
4896         (i[34567]86-*-solaris2*): Use it.
4897
4898 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
4899
4900         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
4901         setup_clocks_p.
4902         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
4903
4904 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4905
4906         PR 42965
4907         * diagnostic.c (diagnostic_initialize): Initialize
4908         some_warnings_are_errors.
4909         (diagnostic_finish): New.
4910         (diagnostic_action_after_output): Call it before exiting.
4911         (diagnostic_report_diagnostic): Do not print message here. Set
4912         some_warnings_are_errors.
4913         * diagnostic.h (diagnostic_context): Delete
4914         issue_warnings_are_errors_message. Add some_warnings_are_errors.
4915         (diagnostic_finish): Declare.
4916         * toplev.c (toplev_main): Call it before exit.
4917
4918 2010-04-09  Jason Merrill  <jason@redhat.com>
4919
4920         PR c++/42623
4921         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
4922         for incomplete type.
4923
4924         PR c++/41788
4925         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
4926         based on a warning flag.
4927
4928 2010-04-09  Richard Guenther  <rguenther@suse.de>
4929
4930         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
4931
4932 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
4933
4934         PR bootstrap/43684
4935         * varasm.c (default_assemble_visibility): Wrap vars that are
4936         set, but unused, by targets without GAS.
4937         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
4938         Remove set, but unused, vars.
4939         (rs6000_legitimize_tls_address): Likewise.
4940         (altivec_expand_dst_builtin): Likewise.
4941         * config/darwin.c (machopic_classify_symbol): Likewise.
4942         (machopic_indirection_name): Likewise.
4943
4944 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
4945
4946         * config/i386/i386.md (DWI): New mode iterator.
4947         (S): New mode attribute.
4948         (shift_operand): Ditto.
4949         (shift_immediate_operand): Ditto.
4950         (ashl_input_operand): Ditto.
4951         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
4952         using SDWIM mode iterator.
4953         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
4954         pattern from *ashl{di,ti}3_1 and corresponding splitters using
4955         DWI mode iterator.
4956         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
4957         from corresponding peephole2 patterns.
4958         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
4959         and x86_64_shift_adj_1 using SWI48 mode iterator.
4960         (x86_shift<mode>_adj_2): Ditto.
4961         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
4962         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
4963         using SWI48 mode iterator.
4964         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
4965         *ashldi3_cmp_rex64 using SWI mode iterator.
4966         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
4967         *ashldi3_cconly_rex64 using SWI mode iterator.
4968         * config/i386/i386.c (ix86_split_ashl): Update for renamed
4969         x86_shift<mode>_adj_{1,2}.
4970         (ix86_split_ashr): Ditto.
4971         (ix86_split_lshr): Ditto.
4972
4973 2010-04-09  Richard Guenther  <rguenther@suse.de>
4974
4975         * target.h (builtin_conversion): Pass in input and output types.
4976         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
4977         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
4978         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
4979         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
4980
4981         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
4982         Handle AVX modes.
4983         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
4984
4985 2010-04-09  Richard Guenther  <rguenther@suse.de>
4986
4987         PR target/43152
4988         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
4989
4990 2010-04-09  Richard Guenther  <rguenther@suse.de>
4991
4992         * tree-vectorizer.h (struct _stmt_vec_info): Document
4993         that vectype is the type of the LHS.
4994         (supportable_widening_operation, supportable_narrowing_operation):
4995         Get both input and output vector types as arguments.
4996         (vect_is_simple_use_1): Declare.
4997         (get_same_sized_vectype): Likewise.
4998         * tree-vect-loop.c (vect_determine_vectorization_factor):
4999         Set STMT_VINFO_VECTYPE to the vector type of the def.
5000         (vectorizable_reduction): Adjust.
5001         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
5002         Adjust.  Specify the output vector type.
5003         (vect_pattern_recog_1): Adjust.
5004         * tree-vect-stmts.c (get_same_sized_vectype): New function.
5005         (vectorizable_call): Adjust.
5006         (vectorizable_conversion): Likewise.
5007         (vectorizable_operation): Likewise.
5008         (vectorizable_type_demotion): Likewise.
5009         (vectorizable_type_promotion): Likewise.
5010         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
5011         the def.
5012         (vect_is_simple_use_1): New function.
5013         (supportable_widening_operation): Get both input and output
5014         vector types.
5015         (supportable_narrowing_operation): Likewise.
5016         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
5017
5018 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
5019
5020         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
5021         __thiscall and _thiscall as predefined macros.
5022         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
5023         thiscall attribute handling.
5024         (ix86_comp_type_attributes): Likewise.
5025         (ix86_function_regparm): Likewise.
5026         (ix86_return_pops_args): Likewise.
5027         (init_cumulative_args): Likewise.
5028         (find_drap_reg): Likewise.
5029         (ix86_static_chain): Likewise.
5030         (x86_this_parameter): Likewise.
5031         (x86_output_mi_thunk): Likewise.
5032         (ix86_attribute_table): Add description for thiscall attribute.
5033         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
5034         * doc/extend.texi: Add documentation for thiscall.
5035
5036 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5037
5038         PR c++/28584
5039         * c.opt (Wint-to-pointer-cast): Available in C++.
5040         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
5041
5042 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5043
5044         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
5045         * calls.c (expand_call): Pass the function type to aggregate_value_p.
5046         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
5047         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
5048         function type instead.  Reorder and simplify checks.
5049
5050         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
5051
5052 2010-04-08  Jing Yu  <jingyu@google.com>
5053             Zdenek Dvorak  <ook@ucw.cz>
5054
5055         PR tree-optimization/42720
5056         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
5057         loop unswitch conditions here from ...
5058         (tree_unswitch_single_loop): ... here.
5059
5060 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
5061
5062         * tree-if-conv.c: Fix comments and simplify logic.
5063
5064 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
5065
5066         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
5067         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
5068         (main_tree_if_conversion): Update call to tree_if_conversion.
5069
5070 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5071
5072         PR 42485
5073         * doc/invoke.texi (-b,-V): Delete.
5074         * doc/tm.texi: Do not mention -b.
5075         * gcc.c (display_help): Delete -b and -V.
5076         (process_command): Delete -b and -V.
5077         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
5078
5079 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
5080             Wolfgang Gellerich  <gellerich@de.ibm.com>
5081
5082         Implement target hook for loop unrolling
5083         * target.h (loop_unroll_adjust): Add a new target hook function.
5084         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
5085         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
5086         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
5087         (s390_loop_unroll_adjust): Implement the new target hook for s390.
5088         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
5089         target hook.
5090         (decide_unroll_stupid): Likewise.
5091
5092 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5093
5094         PR target/43643
5095         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
5096
5097 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5098
5099         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
5100         (Specific, *-*-solaris2*): Likewise.
5101         Don't prefer Sun as over GNU as.
5102
5103 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
5104
5105         * config/s390/s390.c (override_options): Adjust the z10 defaults
5106         for max-unroll-times, max-completely-peeled-insns
5107         and max-completely-peel-times.
5108
5109 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5110
5111         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
5112         instructions for z10.
5113         (s390_expand_setmem): Likewise.
5114         (s390_expand_cmpmem): Likewise.
5115
5116 2010-04-08  Richard Guenther  <rguenther@suse.de>
5117
5118         PR tree-optimization/43679
5119         * tree-ssa-pre.c (eliminate): Only propagate copies.
5120
5121 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
5122
5123         PR bootstrap/43681
5124         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
5125         set but not used variable warning.
5126
5127 2010-04-08  Wei Guozhi  <carrot@google.com>
5128
5129         PR target/41653
5130         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
5131         (arm_size_rtx_costs): Call the new function when optimized for size.
5132
5133 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
5134
5135         PR debug/43670
5136         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
5137         op0 is not a MEM, just return NULL instead of assertion
5138         failure.
5139         (discover_nonconstant_array_refs): Don't walk debug stmts.
5140
5141 2010-04-08  Doug Kwan  <dougkwan@google.com>
5142
5143         * configure.ac: Recognize gold and do not use its version number
5144         to test ld features.
5145         * configure: Regenerate.
5146
5147 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
5148
5149         PR middle-end/40815
5150         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
5151         (negate_value): Move code to push elements to broken_up_substracts ...
5152         (eliminate_plus_minus_pair): ... here.  Push operands that have no
5153         negative pair to plus_negates.
5154         (repropagate_negates, init_reassoc, fini_reassoc): Update.
5155
5156 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5157
5158         * doc/install.texi (Configuration): Move description of
5159         --enable-lto, --with-libelf*, --enable-gold from Java section to
5160         general section.
5161
5162         * doc/generic.texi (Working with declarations)
5163         (Function Properties, C and C++ Trees): Fix typos.
5164         * doc/sourcebuild.texi (Top Level): Likewise.
5165
5166 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
5167
5168         PR c/18624
5169         * tree.h (DECL_READ_P): Define.
5170         (struct tree_decl_common): Add decl_read_flag.
5171         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
5172         a set but not used warning.
5173         (merge_decls): Merge DECL_READ_P flag.
5174         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
5175         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
5176         * c-common.c (handle_used_attribute, handle_unused_attribute):
5177         Likewise.
5178         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
5179         New prototypes.
5180         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
5181         New functions.
5182         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
5183         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
5184         c_parser_binary_expression, c_parser_cast_expression,
5185         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
5186         Call default_function_array_read_conversion instead of
5187         default_function_array_conversion where needed.
5188         (c_parser_unary_expression, c_parser_conditional_expression,
5189         c_parser_postfix_expression_after_primary, c_parser_initelt):
5190         Likewise.  Call mark_exp_read where needed.
5191         (c_parser_statement_after_labels, c_parser_asm_operands,
5192         c_parser_typeof_specifier, c_parser_sizeof_expression,
5193         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
5194         where needed.
5195         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
5196         New.
5197         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
5198         (warn_unused_but_set_parameter): Default to warn_unused
5199         && extra_warnings.
5200         * doc/invoke.texi: Document -Wunused-but-set-variable and
5201         -Wunused-but-set-parameter.
5202
5203         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
5204         used count variable.
5205         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
5206         when operandN variables aren't used in the body of the expander
5207         or splitter.
5208         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
5209         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
5210         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
5211         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
5212         FOR_EACH_IMM_USE_ON_STMT): Likewise.
5213         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
5214         * tree.c (PROCESS_ARG): Likewise.
5215
5216 2010-04-07  Simon Baldwin  <simonb@google.com>
5217
5218         * diagnostic.h (diagnostic_override_option_index): New macro to
5219         set a diagnostic's option_index.
5220         * c-tree.h (c_cpp_error): Add warning reason argument.
5221         * opts.c (_warning_as_error_callback): New.
5222         (register_warning_as_error_callback): Store callback for
5223         warnings enabled via enable_warning_as_error.
5224         (enable_warning_as_error): Call callback, minor code tidy.
5225         * opts.h (register_warning_as_error_callback): Declare.
5226         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
5227         response to -Werror=.
5228         (c_common_init_options): Register warning_as_error_callback in opts.c.
5229         * common.opt: Add -Wno-cpp option.
5230         * c-common.c (struct reason_option_codes_t): Map cpp warning
5231         reason codes to gcc option indexes.
5232         * (c_option_controlling_cpp_error): New function, lookup the gcc
5233         option index for a cpp warning reason code.
5234         * (c_cpp_error): Add warning reason argument, call
5235         c_option_controlling_cpp_error for diagnostic_override_option_index.
5236         * doc/invoke.texi: Document -Wno-cpp.
5237
5238 2010-04-07  Richard Guenther  <rguenther@suse.de>
5239
5240         * ipa-reference.c (mark_load): Use get_base_address.
5241         (mark_store): Likewise.
5242
5243         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
5244         inserting GIMPLE_NOPs into the IL.
5245         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5246         Explicitly strip handled components and indirect references.
5247
5248         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
5249         folding address expressions.
5250         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
5251         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
5252         operand_equal_p to compare decls.
5253         (ptr_deref_may_alias_decl_p): Likewise.
5254         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
5255         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
5256         Handle reversed comparison ops.
5257         * tree-sra.c (asm_visit_addr): Use get_base_address.
5258         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
5259         * ipa-reference.c (mark_address): Use get_base_address.
5260
5261 2010-04-07  Richard Guenther  <rguenther@suse.de>
5262
5263         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
5264         Propagate constants everywhere.
5265
5266 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
5267
5268         PR debug/43516
5269         * tree.c (MAX_INT_CACHED_PREC): Define.
5270         (nonstandard_integer_type_cache): New array.
5271         (build_nonstandard_integer_type): Cache results for precision
5272         <= MAX_INT_CACHED_PREC.
5273
5274 2010-04-07  Richard Guenther  <rguenther@suse.de>
5275
5276         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
5277         -fargument-noalias-global, -fargument-noalias-anything): Remove.
5278         * common.opt: Likewise.
5279         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
5280         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
5281         (nonoverlapping_memrefs_p): Likewise.
5282         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5283         * opts.c (common_handle_option): Handle OPT_fargument_alias,
5284         OPT_fargument_noalias, OPT_fargument_noalias_anything and
5285         OPT_fargument_noalias_global for backward compatibility.
5286
5287 2010-04-07  Richard Guenther  <rguenther@suse.de>
5288
5289         PR tree-optimization/43270
5290         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
5291         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
5292         * tree-ssa-pre.c (phi_translate_1): Adjust.
5293         (fully_constant_expression): Split out vn_reference handling to ...
5294         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
5295         Fold reads from constant strings.
5296         (vn_reference_lookup): Handle fully constant references.
5297         (vn_reference_lookup_pieces): Likewise.
5298         * Makefile.in (expmed.o-warn): Add -Wno-error.
5299
5300 2010-04-07  Martin Jambor  <mjambor@suse.cz>
5301
5302         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
5303
5304 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
5305
5306         PR driver/41594
5307         * gcc.c: Add -static-libstdc++ to list of recognized options.
5308
5309 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5310
5311         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
5312
5313 2010-04-07  Richard Guenther  <rguenther@suse.de>
5314
5315         PR middle-end/42617
5316         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
5317         bases build simple mem attributes to retain points-to information.
5318
5319 2010-04-07  Richard Guenther  <rguenther@suse.de>
5320
5321         PR middle-end/42617
5322         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
5323         preserve points-to related information.
5324
5325 2010-04-07  Richard Guenther  <rguenther@suse.de>
5326
5327         PR middle-end/42617
5328         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
5329         discard plain indirect references.
5330         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
5331         * tree.c (tree_nop_conversion): Likewise.
5332
5333 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
5334
5335         PR debug/43628
5336         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
5337
5338 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
5339
5340         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
5341         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
5342
5343 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
5344
5345         * tree-if-conv.c: Fix indentation and comments.
5346
5347 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
5348
5349         * tree-if-conv.c: Sort static functions in topological order.
5350
5351 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
5352
5353         * tree-if-conv.c: Fix indentation and comments.
5354
5355 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5356
5357         PR middle-end/43519
5358         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
5359         lang_hooks.types.type_for_size instead of
5360         build_nonstandard_integer_type.
5361         When converting an unsigned type to signed, double its precision.
5362         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
5363         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
5364         (graphite_create_new_loop_guard): When ub + 1 wraps around,
5365         use lb <= ub.
5366
5367 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5368
5369         PR middle-end/43519
5370         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
5371         POINTER_PLUS_EXPR for pointer types.
5372
5373 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5374
5375         PR middle-end/43519
5376         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
5377         * graphite-clast-to-gimple.c: Include langhooks.h.
5378         (max_signed_precision_type): New.
5379         (max_precision_type): Takes two types as arguments.
5380         (precision_for_value): New.
5381         (precision_for_interval): New.
5382         (gcc_type_for_interval): New.
5383         (gcc_type_for_value): New.
5384         (gcc_type_for_clast_term): New.
5385         (gcc_type_for_clast_red): New.
5386         (gcc_type_for_clast_bin): New.
5387         (gcc_type_for_clast_expr): Split up into several functions.
5388         (gcc_type_for_clast_eq): Rewritten.
5389         (compute_bounds_for_level): New.
5390         (compute_type_for_level_1): New.
5391         (compute_type_for_level): New.
5392         (gcc_type_for_cloog_iv): Removed.
5393         (gcc_type_for_iv_of_clast_loop): Rewritten.
5394         (graphite_create_new_loop): Compute the lower and upper bound types
5395         with gcc_type_for_clast_expr.
5396         (graphite_create_new_loop_guard): Same.
5397         (find_cloog_iv_in_expr): Removed.
5398         (compute_cloog_iv_types_1): Removed.
5399         (compute_cloog_iv_types): Removed.
5400         (gloog): Do not call compute_cloog_iv_types.
5401         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
5402         GBB_CLOOG_IV_TYPES.
5403         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
5404         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
5405         (GBB_CLOOG_IV_TYPES): Removed.
5406
5407 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5408
5409         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
5410         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
5411         (detect_commutative_reduction): Same.
5412
5413 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5414
5415         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
5416         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
5417         argument.
5418         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
5419         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
5420         (rewrite_commutative_reductions_out_of_ssa): Same.
5421         * passes.c (execute_function_todo): Call verify_ssa for every pass
5422         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
5423         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
5424         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
5425         with an extra argument.
5426         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
5427         verify_ssa only when the extra argument is true.
5428         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
5429         with an extra argument.
5430         (tree_transform_and_unroll_loop): Same.
5431
5432 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5433
5434         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
5435         for all the passes of the LNO having LOOP_CLOSED_SSA.
5436         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
5437         * tree-loop-distribution.c (pass_loop_distribution): Same.
5438         * tree-pass.h (TODO_verify_loops): Removed.
5439         * tree-ssa-loop.c (pass_tree_loop_init): Same.
5440         (pass_lim): Same.
5441         (pass_tree_unswitch): Same.
5442         (pass_predcom): Same.
5443         (pass_vectorize): Same.
5444         (pass_linear_transform): Same.
5445         (pass_graphite_transforms): Same.
5446         (pass_iv_canon): Same.
5447         (pass_complete_unroll): Same.
5448         (pass_complete_unrolli): Same.
5449         (pass_parallelize_loops): Same.
5450         (pass_loop_prefetch): Same.
5451         (pass_iv_optimize): Same.
5452
5453 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
5454
5455         PR middle-end/32824
5456         * passes.c (init_optimization_passes): Move pass_lim before
5457         pass_copy_prop and pass_dce_loop.
5458
5459 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
5460
5461         PR target/43667
5462         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
5463         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
5464         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
5465         MULTI_* defines for 4 argument vpermil2p* builtins.
5466
5467 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
5468
5469         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
5470         * config/i386/i386.c (x86_maybe_negate_const_int): New.
5471         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
5472         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
5473         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
5474         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
5475         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
5476         Use x86_maybe_negate_const_int to output insn mnemonic.
5477         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
5478         check from instruction predicate.  Update comments.
5479         * config/i386/sync.md (sync_add<mode>): Use
5480         x86_maybe_negate_const_int to output insn mnemonic.
5481
5482 2010-04-06  Jan Hubicka  <jh@suse.cz>
5483
5484         PR tree-optimization/42906
5485         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
5486         IGNORE_SELF argument.  Set visited_control_parents for fully
5487         processed BBs.
5488         (find_obviously_necessary_stmts): Update call of
5489         mark_control_dependent_edges_necessary.
5490         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
5491
5492 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
5493
5494         * config/i386/i386.md: Remove comment about 'e' and 'E'
5495         operand modifier.
5496
5497 2010-04-06  Richard Guenther  <rguenther@suse.de>
5498
5499         PR tree-optimization/43627
5500         * tree-vrp.c (extract_range_from_unary_expr): Widenings
5501         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
5502         not varying.
5503
5504 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
5505
5506         * BASE-VER: Change to 4.6.0.
5507
5508         PR target/43638
5509         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
5510         handling.
5511
5512 2010-04-06  Richard Guenther  <rguenther@suse.de>
5513
5514         PR middle-end/43661
5515         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
5516
5517 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5518
5519         * doc/invoke.texi (Optimize Options): Document that LTO
5520         won't remove object access purely due to incompatible
5521         declarations.
5522
5523 2010-04-04  Matthias Klose  <doko@ubuntu.com>
5524
5525         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
5526         Initialize variable.
5527
5528 2010-04-03  Richard Guenther  <rguenther@suse.de>
5529
5530         PR middle-end/42509
5531         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
5532         require a non-NULL MEM_OFFSET.
5533
5534 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
5535
5536         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
5537         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
5538         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
5539         config/alpha/predicates.md, config/arm/arm.md,
5540         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
5541         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
5542         config/darwin9.h, config/darwin.c, config/darwin.h,
5543         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
5544         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
5545         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
5546         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
5547         config/mips/mips.md, config/mn10300/mn10300.c,
5548         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
5549         config/rs6000/aix.h, config/rs6000/dfp.md,
5550         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
5551         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
5552         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
5553         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
5554         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
5555         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
5556         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
5557         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
5558         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
5559         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
5560         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
5561         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
5562         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
5563         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
5564         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
5565         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
5566         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
5567         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
5568         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
5569         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
5570         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
5571         opt-functions.awk, opth-gen.awk, params.def, passes.c,
5572         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
5573         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
5574         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
5575         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
5576         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
5577         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
5578         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
5579         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
5580         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
5581         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
5582         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
5583         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
5584         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
5585         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
5586
5587 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5588
5589         PR other/43620
5590         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
5591         * aclocal.m4: Regenerate.
5592
5593 2010-04-02  Richard Guenther  <rguenther@suse.de>
5594
5595         PR tree-optimization/43629
5596         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
5597         if we have seen a constant value.
5598
5599 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
5600
5601         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
5602
5603 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
5604
5605         PR target/43469
5606         * arm.c (legitimize_tls_address): Adjust call to
5607         gen_tls_load_dot_plus_four.
5608         (arm_note_pic_base): New function.
5609         (arm_cannot_copy_insn_p): Use it.
5610         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
5611         constraint.
5612
5613 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5614
5615         PR bootstrap/43531
5616
5617         Revert:
5618         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5619
5620         * Makefile.in ($(out_object_file)): Depend on
5621         gt-$(basename $(notdir $(out_file))).h.
5622
5623 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
5624
5625         * config.gcc (lm32-*-rtems*): Add t-lm32.
5626
5627 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
5628
5629         * config.gcc: Add lm32-*-rtems*.
5630         * config/lm32/rtems.h: New file.
5631
5632 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
5633
5634         PR target/42609
5635         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
5636
5637 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
5638
5639         * dwarf2out.c (output_compilation_unit_header): For
5640         -gdwarf-4 use version 4 instead of version 3.
5641         (output_line_info): For version 4 and above emit additional
5642         maximum ops per insn header field.
5643         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
5644
5645         * dwarf2out.c (is_c_family, is_java): Remove.
5646         (lower_bound_default): New function.
5647         (add_bound_info, gen_descr_array_type_die): Use it.
5648
5649 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
5650
5651         PR debug/43325
5652         * dwarf2out.c (gen_variable_die): Allow debug info for variable
5653         re-declaration when it happens in a function.
5654
5655 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
5656
5657         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
5658         (cgraph_remove_function_insertion_hook): Same.
5659         (cgraph_call_function_insertion_hooks): Same.
5660
5661 2010-04-01  Richard Guenther  <rguenther@suse.de>
5662
5663         PR middle-end/43614
5664         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
5665         and TREE_THIS_VOLATILE.
5666         (copy_ref_info): Likewise.
5667         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
5668         * tree.c (build6_stat): Ignore side-effects of all but arg5
5669         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
5670         TARGET_MEM_REF.
5671
5672 2010-04-01  Richard Guenther  <rguenther@suse.de>
5673
5674         PR tree-optimization/43607
5675         * ipa-type-escape.c (check_call): Do not access non-existing
5676         arguments.
5677
5678 2010-04-01  Richard Guenther  <rguenther@suse.de>
5679
5680         PR middle-end/43602
5681         Revert
5682         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
5683                     Jack Howarth <howarth@bromo.med.uc.edu>
5684
5685         * tree-profile.c (tree_init_ic_make_global_vars): Make static
5686         variables TLS.
5687
5688 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5689
5690         * doc/install.texi (Prerequisites): Document libelf usability on
5691         IRIX 5/6 and Solaris 2.
5692         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
5693         Update GNU as, GNU ld requirements.
5694         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
5695         Document Sun Studio compiler download.
5696         Update and simplify as, ld recommendations.
5697         (Specific, *-*-solaris2.7): Note obsoletion, removal.
5698
5699 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5700
5701         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
5702         with_tune_32 to pentium4.
5703
5704 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
5705
5706         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
5707
5708 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5709
5710         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
5711         obsoletion, removal.
5712         Update IDO URL.
5713         Document GNU as requirement.
5714         Update configure requirements.
5715         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
5716         Recomment IRIX 6.5.18+.
5717         Document IDF/IDL requirement.
5718         Document GNU as requirement.
5719         Document GNU ld bootstrap failure.
5720         Remove freeware.sgi.com reference.
5721
5722 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5723
5724         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
5725         UNIX V4.0, V5.0 obsoletion, removal.
5726         Remove --with-gc=simple reference.
5727         Update VM requirements during bootstrap.
5728         Remove -oldas bootstrap description.
5729         Update binutils reference.
5730         Remove comparison failure note.
5731
5732 2010-03-31  Richard Guenther  <rguenther@suse.de>
5733             Zdenek Dvorak  <ook@ucw.cz>
5734             Sebastian Pop  <sebastian.pop@amd.com>
5735
5736         PR middle-end/43464
5737         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
5738         with multiple arguments.
5739         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
5740
5741 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
5742
5743         * graphite-dependences.c (print_pddr): Call print_pdr with an
5744         extra argument.
5745         * graphite-poly.c (debug_pdr): Add an extra argument for the
5746         verbosity level.
5747         (print_pdr): Same.
5748         (print_pbb_domain): Same.
5749         (print_pbb): Same.
5750         (print_scop_context): Same.
5751         (print_scop): Same.
5752         (print_cloog): Same.
5753         (debug_pbb_domain): Same.
5754         (debug_pbb): Same.
5755         (print_pdrs): Same.
5756         (debug_pdrs): Same.
5757         (debug_scop_context): Same.
5758         (debug_scop): Same.
5759         (debug_cloog): Same.
5760         (print_scop_params): Same.
5761         (debug_scop_params): Same.
5762         (print_iteration_domain): Same.
5763         (print_iteration_domains): Same.
5764         (debug_iteration_domain): Same.
5765         (debug_iteration_domains): Same.
5766         (print_scattering_function): Same.
5767         (print_scattering_functions): Same.
5768         (debug_scattering_function): Same.
5769         (debug_scattering_functions): Same.
5770         * graphite-poly.h (debug_pdr): Update declaration.
5771         (print_pdr): Same.
5772         (print_pbb_domain): Same.
5773         (print_pbb): Same.
5774         (print_scop_context): Same.
5775         (print_scop): Same.
5776         (print_cloog): Same.
5777         (debug_pbb_domain): Same.
5778         (debug_pbb): Same.
5779         (print_pdrs): Same.
5780         (debug_pdrs): Same.
5781         (debug_scop_context): Same.
5782         (debug_scop): Same.
5783         (debug_cloog): Same.
5784         (print_scop_params): Same.
5785         (debug_scop_params): Same.
5786         (print_iteration_domain): Same.
5787         (print_iteration_domains): Same.
5788         (debug_iteration_domain): Same.
5789         (debug_iteration_domains): Same.
5790         (print_scattering_function): Same.
5791         (print_scattering_functions): Same.
5792         (debug_scattering_function): Same.
5793         (debug_scattering_functions): Same.
5794
5795 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
5796
5797         * graphite-poly.c (print_scattering_function_1): New.
5798         (print_scattering_function): Call it.
5799         (print_scop_params): Remove spaces at the end of lines.
5800         (print_cloog): New.
5801         (debug_cloog): New.
5802         * graphite-poly.h (print_cloog): Declared.
5803         (debug_cloog): Declared.
5804
5805 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
5806
5807         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
5808         in loop->header.
5809         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
5810         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
5811         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
5812         to switch between adding the IV bump in loop->latch or in loop->header.
5813
5814 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
5815
5816         * graphite-poly.c (print_scattering_function): Pretty print following
5817         the scoplib format.
5818         (print_pdr): Same.
5819         (print_pbb_domain): Same.
5820         (dump_gbb_cases): Same.
5821         (dump_gbb_conditions): Same.
5822         (print_pdrs): Same.
5823         (print_pbb): Same.
5824         (print_scop_params): Same.
5825         (print_scop_context): Same.
5826         (print_scop): Same.
5827         (print_pbb_body): New.
5828         (lst_indent_to): New.
5829         (print_lst): Start new lines with a #.
5830         * graphite-poly.h (pbb_bb): New.
5831         (pbb_index): Use pbb_bb.
5832         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
5833         disjuncts.
5834         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
5835
5836 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
5837
5838         * dwarf2out.c (size_of_die): For -gdwarf-4 use
5839         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
5840         and 0 instead of 1 for dw_val_class_flag.
5841         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
5842         dw_val_class_range_list, dw_val_class_loc_list,
5843         dw_val_class_lineptr and dw_val_class_macptr, use
5844         DW_FORM_flag_present for dw_val_class_flag and
5845         DW_FORM_exprloc for dw_val_class_loc.
5846         (output_die): For -gdwarf-4 print dw_val_class_loc
5847         size as uleb128 instead of 1 or 2 bytes and don't print
5848         anything for dw_val_class_flag.
5849
5850         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
5851         instead of cselib_lookup following by tweaking locs->setting_insn.
5852
5853         PR bootstrap/43596
5854         * cselib.c (cselib_process_insn): Clear cselib_current_insn
5855         even before returning from label, setjmp call or volatile asm
5856         handling.
5857
5858 2010-03-31  Richard Guenther  <rguenther@suse.de>
5859
5860         PR middle-end/43600
5861         * cgraphunit.c (cgraph_output_in_order): Do not allocate
5862         temporary data on stack.
5863
5864 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5865
5866         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
5867         (PUSHSECTION_ASM_OP): Remove.
5868         (POPSECTION_ASM_OP): Remove.
5869         (PUSHSECTION_FORMAT): Remove.
5870         * config/sol2.h (PUSHSECTION_FORMAT): Define.
5871         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
5872         * config/sol2.c (solaris_output_init_fini): Use it.
5873
5874 2010-03-31  Jie Zhang  <jie@codesourcery.com>
5875
5876         PR 43574
5877         * opt-functions.awk (var_type_struct): Use signed char type
5878         for simple variables.
5879
5880 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5881
5882         * config/sol2.c: Include output.h.
5883         (solaris_assemble_visibility): New function.
5884         * config/t-sol2 (sol2.o): Add output.h dependency.
5885         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
5886         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
5887         Redefine.
5888
5889 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
5890
5891         PR target/43580
5892         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
5893         V2SImode or XFmode on PRE_DEC.
5894
5895         PR debug/43557
5896         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
5897         BLKmode.
5898
5899 2010-03-31  Jie Zhang  <jie@codesourcery.com>
5900
5901         PR 43562
5902         * reload.h (caller_save_initialized_p): Declare.
5903         * toplev.c (backend_init_target): Don't call
5904         init_caller_save but set caller_save_initialized_p to false.
5905         * caller-save.c (caller_save_initialized_p): Define.
5906         (init_caller_save): Check caller_save_initialized_p.
5907         * ira.c (ira): Call init_caller_save if flag_caller_saves.
5908
5909 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5910
5911         PR target/39048
5912         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
5913         and soft-fp/t-softfp to tmake_file.
5914         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
5915         (LIBGCC2_TF_CEXT): Define.
5916         (TF_SIZE): Define.
5917
5918 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
5919
5920         PR debug/42977
5921         * cselib.c (n_useless_values): Document handling of debug locs.
5922         (n_useless_debug_values, n_debug_values): New variables.
5923         (new_elt_loc_list): Don't add to debug values, keep count.
5924         (promote_debug_loc): New.
5925         (cselib_reset_table): Zero new variables.
5926         (entry_and_rtx_equal_p): Promote debug locs.
5927         (discard_useless_locs): Increment n_useless_debug_values for
5928         debug values.
5929         (remove_useless_values): Adjust n_useless_values and n_debug_values
5930         with n_useless_debug_values.
5931         (add_mem_for_addr): Promote debug locs.
5932         (cselib_lookup_mem): Likewise.
5933         (cselib_lookup_addr): Renamed to...
5934         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
5935         (cselib_log_lookup): ... this.  Turn into...
5936         (cselib_lookup_addr): ... new wrapper.
5937         (cselib_lookup_from_insn): New.
5938         (cselib_invalidate_regno): Increment n_useless_debug_values for
5939         debug values.
5940         (cselib_invalidate_mem): Likewise.
5941         (cselib_process_insn): Take n_deleted and n_debug_values into
5942         account to guard remove_useless_value call.
5943         (cselib_finish): Zero n_useless_debug_values.
5944         * cselib.h (cselib_lookup_from_insn): Declare.
5945         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
5946         (sched_analyze_2): Likewise.
5947
5948 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
5949
5950         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
5951         functions.
5952         (adjust_mems): Replace narrowing SUBREG of expression containing
5953         just PLUS, MINUS, MULT and ASHIFT of registers and constants
5954         with operations in the narrower mode.
5955
5956         PR debug/43593
5957         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
5958         regs_invalidated_by_call instead all call_used_reg_set registers.
5959
5960 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
5961
5962         PR middle-end/43430
5963         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
5964         pointer comparisons with types_compatible_p.
5965         * tree-vect-stmts.c (vectorizable_call): Same.
5966         (vectorizable_condition): Same.
5967
5968 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5969
5970         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
5971         stack check if the mask would be zero.
5972
5973 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
5974             Jack Howarth <howarth@bromo.med.uc.edu>
5975
5976         * tree-profile.c (tree_init_ic_make_global_vars): Make static
5977         variables TLS.
5978
5979 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
5980
5981         PR other/25232
5982         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
5983         and __unordtf2.
5984         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
5985         Include ___unordxf2 and ___unordtf2.
5986         * config/i386/libgcc-glibc.ver: Do not define inheritance from
5987         GCC_4.4.0 here.
5988
5989 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
5990
5991         * config/lm32/t-lm32: New file.
5992         * config.gcc: Use the above file when targetting lm32.
5993
5994 2010-03-28  Duncan Sands  <baldrick@free.fr>
5995
5996         * Makefile.in (PLUGIN_HEADERS): Add except.h.
5997
5998 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
5999
6000         PR middle-end/43431
6001         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
6002         Improve vectorization cost model diagnostic.
6003
6004 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
6005
6006         PR middle-end/43436
6007         * tree-vect-data-refs.c (vect_analyze_data_refs): When
6008         compute_data_dependences_for_loop returns false, early exit
6009         and output an extra diagnostic for the failed data reference
6010         analysis.
6011
6012 2010-03-29  Richard Guenther  <rguenther@suse.de>
6013
6014         PR tree-optimization/43560
6015         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
6016         (can_sm_ref_p): Treat stores to readonly locations as trapping.
6017
6018 2010-03-29  Jie Zhang  <jie@codesourcery.com>
6019
6020         PR 43564
6021         * toplev.c (process_options): Set optimization_default_node
6022         and optimization_current_node.
6023         * opts.c (decode_options): Don't set optimization_default_node
6024         and optimization_current_node.
6025
6026 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
6027
6028         * config/rtems.h: Abandon -qrtems_debug.
6029
6030 2010-03-28  Jan Hubicka  <jh@suse.cz>
6031
6032         PR tree-optimization/43505
6033         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
6034         map should not be copied.
6035
6036 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6037
6038         PR middle-end/41674
6039         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
6040         cdtors, set DECL_PRESERVE_P.
6041         * ipa.c (cgraph_externally_visible_p): Return true if declaration
6042         should be preseved.
6043
6044 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
6045
6046         PR tree-optimization/43528
6047         * stor-layout.c (place_field): Check that constant fits into
6048         unsigned HWI when skipping calculation of MS bitfield layout.
6049
6050 2010-03-27  Jan Hubicka  <jh@suse.cz>
6051
6052         PR middle-end/43391
6053         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
6054         notice_global_symbol work.
6055
6056 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
6057
6058         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
6059         instead of dwarf2out_decl.
6060         (struct var_loc_node): Remove section_label field.
6061         (dwarf2out_function_decl): New function.
6062         (dwarf2out_var_location): Don't set section_label field.
6063         (dwarf2out_begin_function): Don't empty decl_loc_table here.
6064
6065 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
6066
6067         PR tree-optimization/43544
6068         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6069         First argument for builtin vectorized function hook is now a
6070         tree to be able to distinguish between machine specific and
6071         standard builtins.
6072         * targhooks.c (default_builtin_vectorized_function): Ditto.
6073         * targhooks.h (default_builtin_vectorized_function): Ditto.
6074         * target.h (struct gcc_target): Ditto.
6075         * tree-vect-stmts.c (vectorizable_function): Ditto.
6076         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
6077         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
6078         Ditto.
6079
6080 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
6081
6082         PR c/43381
6083         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
6084         nested binding iff it is a FUNCTION_DECL.
6085         (store_parm_decls_newstyle): Pass nested=true to bind for
6086         FUNCTION_DECLs amongst parameters.
6087
6088 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
6089
6090         * var-tracking.c (vt_expand_loc_callback): Don't run
6091         cselib_expand_value_rtx_cb in dummy mode if
6092         cselib_dummy_expand_value_rtx_cb returned false.
6093
6094         * var-tracking.c (emit_note_insn_var_location): For one part
6095         notes with offset 0, don't add EXPR_LIST around the location.
6096         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
6097         add_location_or_const_value_attribute): Adjust for that change.
6098
6099         PR debug/43540
6100         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
6101         into first operand and location into second.
6102         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
6103         dw_cfi_oprnd_loc for DW_CFA_expression.
6104         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
6105         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
6106         assume first argument is regnum and second argument is location.
6107
6108 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
6109
6110         PR target/42113
6111         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
6112         of scratch register to DImode.  Split to DImode comparison operator.
6113         Use SImode subreg of scratch register in the multiplication.
6114         (*cmp_sadd_sidi): Ditto.
6115         (*cmp_ssub_si): Ditto.
6116         (*cmp_ssub_sidi): Ditto.
6117
6118 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
6119
6120         PR target/43524
6121         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
6122         Remove invalid assert and wrong comment.
6123
6124 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
6125
6126         PR debug/43516
6127         * flags.h (final_insns_dump_p): New extern.
6128         * final.c (final_insns_dump_p): New variable.
6129         (rest_of_clean_state): Set it before -fdump-final-insns=
6130         dumping, clear afterwards.
6131         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
6132         MEM_ALIAS_SET on MEMs.
6133
6134 2010-03-26  David S. Miller  <davem@davemloft.net>
6135
6136         * configure.ac: Fix sparc GOTDATA_OP bug check.
6137         * configure: Rebuild.
6138
6139 2010-03-26  Alan Modra  <amodra@gmail.com>
6140
6141         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
6142
6143 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6144
6145         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
6146         TLS_SECTION_ASM_FLAG.
6147
6148 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
6149
6150         PR bootstrap/43511
6151         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
6152         Clear first_function_block_is_cold.
6153
6154         PR c/43385
6155         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
6156         argument if the argument is truth_value_p.
6157
6158 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
6159
6160         * config/rs6000/constraints.md: Update copyright year for my changes.
6161
6162         PR target/43484
6163         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
6164         used in reg+reg addressing, swap registers.
6165
6166 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
6167
6168         PR debug/43293
6169         * target.h (struct gcc_target): Add code_end hook.
6170         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
6171         if not yet defined.
6172         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
6173         * toplev.c (compile_file): Call targetm.asm_out.code_end
6174         hook before unwind info/debug info output.
6175         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
6176         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
6177         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
6178         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
6179         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
6180         * config/i386/i386.c (ix86_file_end): Renamed to...
6181         (ix86_code_end): ... this.  Make static.  Don't call
6182         file_end_indicate_exec_stack.  Emit unwind info using
6183         final_start_function/final_end_function.
6184         (darwin_x86_file_end): Remove.
6185         (TARGET_ASM_CODE_END): Define.
6186         * config/i386/i386.h (TARGET_ASM_FILE_END,
6187         NEED_INDICATE_EXEC_STACK): Don't define.
6188         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
6189         (TARGET_ASM_FILE_END): Define to darwin_file_end.
6190         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
6191         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
6192
6193         PR target/43498
6194         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
6195         at the beginning and final_end_function at the end.
6196         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
6197
6198 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6199
6200         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
6201         and Sun as TLS syntax.
6202         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
6203         * configure: Regenerate.
6204         * config.in: Regenerate.
6205         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
6206         (default_elf_asm_named_section): Use it.
6207         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
6208         (i386_output_dwarf_dtprel): Likewise.
6209         (output_addr_const_extra): Likewise.
6210         (output_pic_addr_const): Lowercase @GOTTPOFF.
6211         (output_addr_const_extra): Likewise.
6212         (output_pic_addr_const): Lowercase @GOTNTPOFF.
6213         (output_addr_const_extra): Likewise.
6214         (output_pic_addr_const): Lowercase @INDNTPOFF.
6215         (output_addr_const_extra): Likewise.
6216         (output_pic_addr_const): Lowercase @NTPOFF.
6217         (output_addr_const_extra): Likewise.
6218         (output_pic_addr_const): Lowercase @TPOFF.
6219         (output_addr_const_extra): Likewise.
6220         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
6221         (*tls_global_dynamic_64): Likewise.
6222         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
6223         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
6224
6225         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
6226         (ASM_OUTPUT_TLS_COMMON): Use it.
6227         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
6228
6229         PR target/38118
6230         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
6231         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
6232         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
6233         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
6234         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
6235         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
6236
6237 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6238
6239         * config/i386/i386.c (override_options): Don't accept
6240         -mtls-dialect=sun any longer.
6241         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
6242         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
6243         (*tls_local_dynamic_base_32_sun): Likewise.
6244         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
6245
6246 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
6247
6248         PR debug/43508
6249         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
6250         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
6251
6252         PR debug/43479
6253         * ira.c (adjust_cleared_regs): New function.
6254         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
6255
6256         PR debug/19192
6257         PR debug/43479
6258         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
6259         from gimple_block.
6260         * expr.c (expand_expr_real): Restore previous
6261         curr_insn_source_location and curr_insn_block after
6262         expand_expr_real_1 call.
6263         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
6264         instead of expand_expr_real_1.
6265
6266 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
6267
6268         PR rtl-optimization/43413
6269         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
6270         hard regs too.
6271
6272 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
6273
6274         PR target/43348
6275         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
6276         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
6277
6278 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
6279
6280         * config/i386/i386.c (ix86_target_string): Add -mfma.
6281         Fix a typo in comment.
6282
6283 2010-03-22  Mike Stump  <mikestump@comcast.net>
6284
6285         PR target/23071
6286         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
6287         Don't overly align based upon packed packed fields.
6288
6289 2010-03-22  Jason Merrill  <jason@redhat.com>
6290
6291         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
6292         Use () rather than [], and move before the element type.
6293
6294 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6295
6296         * doc/configfiles.texi (Configuration Files): Removed
6297         fixinc/Makefile*, intl/Makefile.*.
6298         * doc/makefile.texi: Fixed markup. Abstract from version
6299         control system used.
6300         (Makefile): Removed obsolete gcc/java/parse.y example.
6301         * doc/sourcebuild.texi: Likewise.
6302         (Top Level): Added config, gnattools, libdecnumber, libgcc,
6303         libgomp, libssp.  Removed fastjar.
6304         (Miscellaneous Docs): Clarify location.
6305         Added COPYING3, COPYING3.LIB.
6306         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
6307
6308 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6309
6310         PR target/38085
6311         * config/i386/i386.c (x86_function_profiler)
6312         [!NO_PROFILE_COUNTERS]: Fix typo.
6313         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
6314         instead of callq.
6315
6316 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
6317             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6318
6319         * doc/sourcebuild.texi (Test Directives): Split into six
6320         subsections, with most of the current text in new subsections
6321         Directives, Selectors, and Final Actions.
6322         (Directives): Split list of test directives into multiple
6323         subsubsections.
6324         (Selectors): Describe use and syntax of selectors.
6325         (Effective-Target Keywords): Describe all existing keywords.
6326         (Add Options): Describe features for dg-add-options.
6327         (Require Support): Describe variants of dg-require-support.
6328         (Final Actions): Describe commands to use in dg-final.
6329
6330 2010-03-22  Michael Matz  <matz@suse.de>
6331
6332         PR middle-end/43475
6333         * recog.c (validate_replace_rtx_group): Replace also in
6334         REG_EQUAL and REG_EQUIV notes.
6335
6336 2010-03-22  Richard Guenther  <rguenther@suse.de>
6337
6338         PR tree-optimization/43390
6339         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
6340         sure vector extracts are type correct.
6341
6342 2010-03-22  Richard Guenther  <rguenther@suse.de>
6343
6344         PR middle-end/40106
6345         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
6346         x * sqrt (x) even when optimizing for size if the target
6347         has native support for sqrt.
6348
6349 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
6350
6351         * varasm.c (make_decl_rtl_for_debug): Also clear
6352         flag_mudflap for the duration of make_decl_rtl call.
6353
6354         PR debug/43443
6355         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
6356         locs from preserved VALUEs.
6357
6358 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6359
6360         PR middle-end/42718
6361         * pa.md (movmemsi): Set align to one if zero.
6362         (movmemdi): Likewise.
6363
6364 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
6365
6366         PR target/42321
6367         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
6368         with their corresponding prologue pushes.
6369
6370 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
6371
6372         PR target/43156
6373         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
6374         at the begining or end.
6375         (spu_expand_epilogue): Likewise.
6376
6377 2010-03-20  Richard Guenther  <rguenther@suse.de>
6378
6379         PR rtl-optimization/43438
6380         * combine.c (make_extraction): Properly zero-/sign-extend an
6381         extraction of the low part of a CONST_INT.  Also handle
6382         CONST_DOUBLE.
6383
6384 2010-03-19  Mike Stump  <mikestump@comcast.net>
6385
6386         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
6387         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
6388         (override_options): Use SUBTARGET32_DEFAULT_CPU.
6389
6390 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
6391
6392         PR c/43211
6393         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
6394         an error.
6395
6396 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
6397
6398         PR rtl-optimization/42258
6399         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
6400         use that may match DEF.
6401
6402         PR target/40697
6403         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
6404         the cost of loading the constant rather than assuming
6405         COSTS_N_INSNS (1).
6406         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
6407         outer code is AND, do the same tests as the andsi3 expander and
6408         return COSTS_N_INSNS (1) if and is cheap.
6409
6410         * optabs.c (avoid_expensive_constant): Fix formatting.
6411
6412 2010-03-19  Michael Matz  <matz@suse.de>
6413
6414         PR c++/43116
6415         * attribs.c (decl_attributes): When rebuilding a function pointer
6416         type use the same qualifiers as the original pointer type.
6417
6418 2010-03-19  Martin Jambor  <mjambor@suse.cz>
6419
6420         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
6421         and is_gimple_ip_invariant_address.
6422
6423 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6424
6425         Revert
6426         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6427
6428         * config/arm/arm.c (arm_override_options): Turn off
6429         flag_dwarf2_cfi_asm for AAPCS variants.
6430
6431 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6432
6433         PR target/43399
6434         * config/arm/arm.c (emit_multi_reg_push): Update comments.
6435         Use PRE_MODIFY instead of PRE_DEC.
6436         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
6437         (vfp_emit_fstmd): Likewise.
6438
6439 2010-03-19  Michael Matz  <matz@suse.de>
6440
6441         PR target/43305
6442         * builtins.c (expand_builtin_interclass_mathfn,
6443         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
6444         if that fails.
6445
6446 2010-03-19  Richard Guenther  <rguenther@suse.de>
6447
6448         PR tree-optimization/43415
6449         * tree-ssa-pre.c (phi_translate): Split out worker to ...
6450         (phi_translate_1): ... this.
6451         (phi_translate): Move all caching here.  Cache all NARY
6452         and REFERENCE translations.
6453
6454 2010-03-19  David S. Miller  <davem@davemloft.net>
6455
6456         With help from Eric Botcazou.
6457         * config/sparc/sparc.c: Include dwarf2out.h.
6458         (emit_pic_helper): Delete.
6459         (pic_helper_symbol_name): Delete.
6460         (pic_helper_emitted_p): Delete.
6461         (pic_helper_needed): New.
6462         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
6463         (get_pc_thunk_name): New.
6464         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
6465         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
6466         Set pic_helper_needed to true.  Don't call emit_pic_helper.
6467         (sparc_expand_prologue): Update load_pic_register call.
6468         (sparc_output_mi_thunk): Likewise.
6469         (sparc_file_end): Emit a hidden comdat symbol for the PIC
6470         thunk if possible.  Output CFI information as needed.
6471
6472 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6473             Jack Howarth <howarth@bromo.med.uc.edu>
6474
6475         PR target/36399
6476         * config/i386/i386.h: Fix ABI on darwin x86-32.
6477
6478 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
6479
6480         * tree.h: Declare make_decl_rtl_for_debug.
6481         * varasm.c (make_decl_rtl_for_debug): New.
6482         * dwarf2out.c (rtl_for_decl_location): Call it.
6483         * cfgexpand.c (expand_debug_expr): Call it.
6484
6485 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
6486
6487         PR bootstrap/43399
6488         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
6489         mem_mode.
6490
6491         PR bootstrap/43403
6492         * var-tracking.c (vt_init_cfa_base): Do nothing if
6493         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
6494
6495 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
6496
6497         PR debug/42873
6498         * var-tracking.c (canonicalize_vars_star): New.
6499         (dataflow_post_merge_adjust): Use it.
6500
6501 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
6502
6503         PR debug/43058
6504         * var-tracking.c (non_suitable_const): New function.
6505         (add_uses): For DEBUG_INSNs with constants, don't record any
6506         value, instead just the constant value itself.
6507         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
6508         is not VAR_LOC_UNKNOWN_P, set var to the constant.
6509         (emit_notes_in_bb): Likewise.
6510         (emit_note_insn_var_location): For onepart variables if
6511         cur_loc is a VOIDmode constant, use DECL_MODE.
6512
6513 2010-03-18  Martin Jambor  <mjambor@suse.cz>
6514
6515         PR middle-end/42450
6516         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
6517         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
6518         all non-clones.  Moved call redirection...
6519         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
6520         (cgraph_materialize_all_clones): Dispose of all
6521         combined_args_to_skip bitmaps.
6522         (verify_cgraph_node): Do not check for edges pointing to wrong
6523         nodes in inline clones.
6524         * tree-inline.c (copy_bb): Call
6525         cgraph_redirect_edge_call_stmt_to_callee.
6526         * ipa.c (cgraph_remove_unreachable_nodes): Call
6527         cgraph_node_remove_callees even when there are used clones.
6528
6529 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
6530
6531         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
6532
6533 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
6534
6535         PR target/43383
6536         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
6537         for 32bit.
6538
6539 2010-03-18  Michael Matz  <matz@suse.de>
6540
6541         PR middle-end/43419
6542         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
6543         into sqrt(x) if we need to preserve signed zeros.
6544
6545 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
6546             Eric Botcazou  <ebotcazou@adacore.com>
6547
6548         PR rtl-optimization/43360
6549         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
6550         note if we don't know its invariant status.
6551
6552 2010-03-18  Michael Matz  <matz@suse.de>
6553
6554         PR tree-optimization/43402
6555         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
6556         PHI chains of ssa names registered for update.
6557
6558 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
6559
6560         PR target/42427
6561         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
6562         non-offsettable and pre_modify update addressing.
6563         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
6564         and "2" alternatives "#".
6565         (*movdd_softfloat32): Make all alternatives "#";
6566         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
6567         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
6568         (*movdf_softfloat32): Make all alternatives "#";
6569         (movdi): Use the new DIFD mode iterator to create a common splitter
6570         for movdi, movdf and movdd patterns.
6571
6572 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
6573
6574         * common.opt (dumpdir): Remove redundant tab.
6575
6576 2010-03-17  Martin Jambor  <mjambor@suse.cz>
6577
6578         PR tree-optimization/43347
6579         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
6580         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
6581
6582 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
6583
6584         PR rtl-optimization/42216
6585         * regrename.c (create_new_chain): New function, broken out from...
6586         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
6587         appending a use to an empty chain.
6588         (build_def_use): Remove previous changes that convert OP_INOUT to
6589         OP_OUT operands; instead detect the case where an OP_INOUT operand
6590         uses a previously untracked register and create an empty chain for it.
6591
6592 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6593
6594         * doc/extend.texi (Function Attributes): Rewrite unfinished
6595         sentence in ms_abi documentation.
6596
6597 2010-03-17  Alan Modra  <amodra@gmail.com>
6598
6599         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
6600         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
6601         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
6602         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
6603
6604 2010-03-16  Richard Henderson  <rth@redhat.com>
6605
6606         PR middle-end/43365
6607         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
6608         (lower_try_finally): Save and restore eh_seq around the expansion
6609         of the try-finally.
6610
6611 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
6612
6613         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
6614         statements before splitting block.
6615
6616 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6617
6618         * doc/sourcebuild.texi (Testsuites): Fix markup.
6619         Use pathnames relative to gcc/testsuite.
6620         (Test Directives): Move description of how timeout is determined.
6621         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
6622         (C Tests): Correct gcc.misc-tests directory.
6623         Framework tests now live in gcc.test-framework.
6624
6625 2010-03-16  Richard Guenther  <rguenther@suse.de>
6626
6627         PR middle-end/43379
6628         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
6629         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
6630
6631 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
6632             Alexandre Oliva  <aoliva@redhat.com>
6633
6634         PR tree-optimization/42917
6635         * lambda-code.c (remove_iv): Skip debug statements.
6636         (lambda_loopnest_to_gcc_loopnest): Likewise.
6637         (not_interesting_stmt): Debug statements are not interesting.
6638
6639 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
6640
6641         PR debug/43051
6642         PR debug/43092
6643         * cselib.c (cselib_preserve_constants,
6644         cfa_base_preserved_val): New static variables.
6645         (preserve_only_constants): New function.
6646         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
6647         clear its REG_VALUES.  If cselib_preserve_constants, don't
6648         empty the whole hash table, but preserve there VALUEs with constants,
6649         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
6650         (cselib_preserve_cfa_base_value): New function.
6651         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
6652         (cselib_init): Change argument to int bitfield.  Set
6653         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
6654         is in it.
6655         (cselib_finish): Clear cselib_preserve_constants and
6656         cfa_base_preserved_val.
6657         * cselib.h (enum cselib_record_what): New enum.
6658         (cselib_init): Change argument to int.
6659         (cselib_preserve_cfa_base_value): New prototype.
6660         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
6661         * dse.c (dse_step1): Likewise.
6662         * cfgcleanup.c (thread_jump): Likewise.
6663         * sched-deps.c (sched_analyze): Likewise.
6664         * gcse.c (local_cprop_pass): Likewise.
6665         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
6666         If FN is non-NULL, call the callback always and whenever it returns
6667         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
6668         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
6669         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
6670         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
6671         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
6672         * var-tracking.c: Include recog.h.
6673         (bb_stack_adjust_offset): Remove.
6674         (vt_stack_adjustments): Don't call it, instead just gather the
6675         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
6676         (adjust_stack_reference): Remove.
6677         (compute_cfa_pointer): New function.
6678         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
6679         (struct adjust_mem_data): New type.
6680         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
6681         functions.
6682         (get_address_mode): New function.
6683         (replace_expr_with_values): Use it.
6684         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
6685         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
6686         (adjust_sets): Remove.
6687         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
6688         Use get_address_mode.
6689         (get_adjusted_src): Remove.
6690         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
6691         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
6692         (add_with_sets): Don't call adjust_sets.
6693         (fp_setter, vt_init_cfa_base): New functions.
6694         (vt_initialize): Change return type to bool.  Move most of pool etc.
6695         initialization to the beginning of the function from end.  Pass
6696         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
6697         If !frame_pointer_needed, call vt_stack_adjustment before mos
6698         vector is filled, call vt_init_cfa_base if argp/framep has been
6699         eliminated to sp.  If frame_pointer_needed and argp/framep has
6700         been eliminated to hard frame pointer, set
6701         hard_frame_pointer_adjustment and call vt_init_cfa_base after
6702         encountering fp setter in the prologue.  For MO_ADJUST, call
6703         log_op_type before pusing the op into mos vector, not afterwards.
6704         Call adjust_insn before cselib_process_insn/add_with_sets,
6705         call cancel_changes (0) afterwards.
6706         (variable_tracking_main_1): Adjust for vt_initialize calling
6707         vt_stack_adjustments and returning whether it succeeded or not.
6708
6709 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
6710
6711         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
6712         debug statements.
6713
6714 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
6715
6716         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
6717         has been set.
6718         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
6719         drap_reg has not been set.
6720
6721 2010-03-15  Michael Matz  <matz@suse.de>
6722
6723         PR middle-end/43300
6724         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
6725         use it to expand block copies.
6726         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6727         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
6728         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
6729
6730 2010-03-15  Richard Guenther  <rguenther@suse.de>
6731
6732         PR tree-optimization/43367
6733         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
6734         elimination check.
6735
6736 2010-03-15  Richard Guenther  <rguenther@suse.de>
6737
6738         PR tree-optimization/43317
6739         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
6740
6741 2010-03-15  Martin Jambor  <mjambor@suse.cz>
6742
6743         PR tree-optimization/43141
6744         * tree-sra.c (create_abstract_origin): New function.
6745         (modify_function): Call create_abstract_origin.
6746
6747 2010-03-15  Chris Demetriou  <cgd@google.com>
6748
6749         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
6750         wasn't copied.
6751
6752 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6753
6754         PR middle-end/43354
6755         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
6756         call insert_out_of_ssa_copy for default definitions.
6757
6758 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6759
6760         * graphite-clast-to-gimple.c (my_long_long): Defined.
6761         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
6762         * graphite-sese-to-poly.c (my_long_long): Defined.
6763         (scop_ivs_can_be_represented): Use it.
6764
6765 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6766
6767         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
6768         graphite-max-bbs-per-function, and loop-block-tile-size.
6769         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
6770         with "maximum".
6771         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
6772
6773 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6774
6775         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
6776         forward declaration.
6777         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
6778         (add_upper_bounds_from_estimated_nit): New.
6779         (build_loop_iteration_domains): Use it.
6780
6781 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6782
6783         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
6784
6785 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6786
6787         PR middle-end/43306
6788         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
6789         should be an INTEGER_CST.  Also handle CASE_CONVERT.
6790
6791 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6792
6793         * graphite.c (graphite_initialize): To bound the number of bbs per
6794         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
6795         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
6796         * doc/invoke.texi: Document it.
6797
6798 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6799
6800         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
6801         * graphite-sese-to-poly.h (build_poly_scop): Same.
6802
6803 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6804
6805         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
6806         the number of parameters in the scop.  Use as an upper bound
6807         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
6808         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
6809         * doc/invoke.texi: Document it.
6810
6811 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
6812
6813         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
6814         * doc/c-tree.texi: Remove.
6815         * doc/generic.texi: Merge c-tree.texi here.
6816         * doc/gccint.texi (Trees): Remove menu entry.
6817         (c-tree.texi): Remove @include.
6818         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
6819         * doc/languages.texi (Reading RTL): Ditto.
6820
6821 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
6822
6823         PR target/42869
6824         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
6825
6826 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6827
6828         PR middle-end/42431
6829         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
6830         code added to work around reload clobbering CONST insns.
6831
6832 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
6833
6834         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
6835         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
6836         (cselib_preserve_only_values): Remove retain argument, don't
6837         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
6838         * cselib.h (cselib_preserve_only_values): Remove retain argument.
6839         * var-tracking.c (micro_operation): Move insn field before union.
6840         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
6841         (struct variable_tracking_info_def): Remove n_mos field, change
6842         mos into a vector of micro_operations.
6843         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
6844         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
6845         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
6846         changing into a vector.
6847         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
6848         come before all other uops generated by add_stores.
6849         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
6850         argument removal.
6851         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
6852         a vector.  Run just one pass over the bbs instead of separate counting
6853         and computation phase.
6854         (vt_finalize): Free VTI (bb)->mos vector instead of array.
6855
6856         PR debug/43329
6857         * tree-inline.c (remap_decls): Put old_var rather than origin_var
6858         into *nonlocalized_list vector.
6859         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
6860         even if origin is non-NULL.
6861         (gen_variable_die): Likewise.
6862         (process_scope_var): Don't change origin.
6863         (gen_decl_die): Likewise.
6864         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
6865         before adding new edges instead of after it, fix moving over
6866         debug stmts.
6867
6868 2010-03-11  David S. Miller  <davem@davemloft.net>
6869
6870         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
6871         of four.
6872         * configure: Rebuild.
6873
6874 2010-03-11  Martin Jambor  <mjambor@suse.cz>
6875
6876         PR tree-optimization/43257
6877         * tree.c (assign_assembler_name_if_neeeded): New function.
6878         (free_lang_data_in_cgraph): Assembler name assignment moved to the
6879         above new function.
6880         * tree.h (assign_assembler_name_if_neeeded): Declare.
6881         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
6882         the function if needed.
6883
6884 2010-03-11  Chris Demetriou  <cgd@google.com>
6885
6886         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
6887         include/stdint-gcc.h, and include/stdint.h world-readable.
6888
6889 2010-03-11  Richard Guenther  <rguenther@suse.de>
6890
6891         PR tree-optimization/43255
6892         * tree-vrp.c (process_assert_insertions_for): Do not insert
6893         asserts for trivial conditions.
6894
6895 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6896
6897         PR tree-optimization/43280
6898         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
6899         generation.  Move calculation of size out of the if branch.
6900         (find_bswap): Modify compare number generation.
6901
6902 2010-03-11  Richard Guenther  <rguenther@suse.de>
6903
6904         PR lto/43200
6905         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
6906         (input_gimple_stmt): Fixup handled component types during
6907         operand read.  Also fix up decls in ADDR_EXPRs.
6908
6909 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
6910
6911         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
6912         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
6913
6914 2010-03-10  Jan Hubicka  <jh@suse.cz>
6915
6916         PR c/43288
6917         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
6918         * varasm.c (get_variable_section): Don't do that here...
6919         (make_decl_rtl): ... and here.
6920         (do_assemble_alias): Produce decl RTL.
6921         (assemble_alias): Likewise.
6922
6923 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
6924
6925         PR debug/43290
6926         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
6927         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
6928         of fde->vdrap_reg.
6929         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
6930         (based_loc_descr): Only express drap or vdrap regno based expressions
6931         using DW_OP_fbreg when not optimizing.
6932         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
6933         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
6934         REG_CFA_SET_VDRAP note.
6935
6936 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
6937
6938         PR tree-optimization/43236
6939         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
6940         error in calculation of base address in reverse iteration case.
6941         (generate_builtin): Take number of latch executions if the statement
6942         is in the latch.
6943
6944 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
6945
6946         PR middle-end/42859
6947         * tree-eh.c: Include pointer-set.h.
6948         (lower_eh_dispatch): Filter out duplicate case labels and
6949         remove the unneeded edge when the label is unused.  Return
6950         true when some edges are removed.
6951         (execute_lower_eh_dispatch): When any lowering resulted in
6952         removing an edge, also delete unreachable blocks.
6953
6954 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
6955
6956         PR bootstrap/43287
6957         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6958         UNSPEC_MACHOPIC_OFFSET.
6959
6960 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
6961
6962         PR target/43294
6963         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
6964         (m68k_delegitimize_address): New function.
6965
6966 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
6967
6968         PR debug/43299
6969         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
6970
6971         PR debug/43299
6972         * var-tracking.c (adjust_sets): New function.
6973         (count_with_sets, add_with_sets): Use it.
6974         (get_adjusted_src): New inline function.
6975         (add_stores): Use it.
6976
6977         PR debug/43304
6978         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
6979         call cselib_dummy_expand_value_rtx_cb instead of
6980         cselib_expand_value_rtx_cb.
6981
6982         PR debug/43293
6983         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
6984         * config/i386/i386.c: Include debug.h and dwarf2out.h.
6985         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
6986         and .cfi_endproc around the pic thunks.
6987         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
6988         all queued unwind info register saves are saved before the call.
6989         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
6990         considered as sp-=4 for unwind info and the pop as sp+=4 which
6991         also clobbers dest, but doesn't actually restore it.
6992
6993         PR debug/43290
6994         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
6995         RTX_FRAME_RELATED_P.
6996
6997 2010-03-09  Jie Zhang  <jie@codesourcery.com>
6998
6999         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
7000         whitespaces in output template.
7001
7002 2010-03-09  Jie Zhang  <jie@codesourcery.com>
7003
7004         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
7005         out array boundary.
7006
7007 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
7008
7009         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
7010         builtins.exp in a separate job.
7011
7012 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7013
7014         * graphite-sese-to-poly.c (add_param_constraints): Use
7015         lower_bound_in_type and upper_bound_in_type.
7016
7017 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7018
7019         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
7020         instead of unsigned_type_node.
7021
7022 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7023             Reza Yazdani  <reza.yazdani@amd.com>
7024
7025         PR middle-end/43065
7026         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
7027         on pointer type parameters.
7028
7029 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
7030
7031         PR middle-end/42644
7032         PR middle-end/42130
7033         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
7034         handle conversions from pointer to integers.
7035         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
7036         induction variable, to be able to work with code generated by CLooG.
7037         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
7038         (build_poly_scop): Bail out if we cannot codegen a loop.
7039
7040 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
7041
7042         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
7043         code generation with gloog_error.
7044
7045 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7046
7047         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
7048         Call fold_convert on all the returned values.
7049         (expand_scalar_variables_expr): Pass to
7050         expand_scalar_variables_ssa_name the type of the resulting expression.
7051
7052 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7053
7054         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
7055         ppl_min_for_le_pointset.
7056         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
7057         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
7058
7059 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7060
7061         * graphite-dependences.c (map_into_dep_poly): Removed.
7062         (dependence_polyhedron_1): Use combine_context_id_scat.
7063
7064 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7065
7066         * graphite-poly.h (struct poly_scattering): Add layout documentation.
7067         (struct poly_bb): Same.
7068         (combine_context_id_scat): New.
7069
7070 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7071
7072         PR middle-end/42326
7073         * sese.c (name_defined_in_loop_p): Return false for default
7074         definitions.
7075
7076 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7077
7078         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
7079         and clean up the logic.
7080
7081 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7082
7083         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
7084         early return.
7085
7086 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
7087
7088         * var-tracking.c (remove_cselib_value_chains): Define only for
7089         ENABLE_CHECKING.
7090         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
7091         delete_slot_part, emit_notes_for_differences_1): Don't call
7092         remove_cselib_value_chains here.
7093         (set_slot_part, emit_notes_for_differences_2): Don't call
7094         add_cselib_value_chains here.
7095         (preserved_values): New vector.
7096         (preserve_value): New function.
7097         (add_uses, add_stores, vt_add_function_parameters): Use it
7098         instead of cselib_preserve_value.
7099         (changed_values_stack): New vector.
7100         (check_changed_vars_0): New function.
7101         (check_changed_vars_1, check_changed_vars_2): Use it.
7102         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
7103         changed_values_stack VALUEs.
7104         (vt_emit_notes): For all preserved_values call
7105         add_cselib_value_chains.  If ENABLE_CHECKING call
7106         remove_cselib_value_chains before verifying value_chains is empty.
7107         Initialize and free changed_values_stack.
7108         (vt_initialize): Initialize preserved_values.
7109         (vt_finalize): Free preserved_values.
7110
7111 2010-03-08  Richard Guenther  <rguenther@suse.de>
7112
7113         PR tree-optimization/43269
7114         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
7115         region detection.
7116
7117 2010-03-08  Martin Jambor  <mjambor@suse.cz>
7118
7119         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
7120         (ipa_is_param_called): Removed.
7121         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
7122         (ipa_print_node_params): Do not print the called flag.
7123         (ipa_write_node_info): Do not stream the called flag.
7124         (ipa_read_node_info): Likewise.
7125
7126 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
7127
7128         PR debug/43176
7129         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
7130         * cselib.c (struct expand_value_data): Add dummy field.
7131         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
7132         dummy to false.
7133         (cselib_dummy_expand_value_rtx_cb): New function.
7134         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
7135         any rtl.
7136         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
7137         * var-tracking.c: Include pointer-set.h.
7138         (variable): Change n_var_parts to char from int.  Add
7139         cur_loc_changed and in_changed_variables fields.
7140         (variable_canonicalize): Remove.
7141         (shared_var_p): New inline function.
7142         (unshare_variable): Maintain cur_loc_changed and
7143         in_changed_variables fields.  If var was in changed_variables,
7144         replace it there with new_var.  Just copy cur_loc instead of
7145         resetting it to something else.
7146         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
7147         (dataflow_set_union): Don't call variable_canonicalize.
7148         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
7149         of their DEBUG_EXPR_TREE_DECLs.
7150         (canonicalize_loc_order_check): Verify that cur_loc is NULL
7151         and in_changed_variables and cur_loc_changed is false.
7152         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
7153         and cur_loc_changed.  Don't update cur_loc here.
7154         (variable_merge_over_src): Don't call variable_canonicalize.
7155         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
7156         removing loc that is equal to cur_loc, clear cur_loc,
7157         set cur_loc_changed and ensure variable_was_changed is called.
7158         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
7159         compare pointers in cur_loc check, if it is equal to loc,
7160         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
7161         (variable_different_p): Remove compare_current_location argument,
7162         don't compare cur_loc.
7163         (dataflow_set_different_1): Adjust variable_different_p caller.
7164         (variable_was_changed): If dv had some var in changed_variables
7165         already, reset in_changed_variables flag for it and propagate
7166         cur_loc_changed over to the new variable.  On empty var
7167         always set cur_loc_changed.  Set in_changed_variables on whatever
7168         var is added to changed_variables.
7169         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
7170         Use shared_var_p.  When removing loc that is equal to cur_loc,
7171         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
7172         end, don't set it to something else, just call variable_was_changed.
7173         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
7174         loc being removed, clear cur_loc and set cur_loc_changed.
7175         Set cur_loc_changed if all locations have been removed.
7176         (struct expand_loc_callback_data): New type.
7177         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
7178         allocated.  Always create SUBREGs if simplify_subreg failed.
7179         Prefer to use cur_loc, when that fails and still in
7180         changed_variables (and seen first time) recompute it.  Set
7181         cur_loc_changed of variables which had to change cur_loc and
7182         compute elcd->cur_loc_changed if any of the subexpressions used
7183         had to change cur_loc.
7184         (vt_expand_loc): Adjust to pass arguments in
7185         expand_loc_callback_data structure.
7186         (vt_expand_loc_dummy): New function.
7187         (emitted_notes): New variable.
7188         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
7189         that weren't used for any other decl in current
7190         emit_notes_for_changes call call vt_expand_loc_dummy to update
7191         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
7192         first loc_chain location if NULL before.  Always use just
7193         cur_loc instead of first loc_chain location.  When cur_loc_changed
7194         is false, when not --enable-checking=rtl just don't emit any note.
7195         When rtl checking, compute the note and assert it is the same
7196         as previous note.  Clear cur_loc_changed and in_changed_variables
7197         at the end before removing from changed_variables.
7198         (check_changed_vars_3): New function.
7199         (emit_notes_for_changes): Traverse changed_vars to call
7200         check_changed_vars_3 on each changed var.
7201         (emit_notes_for_differences_1): Clear cur_loc_changed and
7202         in_changed_variables.  Recompute cur_loc of new_var.
7203         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
7204         (vt_emit_notes): Initialize and destroy emitted_notes.
7205
7206 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
7207
7208         PR rtl-optimization/42220
7209         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
7210         Use verify_reg_tracked to determine if we should use OP_OUT rather
7211         than OP_INOUT.
7212         (build_def_use): If we see an in-out operand for a register that we
7213         know nothing about, treat is an output if possible, fail the block if
7214         not.
7215
7216 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
7217
7218         PR debug/42897
7219         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
7220         permanently.
7221
7222 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
7223
7224         PR debug/42897
7225         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
7226         uses of relevant DEFs that are dead outside the loop too.
7227
7228 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
7229
7230         * var-tracking.c (dataflow_set_merge): Swap src and src2.
7231         Reverted:
7232         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
7233         PR debug/41371
7234         * var-tracking.c (values_to_unmark): New variable.
7235         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
7236         values_to_unmark vector.  Moved body to...
7237         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
7238         instead queue it into values_to_unmark vector.
7239         (vt_find_locations): Free values_to_unmark vector.
7240
7241 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7242
7243         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
7244         (site.exp): Export them when plugins are enabled.
7245
7246 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
7247
7248         PR middle-end/42326
7249         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
7250         that contain scevs.
7251         (chrec_fold_multiply): Same.
7252
7253 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7254
7255         PR c/43248
7256         * c-decl.c (build_compound_literal): Return early if init is
7257         an error_mark_node.
7258
7259 2010-03-04  Martin Jambor  <mjambor@suse.cz>
7260
7261         PR tree-optimization/43164
7262         PR tree-optimization/43191
7263         * tree-sra.c (type_consists_of_records_p): Reject records with
7264         zero-size bit-fields at the end.
7265
7266 2010-03-04  Mike Stump  <mikestump@comcast.net>
7267
7268         * Makefile.in (TAGS): Remove *.y.
7269
7270 2010-03-04  Richard Guenther  <rguenther@suse.de>
7271
7272         PR tree-optimization/40761
7273         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
7274         in reverse order.
7275         (my_rev_post_order_compute): New function.
7276         (init_pre): Call it.
7277
7278 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
7279
7280         PR middle-end/43209
7281         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
7282         decrease the cost of an IV candidate when the cost is infinite.
7283
7284 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7285
7286         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
7287         Use '3DNow!' for the extension of that name, ensure normal space
7288         after the string.
7289         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
7290
7291 2010-03-03  Jeff Law  <law@redhat.com>
7292
7293         * PR middle-end/32693
7294         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
7295         than gen_rtx_SUBREG.
7296         (extract_bit_field_1): Likewise.
7297
7298 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
7299
7300         * doc/sourcebuild.texi (Test directives): Document that arguments
7301         include-opts and exclude-opts are now optional for dg-skip-if,
7302         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
7303
7304 2010-03-03  Jason Merrill  <jason@redhat.com>
7305
7306         PR c++/12909
7307         * cgraph.h (varpool_node): Add extra_name field.
7308         * varpool.c (varpool_extra_name_alias): New.
7309         (varpool_assemble_decl): Emit extra name aliases.
7310         (varpool_mark_needed_node): Look past an extra name alias.
7311         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
7312         * lto-streamer-in.c (lto_input_tree): Read it.
7313         * lto-streamer-out.c (output_unreferenced_globals): Write it.
7314
7315 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
7316
7317         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
7318         (sparc*-*-solaris2*): ...this.
7319
7320 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
7321
7322         PR debug/43229
7323         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
7324         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
7325         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
7326         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
7327
7328         PR debug/43237
7329         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
7330         fallthrough to default handling, just with want_address 0 instead of 2.
7331         For single element lists, add_AT_loc directly, otherwise create an
7332         artificial variable DIE and stick location list to it.
7333
7334         PR debug/43177
7335         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
7336         (VAL_EXPR_HAS_REVERSE): Define.
7337         (reverse_op): New function.
7338         (add_stores): For reversible operations add an extra MO_VAL_USE.
7339
7340 2010-03-02  Jason Merrill  <jason@redhat.com>
7341
7342         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
7343
7344 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
7345
7346         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
7347         (sparc64-*-linux*): Likewise.
7348         (sparc64-*-solaris2*): Include assembler files before linker ones.
7349         (sparc-*-solaris2*): Simplify and reorder to match previous case.
7350         * config/sparc/gas.h: Delete.
7351         * config/sparc/sol2-64.h: Add copyright notice.
7352         * config/sparc/sol2-gas-bi.h: Likewise.
7353         * config/sparc/sol2-gld.h: Likewise.
7354         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
7355         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
7356         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
7357         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
7358         (sparc_elf_asm_named_section): Rename into...
7359         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
7360
7361 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
7362
7363         * config/alpha/alpha.c (override_options): Fix -mtune error message.
7364
7365 2010-03-02  Jeff Law  <law@redhat.com>
7366
7367         PR middle-end/42431
7368         * reload1.c (rtx_p, substitute_stack): Declare.
7369         (substitute): Record addresses of changed rtxs.
7370         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
7371         Restore the original rtx when complete.
7372         (reload): Free subsitute_stack when complete.
7373
7374 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
7375
7376         * doc/gccint.texi (menu): Add Testsuites as a chapter.
7377         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
7378         new chapter.
7379         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
7380         LTO Testing, gcov Testing, profopt Testing, compat Testing,
7381         Torture Tests): Change from subsection to section.
7382
7383 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
7384             Steven Bosscher  <steven@gcc.gnu.org>
7385
7386         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
7387         instead of bb.
7388
7389 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
7390
7391         PR middle-end/42640
7392         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
7393         the assignment from the new induction variable to the assignment
7394         of the value from the original loop PHI function.
7395
7396 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
7397             Daniel Jacobowitz  <dan@codesourcery.com>
7398
7399         * doc/sourcebuild.texi (Test directives): Clarify options to
7400         dg-skip-if.
7401
7402 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7403
7404         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
7405         Disable cfi directives unless GCC and gas agree on using read-only
7406         .eh_frame sections for 64-bit.
7407         * configure: Regenerate.
7408
7409 2010-03-01  Richard Guenther  <rguenther@suse.de>
7410
7411         PR tree-optimization/43220
7412         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
7413         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
7414
7415 2010-03-01  Richard Guenther  <rguenther@suse.de>
7416             Martin Jambor  <mjambor@suse.cz>
7417
7418         PR middle-end/41250
7419         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
7420         gimplified parameters.
7421
7422 2010-03-01  Christian Bruel  <christian.bruel@st.com>
7423
7424         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
7425
7426 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
7427
7428         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
7429
7430 2010-03-01  Richard Guenther  <rguenther@suse.de>
7431
7432         PR middle-end/43213
7433         * expr.c (expand_assignment): Use the alias-oracle to tell
7434         if the rhs aliases the result decl.
7435
7436 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7437
7438         PR pch/14940
7439         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
7440         to sol_gt_pch_get_address.
7441         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
7442         64-bit, SPARC and x86.
7443         (sol_gt_pch_get_address): New function.
7444
7445 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
7446
7447         * toplev.h (inform_n, error_n): Declare.
7448         * diagnostic.c (inform_n, error_n): New function.
7449
7450 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
7451
7452         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
7453         has no rtl yet when processing local_decls, queue it and recheck
7454         if deferred stack allocation hasn't assigned it rtl.
7455
7456 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
7457
7458         * config/sh/sh.c (unspec_bbr_uid): New.
7459         (gen_block_redirect): Use it instead of INSN_UID.
7460         (gen_far_branch): Likewise.
7461
7462 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
7463
7464         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
7465         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
7466
7467 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7468
7469         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
7470         (Warning Options): -Wno-conversion-null is valid for
7471         Objective-C++ as well.
7472         * doc/tm.texi (Named Address Spaces): Likewise.
7473         * doc/plugins.texi (Plugins): Replace TABs with spaces.
7474         * doc/tree-ssa.texi (Tree SSA): Likewise.
7475
7476 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
7477
7478         PR bootstrap/43202
7479         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
7480         by default.  Don't set the default arch for
7481         i[34567]86-*-darwin*|x86_64-*-darwin*.
7482
7483 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
7484
7485         PR bootstrap/43202
7486         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
7487         default.  Set the default 32bit/64bit archs with $with_arch
7488         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
7489
7490 2010-02-27  Richard Guenther  <rguenther@suse.de>
7491
7492         PR tree-optimization/43186
7493         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
7494         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
7495         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
7496         unroller iterations.
7497
7498 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
7499
7500         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
7501         required and i[34567]86-*-* targets don't support 64bit ISA.
7502
7503 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
7504
7505         PR ada/43096
7506         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
7507         the same alias set.
7508
7509 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
7510
7511         * config.gcc: Set the default arch at least to Prescott for
7512         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
7513         if SSE math is enabled.
7514
7515 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7516
7517         * diagnostic.c (diagnostic_initialize): Update.
7518         (diagnostic_report_diagnostic): Test inhibit_notes_p for
7519         informative notes.
7520         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
7521         (diagnostic_inhibit_notes): New.
7522         * toplev.c (process_options): inhibit notes with -fcompare-debug.
7523
7524 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7525
7526         PR c/20631
7527         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
7528         * doc/standards.texi: Likewise.
7529         * doc/extend.texi: Likewise.
7530         * doc/trouble.texi: Likewise.
7531         * doc/cppopts.texi: Likewise.
7532         * doc/install.texi: Likewise.
7533         * c.opt (std=c90,std=gnu90): New options.
7534         * c-opts.c (c_common_handle_option): Handle them.
7535
7536 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7537
7538         PR c/24577
7539         * c-decl.c (undeclared_variable): Use an informative note.
7540
7541 2010-02-26  Richard Guenther  <rguenther@suse.de>
7542
7543         PR tree-optimization/43186
7544         * gimple.h (gimple_fold): Remove.
7545         * gimple.c (gimple_fold): Remove.  Inline into single user ...
7546         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
7547         Try harder for conditions.
7548
7549 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
7550
7551         PR debug/43190
7552         * function.c (used_types_insert): Don't skip through named pointer
7553         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
7554         and it is different from the main variant's type.
7555
7556 2010-02-26  Nick Clifton  <nickc@redhat.com>
7557
7558         * config/rx/rx.md (sminsi3): Remove bogus alternative.
7559
7560 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
7561
7562         * config.gcc: Support --with-fpmath=sse for x86.
7563
7564         * config/i386/ssemath.h: New.
7565
7566         * doc/install.texi (--with-fpmath=sse): Documented.
7567
7568 2010-02-26  Richard Guenther  <rguenther@suse.de>
7569
7570         PR tree-optimization/43188
7571         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
7572         vector types of over-aligned element type.
7573
7574 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
7575
7576         PR target/43175
7577         * config/i386/i386.c (expand_vec_perm_blend): Use correct
7578         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
7579
7580 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
7581
7582         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
7583
7584 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
7585
7586         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
7587         * var-tracking.c: Include diagnostic.h.
7588         (debug_dv): New function.
7589         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
7590
7591         PR debug/43160
7592         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
7593         (add_value_chain, add_value_chains, remove_value_chain,
7594         remove_value_chains): Handle DEBUG_EXPRs.
7595         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
7596
7597         PR debug/43161
7598         * regcprop.c (struct queued_debug_insn_change): New type.
7599         (struct value_data_entry): Add debug_insn_changes field.
7600         (struct value_data): Add n_debug_insn_changes field.
7601         (debug_insn_changes_pool): New variable.
7602         (free_debug_insn_changes, apply_debug_insn_changes,
7603         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
7604         (kill_value_one_regno): Call free_debug_insn_changes if needed.
7605         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
7606         fields.
7607         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
7608         changes for them.
7609         (copyprop_hardreg_forward_1): Don't call apply_change_group for
7610         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
7611         changes, call cprop_find_used_regs via note_stores.
7612         (copyprop_hardreg_forward): When copying vd from predecessor
7613         which has any queued DEBUG_INSN changes, make sure the pointers are
7614         cleared.  At the end call df_analyze and then if there are any
7615         DEBUG_INSN changes queued at the end of some basic block for still
7616         live registers, apply them.
7617         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
7618
7619 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
7620
7621         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
7622         (arm*-*-*): Ditto.
7623
7624 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
7625
7626         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
7627         targets.  Set the default with_cpu/with_arch from arch/cpu.
7628         Allow x86-64 and native for with_cpu/with_arch.
7629
7630 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
7631
7632         * ebitmap.c: Change calls to verify_popcount with calls to
7633         sbitmap_verify_popcount.
7634         (ebitmap_clear_bit): Fixed map->cacheindex test and
7635         map>cache update when bit clearing results in an empty
7636         element.
7637
7638 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
7639
7640         PR target/43154
7641         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
7642         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
7643         and support both V2DF and V2DI modes.
7644         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
7645         support both V2DF and V2DI modes.
7646         (general): Delete trailing whitespace from a few patterns.
7647
7648         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7649         V2DF/V2DI interleave high/low builtins.
7650
7651         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
7652         new VSX builtins.
7653
7654         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
7655         interleave high/low functions.
7656
7657 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
7658
7659         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
7660         #pragma extern_prefix.
7661
7662 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
7663
7664         PR debug/43166
7665         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
7666         BLKmode, assert op0 is a MEM and just adjust its mode.
7667
7668         PR debug/43165
7669         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
7670         if bitpos isn't multiple of mode's bitsize.
7671
7672 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7673
7674         * c.opt (-ftemplate-depth=): New.
7675         (-ftemplate-depth-): Deprecate.
7676         * optc-gen.awk: Handle -ftemplate-depth=.
7677         * opth-gen.awk: Likewise.
7678         * c-opts.c (c_common_handle_option): Likewise.
7679         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
7680
7681 2010-02-24  Jason Merrill  <jason@redhat.com>
7682
7683         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
7684
7685 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7686
7687         * cfg.c (alloc_aux_for_block): Remove inline.
7688         (alloc_aux_for_edge): Likewise.
7689
7690 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7691
7692         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
7693
7694 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7695
7696         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
7697         * config/i386/sol2-gas.h: New file.
7698         * config.gcc (i[34567]86-*-solaris2*): Use it.
7699
7700 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7701
7702         PR c/43128
7703         * c-typeck.c (ep_convert_and_check): New.
7704         (build_conditional_expr): Use it.
7705         (build_binary_op): Likewise.
7706
7707 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
7708
7709         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
7710
7711         PR debug/43150
7712         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
7713         bounds even for -O+.
7714         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
7715         expr needs to have DECL_NAME set.
7716
7717 2010-02-24  Nick Clifton  <nickc@redhat.com>
7718
7719         * config/mep/mep.c: Include gimple.h.
7720         (mep_function_uses_sp): Delete unused function.
7721         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
7722         parameters.  Use unsigned integers to count args.  Return a
7723         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
7724
7725 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
7726
7727         PR target/43107
7728         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
7729         greater or equal to nelt instead of 2 * nelt.
7730         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
7731         with nelt - 1.
7732
7733 2010-02-23  Jason Merrill  <jason@redhat.com>
7734
7735         PR debug/42800
7736         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
7737         in cfun->local_decls even if they have register types.
7738
7739         PR c++/42837
7740         * stor-layout.c (place_field): Don't warn about unnecessary
7741         DECL_PACKED if the type is packed.
7742
7743 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
7744
7745         PR target/43139
7746         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
7747         GOTOFF relocs, even when the base reg isn't pic pointer.
7748
7749 2010-02-23  Michael Matz  <matz@suse.de>
7750
7751         PR debug/43077
7752         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
7753         (expand_gimple_basic_block): Generate and use debug temps if there
7754         are debug uses left after the last real use of TERed ssa names.
7755         Unlink debug immediate uses when they are expanded.
7756
7757 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7758
7759         PR 43123
7760         * config/i386/i386.c (override_options): Reorganise to provide
7761         better error messages.
7762
7763 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
7764
7765         PR middle-end/43083
7766         * graphite-scop-detection.c (create_single_exit_edge): Move
7767         the call to find_single_exit_edge to....
7768         (create_sese_edges): ...here.  Don't handle multiple edges
7769         exiting the function.
7770         (build_graphite_scops): Don't handle multiple edges
7771         exiting the function.
7772
7773 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
7774
7775         PR middle-end/43097
7776         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
7777         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
7778
7779 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
7780
7781         PR middle-end/43026
7782         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
7783
7784 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7785
7786         PR c++/43126
7787         * c-typeck.c (convert_arguments): Print declaration location.
7788         * c-common.c (validate_nargs): Rename as
7789         builtin_function_validate_nargs.
7790         (check_builtin_function_arguments): Update.
7791
7792 2010-02-22  Richard Guenther  <rguenther@suse.de>
7793
7794         PR lto/43045
7795         * tree-inline.c (declare_return_variable): Use the type of
7796         the call stmt lhs if available.
7797
7798 2010-02-22  Duncan Sands  <baldrick@free.fr>
7799
7800         * passes.c (register_pass): Always consider all pass lists when
7801         ref_pass_instance_number is zero.
7802
7803 2010-02-22  Richard Guenther  <rguenther@suse.de>
7804
7805         PR tree-optimization/42749
7806         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
7807         parameter.  Do arithmetic in the original type.
7808         (update_accumulator_with_ops): Likewise.
7809         (adjust_accumulator_values): Adjust.
7810
7811 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7812
7813         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
7814         (QI to BLKmode splitter): New splitter.
7815
7816 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
7817
7818         * config/i386/i386.c (initial_ix86_tune_features): Turn on
7819         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
7820
7821 2010-02-22  Richard Guenther  <rguenther@suse.de>
7822
7823         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
7824
7825 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
7826
7827         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
7828         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
7829         ($(T)crti.o, $(T)crtn.o): Remove rules.
7830
7831 2010-02-21  Tobias Burnus  <burnus@net-b.de>
7832
7833         PR fortran/35259
7834         * doc/invoke.texi (-fassociative-math): Document that this
7835         option is automatically enabled for Fortran.
7836
7837 2010-02-20  David S. Miller  <davem@davemloft.net>
7838
7839         * configure.ac: Test if linker and assembler properly support
7840         GOTDATA_OP relocations.
7841         * configure: Rebuild.
7842         * config.in: Likewise.
7843         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
7844         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
7845         (movsi_high_pic): Likewise.
7846         (movdi_lo_sum_pic): Likewise.
7847         (movdi_high_pic): Likewise.
7848         (movsi_pic_gotdata_op): New pattern.
7849         (movdi_pic_gotdata_op): Likewise.
7850         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
7851         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
7852
7853 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
7854
7855         PR target/43067
7856         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
7857         attribute to ssemul.
7858         (xop_mulv2div2di3_high): Ditto.
7859
7860 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7861
7862         PR c++/35669
7863         * c.opt (Wconversion-null): New option.
7864         * doc/invoke.texi (Wconversion-null): Document.
7865
7866 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7867
7868         * common.opt (Wlarger-than-): Add Undocumented.
7869
7870 2010-02-19  Mike Stump  <mikestump@comcast.net>
7871
7872         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
7873
7874 2010-02-19  Jason Merrill  <jason@redhat.com>
7875
7876         PR target/40332
7877         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
7878         * configure: Likewise.
7879
7880 2010-02-20  Alan Modra  <amodra@gmail.com>
7881
7882         PR middle-end/42344
7883         * cgraph.h (cgraph_make_decl_local): Declare.
7884         * cgraph.c (cgraph_make_decl_local): New function.
7885         (cgraph_make_node_local): Use it.
7886         * cgraphunit.c (cgraph_function_versioning): Likewise.
7887         * ipa.c (function_and_variable_visibility): Likewise.
7888
7889 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
7890
7891         PR bootstrap/43121
7892         * except.c (sjlj_emit_function_enter): Don't call
7893         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
7894         directly.
7895         * rtl.h (add_reg_br_prob_note): Remove prototype.
7896
7897 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7898
7899         PR 41779
7900         * c-common.c (conversion_warning): Remove widening conversions
7901         before checking the conversion of integers to reals.
7902
7903 2010-02-19  Mike Stump  <mikestump@comcast.net>
7904
7905         PR middle-end/43125
7906         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
7907
7908         PR objc/43061
7909         * cgraphunit.c (process_function_and_variable_attributes): Check
7910         DECL_PRESERVE_P instead of looking up attribute "used".
7911         * ipa-pure-const.c (check_decl): Likewise.
7912         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
7913         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
7914         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
7915         instead of attribute "used".
7916         * config/sol2-c.c (solaris_pragma_init): Likewise.
7917         (solaris_pragma_fini): Likewise.
7918
7919 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
7920
7921         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
7922         Use XCNEW instead of xcalloc.
7923         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
7924         XNEW instead of xmalloc.
7925         (get_fields): Use XNEWVEC instead of xmalloc.
7926
7927         PR debug/43084
7928         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
7929         populate vars array.
7930         (create_new_general_access): For debug stmts just reset value.
7931         (get_stmt_accesses): For accesses within debug stmts just record them
7932         using add_access_to_acc_sites instead of preventing the peeling or
7933         counting them as accesses.
7934
7935         PR middle-end/42233
7936         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
7937
7938 2010-02-19  Richard Guenther  <rguenther@suse.de>
7939
7940         PR tree-optimization/42916
7941         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
7942         instructions.
7943
7944 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
7945
7946         * configure.ac: Replace all uses of changequote in macro arguments
7947         with proper quoting.
7948
7949 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
7950
7951         PR middle-end/42233
7952         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
7953
7954 2010-02-19  Richard Guenther  <rguenther@suse.de>
7955
7956         PR tree-optimization/42944
7957         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
7958         test for aliasing with errno.
7959
7960 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
7961
7962         PR middle-end/42233
7963         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
7964         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
7965         * dojump.c: Include output.h.
7966         (inv): New inline function.
7967         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
7968         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
7969         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
7970         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
7971         argument, pass it down to other calls.
7972         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
7973         add REG_BR_PROB note to the conditional jump.
7974         * cfgexpand.c (add_reg_br_prob_note): Removed.
7975         (expand_gimple_cond): Don't call it, add the probability
7976         as last argument to jumpif_1/jumpifnot_1.
7977         * Makefile.in (dojump.o): Depend on output.h.
7978         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
7979         callers.
7980         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
7981         * stmt.c (do_jump_if_equal): Likewise.
7982         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
7983         * loop-unswitch.c (compare_and_jump_seq): Likewise.
7984         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
7985         Likewise.
7986         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
7987         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
7988         jumpifnot_1 callers.
7989         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
7990         callers.
7991         (store_expr): Adjust jumpifnot caller.
7992         (store_constructor): Adjust jumpif caller.
7993
7994         PR middle-end/42233
7995         * gimplify.c (gimple_boolify): For __builtin_expect call
7996         gimple_boolify also on its first argument.
7997
7998 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
7999
8000         * configure.ac (gnu-unique-object): Wrap regexps using [] in
8001         changequote block.
8002         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
8003         * configure: Regenerated.
8004
8005 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8006
8007         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
8008         lang_hooks.types_compatible_p instead of comptypes.
8009
8010 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
8011
8012         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
8013         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
8014         if __prefer_thumb__ is defined.
8015
8016 2010-02-18  Martin Jambor  <mjambor@suse.cz>
8017
8018         PR tree-optimization/43066
8019         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
8020         array with zero-sized element type.
8021
8022 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
8023
8024         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
8025         rtx, allocate struct var_loc_node here and return it to the
8026         caller, and only if it is actually needed.
8027         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
8028         move it earlier and return immediately if it returns NULL.
8029
8030 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
8031
8032         * config/sparc/gas.h: New file.  Restore
8033         TARGET_ASM_NAMED_SECTION to its ELF default.
8034         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
8035         check !HAVE_GNU_AS.
8036         * config/sparc/sparc.c (sparc_elf_asm_named_section):
8037         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
8038         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
8039         after sparc/sysv4.h.
8040
8041 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
8042
8043         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
8044
8045 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
8046
8047         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
8048         patterns from predicated pattern.
8049
8050 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
8051
8052         PR target/43103
8053         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
8054         for insn mnemonic suffix.
8055
8056 2010-02-17  Richard Guenther  <rguenther@suse.de>
8057
8058         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
8059         to loop PHI nodes.
8060
8061 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
8062
8063         PR debug/42918
8064         * caller-save.c (save_call_clobbered_regs): If BB ends with
8065         a DEBUG_INSN, move any notes in between last real insn and the last
8066         DEBUG_INSN after the last DEBUG_INSN.
8067
8068 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
8069
8070         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
8071         Fix return type.  Fix argument type.  Explain meaning of return value.
8072
8073 2010-02-16  Richard Guenther  <rguenther@suse.de>
8074
8075         PR tree-optimization/41043
8076         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
8077         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
8078         statements ...
8079         (vrp_visit_phi_node): ... but only for loop PHI nodes.
8080
8081 2010-02-16  Ira Rosen  <irar@il.ibm.com>
8082
8083         PR tree-optimization/43074
8084         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
8085         * tree-vect-loop.c (vect_analyze_loop_operations): Add
8086         vectorizable cycles in hybrid SLP check.
8087         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
8088
8089 2010-02-16  Richard Guenther  <rguenther@suse.de>
8090
8091         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
8092         (true_dependence): If memrefs_conflict_p computes must-alias
8093         trust it.  Move TBAA check after offset-based disambiguation.
8094         (canon_true_dependence): Likewise.
8095
8096 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
8097
8098         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
8099         * doc/invoke.texi: Document it.
8100         * var-tracking.c: Include toplev.h and params.h.
8101         (vt_find_locations): Return bool indicating success.  Compute
8102         hash sizes unconditionally.  Check new parameter, report.
8103         (variable_tracking_main_1): Check vt_find_locations results and
8104         retry.  Renamed from...
8105         (variable_tracking_main): ... this.  New wrapper to preserve
8106         flag_var_tracking_assignments.
8107         * Makefile.in (var-tracking.o): Adjust dependencies.
8108
8109 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
8110             Jakub Jelinek <jakub@redhat.com>
8111
8112         PR target/42854
8113         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
8114         if weak_import attribute is present.
8115         * config/darwin.c (machopic_select_section): Likewise.
8116
8117 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
8118
8119         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
8120         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
8121         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
8122         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
8123
8124         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
8125         types.
8126
8127         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
8128         Fix argument types.
8129
8130         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
8131         Rewrite text to refer to the names.
8132
8133 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
8134
8135         * config/i386/i386-builtin-types.def
8136         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
8137         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
8138         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
8139         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
8140         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
8141         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
8142         IX86_BUILTIN_VPERMIL2PS256.
8143         (MULTI_ARG_4_DF2_DI_I): Defined.
8144         (MULTI_ARG_4_DF2_DI_I1): Defined.
8145         (MULTI_ARG_4_SF2_SI_I): Defined.
8146         (MULTI_ARG_4_SF2_SI_I1): Defined.
8147         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
8148         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
8149         __builtin_ia32_vpermil2ps256.
8150         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
8151         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
8152         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
8153         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
8154         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
8155         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
8156         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
8157         CODE_FOR_xop_vpermil2v8sf3.
8158         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
8159         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
8160         * config/i386/xopintrin.h (_mm_permute2_pd): New.
8161         (_mm256_permute2_pd): New.
8162         (_mm_permute2_ps): New.
8163         (_mm256_permute2_ps): New.
8164
8165 2010-02-15  Nick Clifton  <nickc@redhat.com>
8166
8167         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
8168         boolean parameters.  Use emit_jump_insn when emitting a pop
8169         instruction containing a return insn.
8170         (push): Use 'true' rather than '1' as second parameter to F.
8171         (h8300_expand_prologue): Likewise.
8172         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
8173         (h8300_expand_epilogue): Likewise.
8174
8175 2010-02-15  Richard Guenther  <rguenther@suse.de>
8176
8177         PR middle-end/43068
8178         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
8179         if that is zero.
8180
8181 2010-02-15  Nick Clifton  <nickc@redhat.com>
8182
8183         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
8184         delta.
8185
8186 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
8187
8188         * intl.c (fake_ngettext): New function.
8189         * intl.h (fake_ngettext): Declare.
8190         (ngettext): Define macro.
8191         * collect2.c (notice_translated): New function.
8192         (main): Use notice_translated and ngettext.
8193         * collect2.h (notice_translated): Declare.
8194
8195 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
8196
8197         * reorg.c (delete_computation): Comment fixes.
8198         * caller-save.c (setup_save_areas): Idem.
8199         * sel-sched-dump.c (dump_lv_set): Idem.
8200         * rtl.def: Idem.
8201
8202 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8203
8204         * config/s390/s390.c (s390_sched_init): New function.
8205         (TARGET_SCHED_INIT): Target hook defined.
8206
8207 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
8208             Jack Howarth  <howarth@bromo.med.uc.edu>
8209             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
8210
8211         PR target/42982
8212         Partial revert of unintended change in fix for PR41605.
8213         * config/darwin.h: Fix typo.
8214         * config/darwin9.h: Same.
8215
8216 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
8217
8218         * c-pch.c (pch_init): Clear v.
8219
8220 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8221
8222         PR middle-end/42930
8223         * graphite-scop-detection.c (graphite_can_represent_scev): Call
8224         graphite_can_represent_init for MULT_EXPR.
8225
8226 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8227
8228         PR middle-end/42914
8229         PR middle-end/42530
8230         * graphite-sese-to-poly.c (remove_phi): New.
8231         (translate_scalar_reduction_to_array): Call remove_phi.
8232
8233 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8234
8235         PR middle-end/42771
8236         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
8237         * graphite-clast-to-gimple.h (gloog): Update declaration.
8238         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
8239         * graphite-poly.h (struct poly_bb): Add missing comments.
8240         (struct scop): Add poly_scop_p field.
8241         (POLY_SCOP_P): New.
8242         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
8243         * graphite.c (graphite_transform_loops): Build the polyhedral
8244         representation for each scop before code generation.
8245         * sese.c (rename_variables_in_operand): Removed.
8246         (rename_variables_in_expr): Return the renamed expression.
8247         (rename_sese_parameters): New.
8248         * sese.h (rename_sese_parameters): Declared.
8249
8250 2010-02-11  Richard Guenther  <rguenther@suse.de>
8251
8252         PR tree-optimization/42998
8253         * tree-ssa-pre.c (create_expression_by_pieces): Treat
8254         POINTER_PLUS_EXPR properly.
8255
8256 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8257             Changpeng Fang  <changpeng.fang@amd.com>
8258
8259         PR middle-end/40886
8260         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
8261         the cost of an IV candidate when the IV is used in a test against zero.
8262
8263         * gcc.dg/tree-ssa/ivopts-3.c: New.
8264
8265 2010-02-11  Richard Guenther  <rguenther@suse.de>
8266
8267         PR lto/41664
8268         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
8269         pointer-vs-decl case by swapping refs.  Handle some cases
8270         of pointer-vs-decl disambiguations more conservatively.
8271         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
8272         to false after expanding.
8273
8274 2010-02-11  Richard Guenther  <rguenther@suse.de>
8275
8276         PR driver/43021
8277         * gcc.c (process_command): Handle LTO file@offset case more
8278         appropriately.
8279
8280 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
8281
8282         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
8283         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
8284         of DEBUG_INSNs.
8285         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
8286
8287         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
8288         if MEM's mode size isn't DWARF2_ADDR_SIZE.
8289         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
8290         Optimize eq/ne comparisons when both arguments are known to be
8291         zero-extended.
8292         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
8293         Don't mask operands unnecessarily if they are known to be already
8294         zero-extended.
8295
8296 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
8297
8298         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
8299         instead of loop.
8300
8301 2010-02-10  Richard Guenther  <rguenther@suse.de>
8302
8303         PR tree-optimization/43017
8304         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
8305         for wrapping signed arithmetic.
8306
8307 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
8308
8309         PR debug/43010
8310         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
8311         if no debug info should be emitted for it.
8312
8313 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
8314
8315         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
8316         note when flag_exceptions is set.
8317
8318 2010-02-10  Duncan Sands  <baldrick@free.fr>
8319
8320         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
8321
8322 2010-02-10  Richard Guenther  <rguenther@suse.de>
8323
8324         PR c/43007
8325         * tree.c (get_unwidened): Handle constants.
8326         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
8327
8328 2010-02-10  Martin Jambor  <mjambor@suse.cz>
8329
8330         PR lto/42985
8331         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
8332         check for variable argument counts independently.
8333
8334 2010-02-10  Christian Bruel  <christian.bruel@st.com>
8335
8336         PR target/42841
8337         * config/sh/sh.c (find_barrier): Increase length for non delayed
8338         conditional branches.
8339
8340 2010-02-10  Christian Bruel  <christian.bruel@st.com>
8341
8342         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
8343
8344 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
8345
8346         * builtins.c (set_builtin_user_assembler_name): Also handle
8347         ffs if int is smaller than word.
8348
8349 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
8350
8351         PR middle-end/42973
8352         * ira-conflicts.c (get_dup): Remove.
8353         (process_reg_shuffles): Add new parameter.  Use it as an
8354         additional guard for copy generation.
8355         (add_insn_allocno_copies): Rewrite.
8356
8357 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
8358
8359         * common.opt (fsched2-use-traces): Preserved for backward
8360         compatibility.
8361         * doc/invoke.texi: Remove the documentation about option
8362         -fsched2-use-traces.
8363         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
8364         flag_sched2_use_traces.
8365         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
8366         the backward compatibility flag section.
8367
8368 2010-02-09  Richard Guenther  <rguenther@suse.de>
8369
8370         PR tree-optimization/43008
8371         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
8372         make HEAP variables initialized from global memory if they
8373         are not known builtin functions.
8374         (find_func_aliases): Adjust.
8375
8376 2010-02-09  Richard Guenther  <rguenther@suse.de>
8377
8378         PR tree-optimization/43000
8379         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
8380         arithmetic manually.
8381
8382 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
8383
8384         PR tree-optimization/42931
8385         * tree-loop-linear.c (try_interchange_loops): Don't call
8386         double_int_mul if estimated_loop_iterations failed.
8387
8388 2010-02-08  Martin Jambor  <mjambor@suse.cz>
8389
8390         PR middle-end/42898
8391         * tree-sra.c (build_accesses_from_assign): Do not mark in
8392         should_scalarize_away_bitmap if stmt has volatile ops.
8393         (sra_modify_assign): Do not process assigns piecemeal if if stmt
8394         has volatile ops.
8395
8396 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
8397
8398         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
8399
8400 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
8401
8402         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
8403         before the pattern.
8404
8405 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
8406
8407         PR middle-end/42946
8408         * df-core.c (df_finish_pass): Change type of saved_flags to int.
8409
8410 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
8411
8412         PR middle-end/42988
8413         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
8414         to unknown_dependence.
8415         (graphite_legal_transform_dr): Handle the unknown_dependence.
8416         (graphite_carried_dependence_level_k): Same.
8417
8418 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
8419
8420         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
8421
8422 2010-02-07  Richard Guenther  <rguenther@suse.de>
8423
8424         PR middle-end/42991
8425         * expr.c (get_inner_reference): Always initialize *pbitsize.
8426
8427 2010-02-07  Richard Guenther  <rguenther@suse.de>
8428
8429         PR middle-end/42956
8430         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
8431         new ARRAY_REFs on variable size element or minimal index arrays.
8432         Complete.
8433         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
8434         gimple_fold_indirect_ref.
8435
8436 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
8437
8438         PR target/42957
8439         * arm.c (arm_override_options): Just return if the user has specified
8440         an invalid fpu name.
8441
8442 2010-02-03  Jason Merrill  <jason@redhat.com>
8443
8444         PR c++/42870
8445         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
8446         i386_pe_maybe_record_exported_symbol.
8447
8448 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
8449
8450         PR target/42924
8451         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
8452         (pa_delegitimize_address): New function.
8453
8454 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
8455
8456         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
8457         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
8458
8459 2010-02-05  Richard Guenther  <rguenther@suse.de>
8460
8461         PR lto/42762
8462         * lto-streamer-in.c (get_resolution): Deal with references
8463         to undefined functions.
8464
8465 2010-02-05  Richard Guenther  <rguenther@suse.de>
8466
8467         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
8468         (fold_const_aggregate_ref): Likewise.
8469         (ccp_fold_stmt): Substitute loads.
8470         (maybe_fold_reference): Verify types before substituting.
8471         Unshare properly.
8472         (fold_gimple_assign): Unshare properly.
8473         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
8474
8475 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
8476
8477         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
8478         for rs6000_gen_cell_microcode.
8479
8480 2010-02-04  Richard Guenther  <rguenther@suse.de>
8481
8482         PR rtl-optimization/42952
8483         * dse.c (const_or_frame_p): Remove MEM handling.
8484
8485 2010-02-04  Nick Clifton  <nickc@redhat.com>
8486
8487         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
8488         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
8489         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
8490         (mn10300_asm_output_mi_thunk): New function.
8491         (mn10300_can_output_mu_thunk): New function.
8492         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
8493         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
8494         (FUNCTION_ARG): Delete incorrect comment.
8495
8496 2010-02-03  Jason Merrill  <jason@redhat.com>
8497
8498         PR c++/40138
8499         * fold-const.c (operand_equal_p): Handle erroneous types.
8500
8501 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
8502
8503         * config/h8300/h8300.md (can_delay): Fix attibute condition.
8504
8505 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
8506
8507         PR rtl-optimization/42941
8508         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
8509         of xmalloc.
8510
8511 2010-02-03  Jason Merrill  <jason@redhat.com>
8512
8513         PR c++/35652
8514         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
8515
8516 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
8517
8518         PR debug/42896
8519         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
8520         (cselib_reset_table): Renamed from...
8521         (cselib_reset_table_with_next_value): ... this.
8522         (cselib_get_next_uid): Renamed from...
8523         (cselib_get_next_unknown_value): ... this.
8524         * cselib.c (next_uid): Renamed from...
8525         (next_unknown_value): ... this.
8526         (cselib_clear_table): Adjust.
8527         (cselib_reset_table): Adjust.  Renamed from...
8528         (cselib_reset_table_with_next_value): ... this.
8529         (cselib_get_next_uid): Adjust.  Renamed from...
8530         (cselib_get_next_unknown_value): ... this.
8531         (get_value_hash): Use hash.
8532         (cselib_hash_rtx): Likewise.
8533         (new_cselib_val): Adjust.  Set and dump uid.
8534         (cselib_lookup_mem): Pass next_uid as hash.
8535         (cselib_subst_to_values): Likewise.
8536         (cselib_log_lookup): Dump uid.
8537         (cselib_lookup): Pass next_uid as hash.  Adjust.
8538         (cselib_process_insn): Adjust.
8539         (cselib_init): Initialize next_uid.
8540         (cselib_finish): Adjust.
8541         (dump_cselib_table): Likewise.
8542         * dse.c (canon_address): Dump value uid.
8543         * print-rtl.c (print_rtx): Print value uid.
8544         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
8545         (dvuid): New type.
8546         (dv_uid): New function, sort of renamed from...
8547         (dv_htab_hash): ... this, reimplemented in terms of it and...
8548         (dv_uid2hash): ... this.  New.
8549         (variable_htab_eq): Drop excess assertions.
8550         (tie_break_pointers): Removed.
8551         (canon_value_cmp): Compare uids.
8552         (variable_post_merge_New_vals): Print uids.
8553         (vt_add_function_parameters): Adjust.
8554         (vt_initialize): Reset table.  Adjust.
8555
8556 2010-02-03  Richard Guenther  <rguenther@suse.de>
8557
8558         PR tree-optimization/42944
8559         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
8560         (call_may_clobber_ref_p_1): Likewise.  Properly handle
8561         malloc and calloc clobbering errno.
8562
8563 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
8564
8565         * doc/invoke.texi: Fix name of sched1 dump.
8566
8567         * opts.c (decode_options): Set flag_tree_switch_conversion
8568         only conditionally on optimize >= 2.
8569
8570         * gcse.c: Assorted comment fixes in pass description.
8571
8572 2010-02-03  Anthony Green  <green@moxielogic.com>
8573
8574         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
8575         nop padding in order to maintain alignment of storage location of
8576         target function address.
8577         (moxie_trampoline_init): Store target function address at newly
8578         aligned location.
8579         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
8580         to 32.
8581         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
8582
8583 2010-02-03  Richard Guenther  <rguenther@suse.de>
8584
8585         PR middle-end/42927
8586         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
8587
8588 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8589
8590         * config.gcc: Reenable check for obsolete targets.
8591         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
8592         mips-sgi-irix6.[0-4]*.
8593
8594 2010-02-02  Nick Clifton  <nickc@redhat.com>
8595
8596         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
8597         constant size of 4 as being the same as 0.
8598         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
8599         can take values in the range 0..4.
8600
8601 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
8602
8603         PR java/41991
8604         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
8605         as _darwin10_Unwind_FindEnclosingFunction().
8606         * libgcc-libsystem.ver: New.
8607
8608 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
8609
8610         PR target/41399
8611         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
8612         implicitly set registers.
8613
8614 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
8615
8616         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
8617         (arm_override_options): Allow automatic selection of the thread
8618         pointer register if thumb2.
8619         (legitimize_pic_address): Improve code sequences for Thumb2.
8620         (arm_call_tls_get_addr): Likewise.
8621         (legitimize_tls_address): Likewise.
8622         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
8623         (pic_load_addr_32bit): ... this.  New named pattern.
8624         * thumb2.md (pic_load_addr_thumb2): Delete.
8625         (pic_load_dot_plus_four): Delete.
8626         (tls_load_dot_plus_four): New named pattern.
8627
8628 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8629
8630         PR libgomp/29986
8631         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
8632         Document fix for TLS bug.
8633
8634 2010-01-31  Richard Guenther  <rguenther@suse.de>
8635
8636         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
8637         conservatively correct.
8638
8639 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8640
8641         PR target/42850
8642         Revert:
8643         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8644
8645         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
8646
8647 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8648
8649         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
8650
8651 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
8652
8653         * config.gcc: Adjust order of makefile fragments for mingw targets.
8654
8655 2010-01-31  Richard Guenther  <rguenther@suse.de>
8656
8657         PR middle-end/42898
8658         * gimplify.c (gimplify_init_constructor): For volatile LHS
8659         initialize a temporary.
8660
8661 2010-01-31  Matthias Klose  <doko@ubuntu.com>
8662
8663         * configure.ac: Fix __stack_chk_fail check for cross builds configured
8664         --with-headers
8665         * configure: Regenerate.
8666
8667 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
8668
8669         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8670         the same alias set and their sizes different constantness.
8671         (aliasing_component_refs_p): Revert 2009-10-24 change.
8672
8673 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8674
8675         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
8676         unused.
8677
8678 2010-01-29  Richard Guenther  <rguenther@suse.de>
8679
8680         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
8681         Assert we successfully updated the call.
8682
8683 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
8684
8685         PR rtl-optimization/42889
8686         * df.h (df_set_bb_dirty_nonlr): New prototype.
8687         * df-core.c (df_set_bb_dirty_nonlr): New function.
8688         * df-scan.c (df_insn_rescan): Call it instead of
8689         df_set_bb_dirty for DEBUG_INSNs.
8690
8691 2010-01-29  Richard Guenther  <rguenther@suse.de>
8692
8693         PR middle-end/37448
8694         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
8695         quadratic behavior in most cases.
8696
8697 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
8698
8699         PR target/42891
8700         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
8701         in the call to gen_x86_movsicc_0_m1.
8702
8703 2010-01-28  Richard Guenther  <rguenther@suse.de>
8704
8705         PR tree-optimization/42871
8706         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
8707
8708 2010-01-28  Richard Guenther  <rguenther@suse.de>
8709
8710         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
8711         into call arguments.
8712
8713 2010-01-28  Richard Guenther  <rguenther@suse.de>
8714
8715         PR middle-end/42883
8716         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
8717         the forwarder if the destination is an EH landing pad.
8718
8719 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
8720
8721         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
8722         block list passed to gimple_duplicate_sese_tail.
8723         (parallelize_loops): Avoid parallelization when the function
8724         has_nonlocal_label.
8725         Avoid parallelization when the preheader is IRREDUCIBLE.
8726         Try to optimize when estimated_loop_iterations_int is unresolved.
8727         Add the loop's location to the dump file.
8728         * tree-cfg.c (add_phi_args_after_redirect): Remove.
8729         (gimple_duplicate_sese_tail): Remove the check for the latch.
8730         Redirect nexits to the exit block.
8731         Remove handling of the incoming edges to the latch.
8732         Redirect the backedge from the copied latch to the exit bb.
8733
8734 2010-01-28  Michael Matz  <matz@suse.de>
8735
8736         PR target/42881
8737         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
8738         Wrap force_reg into a sequence, emit it before user.
8739
8740 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
8741
8742         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
8743         (arm_rev): New.
8744         (arm_legacy_rev): Likewise.
8745         (thumb_legacy_rev): Likewise.
8746
8747 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
8748
8749         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
8750         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
8751         on MEM's address failed, try avoid_constant_pool_reference and
8752         recurse if it returned something different.
8753         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
8754         address, try avoid_constant_pool_reference and recurse if it
8755         returned something different.
8756         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
8757         address and avoid_constant_pool_reference returned something
8758         different, don't set have_address.
8759
8760 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
8761
8762         PR debug/42861
8763         * var-tracking.c (val_store): Add modified argument, obey it.
8764         Adjust callers.
8765         (count_uses): Move down logging of main.
8766         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
8767         don't need resolution.
8768         (emit_notes_in_bb): Likewise.
8769
8770 2010-01-27  Richard Guenther  <rguenther@suse.de>
8771
8772         PR middle-end/42878
8773         * tree-inline.c (remap_decl): Delay remapping of SSA name
8774         default definitions until we need them.
8775
8776 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
8777
8778         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
8779         (rs6000_delegitimize_address): New function.
8780
8781         * config/s390/s390.c (s390_delegitimize_address): Call
8782         delegitimize_mem_from_attrs.
8783
8784         PR middle-end/42874
8785         * tree-inline.c (cannot_copy_type_1): Removed.
8786         (copy_forbidden): Don't forbid copying of functions containing
8787         records/unions with variable length fields.
8788
8789 2010-01-27  Christian Bruel  <christian.bruel@st.com>
8790
8791         Revert:
8792         PR target/42841
8793         * config/sh/sh.c (find_barrier): Increase length for non delayed
8794         conditional branches.
8795
8796 2010-01-27  Matthias Klose  <doko@ubuntu.com>
8797
8798         * configure.ac (gnu-unique-object): Fix ldd version check.
8799         * configure: Regenerate.
8800
8801 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8802
8803         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
8804         HAVE_GNU_AS value.
8805         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
8806         Test for HAVE_GNU_AS value.
8807
8808 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8809
8810         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
8811         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
8812         INT64_TYPE): Define.
8813         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
8814         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8815         INT_LEAST64_TYPE): Define.
8816         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
8817         UINT_LEAST64_TYPE): Define.
8818         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
8819         INT_FAST64_TYPE): Define.
8820         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8821         UINT_FAST64_TYPE): Define.
8822         (INTMAX_TYPE, UINTMAX_TYPE): Define.
8823         (INTPTR_TYPE, UINTPTR_TYPE): Define.
8824         (SIG_ATOMIC_TYPE): Define.
8825
8826 2010-01-26  Richard Guenther  <rguenther@suse.de>
8827
8828         * df-scan.c (df_scan_set_bb_info): Remove assert.
8829         (df_insn_rescan_debug_internal): Merge asserts.
8830         (df_install_ref): Likewise.
8831         (df_mark_reg): Use bitmap_set_range.
8832         (df_hard_reg_used_p): Remove assert.
8833         (df_hard_reg_used_count): Likewise.
8834
8835 2010-01-26  Richard Guenther  <rguenther@suse.de>
8836
8837         PR rtl-optimization/42685
8838         * web.c (web_main): Ignore DEBUG_INSNs.
8839
8840 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
8841
8842         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
8843
8844         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
8845         Fix types of fndecl and arglist parameters.
8846
8847 2010-01-26  Richard Guenther  <rguenther@suse.de>
8848
8849         PR middle-end/42806
8850         * tree-eh.c (unsplit_eh): Skip debug insns.
8851
8852 2010-01-26  Richard Guenther  <rguenther@suse.de>
8853
8854         PR tree-optimization/42250
8855         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
8856
8857 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
8858
8859         PR fortran/42866
8860         * omp-low.c (expand_omp_sections): Only use single_pred if
8861         l2_bb is single_pred_p.
8862
8863 2010-01-25  Christian Bruel  <christian.bruel@st.com>
8864
8865         PR target/42841
8866         * config/sh/sh.c (find_barrier): Increase length for non delayed
8867         conditional branches.
8868         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
8869
8870 2010-01-24  David S. Miller  <davem@davemloft.net>
8871
8872         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
8873         define if not using GAS.
8874         * config/sparc/sparc.c (sparc_elf_asm_named_section):
8875         Likewise.  Delete SECTION_MERGE code, which is only applicable
8876         when using GAS.
8877
8878 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
8879
8880         PR c++/42748
8881         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
8882         mangling of va_list in system headers.
8883
8884 2010-01-23  Toon Moene  <toon@moene.org>
8885
8886         * tree-predcom.c (combine_chains): Return NULL, not false.
8887
8888 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
8889
8890         * tree-loop-distribution.c (distribute_loop): Fix declaration and
8891         initialization of variable res to agree with return type.
8892
8893 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
8894
8895         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
8896         * tree-sra.c: Add include of expr.h.
8897
8898 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
8899
8900         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
8901         insert the debug stmt on the single non-EH edge from the stmt.
8902
8903 2010-01-22  Richard Henderson  <rth@redhat.com>
8904
8905         PR tree-opt/42833
8906         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
8907         the RHS until after generate_subtree_copies has insertted its
8908         code before the current statement.
8909
8910 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
8911
8912         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
8913
8914         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
8915
8916 2010-01-21  Martin Jambor  <mjambor@suse.cz>
8917
8918         PR tree-optimization/42585
8919         * tree-sra.c (struct access): New field grp_total_scalarization.
8920         (dump_access): Dump the new field.
8921         (should_scalarize_away_bitmap): New variable.
8922         (cannot_scalarize_away_bitmap): Likewise.
8923         (sra_initialize): Allocate new bitmaps.
8924         (sra_deinitialize): Free new bitmaps.
8925         (create_access_1): New function.
8926         (create_access): Parts moved to create_access_1.
8927         (type_consists_of_records_p): New function.
8928         (completely_scalarize_record): Likewise.
8929         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
8930         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
8931         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
8932         access.
8933         (analyze_all_variable_accesses): Completely scalarize small eligible
8934         records.
8935
8936 2010-01-21  Martin Jambor  <mjambor@suse.cz>
8937
8938         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
8939
8940 2010-01-21  Andrew Haley  <aph@redhat.com>
8941
8942         * gcc.c (process_command): Move lang_specific_driver before
8943         setting cc_libexec_prefix.
8944
8945 2010-01-21  Richard Guenther  <rguenther@suse.de>
8946
8947         PR middle-end/19988
8948         * fold-const.c (negate_expr_p): Pretend only negative
8949         real constants are easily negatable.
8950
8951 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
8952             Jason Merrill  <jason@redhat.com>
8953
8954         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
8955         (TYPE_TRANSPARENT_AGGR): this, for union and record.
8956         * calls.c (initialize argument_information): Handle it.
8957         * c-common.c (handle_transparent_union_attribute): Use new name.
8958         * c-decl.c (finish_struct): Ditto.
8959         * c-typeck.c (type_lists_compatible_p): Ditto.
8960         (convert_for_assignment): Use new name and also handle record.
8961         * function.c (aggregate_value_p): Handle it.
8962         (pass_by_reference): Ditto.
8963         (assign_parm_data_types): Ditto.
8964         * print-tree.c (print_node): Ditto.
8965         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
8966         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
8967         * tree.c (first_field): New fn.
8968
8969 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
8970
8971         PR target/42818
8972         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
8973         even when linking statically, for now.
8974
8975 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
8976
8977         PR debug/42715
8978         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
8979         without a cselib val.
8980         (count_uses): Accept MO_VAL_SET with no val on stores.
8981         (add_stores): Likewise.
8982
8983 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
8984
8985         * var-tracking.c (check_value_val): Add a compile time assertion.
8986         (dv_is_decl_p): Simplify.
8987         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
8988         gcc_assert if ENABLE_CHECKING.
8989
8990 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
8991
8992         PR debug/42782
8993         * var-tracking.c: Include tree-flow.h.
8994         (mem_dies_at_call): New.
8995         (dataflow_set_preserve_mem_locs): Use it.
8996         (dataflow_set_remove_mem_locs): Likewise.
8997         (dump_var): Renamed from dump_variable.  Adjust all callers.
8998         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
8999         * Makefile.in (var-tracking.o): Adjust deps.
9000
9001 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
9002
9003         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
9004
9005 2010-01-20  Richard Guenther  <rguenther@suse.de>
9006
9007         PR tree-optimization/42717
9008         * tree-ssa-dce.c (get_live_post_dom): Remove.
9009         (forward_edge_to_pdom): Take an arbitrary edge to copy
9010         degenerate PHI args from.
9011         (remove_dead_stmt): Use the first post-dominator even if it
9012         does not contain live statements as redirection destination.
9013
9014 2010-01-20  Richard Guenther  <rguenther@suse.de>
9015
9016         * tree-inline.c (estimate_num_insns): Handle EH builtins.
9017
9018 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9019
9020         * sel-sched.c (create_speculation_check): Remove set but not used
9021         variable twin.
9022         (try_transformation_cache): Remove set but not used variable ds.
9023         (calculate_privileged_insns): Remove set but not used variables
9024         cur_insn and min_spec_insn.
9025         (find_best_expr): Remove set but not used variable avail_n.
9026         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
9027         variable e.
9028         * cgraphunit.c (assemble_thunk): Remove set but not used variable
9029         false_label.
9030         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
9031         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
9032         new_scop_exit_edge.
9033
9034 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
9035
9036         PR bootstrap/42786
9037         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
9038         cpu types.  Add support for *-sse3 cpu types.
9039         (x86_64-*-*): Ditto.
9040
9041 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9042
9043         PR middle-end/42803
9044         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
9045         argument, call initializer_constant_valid_p_1 instead of
9046         initializer_constant_valid_p, pass CACHE to it, return NULL
9047         immediately if first call returns NULL.
9048         (initializer_constant_valid_p_1): New function.
9049         (initializer_constant_valid_p): Use it.
9050
9051 2010-01-20  Thomas Quinot  <quinot@adacore.com>
9052
9053         * tree.def (PLACEHOLDER_EXPR): Fix comment.
9054
9055 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9056
9057         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
9058         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
9059         (loc_list_from_tree): Don't handle unsigned division.  Handle
9060         signed modulo using DW_OP_{over,over,div,mul,minus}.
9061         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
9062         modulo instead of signed.
9063
9064 2010-01-20  DJ Delorie  <dj@redhat.com>
9065
9066         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
9067         (Fpa): Pass it
9068         (h8300_emit_stack_adjustment): Propogate it.
9069         (push): Pass it.
9070         (h8300_expand_prologue): Likewise.
9071         (h8300_expand_epilogue): Likewise.
9072
9073 2010-01-19  Michael Matz  <matz@suse.de>
9074
9075         PR tree-optimization/41783
9076         * tree-data-ref.c (toplevel): Include flags.h.
9077         (dump_data_dependence_relation):  Also dump the inputs if the
9078         result will be unknown.
9079         (split_constant_offset_1): Look through some conversions.
9080         * tree-predcom.c (determine_roots_comp): Restart a new chain if
9081         the offset from last element is too large.
9082         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
9083         (reassociate_to_the_same_stmt): Handle vector registers.
9084         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
9085         (e.g. conversions).
9086         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
9087         wide_prolog_niters argument, emit widening instructions.
9088         (vect_do_peeling_for_alignment): Adjust caller, use widened
9089         variant of the iteration cound.
9090         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
9091
9092 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9093
9094         PR target/38697
9095         * config/arm/neon-testgen.m (emit_automatics): New parameter
9096         features. Adjust for Fixed_return_reg feature.
9097         (test_intrinsic): Call emit_automatics with new feature.
9098         * config/arm/neon.ml: Update copyright years.
9099         (features): New Fixed_return_reg feature.
9100         (ops): Update feature for Vget_low.
9101
9102 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
9103
9104         PR tree-optimization/42719
9105         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
9106         stmt uses.
9107
9108         PR debug/42728
9109         * fwprop.c (all_uses_available_at): Return false if def_set dest
9110         is a REG that is used in def_insn.
9111
9112 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
9113
9114         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
9115
9116         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
9117         Add argument names.
9118
9119         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
9120
9121         * target.h (struct gcc_target) <secondary_reload>: Change type
9122         of last argument to secondary_reload_info *.
9123
9124 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
9125
9126         PR target/42774
9127         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
9128         memory references with unaligned offsets.  Remove CQImode handling.
9129         (unaligned_memory_operand): Return 1 for memory references with
9130         unaligned offsets.  Remove CQImode handling.
9131
9132 2010-01-18  Richard Guenther  <rguenther@suse.de>
9133
9134         PR middle-end/39954
9135         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
9136         builtin calls.
9137
9138 2010-01-18  Richard Guenther  <rguenther@suse.de>
9139
9140         PR tree-optimization/42781
9141         * tree-ssa-structalias.c (find_what_var_points_to): Skip
9142         restrict processing only if the original variable was artificial.
9143
9144 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
9145
9146         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
9147         find number of popped argument bytes.
9148
9149         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
9150         Fix the text that describes the return value for invalid insns.
9151
9152         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
9153
9154         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
9155         Clarify what 'cost of the -dependence' is.  Fix quoting.
9156
9157         * toplev.c (default_get_pch_validity): Rename argument to "sz".
9158         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
9159
9160 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
9161
9162         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
9163         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
9164
9165 2010-01-17  Richard Guenther  <rguenther@suse.de>
9166
9167         PR middle-end/42248
9168         * function.c (split_complex_args): Take a VEC to modify.
9169         (assign_parms_augmented_arg_list): Build a VEC instead of
9170         a chain of PARM_DECLs.
9171         (assign_parms_unsplit_complex): Take a VEC of arguments.
9172         Do not fixup unmodified parms.
9173         (assign_parms): Deal with the VEC.
9174         (gimplify_parameters): Likewise.
9175
9176 2010-01-17  Richard Guenther  <rguenther@suse.de>
9177
9178         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
9179         node existence check.
9180         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
9181         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
9182         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
9183         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
9184         (gimple_execute_on_growing_pred): Likewise.
9185
9186 2010-01-17  Richard Guenther  <rguenther@suse.de>
9187
9188         PR tree-optimization/42773
9189         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
9190         (compute_antic_aux): Likewise.
9191         (compute_partial_antic_aux): Likewise.
9192
9193 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
9194
9195         PR debug/42767
9196         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
9197         and US_TRUNCATE.
9198
9199 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
9200
9201         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
9202         appearance.
9203
9204         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
9205         Fix markup for strict argument.
9206
9207         (TARGET_SCHED_REORDER2): Fix argument types.
9208
9209         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
9210         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
9211
9212         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
9213         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
9214
9215         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
9216         Add argument name.
9217
9218         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
9219         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
9220         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
9221         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
9222         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
9223
9224         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
9225
9226         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
9227
9228         (TARGET_ASM_RELOC_RW_MASK): Add return type.
9229         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
9230
9231         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
9232
9233         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
9234         Use prototype.
9235
9236         (TARGET_ASM_NAMED_SECTION): Fix argument list.
9237
9238         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
9239         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
9240
9241         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
9242
9243         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
9244
9245         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
9246         referring to it.  Fix language.
9247
9248         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
9249
9250         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
9251
9252         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
9253
9254         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
9255
9256         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
9257         '@var{stream}.  Remove stray 'and'.
9258
9259         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
9260
9261         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
9262
9263         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
9264
9265         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
9266         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
9267
9268         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
9269         Fix description of return value.
9270         Rename argument "sz" to "len."
9271
9272         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
9273         Clarify meaning of 'true' return value.
9274
9275         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
9276
9277         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
9278         rep_mode versus mode_rep.
9279
9280         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
9281
9282         (TARGET_BUILTIN_DECL): Fix name.
9283
9284         (TARGET_COMMUTATIVE_P): Fix type of first argument.
9285
9286         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
9287
9288         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
9289
9290         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
9291
9292         (TARGET_RELAXED_ORDERING): Use @deftypevr.
9293
9294         (TARGET_GET_DRAP_RTX): Note that this is a hook.
9295         Clarify language.
9296
9297         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
9298         Rename argument tm_fn to md_fn.
9299
9300         (TARGET_OPTION_PRINT): Fix argument list.
9301
9302 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
9303
9304         PR target/42664
9305         * config/i386/i386.c (ix86_fixup_binary_operands):
9306         Revert FMA4 fixup of operands.
9307
9308 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9309
9310         PR gcc/42525
9311         * Makefile.in (write_entries_to_file, install-plugin):
9312         Use \012 instead of \n with tr.
9313
9314 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
9315
9316         * configure.ac (HAVE_AS_REF): New C macro.
9317         * configure: Regenerate.
9318         * config.in: Likewise.
9319         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
9320         if HAVE_AS_REF.
9321         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
9322         if HAVE_AS_REF.
9323
9324 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
9325
9326         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
9327
9328         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
9329
9330         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
9331
9332         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
9333
9334         (TARGET_IN_SMALL_DATA_P): Fix argument type.
9335
9336         (TARGET_BINDS_LOCAL_P): Fix argument type.
9337
9338         (TARGET_ASM_FILE_END): Use prototype.
9339
9340         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
9341
9342         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
9343
9344         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
9345
9346         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
9347
9348         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
9349         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
9350
9351         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
9352         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
9353
9354         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
9355         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
9356         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
9357         (TARGET_ADDR_SPACE_CONVERT): Likewise.
9358
9359         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
9360
9361         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
9362
9363         (TARGET_INIT_BUILTINS): Use prototype.
9364
9365         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
9366         Put 'const char *' in braces.  Fix parameter types.
9367         (TARGET_INVALID_CONVERSION): Fix parameter types.
9368         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
9369         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
9370
9371         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
9372         Fix argument type.
9373
9374         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
9375
9376         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
9377
9378 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
9379
9380         * doc/tm.texi (TARGET_HELP): Fix return type.
9381
9382         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
9383         in braces.  Fix argument types.
9384
9385         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
9386
9387         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
9388
9389         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
9390
9391         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
9392         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
9393
9394         (TARGET_MANGLE_TYPE): Fix argument types.
9395
9396         (TARGET_IRA_COVER_CLASSES): Use prototype.
9397
9398         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
9399
9400         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
9401
9402         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
9403
9404         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
9405
9406         (TARGET_CALLEE_COPIES): Fix argument types.
9407
9408         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
9409
9410         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
9411
9412         (TARGET_FUNCTION_VALUE): Fix argument types.
9413
9414         (TARGET_RETURN_IN_MSB): Fix argument type.
9415
9416         (TARGET_RETURN_IN_MEMORY): Fix argument types.
9417
9418         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
9419
9420         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
9421
9422         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
9423         agree with return type.
9424
9425         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
9426
9427 2010-01-15  Jing Yu  <jingyu@google.com>
9428
9429         PR rtl-optimization/42691
9430         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
9431         a pseudo to a constant and are merged, and adjust comments.
9432
9433 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
9434
9435         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
9436
9437 2010-01-15  Richard Guenther  <rguenther@suse.de>
9438
9439         PR middle-end/42739
9440         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
9441         labels of computed or non-local gotos to the destination.
9442         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
9443         landing pad label is the first label.
9444
9445 2010-01-15  Richard Guenther  <rguenther@suse.de>
9446
9447         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
9448
9449 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9450
9451         PR target/42747
9452         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
9453         to allow generation of the xssqrtdp instruction on power7.
9454         (sqrtdf2_fpr): Ditto.
9455
9456 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
9457
9458         PR middle-end/42674
9459         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
9460         functions with noreturn attribute.
9461
9462         PR c++/42608
9463         * varasm.c (declare_weak): Add weak attribute to decl if it
9464         doesn't have one already.
9465         (assemble_external): Only add decls to weak_decls if they also
9466         have weak attribute.
9467
9468 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
9469
9470         * var-tracking.c (var_reg_delete): Don't delete the association
9471         between REGs and values or one-part variables if the register
9472         isn't clobbered.
9473
9474 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
9475
9476         PR debug/42657
9477         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
9478         because its first operand is a non-localized variable.
9479
9480 2010-01-14  Martin Jambor  <mjambor@suse.cz>
9481
9482         PR tree-optimization/42706
9483         * tree-sra.c (encountered_recursive_call): New variable.
9484         (encountered_unchangable_recursive_call): Likewise.
9485         (sra_initialize): Initialize both new variables.
9486         (callsite_has_enough_arguments_p): New function.
9487         (scan_function): Call decl and flags check only for IPA-SRA, check
9488         whether there is a recursive call and whether it has enough arguments.
9489         (all_callers_have_enough_arguments_p): New function.
9490         (convert_callers): Look for recursive calls only when
9491         encountered_recursive_call is set.
9492         (ipa_early_sra): Bail out either if
9493         !all_callers_have_enough_arguments_p or
9494         encountered_unchangable_recursive_call.
9495
9496 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9497
9498         * sel-sched.c: Add 2010 to copyright years.
9499         * sel-sched-ir.c: Likewise.
9500         * sel-sched-ir.h: Likewise.
9501
9502 2010-01-14  Martin Jambor  <mjambor@suse.cz>
9503
9504         PR tree-optimization/42714
9505         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
9506         constructors specially.
9507
9508 2010-01-14  Andi Kleen  <ak@linux.intel.com>
9509
9510         * config/i386/drivers-i386.c (detect_caches_intel):
9511         Add l2sizekb parameter and fill in.
9512         (host_detect_local_cpu): Add l2sizekb, fill in.
9513         Add Atom small cache heuristic.
9514
9515 2010-01-14  Andi Kleen  <ak@linux.intel.com>
9516
9517         * config/i386/drivers-i386.c (detect_caches_cpuid4):
9518         Add level3 parameter and fill in.
9519         (detect_caches_intel): Handle level3 cache.
9520
9521 2010-01-14  Andi Kleen  <ak@linux.intel.com>
9522
9523         * config/i386/drivers-i386.c (host_detect_local_cpu):
9524         Fix core duo detection.
9525
9526 2010-01-14  Andi Kleen  <ak@linux.intel.com>
9527
9528         * config/i386/drivers-i386.c (host_detect_local_cpu):
9529         Fix Atom detection.
9530
9531 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9532
9533         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
9534         (rs6000_variable_issue_1): this.  Use...
9535         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
9536
9537 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9538
9539         * sel-sched-ir.c (sel_restore_other_notes): Rename to
9540         sel_restore_notes.  Update all callers.  Call reemit_notes
9541         for all insns.
9542
9543 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
9544
9545         PR rtl-optimization/42246
9546         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
9547         loops.
9548
9549 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
9550
9551         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
9552         all successors is the same as number of successors in current region.
9553
9554 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9555
9556         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
9557         to rename is not separable.  Otherwise check that its LHS is not NULL.
9558
9559 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9560
9561         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
9562
9563 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9564
9565         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
9566         available registers when failed to discover LHS register class.
9567         Fix indentation.  Update comment.
9568
9569 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
9570             Alexander Monakov  <amonakov@ispras.ru>
9571
9572         PR rtl-optimization/42389
9573         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
9574         to can_issue_more.
9575         (advance_state_on_fence): Likewise.
9576         (sel_target_adjust_priority): Print debug output only when
9577         sched_verbose >= 4, not 2.
9578         (get_expr_cost): Do not issue all unique insns on the next cycle.
9579         (fill_insns): Initialize can_issue_more from the value saved
9580         with the fence.
9581         * sel-sched-ir.c (flist_add): New parameter issue_more.
9582         Init FENCE_ISSUE_MORE with it.
9583         (merge_fences): Likewise.
9584         (init_fences): Update call to flist_add.
9585         (add_to_fences, add_clean_fence_to_fences)
9586         (add_dirty_fence_to_fences): Likewise.
9587         (move_fence_to_fences): Update call to merge_fences.
9588         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
9589         sched groups.
9590         * sel-sched-ir.h (struct _fence): New field issue_more.
9591         (FENCE_ISSUE_MORE): New accessor macro.
9592
9593 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
9594
9595         PR rtl-optimization/42388
9596         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
9597         that have no predecessors nor successors.  Do not call move_bb_info
9598         for empty blocks outside of current region.
9599
9600 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9601
9602         PR rtl-optimization/42294
9603         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
9604         * sel-sched.c (move_exprs_to_boundary): Transitively add all
9605         originators' originators.
9606
9607 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9608
9609         PR rtl-optimization/39453
9610         PR rtl-optimization/42246
9611         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
9612         for pipelining_p.
9613         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
9614
9615 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
9616             Alexander Monakov  <amonakov@ispras.ru>
9617
9618         PR middle-end/42245
9619         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
9620         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
9621         argument.  Update all callers.
9622         (tidy_control_flow): ... and here.  Recompute topological order
9623         of basic blocks in region if necessary.
9624         (sel_redirect_edge_and_branch): Change return type.  Return true
9625         if topological order might have been invalidated.
9626         (purge_empty_blocks): Export and move from...
9627         * sel-sched.c (purge_empty_blocks): ... here.
9628         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
9629         (maybe_tidy_empty_bb): Delete prototype.
9630         (purge_empty_blocks): Declare.
9631
9632 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
9633
9634         PR rtl-optimization/42249
9635         * sel-sched.c (try_replace_dest_reg): When chosen register
9636         and original register is the same, do not bail out early, but
9637         still check all original insns for validity of replacing destination
9638         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
9639         in this case.
9640
9641 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
9642
9643         PR c/42721
9644         Port from no-undefined-overflow branch:
9645         2009-03-09  Richard Guenther  <rguenther@suse.de>
9646
9647         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
9648
9649 2010-01-14  Richard Guenther  <rguenther@suse.de>
9650
9651         PR lto/42665
9652         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
9653
9654 2010-01-14  Ira Rosen  <irar@il.ibm.com>
9655
9656         PR tree-optimization/42709
9657         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
9658         as scalar type in creation of constant vector operand.
9659
9660 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9661
9662         PR testsuite/42414
9663         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
9664         (check-parallel-%): Match `testsuite' directory component only
9665         at the end.
9666
9667 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
9668
9669         PR translation/39521
9670         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
9671         strings with _().
9672
9673 2010-01-13  Richard Guenther  <rguenther@suse.de>
9674
9675         PR tree-optimization/42730
9676         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
9677         offset zero.
9678
9679 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
9680
9681         PR target/pr42542
9682         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
9683         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
9684         them signed.
9685
9686 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
9687
9688         * config/bfin/libgcc-bfin.ver: Regenerate based on current
9689         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
9690         ___umulsi3_highpart.
9691
9692         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
9693         rather than schedule_insns if the pass is enabled.
9694
9695 2010-01-13  Martin Jambor  <mjambor@suse.cz>
9696
9697         PR tree-optimization/42704
9698         * tree-sra.c (sra_modify_assign): Do not delete assignments to
9699         SSA_NAMEs.
9700
9701 2010-01-13  Martin Jambor  <mjambor@suse.cz>
9702
9703         PR tree-optimization/42703
9704         * tree-sra.c (analyze_access_subtree): Check that we can build a
9705         reference to the original data within the aggregate.
9706
9707 2010-01-13  Richard Guenther  <rguenther@suse.de>
9708
9709         PR tree-optimization/42705
9710         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
9711
9712 2010-01-13  Richard Guenther  <rguenther@suse.de>
9713
9714         PR middle-end/42716
9715         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
9716
9717 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
9718
9719         PR debug/41371
9720         * var-tracking.c (values_to_unmark): New variable.
9721         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
9722         values_to_unmark vector.  Moved body to...
9723         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
9724         instead queue it into values_to_unmark vector.
9725         (vt_find_locations): Free values_to_unmark vector.
9726
9727 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
9728
9729         * config/s390/s390.c (override_options): Set
9730         default of max-pending-list-length to 256
9731
9732 2010-01-13  Richard Guenther  <rguenther@suse.de>
9733
9734         PR lto/42678
9735         * tree-pass.h (PROP_gimple_lcx): New.
9736         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
9737         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
9738         before the final cleanup_eh.
9739         (dump_properties): Dump PROP_gimple_lcx.
9740         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
9741         (tree_lower_complex_O0): Remove.
9742         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
9743         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
9744         tree_lower_complex, schedule TODO_update_ssa.
9745         * lto-streamer-out.c (output_function): Stream the functions
9746         properties.
9747         * lto-streamer-in.c (input_function): Likewise.
9748         (lto_read_body): Do not override them here.
9749
9750 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
9751
9752         PR c/42708
9753         * c-typeck.c (build_c_cast): Fold value cast to union type before
9754         wrapping it in a CONSTRUCTOR.
9755
9756 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
9757
9758         PR rtl-optimization/42699
9759         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
9760         involved.
9761
9762 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9763
9764         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
9765         SUBTARGET_WARN_UNUSED_SPEC): Move ...
9766         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
9767         SUBTARGET_WARN_UNUSED_SPEC): ... here
9768         * config/mips/iris5.h (LIBGCC_SPEC): Define.
9769
9770 2010-01-12  Julian Brown  <julian@codesourcery.com>
9771
9772         * config/arm/neon-schedgen.ml (Utils): Don't try to
9773         open missing module.
9774         (find_with_result): New.
9775
9776 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
9777
9778         PR debug/42662
9779         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
9780         sharing when canonicalizing ({lt,ge}u (plus a b) b).
9781
9782         PR tree-optimization/42645
9783         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
9784         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
9785         decl_map, set processing_debug_stmt to -1 and return name without
9786         any remapping.
9787
9788 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
9789
9790         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
9791         binutils version, and reword target configuration description.
9792
9793 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
9794
9795         * config/avr/avr.h (LINKER_NAME): Remove.
9796
9797 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
9798
9799         PR target/42416
9800         * config/rs6000/rs6000.c (rs6000_override_options): On targets
9801         that support VSX, warn for -mno-altivec if vsx is not disabled,
9802         and disable vsx.
9803
9804 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
9805             Shujing Zhao  <pearly.zhao@oracle.com>
9806
9807         PR translation/42469
9808         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
9809         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
9810         character between option name and help text.
9811         * c.opt (imultilib): Likewise.
9812
9813 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
9814
9815         * lto-streamer-out.c (output_unreferenced_globals): Output static
9816         variables.
9817
9818 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
9819
9820         PR rtl-optimization/42621
9821         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
9822         optimizing for size.
9823         (duplicate_computed_gotos): Remove now-redundant check.
9824
9825 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
9826
9827         PR target/37454
9828         * configure.ac: Save and restore LDFLAGS and LIBS
9829         * configure: Regenerate.
9830
9831 2010-01-10  Richard Guenther  <rguenther@suse.de>
9832
9833         PR middle-end/42667
9834         * builtins.c (fold_builtin_strlen): Add type argument and
9835         convert the resulting length to it.
9836         (fold_builtin_1): Adjust.
9837
9838 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
9839
9840         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
9841         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
9842         1 insn.
9843         (num_insns_constant_wide): Adjust for that change.
9844
9845 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9846
9847         PR debug/42631
9848         * web.c (union_defs): Add used argument, to combine uses of
9849         uninitialized regs.
9850         (entry_register): Adjust type and tests of used argument.
9851         (web_main): Widen used for new use.  Pass it to union_defs.
9852         * df.h (union_defs): Adjust prototype.
9853
9854 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9855
9856         PR debug/42630
9857         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
9858         uses in new incoming argument.  Free body.
9859         (reset_debug_uses_in_loop): New.
9860         (analyze_insn_to_expand_var): Call the latter if the former found
9861         anything.  Fix whitespace.  Reject invalid dest overlaps before
9862         going through all insns in the loop.
9863
9864 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9865
9866         PR debug/42629
9867         * haifa-sched.c (dying_use_p): Debug insns don't count.
9868
9869 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9870
9871         PR middle-end/42363
9872         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
9873         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
9874         (verify_gimple_call): Reject LHS in noreturn calls.
9875
9876 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9877
9878         PR debug/42604
9879         PR debug/42395
9880         * tree-vect-loop-manip.c (adjust_info): New type.
9881         (adjust_vec): New pointer to vector.
9882         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
9883         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
9884         (slpeel_update_phis_for_duplicate_loop): Use them.
9885         (slpeel_update_phi_nodes_for_guard1): Likewise.
9886         (slpeel_update_phi_nodes_for_guard2): Likewise.
9887         (slpeel_tree_peel_loop_to_edge): Likewise.
9888         (vect_update_ivs_after_vectorizer): Likewise.
9889
9890 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9891
9892         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
9893         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
9894
9895 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9896
9897         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
9898         bogus uninitialized warning.
9899
9900 2010-01-09  Richard Guenther  <rguenther@suse.de>
9901
9902         PR middle-end/42512
9903         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
9904         the evolution is compatible with the initial condition.
9905
9906 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
9907
9908         * gcc.c (process_command): Update copyright notice dates.
9909         * gcov.c (print_version): Likewise.
9910         * gcov-dump.c (print_version): Likewise.
9911         * mips-tfile.c (main): Likewise.
9912         * mips-tdump.c (main): Likewise.
9913
9914 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
9915
9916         PR target/41885
9917         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
9918         (rotlhi3): Delete.
9919         (rotlhi3_8): Delete.
9920         (rotlsi3): Delete.
9921         (rotlsi3_8): Delete.
9922         (rotlsi3_16): Delete.
9923         (rotlsi3_24): Delete.
9924         (rotl<mode>3): New.
9925         (*rotw<mode>3): New.
9926         (*rotb<mode>3): New.
9927         * config/avr/avr.c (avr_rotate_bytes): New function.
9928         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
9929
9930 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
9931
9932         PR target/37454
9933         * configure.ac: Modify -rdynamic check.
9934         * configure: Regenerate.
9935
9936 2010-01-08  DJ Delorie  <dj@redhat.com>
9937
9938         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
9939         register popping order.
9940
9941 2010-01-08  Richard Guenther  <rguenther@suse.de>
9942
9943         PR lto/42528
9944         * c.opt (fsigned-char): Also let LTO handle this option.
9945         (funsigned-char): Likewise.
9946
9947 2010-01-07  Richard Guenther  <rguenther@suse.de>
9948
9949         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
9950         (gimple_op): Likewise.
9951         (gimple_op_ptr): Likewise.
9952         (gimple_assign_set_lhs): Remove gcc_assert.
9953         (gimple_assign_set_rhs1): Likewise.
9954         (gimple_assign_set_rhs2): Likewise.
9955         (gimple_call_set_lhs): Likewise.
9956         (gimple_call_set_fn): Likewise.
9957         (gimple_call_set_fndecl): Likewise.
9958         (gimple_call_fndecl): Likewise.
9959         (gimple_call_return_type): Likewise.
9960         (gimple_call_set_chain): Likewise.
9961         (gimple_call_num_args): Likewise.
9962         (gimple_call_set_arg): Likewise.
9963         (gimple_cond_set_code): Likewise.
9964         (gimple_cond_set_lhs): Likewise.
9965         (gimple_cond_set_rhs): Likewise.
9966         (gimple_cond_set_true_label): Likewise.
9967         (gimple_cond_set_false_label): Likewise.
9968         (gimple_label_set_label): Likewise.
9969         (gimple_goto_set_dest): Likewise.
9970         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
9971         (gimple_debug_bind_get_value): Likewise.
9972         (gimple_debug_bind_get_value_ptr): Likewise.
9973         (gimple_debug_bind_set_var): Likewise.
9974         (gimple_debug_bind_set_value): Likewise.
9975         (gimple_debug_bind_reset_value): Likewise.
9976         (gimple_debug_bind_has_value_p): Likewise.
9977         (gimple_return_retval_ptr): Remove gcc_assert.
9978         (gimple_return_retval): Likewise.
9979         (gimple_return_set_retval): Likewise.
9980         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
9981         (safe_referenced_var_iterator): Remove.
9982         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
9983         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
9984         (fill_referenced_var_vec): Remove.
9985         (first_readonly_imm_use): Remove redundant gcc_assert.
9986         (phi_arg_index_from_use): Combine gcc_asserts.
9987         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
9988         (first_imm_use_stmt): Remove redundant gcc_assert.
9989         * tree-cfg.c (verify_gimple_call): Verify function and chain
9990         operands.  Verify arguments.
9991         (verify_types_in_gimple_stmt): Verify condition code and labels.
9992
9993 2010-01-07  Richard Guenther  <rguenther@suse.de>
9994
9995         PR tree-optimization/42641
9996         * sese.c (rename_map_elt_info): Use the SSA name version, do
9997         not hash pointers.
9998
9999 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
10000
10001         PR tree-optimization/42625
10002         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
10003         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
10004
10005 2010-01-07  Duncan Sands  <baldrick@free.fr>
10006
10007         * Makefile.in (PLUGIN_HEADERS): Add version.h.
10008
10009 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
10010
10011         PR target/42511
10012         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
10013         note itself is not function_invariant_p.
10014
10015 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
10016
10017         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
10018         Do not add the DF_NOTE problem.
10019         * store-motion.c (execute_rtl_store_motion): Likewise.
10020
10021 2010-01-07  Martin Jambor  <mjambor@suse.cz>
10022
10023         PR tree-optimization/42157
10024         * tree-sra.c (compare_access_positions): Stabilize sort if both
10025         accesses have integer types, return zero immediately if they are the
10026         same.
10027
10028 2010-01-06  Richard Henderson  <rth@redhat.com>
10029
10030         PR middle-end/41883
10031         * haifa-sched.c (add_to_note_list): Merge into ...
10032         (concat_note_lists): ... here, and ...
10033         (unlink_other_notes, rm_other_notes): Merge into...
10034         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
10035         NOTE_INSN_EPILOGUE_BEG.
10036
10037 2010-01-06  Richard Guenther  <rguenther@suse.de>
10038
10039         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
10040         not inline regular functions into always-inline functions.
10041
10042 2010-01-06  Nick Clifton  <nickc@redhat.com>
10043
10044         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
10045         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
10046         used together.
10047         (OVERRIDE_OPTIONS): Delete.
10048         (OPTIMIZATION_OPTIONS): Define.
10049         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
10050         * config/rx/rx.c (rx_handle_option): Issue an error message if
10051         -mcpu=rx200 and -fpu are used together.
10052         (rx_set_optimization_options): New function.  Issue an error
10053         message if an optimization attribute attempts to reset the FPU/
10054         math optimization pairing.
10055         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
10056         * config/rx/rx.opt: Set the default to 32-bit doubles.
10057         * config/rx/t-rx: Add multilibs for -nofpu option.
10058         * doc/invoke.texi: Update documentation of RX options.
10059
10060 2010-01-06  Richard Guenther  <rguenther@suse.de>
10061
10062         * tree-ssa-pre.c (name_to_id): New global.
10063         (alloc_expression_id): Simplify SSA name handling.
10064         (lookup_expression_id): Likewise.
10065         (init_pre): Zero name_to_id.
10066         (fini_pre): Free it.
10067
10068 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
10069
10070         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
10071
10072 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
10073
10074         PR target/42542
10075         * config/i386/sse.md (smaxv2di3): New.
10076         (umaxv2di3): Likewise.
10077         (sminv2di3): Likewise.
10078         (uminv2di3): Likewise.
10079
10080 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
10081
10082         PR target/42564
10083         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
10084         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
10085         (legitimize_tls_address): Likewise.
10086         (sparc_tls_referenced_p): Likewise.
10087         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
10088         and adjust calls to legitimize_pic_address.
10089         (legitimate_constant_p) Use sparc_tls_referenced_p.
10090         (legitimate_pic_operand_p): Likewise.
10091         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
10092         (sparc_tls_symbol_ref_1): Delete.
10093         (sparc_tls_referenced_p): Make static, recognize specific patterns.
10094         (legitimize_tls_address): Make static, handle CONST patterns.
10095         (legitimize_pic_address): Make static, remove unused parameter and
10096         adjust recursive calls.
10097         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
10098         and adjust call to legitimize_pic_address.
10099         (sparc_output_mi_thunk): Likewise.
10100
10101 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
10102             H.J. Lu  <hongjiu.lu@intel.com>
10103
10104         PR target/42542
10105         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
10106         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
10107         operands to make them signed.
10108
10109         Revert:
10110         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
10111
10112         PR target/42542
10113         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
10114         GTU to GT for V4SI and V2DI.
10115
10116         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
10117         (umin<mode>3): Removed.
10118         (uminv8hi3): New.
10119         (uminv4si3): Likewise.
10120
10121 2010-01-05  Martin Jambor  <mjambor@suse.cz>
10122
10123         PR tree-optimization/42462
10124         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
10125         current_function_decl to helper functions and macros.
10126
10127 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10128
10129         PR bootstrap/41771
10130         * flags.h: Don't include real.h.
10131         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
10132         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
10133         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
10134         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
10135         * dominance.c: Update copyright.
10136         * gimple.c (walk_gimple_op): Remove inline.
10137         * tree-ssa-reassoc.c: Include real.h.
10138         * Makefile.in (FLAGS_H): Remove $(REAL_H).
10139         (tree-ssa-reassoc.o): Depend on $(REAL_H).
10140
10141 2010-01-05  Nick Clifton  <nickc@redhat.com>
10142
10143         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
10144         register to push into the stack frame when the accumulator has to
10145         be saved during interrupts.
10146
10147 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
10148
10149         * doc/invoke.texi: Remove the documentation about option
10150         -Wunreachable-code.
10151         * common.opt (Wunreachable-code):  Preserved for backward
10152         compatibility.
10153         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
10154         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
10155         the backward compatibility flag section.
10156
10157 2010-01-05  Richard Guenther  <rguenther@suse.de>
10158
10159         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
10160
10161 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
10162
10163         PR other/42611
10164         * cfgexpand.c (expand_one_var): Diagnose too large variables.
10165
10166         PR tree-optimization/42508
10167         * tree-sra.c (convert_callers): Check for recursive call
10168         by comparing cgraph nodes instead of decls.
10169         (modify_function): Call ipa_modify_formal_parameters also
10170         on all same_body aliases.
10171
10172         * cgraphunit.c (cgraph_materialize_all_clones): Compare
10173         cgraph nodes when checking for same_body aliases.
10174
10175 2010-01-05  Richard Guenther  <rguenther@suse.de>
10176
10177         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
10178         allocation and lookup.
10179         (get_or_alloc_expr_for_constant): Likewise.
10180         (phi_translate): Sink allocation.
10181
10182 2010-01-04  Richard Guenther  <rguenther@suse.de>
10183
10184         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
10185         a new entry only if needed.
10186         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
10187         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
10188         hashtable lookup.
10189         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
10190         the result array.
10191         (phi_translate): Handle CONSTANTs early.
10192
10193 2010-01-04  Martin Jambor  <mjambor@suse.cz>
10194
10195         PR tree-optimization/42398
10196         * tree-sra.c (struct access): Removed flag grp_different_types.
10197         (dump_access): Do not dump the removed flag.
10198         (sort_and_splice_var_accesses): Do not set the removed flag.
10199         (sra_modify_expr): Check for type compatibility directly.
10200
10201 2010-01-04  Martin Jambor  <mjambor@suse.cz>
10202
10203         PR tree-optimization/42366
10204         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
10205         edges with variable number of parameters.
10206         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
10207         flag instead of asserting it.
10208         (ipa_read_node_info): Read uses_analysis_done flag.
10209
10210 2010-01-04  Richard Guenther  <rguenther@suse.de>
10211
10212         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
10213         iterative_hash_* as intended.
10214         (vn_reference_compute_hash): Likewise.  Simplify hashing
10215         SSA names.
10216         (vn_reference_lookup_2): Likewise.
10217         (vn_nary_op_compute_hash): Likewise.
10218         (vn_phi_compute_hash): Likewise.
10219         (expressions_equal_p): Remove strange code.
10220         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
10221         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
10222         (bitmap_insert_into_set_1): Take value-id as parameter.
10223         (add_to_value): Pass it.
10224         (bitmap_insert_into_set): Likewise.
10225         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
10226
10227 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
10228
10229         PR driver/42442
10230         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
10231         (do_self_spec): For switches with SWITCH_IGNORE set set also
10232         SWITCH_IGNORE_PERMANENTLY.
10233         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
10234         of SWITCH_IGNORE.
10235
10236 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
10237
10238         * lto-streamer-out.c (output_unreferenced_globals): Output the full
10239         tree of an unreferenced global var.
10240
10241 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
10242
10243         PR target/42542
10244         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
10245         GTU to GT for V4SI and V2DI.
10246
10247         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
10248         (umin<mode>3): Removed.
10249         (uminv8hi3): New.
10250         (uminv4si3): Likewise.
10251
10252 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
10253
10254         PR lto/42581
10255         * collect2.c (main): Turn on trace in collect2 if -v is passed
10256         to gcc with LTO.
10257
10258 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
10259
10260         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
10261         description of expression operand.
10262
10263 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
10264
10265         * configure.ac: Add install-html to target_list for Make-hooks.
10266         * configure: Regenerate.
10267         * fortran/Make-lang.in (F95_HTMLFILES): New.
10268         (fortran.html): Use it.
10269         (fortran.install-html): New.
10270         * Makefile.in (install-html): Add lang.install-html.
10271         * java/Make-lang.in (JAVA_HTMLFILES): New.
10272         (java.html): Use it.
10273         (java.install-html): New.
10274         * objc/Make-lang.in (objc.install-html): New.
10275         * objcp/Make-lang.in (obj-c++.install-html): New.
10276         * cp/Make-lang.in (c++.install-html): New.
10277         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
10278         * lto/Make-lang.in (lto.install-html): New.
10279
10280 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
10281
10282         PR lto/42520
10283         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
10284
10285 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
10286
10287         PR rtl-optimization/41862
10288         * store-motion.c (store_killed_in_insn, compute_store_table,
10289         remove_reachable_equiv_notes, replace_store_insn,
10290         build_store_vectors): Ignore all DEBUG_INSNs.
10291
10292 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
10293
10294         PR lto/41564
10295         * common.opt: Add dumpdir.
10296
10297         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
10298         isn't specified.
10299         (option_map): Add --dumpdir.
10300
10301         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
10302
10303         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
10304
10305         * opts.c (decode_options): Try dump_dir_name first if
10306         dump_base_name isn't an absolute path.
10307         (common_handle_option): Handle OPT_dumpdir.
10308
10309         * toplev.c (dump_dir_name): New.
10310         (print_switch_values): Also ignore -dumpdir.
10311
10312         * toplev.h (dump_dir_name): New.
10313
10314 2010-01-03  Richard Guenther  <rguenther@suse.de>
10315
10316         PR tree-optimization/42589
10317         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
10318         double-word expansion of bswap32.
10319
10320 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
10321
10322         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
10323         with BLOCK_FOR_INSN.
10324         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
10325         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
10326         noce_process_if_block): Likewise.
10327         * gcse.c (compute_local_properties, insert_expr_in_table,
10328         insert_set_in_table, canon_list_insert, find_avail_set,
10329         pre_insert_copy_insn): Likewise.
10330
10331         * basic-block.h (BLOCK_NUM): Move from here...
10332         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
10333
10334 2010-01-03  Richard Guenther  <rguenther@suse.de>
10335
10336         PR tree-optimization/42438
10337         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
10338         contains_may_not_return_call flag.
10339         (BB_MAY_NOTRETURN): New.
10340         (valid_in_sets): Trapping nary operations are not valid
10341         in blocks that may not return.
10342         (insert_into_preds_of_block): Remove check for trapping expressions.
10343         (compute_avail): Compute also BB_MAY_NOTRETURN.
10344
10345 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
10346
10347         * doc/invoke.texi: Add 2010 to copyright years.
10348
10349 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
10350
10351         * config/sparc/sparc.c: Fix formatting nits.
10352
10353 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
10354             Alexander Monakov  <amonakov@ispras.ru>
10355
10356         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
10357
10358 2010-01-02  Richard Guenther  <rguenther@suse.de>
10359
10360         PR middle-end/42577
10361         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
10362         (simplify_switch_using_ranges): Mark to be removed edges
10363         as non-executable.
10364
10365 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10366
10367         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
10368
10369         * collect2.c (scan_libraries): Add missing argument in call to
10370         scan_prog_file.
10371
10372 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
10373
10374         PR target/42448
10375         * config/alpha/predicates.md (aligned_memory_operand): Return false
10376         for CQImode.
10377         (unaligned_memory_operand): Return true for CQImode.
10378         * config/alpha/alpha.c (get_aligned_mem): Assert that location
10379         doesn not cross aligned SImode word boundary.
10380
10381 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
10382
10383         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
10384         Remove.
10385         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
10386         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
10387
10388 2010-01-02  Richard Guenther  <rguenther@suse.de>
10389
10390         PR lto/41597
10391         * toplev.c (compile_file): Emit LTO marker properly.  Change
10392         it to __gnu_lto_v1.
10393         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
10394
10395 2010-01-01  Richard Guenther  <rguenther@suse.de>
10396
10397         PR debug/42455
10398         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
10399
10400 2010-01-01  Richard Guenther  <rguenther@suse.de>
10401
10402         PR c/42570
10403         * c-decl.c (grokdeclarator): For zero-size arrays force
10404         structural equality checks as layout_type does.
10405
10406 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
10407
10408         * builtins.c: Update copyright to 2010.
10409
10410 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
10411
10412         PR lto/42531
10413         * lto-streamer-out.c (produce_asm): Revert the last change.
10414         (copy_function): Likewise.
10415
10416         * lto-streamer.c (lto_get_section_name): Skip any leading
10417         asterisk in name.
10418
10419 2010-01-01  Richard Guenther  <rguenther@suse.de>
10420
10421         PR middle-end/42559
10422         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
10423         for LABEL_DECLs.
10424
10425 \f
10426 Copyright (C) 2010 Free Software Foundation, Inc.
10427
10428 Copying and distribution of this file, with or without modification,
10429 are permitted in any medium without royalty provided the copyright
10430 notice and this notice are preserved.