OSDN Git Service

d57ec1241793dc95c7eff8127b1690bf9d31538f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-09-07  Sterling Augustine  <sterling@tensilica.com>
2
3         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
4         if there is no i-cache.
5
6 2007-09-07  Richard Guenther  <rguenther@suse.de>
7
8         Reapply
9         2007-09-06  Richard Guenther  <rguenther@suse.de>
10
11         PR tree-optimization/32586
12         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
13         folding if nothing changed.
14         (simplify_unary_expression): New function.  Do tree combining
15         on conversion like codes.
16         (try_to_simplify): Call it.
17
18 2007-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19
20         PR target/33286
21         * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
22         (__gthread_active,__gthread_start, __gthread_active_init): New.
23         * gthr-posix95.h: Likewise.
24
25 2007-09-07  Roman Zippel <zippel@linux-m68k.org>
26
27         * function.h (struct function): Rename calls_unwind_init
28         to saves_all_registers.
29         (current_function_saves_all_registers): Renamed from
30         current_function_calls_unwind_init.
31         * reload1.c (reload): Set current_function_saves_all_registers.
32         * except.c (expand_builtin_unwind_init): Likewise.
33         * config/m68k/m68k.c (m68k_save_reg): Use
34         current_function_saves_all_registers to save pic register.
35
36 2007-09-07  Janis Johnson  <janis187@us.ibm.com>
37
38         config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
39         config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.
40
41         Reapply reverted changes:
42
43         2007-09-06  Jan Hubicka  <jh@suse.cz>
44  
45         * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call of
46         real_2expN.
47
48         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
49
50         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
51         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
52
53         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
54
55         * optabs.c (expand_float): Convert unsigned integer as signed only
56         if it provides sufficient accuracy; add mode argument to real_2expN.
57         (expand_fix): Fix comment typos; extend binary float into mode
58         wider than destination for converion to unsigned integer; add mode
59         argument to real_2expN.
60         * real.c (real_2expN): Add mode argument to special-case decimal
61         float values.
62         * real.h (real_2expN): Ditto.
63         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
64         real_2expN.
65         (fixed_from_string): Ditto.
66         (fixed_to_decimal): Ditto.
67         (fixed_convert_from_real): Ditto.
68         (real_convert_from_fixed): Ditto.
69         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
70         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
71         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
72         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
73
74 2007-09-07  Diego Novillo  <dnovillo@google.com>
75
76         * tree-flow.h (const_block_stmt_iterator): Remove.
77         Update all users to use block_stmt_iterator.
78         * tree-iterator.h (const_tree_stmt_iterator): Remove.
79         Update all users to use tree_stmt_iterator.
80
81 2007-09-07  Sandra Loosemore  <sandra@codesourcery.com>
82
83         * config/mips/mips.c (mips_set_current_function): Temporarily
84         make this a no-op to fix bootstrap errors, pending rewrite.
85
86 2007-09-07  Jan Hubicka  <jh@suse.cz>
87
88         * reorg.c (dbr_schedule): Move code removing placeholder USEs later
89         in the pass.
90
91 2007-09-07  Dorit Nuzman  <dorit@il.ibm.com>
92
93         PR tree-optimization/33299
94         * tree-vect-transform.c (vect_create_epilog_for_reduction): Update uses 
95         for all relevant loop-exit phis, not just the first.
96
97 2007-09-07  Richard Guenther  <rguenther@suse.de>
98
99         PR middle-end/33330
100         * tree-ssa-operands.c (access_can_touch_variable): An access
101         of the form (*p)[0] can touch a variable of same size.
102
103 2007-09-07  Jan Hubicka  <jh@suse.cz>
104
105         * passes.c (init_optimization_passes): Add simple dce and addressable
106         passes.
107         * tree-ssa.c (execute_update_addresses_taken): New function.
108         (pass_update_address_taken): New.
109         * tree-ssa-dse.c (execute_simple_dse): New function.
110         (pass_simple_dse): New.
111         * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.
112
113 2007-09-07  Tobias Burnus  <burnus@net-b.de>
114
115         PR middle-end/33321
116         * doc/invoke.texi: Fix -Wstrict-overflow= table.
117
118 2007-09-07  Richard Guenther  <rguenther@suse.de>
119
120         Revert
121         2007-09-06  Richard Guenther  <rguenther@suse.de>
122
123         PR tree-optimization/32586
124         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
125         folding if nothing changed.
126         (simplify_unary_expression): New function.  Do tree combining
127         on conversion like codes.
128         (try_to_simplify): Call it.
129
130 2007-09-07  Richard Guenther  <rguenther@suse.de>
131             Uros Bizjak  <ubizjak@gmail.com>
132
133         PR tree-optimization/32821
134         * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
135         NULL in the call to set_bb_stmt_list.
136
137 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
138
139         * config/mips/mips.c (build_mips16_call_stub): Emit all direct
140         float calls here, rather than leaving some to the caller.
141         Use call_internal_direct and call_value_internal_direct.
142         * config/mips/mips.md (call_internal_direct): New pattern.
143         (call_value_internal_direct): Likewise.
144
145 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
146
147         * config/mips/mips.c (mips_base_move_loop_invariants): New variable.
148         (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
149         to 0 for MIPS16.
150         (override_options): Set mips_base_move_loop_invariants.
151
152 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
153
154         * config/mips/mips.opt (mcode-readable=): Move to keep list
155         alphabetical.
156
157 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
158
159         * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
160         and -mgpopt options.  Adjust the -G documentation to match.
161         * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
162         * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
163         function, split out from mips_classify_symbol.  Return false for
164         !TARGET_LOCAL_SDATA.
165         (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
166         Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
167         (override_options): Check whether the -mgpopt setting is consistent
168         with the other flags.
169         (symbolic_expression_p): Delete.
170         (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
171         and default_elf_select_rtx_section.
172         (mips_in_small_data_p): Honor section attributes for MIPS16 too.
173         Return false for local data unless TARGET_LOCAL_SDATA.  Likewise
174         external data and TARGET_EXTERN_SDATA.
175
176 2007-09-07  Tobias Burnus  <burnus@net-b.de>
177
178         PR fortran/33303
179         * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.
180
181 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
182
183         * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
184         FOR_BB_INSNS_SAFE instead of for loop.
185         * cse.c (cse_extended_basic_block): Likewise.
186         * postreload.c (reload_cse_regs_1): New variable next. Make sure
187         that the for loop does not invoke NEXT_INSN on a deleted insn.
188         * function.c (instantiate_virtual_regs): Likewise.
189         * lower-subreg.c (remove_retval_note): Likewise.
190         (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
191         FOR_BB_INSNS.
192         * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
193         a deleted insn.
194         * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
195         insn, if it's a jump.
196         (try_redirect_by_replacing_jump): New variable jump_p. Call
197         tablejump_p before delete_insn_chain.
198         * reload1.c (reload): New variable next. Make sure that the for
199         loop does not invoke NEXT_INSN on a deleted insn.
200         (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
201         (delete_output_reload): New variable prev. Make sure the the for
202         loops do not invoke PREV_INSN on a deleted insn.
203
204 2007-09-06  Zdenek Dvorak  <ook@ucw.cz>
205
206         * cgraphbuild.c (rebuild_cgraph_edges): Export.
207         * cgraph.h (rebuild_cgraph_edges): Declare.
208         * tree-pass.h (pass_expand_omp_ssa): New.
209         * omp-low.c (find_omp_clause): Export.
210         (copy_var_decl): Split from omp_copy_decl_2.
211         (build_omp_barrier): Return the call to emit instead of emitting
212         it directly.
213         (lower_rec_input_clauses, expand_omp_single): Gimplify the result of
214         build_omp_barrier.
215         (extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
216         expand_omp_for_generic, expand_omp_for_static_nochunk,
217         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
218         Adapted to work on SSA form.
219         (execute_expand_omp): Do not invalidate dominance information.
220         (gate_expand_omp): Do not run with -fopenmp-ssa flag.
221         (gate_expand_omp_ssa, pass_expand_omp_ssa): New.
222         * gimplify.c (gimplify_omp_for): Ensure that the control variable is
223         a gimple_reg.
224         (force_gimple_operand): Allow gimplifying code expressions without
225         value.
226         * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
227         * common.opt (fopenmp-ssa): New.
228         * tree-flow.h (find_omp_clause, copy_var_decl): Declare.
229         * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
230         * tree-cfg.c: Include tree-inline.h.
231         (struct move_stmt_d): Replace vars_to_remove by vars_map field.
232         (replace_by_duplicate_decl, replace_ssa_name,
233         mark_virtual_ops_in_region): New functions.
234         (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
235         to work on SSA form.
236         * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
237         * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
238         constructs.
239
240 2007-09-06  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
241
242         * tree-loop-linear.c: Include obstack.h.
243         (linear_transform_loops): New obstack lambda_obstack.
244         Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
245         lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
246         and free afterwards.
247         * lambda.h (struct obstack): New forward declaration.
248         (lambda_linear_expression_new): New parameter of type struct
249         obstack *.
250         (lambda_loopnest_new): Likewise.
251         (lambda_loopnest_transform): Likewise.
252         (lambda_body_vector_new): Likewise.
253         (lambda_body_vector_compute_new): Likewise.
254         (gcc_loopnest_to_lambda_loopnest): Likewise.
255         (lambda_loopnest_to_gcc_loopnest): Likewise.
256         * lambda-code.c: Include obstack.h.
257         (lambda_lattice_new): New parameter lambda_obstack.  Use it for
258         allocation of ret.
259         (lambda_body_vector_new): Likewise.
260         (lambda_linear_expression_new): Likewise.
261         (lambda_lattice_new): Likewise.
262         (lambda_loopnest_new): Likewise.  Additionally use obstack to
263         allocate LN_LOOPS(ret).
264         (lambda_lattice_compute_base): New parameter lambda_obstack.  Pass
265         it to lambda_lattice_new.
266         (lambda_body_vector_compute_new): New parameter lambda_obstack.
267         Pass it to lambda_body_vector_new.
268         (lambda_lattice_compute_base): New paramater lambda_obstack.  Pass
269         it to lambda_lattice_new.
270         (compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
271         Pass it to lambda_loopnest_new, lambda_linear_expression_new.
272         (lambda_compute_target_space): Likewise.
273         (lambda_compute_auxillary_space): New parameter lambda_obstack.
274         Pass it to lambda_lattice_compute_base and
275         compute_nest_using_fourieer_motzkin.
276         (lambda_loopnest_transform): New parameter lambda_obstack.  Pass
277         it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
278         and lambda_lattice_compute_target_space.
279         (gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
280         Pass it to lambda_linear_expression_new.
281         (gcc_loop_to_lambda_loop): New parameter lambda_obstack.  Pass it
282         to gcc_tree_to_linear_expression.
283         (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
284         Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
285         (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
286         Pass it to lambda_body_vector_new and
287         lambda_body_vector_compute_new.
288         * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
289         (lambda-code.o): Likewise.
290
291 2007-09-06  Chao-ying Fu  <fu@mips.com>
292
293         * ginclude/stdfix.h: New file.
294         * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
295         (convert.o): Add dependence on fixed-value.h.
296         * c-convert.c (convert): Support FIXED_POINT_TYPE.
297         * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
298         to define fixed-point constants.
299         (c_cpp_builtins): Define fixed-point constants.
300         * convert.c (fixed-value.h): New include.
301         (convert_to_real): Update comment to include fixed-point.
302         Support FIXED_POINT_TYPE.
303         (convert_to_integer): Update comment to include fixed-point.
304         Support FIXED_POINT_TYPE.
305         (convert_to_complex): Support FIXED_POINT_TYPE.
306         (convert_to_fixed): New function.
307         * convert.h (convert_to_fixed): Declare.
308         * genopinit.c: Add comment about $Q for only fixed-point modes.
309         (optabs): Add fract_optab, fractuns_optab, satfract_optab,
310         satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
311         sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
312         ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
313         usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
314         usneg_optab for fixed-point modes.
315         (gen_insn): Add force_fixed to track the $Q format for all fixed-point
316         modes.
317         * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
318         PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
319         unsigned saturation optabs, when type is saturating.
320         (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
321         (expand_fixed_convert): New function.
322         (gen_fixed_libfunc, gen_signed_fixed_libfunc,
323         gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
324         gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
325         gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
326         gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
327         gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
328         functions.
329         (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
330         ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
331         usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
332         ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
333         usneg_optab, fract_optab, fractuns_optab, satfract_optab,
334         satfractuns_optab.
335         Initialize fixed-point libraries, including add, ssadd, usadd, sub,
336         sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
337         ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
338         fractuns, satfractuns.
339         * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
340         OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
341         OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
342         OTI_ssmsub_widen,  OTI_usmsub_widen.
343         (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
344         usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
345         ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
346         umsub_widen_optab, usmsub_widen_optab): Define.
347         (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
348         COI_satfractuns.
349         (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
350         Define.
351         (expand_fixed_convert): Declare.
352         * expr.c (convert_move): Support the move of fixed-point modes.
353         (emit_move_insn_1): Handle fixed-point mode to move via integer.
354         (categorize_ctor_elements_1): Handle FIXED_CST.
355         (count_type_elements): Handle FIXED_POINT_TYPE.
356         (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
357         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
358         Support FIXED_CST.
359         For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
360         multiply and add/subtract for fixed-point types.
361         For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
362         mode, we jump to binop directly.
363         Support FIXED_CONVERT_EXPR.
364         (do_store_flag): Check FIXED_CST to put a constant second.
365         (vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
366         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
367         (const_vector_from_tree): Support FIXED_CST.
368         * doc/extend.texi (Fixed-Point): New node.
369         * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
370         ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
371         satfract, fractuns, satfractuns): Document them.
372
373 2007-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>
374
375         * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
376         addresses into I registers.
377
378 2007-09-06  Jan Hubicka  <jh@suse.cz>
379             Andreas Tobler  <a.tobler@schweiz.org>
380
381         * config/darwin.c (machopic_indirect_data_reference): Avoid invalid
382         sharing.
383         (machopic_legitimize_pic_address): Likewise.
384
385 2007-09-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
386             Jan Hubicka  <jh@suse.cz>
387
388         * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
389         instead of ufloat_optab->handlers directly.
390         (floatdidf2): Likewise.
391
392 2007-09-06  Sandra Loosemore  <sandra@codesourcery.com>
393
394         * config/mips/mips.c:  Include diagnostic.h.
395         (mips_set_current_function): Check errorcount and sorrycount 
396         before generating RTL.
397
398 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
399
400         PR target/33256
401         * config/mips/mips.c (mips_classify_symbolic_expression): New function.
402         (mips_classify_address): Use it instead of mips_symbolic_constant_p.
403         (print_operand_reloc): Likewise.
404
405 2007-09-06  Janis Johnson  <janis187@us.ibm.com>
406
407         Revert:
408
409         2007-09-06  Jan Hubicka  <jh@suse.cz>
410  
411         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
412         real_2expN.
413
414         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
415
416         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
417         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
418
419         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
420
421         * optabs.c (expand_float): Convert unsigned integer as signed only
422         if it provides sufficient accuracy; add mode argument to real_2expN.
423         (expand_fix): Fix comment typos; extend binary float into mode
424         wider than destination for converion to unsigned integer; add mode
425         argument to real_2expN.
426         * real.c (real_2expN): Add mode argument to special-case decimal
427         float values.
428         * real.h (real_2expN): Ditto.
429         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
430         real_2expN.
431         (fixed_from_string): Ditto.
432         (fixed_to_decimal): Ditto.
433         (fixed_convert_from_real): Ditto.
434         (real_convert_from_fixed): Ditto.
435         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
436         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
437         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
438         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
439
440 2007-09-06  Tom Tromey  <tromey@redhat.com>
441
442         * tree-cfg.c (remove_bb): Only warn if line is non-zero.
443         * c-pch.c (c_common_read_pch): Restore current location after
444         reading PCH file.
445         * tree.c (expand_location): Update.
446         (expr_filename): Changed return type.  Unified the two cases.
447         (expr_lineno): Likewise.
448         (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
449         as lvalues.
450         * toplev.c (line_table): Changed type.
451         (general_init): Update.
452         (realloc_for_line_map): New function.
453         (general_init): Allocate line_table using GC.
454         * fix-header.c (line_table): Changed type.
455         (read_scan_file): Update.
456         (read_scan_file): Update.
457         * c-ppoutput.c (maybe_print_line): Update.
458         (print_line): Update.
459         (cb_line_change): Update.
460         (cb_define): Update.
461         (pp_file_change): Update.
462         * c-opts.c (c_common_init_options): Update.
463         (finish_options): Update.
464         (push_command_line_include): Update.
465         * c-lex.c (cb_line_change): Update.
466         (cb_def_pragma): Update.
467         (cb_define): Update.
468         (cb_undef): Update.
469         (c_lex_with_flags): Use cpp_get_token_with_location.
470         * input.h (line_table): Changed type.
471         (location_from_locus): New macro.
472         * tree.h (EXPR_FILENAME): No longer an lvalue.
473         (EXPR_LINENO): Likewise.
474         (expr_locus, set_expr_locus): Declare separately for
475         USE_MAPPED_LOCATION.
476         (expr_filename, expr_lineno): Changed return type.
477         * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
478         * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
479         (expand_gimple_basic_block): Likewise.
480         * final.c (final_scan_insn): Use expanded_location.
481
482 2007-09-06  Richard Guenther  <rguenther@suse.de>
483
484         PR tree-optimization/32586
485         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
486         folding if nothing changed.
487         (simplify_unary_expression): New function.  Do tree combining
488         on conversion like codes.
489         (try_to_simplify): Call it.
490         * builtins.c (fold_builtin_cexp): Fold the built expressions.
491         * fold-const.c (fold_unary): Test result of get_callee_fndecl().
492
493 2007-09-06  Jan Hubicka  <jh@suse.cz>
494
495         PR target/33318
496         * cse.c (fold_rtx): Avoid invalid sharing.
497
498 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
499
500         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
501         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
502
503 2007-09-06  Revital Eres  <eres@il.ibm.com>
504
505         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
506         Fix offsettable memory reference for 750CL.
507
508 2007-09-06  Pat Haugen  <pthaugen@us.ibm.com>
509
510         * reload.c (find_reloads_address_1): Try to preserve original
511         base/index regclass of operands.
512         * regrename.c (scan_rtx_address): Likewise.
513         (replace_oldest_value_addr): Likewise.
514
515 2007-09-06  Richard Guenther  <rguenther@suse.de>
516
517         PR tree-optimization/33302
518         * domwalk.c (walk_dominator_tree): The exit block is
519         interesting even if it is not reachable.
520
521 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
522
523         PR middle-end/33306
524         * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
525
526 2007-09-06  Basile Starynkevitch  <basile@starynkevitch.net>
527
528         * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for 
529         robustness.
530
531 2007-09-05  Ian Lance Taylor  <iant@google.com>
532
533         * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
534         when printing.
535         (dump_generic_node): Likewise.
536         * print-rtl.c (print_decl_name): Likewise.
537         * print-tree.c (print_node_brief): Likewise.
538         (print_node): Likewise.
539         * Makefile.in (RTL_BASE_H): Add alias.h.
540         (TREE_H): Likewise.
541
542 2007-09-06  Jesper Nilsson  <jesper.nilsson@axis.com>
543
544         * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
545         Defined.
546         * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
547         * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
548
549 2007-09-06  Jie Zhang  <jie.zhang@analog.com>
550
551         * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
552         (tm_defines): Define UCLIBC_DEFAULT to 1.
553         (extra_options): Add linux.opt.
554         * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
555         (CRT_CALL_STATIC_FUNCTION): Likewise.
556         (NO_IMPLICIT_EXTERN_C): Likewise.
557         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
558         * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
559         * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
560         (ENDFILE_SPEC): Don't define.
561         (LIB_SPEC): Likewise.
562         (CRT_CALL_STATIC_FUNCTION): Likewise.
563         (NO_IMPLICIT_EXTERN_C): Likewise.
564         (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
565         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
566
567 2007-09-06  Jan Hubicka  <jh@suse.cz>
568
569         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
570         real_2expN.
571
572 2007-09-06  Jan Hubicka  <jh@suse.cz>
573
574         * opts.c (common_handle_option): Enable inlining functions for
575         -fprofile-generate.
576
577 2007-09-06  Jakub Jelinek  <jakub@redhat.com>
578
579         * builtin-attrs.def (ATTR_NONNULL_3): New.
580         (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
581         ATTR_NOTHROW_NONNULL_##FA.
582         (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
583         (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
584         ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
585         ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
586         ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
587         ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
588         ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
589         New.
590         (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
591         ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
592         ATTR_FORMAT_NOTHROW_3_4): Remove.
593         * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
594         vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
595         __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
596         instead of ATTR_FORMAT_*_*.
597
598 2007-09-06  Hans-Peter Nilsson  <hp@axis.com>
599
600         * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
601         parts re-used for REG_FRAME_RELATED_EXPR.
602
603 2007-09-05  Janis Johnson  <janis187@us.ibm.com>
604
605         * optabs.c (expand_float): Convert unsigned integer as signed only
606         if it provides sufficient accuracy; add mode argument to real_2expN.
607         (expand_fix): Fix comment typos; extend binary float into mode
608         wider than destination for converion to unsigned integer; add mode
609         argument to real_2expN.
610         * real.c (real_2expN): Add mode argument to special-case decimal
611         float values.
612         * real.h (real_2expN): Ditto.
613         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
614         real_2expN.
615         (fixed_from_string): Ditto.
616         (fixed_to_decimal): Ditto.
617         (fixed_convert_from_real): Ditto.
618         (real_convert_from_fixed): Ditto.
619         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
620         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
621         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
622         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
623
624 2007-09-05  Ian Lance Taylor  <iant@google.com>
625
626         * init-regs.c (initialize_uninitialized_regs): Call
627         emit_insn_before rather than add_insn_before.
628
629 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
630
631         * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
632         * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
633         * tree-inline.h (copy_body_data): Add call_expr field.
634         * tree-inline.c (expand_call_inline): Initialize call_expr.
635         (copy_bb): Append anonymous inline fn arguments to arguments
636         when inlining a CALL_EXPR_VA_ARG_PACK call.
637         * builtins.c (expand_builtin): Issue an error if
638         BUILT_IN_VA_ARG_PACK is seen during expand.
639         (fold_call_expr, fold_builtin_call_array): Don't fold
640         CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
641         __builtin_va_arg_pack () call as last argument.
642         * gimplify.c (gimplify_call_expr): If last argument to a vararg
643         function is __builtin_va_arg_pack (), decrease number of call
644         arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
645         * expr.c (expand_expr_real_1): Issue an error if
646         CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
647         * tree-pretty-print.c (dump_generic_node): Handle printing
648         CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
649         * doc/extend.texi (__builtin_va_arg_pack): Document.
650
651 2007-09-05  Adam Nemet  <anemet@caviumnetworks.com>
652
653         PR tree-optimization/21513
654         * builtins.c (build_builtin_expect_predicate): New function.
655         (fold_builtin_expect): Add argument for expected value.
656         Distribute __builtin_expect over short-circuiting operations.
657         Fold nested builtin_expects.
658         (fold_builtin_2): Adjust call to fold_builtin_expect.
659
660 2007-09-05  Rask Ingemann Lambertsen  <rask@sygehus.dk>
661
662         PR web/32965
663         PR tree-optimization/13756
664         * doc/invoke.texi (Options That Control Optimization): Document
665         -ftree-dse.
666
667 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
668
669         * gcc/config/i386/cpuid.h: New file.
670         * gcc/config/i386/driver-i386.c: Include cpuid.h.
671         (describe_cache): Shrink size and line strings to 100 bytes.
672         (detect_caches_amd): Return "" for unsupported max_ext_level.
673         Use __cpuid function.
674         (detect_caches_intel): Return "" for unsupported max_level.
675         Use __cpuid function.
676         (host_detect_local_cpu): Change feature flag variables to
677         unsigned int.  Initialize only extended feature flag variables.
678         Use __get_cpuid_max to determine max supported cpuid level.
679         Use __cpuid function to determine supported features.  Fix
680         calculation of family id.  Remove is_amd and check signature
681         directly.  Check for Geode signature.  Handle family 4 id.
682         [PROCESSOR_GENERIC32]: New default for unknown family id.  Move
683         cpu discovery code to lower part of the function.
684         [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
685         for sub-architecture.
686         [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
687         [PROCESSOR_K8]: Add k8-sse3 architecture.
688         [PROCESSOR_NOCONA]: Remove.
689         [PROCESSOR_GENERIC64]: Ditto.
690         * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
691         * gcc/config/i386/crtfastmath.c: Include cpuid.h.  Use __get_cpuid
692         to check for SSE and FXSAVE support.
693         * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
694         Add -minline-all-stringops.
695         * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
696         (x86_64-*-*): Ditto.
697
698 2007-09-05  Jie Zhang  <jie.zhang@analog.com>
699
700         * config/bfin/linux-unwind.h: New file.
701         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
702         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
703
704 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
705
706         * Makefile.in (stmt.o): Add alloc-pool.h dependency.
707         * stmt.c: Include alloc-pool.h.
708         (struct case_node): Remove GTY marker.
709         (add_case_node): New parameter case_node_pool.  Use it for
710         allocation of r.
711         (expand_case): New allocation pool case_node_pool.  Initialize it,
712         pass to add_case_node and free it.
713
714 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
715             David Ung  <davidu@mips.com>
716             Nigel Stephens <nigel@mips.com>
717
718         Add mips16/nomips16 function attributes and -mflip-mips16 option
719         for testing mixed-mode compilation.
720
721         * config/mips/mips.opt (mflip-mips16): New.
722
723         * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
724         (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
725
726         * config/mips/mips.c (mips_base_target_flags): New.
727         (mips_base_mips16): New.
728         (mips_base_schedule_insns): New.
729         (mips_base_reorder_blocks_and_partition): New.
730         (mips_base_align_loops): New.
731         (mips_base_align_jumps): New.
732         (mips_base_align_functions): New.
733         (mips16_flipper): New.
734         (mips_attribute_table): Add "mips16" and "nomips16" entries.
735         (TARGET_SET_CURRENT_FUNCTION): Define.
736         (mips_mips16_type_p, mips_nomips16_type_p): New.
737         (mips_comp_type_attributes): Check mips16/nomips16 attributes.
738         (mips_function_ok_for_sibcall): Make it deal with functions with
739         mips16 attributes.
740         (mips_init_split_addresses): New, split out from override_options.
741         (mips_init_relocs): New, split out from override_options.
742         (was_mips16_p): New.
743         (mips_set_mips16_mode): New, split out from override_options.
744         (mips_set_current_function): New.
745         (override_options): Add sorry for unsupported mips16/pic
746         combination.  Remove error for mips16/dsp combination.  Save
747         base option settings.  
748         (mips_file_start): Move mips16 mode setting output from here....
749         (mips_output_function_prologue): ....to here.
750         (mips_output_mi_thunk): Check for mips16 function.
751         (build_mips16_function_stub): Don't set .mips16 here.
752         (build_mips16_call_stub): Likewise.
753         (mips_expand_builtin): Error in mips16 mode.
754         (mips_use_mips16_mode_p): New.
755         (mips_encode_section_info): Check for mips16 function, and set
756         SYMBOL_REF_FLAGS accordingly.
757
758         * doc/extend.texi (Function Attributes): Document new
759         mips16/nomips16 attributes.
760         * doc/invoke.texi (Option Summary): Add -mflip-mips16.
761         (MIPS Options): Document -mflip-mips16.
762
763 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
764
765         * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
766         if we encounter TLS address in MIPS16 mode.
767         (mips_legitimize_const_move): Check cannot_force_const_mem for
768         the (const (plus symbol offset)) case; this forces invalid TLS
769         address in MIPS16 mode to be caught by the above call to sorry.
770         (override_options): Don't reset targetm.have_tls in MIPS16 mode,
771         because that now enables emutls, which is not ABI compatible
772         with native TLS in non-MIPS16 mode.
773
774 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
775
776         Add target hook invoked when cfun changes.
777
778         * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
779         * target.h (struct gcc_target): Add set_current_function.
780         * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
781         (TARGET_INITIALIZER): Add initializer for set_current_function.
782         * tree.h (push_struct_function): New.
783         * tree-inline.h (push_cfun, pop_cfun): Move declarations to...
784         * function.h: Here.
785         (set_cfun): Declare.
786         * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
787         * function.c: Here.
788         (push_function_context_to): Use allocate_struct_function
789         to create null context, not init_dummy_function_start.  Use set_cfun.
790         (pop_function_context_from): Use set_cfun.
791         (in_dummy_function): New.
792         (invoke_set_current_function_hook): New.
793         (set_cfun): New.
794         (push_cfun, pop_cfun): Use set_cfun.
795         (push_struct_function): New.
796         (allocate_struct_function): Call invoke_set_current_function_hook
797         before returning.
798         (prepare_function_start): Don't set cfun here.  Remove unused
799         argument; fix all callers.
800         (init_dummy_function_start): Fiddle with in_dummy_function.  Call
801         push_struct_function.
802         (init_function_start): Set cfun here.
803         (expand_dummy_function_end): Fiddle with in_dummy_function.  Pop cfun.
804         * omp-low.c (create_omp_child_function): Use push_struct_function
805         and pop_cfun to save/restore state.
806         (expand_omp_parallel): Remove unused saved_cfun variable.
807         * cgraphunit.c (ipa_passes): Use set_cfun.
808         * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
809         * dwarf2out.c (dwarf2out_abstract_function): Likewise.
810         * matrix-reorg.c (transform_allocation_sites): Likewise.
811         (matrix_reorg): Use set_cfun.
812         * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
813         * tree-optimize.c (tree_rest_of_compilation): Remove one redundant
814         assignment to cfun; use set_cfun for the other.
815         * tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
816         (dump_function_to_file): Use push_cfun/pop_cfun here.
817         * c-decl.c (finish_function): Use set_cfun.
818
819 2007-09-05  Kenneth Zadeck <zadeck@naturalbridge.com>
820
821         * regrename.c (rerename_optimize): Use deferred rescanning and
822         insert explicit calls to rescan insns when changed.
823         
824 2007-09-05  Jan Hubicka  <jh@suse.cz>
825
826         * optabs.c (libfunc_entry): Change optab to integer.
827         (hash_libfunc, convert_optab_libfunc, optab_libfunc,
828         set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
829         of pointers for hashing.
830
831 2007-09-05  Jan Hubicka  <jh@suse.cz>
832
833         * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
834         verifier.
835         * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
836         * see.c (pass_see): Likewise.
837         * tracer.c (pass_tracer): Likewise.
838         * postreload-gcse.c (pass_gcse2): Likewise.
839         * postreload.c (pass_postreload_cse): Likewise.
840         * mode-switching.c (pass_mode_switching): Likewise.
841         * modulo-sched.c (pass_sms): Likewise.
842         * cse.c (cse_insn): Likewise.
843         * web.c (pass_web): Likweise.
844         * combine-stack-adj.c (pass_stack_adjustments): Likewise.
845         * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
846         * loop-init.c (pass_rtl_loop_init): Likewise.
847         (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
848         pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
849         * global.c (pass_global_alloc): Likewise.
850         * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
851         pass_if_after_reload): Likewise.
852         * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
853         * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
854         * regmove.c (pass_regmove): Likewise.
855         * function.c (pass_thread_prologugues_epilogues): Likewise.
856         * gcse.c (pass_gcse): Likewise.
857         * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
858         * lower-subreg.c (pass_lower_subreg2): Likewise.
859         * bt-load.c (pass_branch_target_load): Likewise.
860         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
861         * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
862         * combine.c (pass_combine): Likewise.
863         * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
864         (pass_partition_blocks): Likewise.
865         * var-tracking.c (pass_variable_track): Likewise.
866         * reg-stack.c (pass_stack_regs_run): Likewise.
867         * sched-rgn.c (pass_sched, pass_sched2): Likewise.
868         * passes.c (pass_postreload): Likewise.
869         (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
870         * tree-pass.h (TODO_verify_rtl_sharing): New.
871         (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
872         TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
873         TODO_set_props, TODO_df_finish, TODO_df_verify,
874         TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
875
876 2007-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
877
878         * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
879         fold_real_zero_addition_p, reorder_operands_p,
880         div_if_zero_remainder, fold_undefer_overflow_warnings,
881         int_binop_types_match_p, fold_convert_const_int_from_int,
882         fold_convert_const_int_from_real,
883         fold_convert_const_int_from_fixed,
884         fold_convert_const_real_from_real,
885         fold_convert_const_real_from_fixed,
886         fold_convert_const_fixed_from_fixed,
887         fold_convert_const_fixed_from_int,
888         fold_convert_const_fixed_from_real, maybe_lvalue_p,
889         fold_checksum_tree, fold_check_failed, print_fold_checksum,
890         debug_fold_checksum, multiple_of_p): Constify.
891         * tree-flow-inline.h (get_lineno): Likewise.
892         * tree-flow.h (get_lineno): Likewise.
893         * tree-object-size.c (compute_object_offset, addr_object_size,
894         alloc_object_size, pass_through_call): Likewise.
895         * tree-pretty-print.c (op_symbol, print_call_name,
896         print_struct_decl, do_niy): Likewise.
897         * tree.h (fold_undefer_overflow_warnings, multiple_of_p,
898         debug_fold_checksum): Likewise.
899
900 2007-09-04  Steven Bosscher  <steven@gcc.gnu.org>
901
902         PR middle-end/33029
903         * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
904         note, remove the associated REG_RETVAL note.
905
906 2007-09-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
907
908         * config.gcc (powerpc*-*-*): Install
909         spu2vmx.h, vec_types.h, and si2vmx.h headers.
910         * config/rs6000/spu2vmx.h: New header.
911         * config/rs6000/si2vmx.h: New header.
912         * config/rs6000/vec_types.h: New header.
913
914 2007-09-05  Ben Elliston  <bje@au.ibm.com>
915
916         * varasm.c (initializer_constant_valid_p): Fix comment typo.
917
918 2007-09-05  Ben Elliston  <bje@au.ibm.com>
919
920         * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
921         not `m' for *ptrp.
922         (__stdcx): Make asm volatile.
923         (__stwcx, __stdcx): Return only 0 or 1.
924
925 2007-09-05  Jan Hubicka  <jh@suse.cz>
926
927         Revert:
928
929         2007-09-04  Jan Hubicka  <jh@suse.cz>
930         * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
931
932         2007-09-04  Richard Guenther  <rguenther@suse.de>
933         * tree-ssa-operands.c (add_virtual_operand): Only mark
934         stores as has_volatile_ops if alias information is not available.
935
936 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
937
938         * config/rs6000/tramp.asm: Include config.h.
939         Check __PIC__ or __pic__ macro instead of SHARED.
940
941         PR rtl-optimization/32300
942         * see.c (see_copy_insn): New function.
943         (see_def_extension_not_merged, see_merge_one_use_extension,
944         see_merge_one_def_extension): Use it.  Avoid changing
945         PREV_INSN/NEXT_INSN chains directly, insted emit insns
946         into sequences.  Call df_insn_delete on temporary insns
947         that won't be emitted into the insn stream.
948         (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
949         and run df_process_deferred_rescans () before run_fast_dce.
950
951         PR tree-optimization/33017
952         * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
953         recurse for pure or const function calls.
954
955 2007-09-04  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
956
957         * c-format.c: Include alloc-pool.h.
958         (check_format_info_main): New argument fwt_alloc.  Use allocation
959         pool instead of GC.  Remove GC deallocation code.
960         (check_format_arg): Create allocation pool, pass it to
961         check_format_info_main and free it afterwards.
962         * Makefile.in (c-format.o): Add alloc-pool.h dependency.
963
964 2007-09-05  Ben Elliston  <bje@au.ibm.com>
965
966         * config/rs6000/ppu_intrinsics.h (__protected_stream_count):
967         Rename count macro arugment for clarity.
968         (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
969         (__protected_stream_set): Likewise, pass 0.
970
971 2007-09-04  Jan Hubicka  <jh@suse.cz>
972
973         * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
974
975 2007-09-04  Jan Hubicka  <jh@suse.cz>
976
977         * invoke.texi (-finline-small-functions): Document.
978         * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE
979         when deciding what is inlinable.
980         (cgraph_decide_recursive_inlining): Handle flag_inline_functions.
981         (cgraph_decide_inlining_of_small_function): Handle new flags.
982         (cgraph_decide_inlining_incrementally): Likewise.
983         * opts.c (decode_options): Enable flag_inline_small_functions at -O2
984         * common.opt (finline-small-functions): New.
985         * Makefile.in (build/gengtype.o-warn): Work around PR29478
986
987 2007-09-04  Richard Guenther  <rguenther@suse.de>
988
989         * tree-ssa-operands.c (add_virtual_operand): Only mark
990         stores as has_volatile_ops if alias information is not available.
991
992 2007-09-04  Andrew Haley  <aph@redhat.com>
993
994         * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.
995
996 2007-09-04  Andrew Haley  <aph@redhat.com>
997
998         * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
999         * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
1000         * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.
1001
1002 2007-09-04  Emmanuel Thome  <Emmanuel.Thome@inria.fr>
1003
1004         PR c++/14178
1005         * common.opt: Mention ABI version 2 in comment.
1006
1007 2007-09-04  Jan Hubicka  <jh@suse.cz>
1008
1009         * optabs.c (debug_optab_libfunc): Update; make available to gdb.
1010         (libfunc_entry): New structure.
1011         (libfunc_hash): New hashtable.
1012         (hash_libfunc): New function.
1013         (eq_libfunc): New function.
1014         (convert_optab_libfunc): New function.
1015         (optab_libfunc): New function.
1016         (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
1017         expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
1018         expand_float, expand_fix, new_optab, new_convert_optab):
1019          Update for new libfunc API.
1020         (init_libfunc, init_integral_libfuncs,
1021         init_floating_libfuncs, init_interclass_conv_libfuncs
1022         init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
1023         (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
1024         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
1025         gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
1026         gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
1027         gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
1028         gen_extend_conv_libfunc): New.
1029         (init_one_libfunc): Revamp for hashtables.
1030         (set_conv_libfunc): Likewise.
1031         (init_optabs): Initialize hashtable; use lazy initialization where
1032         possible.
1033         * optabs.h (optab_handlers): Move out of GGC.
1034         (optab, convert_optab): Move out of GGC; add lazy gen info.
1035         (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
1036         (optab_libfunc, convert_optab_libfunc): New.
1037         * builtins.c (expand_builtin_powi): Update for new API.
1038         * expr.c (convert_move): Likewise.
1039         * expmed.c (expand_divmod): Likewise.
1040
1041 2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
1042
1043         * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
1044         GOT pointer only if there is a constant pool.  Use the allocated space
1045         for SPE also.
1046
1047 2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
1048
1049         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
1050         typo for AltiVec.
1051
1052 2007-09-04  Revital Eres  <eres@il.ibm.com>
1053             Richard Guenther  <rguenther@suse.de>
1054             R. Clint Whaley  <whaley@cs.utsa.edu>
1055
1056         * doc/invoke.texi (-fassociative-math, -freciprocal-math):
1057         Document new flags.
1058         * tree-tailcall.c (process_assignment): Use -fassociative-math
1059         when reodering operands of floating-point type.
1060         * fold-const.c (fold_comparison, fold_binary): Use
1061         -fassociative-math and -freciprocal-math instead of
1062         -funsafe-math-optimization flag.
1063         * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
1064         * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
1065         -freciprocal-math instead of -funsafe-math-optimizations.
1066         * opts.c (set_fast_math_flags): Set -freciprocal-math and
1067         -fassociative-math when -ffast-math is set.
1068         (set_unsafe_math_optimizations_flags): New Function
1069         to set -freciprocal-math and -fassociative-math when
1070         -funsafe-math-optimizations is set.
1071         (common_handle_option): Call it.
1072         * tree-vectorizer.c (vect_is_simple_reduction): Use
1073         -fassociative-math when doing reduction on floats.
1074         * loop-unroll.c (analyze_insn_to_expand_var): Use
1075         -fassociative-math when expanding an accumulator of type float.
1076         * simplify-rtx.c (simplify_binary_operation_1): Use
1077         -fassociative-math and -freciprocal-math when reordeing operands
1078         of floating-point type.
1079         * combine.c (combine_simplify_rtx): Likewise.
1080         * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
1081         Likewise.
1082         * common.opt (-fassociative-math, -freciprocal-math): New flags.
1083
1084 2007-09-04  Paolo Carlini  <pcarlini@suse.de>
1085
1086         PR c++/18608
1087         * doc/install.texi (--enable-__cxa_atexit): Fix typo.
1088
1089 2007-09-04  Jan Hubicka  <jh@suse.cz>
1090
1091         * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
1092
1093 2007-09-04  Jan Hubicka  <jh@suse.cz>
1094
1095         * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
1096         and corresponding MATCH_DUP.
1097
1098 2007-09-04  Uros Bizjak  <ubizjak@gmail.com>
1099
1100         PR middle-end/33187
1101         * combine.c (subst): Do not try to simplify X if it represents load
1102         of FP constant from the constant pool via float extension.
1103
1104 2007-09-04  Ben Elliston  <bje@au.ibm.com>
1105
1106         * c-opts.c: Include "tm_p.h".
1107         * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
1108
1109 2007-09-04  Richard Guenther  <rguenther@suse.de>
1110
1111         PR tree-optimization/33291
1112         * tree-pretty-print.c (dump_generic_node): Dump all
1113         qualifiers for pointer types, not only first.  Dump
1114         qualifiers for aggregate types as well.
1115         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
1116         use the canonical type for building ARRAY_REFs.
1117         * gimplify.c (canonicalize_addr_expr): Clean up.  The
1118         correct validness check is compatibility of the pointer
1119         types.  Always use the canonical type for building
1120         ARRAY_REFs and ADDR_EXPRs.
1121         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
1122         change that disabled propagation of ADDR_EXPRs into statements
1123         with volatile ops.
1124
1125 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
1126
1127         * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
1128         (umulsi3_highpart): Make into expanders; existing insns are
1129         now named *[insn]_nov6.  Add stars to existing [insn]_v6
1130         counterparts' names.
1131
1132 2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
1133
1134         * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
1135         (unprotoize.o): Remove SHLIB_MULTILIB.
1136
1137 2007-09-03  Eric Weddington  <eweddington@cso.atmel.com>
1138
1139         * doc/extend.texi: Document progmem attribute for AVR.
1140
1141 2007-09-03  Anatoly Sokolov <aesok@post.ru>
1142
1143         PR target/28902
1144         * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
1145
1146 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
1147
1148         * optabs.c (expand_ffs): Initialize val and defined_at_zero
1149         to avoid warnings.
1150
1151         * optabs.c: Remove unnecessary forward declarations.
1152         (expand_unop_direct): New, broken out of expand_unop.
1153         (expand_doubleword_clz): New.
1154         (expand_ctz): Move above expand_ffs.  Use
1155         start_sequence, end_sequence, add_equal_note, and
1156         expand_unop_direct.  Add more commentary.
1157         (expand_ffs): Try both ctz optab and expand_ctz.
1158         Generate a test and branch if the hardware doesn't give us
1159         a useful value for input zero.  Style improvements similar to
1160         expand_ctz.
1161
1162         * config/arm/arm.md (ffssi2, ctzsi2): Delete.
1163
1164 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
1165
1166         * config.gcc: Delete stanza for arm-semi-aof and
1167         armel-semi-aof targets.
1168         * config/arm/arm-protos.h
1169         * config/arm/arm.c
1170         * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
1171         make all #ifndef AOF_ASSEMBLER blocks unconditional.  Also
1172         delete aof_pic_label and remove mention of AOF in comments.
1173         * config/arm/arm.md: Delete patterns used only for AOF assembly.
1174         * config/arm/aof.h
1175         * config/arm/semiaof.h
1176         * config/arm/t-semi: Delete file.
1177
1178 2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1179
1180         * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
1181         CONST_CAST_BB): New macros for type-specific casts.
1182         (CONST_CAST): Add a TYPE parameter and define it in terms of
1183         CONST_CAST2.
1184
1185         * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
1186         * c-lex.c (cb_ident, lex_string): Likewise,
1187         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
1188         * config/i386/i386.c (ix86_function_regparm,
1189         ix86_function_sseregparm): Use CONST_CAST_TREE.
1190         * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
1191         CONST_CAST.
1192         * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
1193         give_switch, set_multilib_dir): Likewise,
1194         * gengtype-parse.c (string_seq, typedef_name): Likewise,
1195         * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
1196         * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
1197         * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
1198         * prefix.c (update_path): Likewise,
1199         * pretty-print.c (pp_base_destroy_prefix): Likewise,
1200         * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
1201         * tree-cfg.c (tree_can_merge_blocks_p,
1202         tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
1203         * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
1204         * tree.c (build_string): Supply a TYPE for CONST_CAST.
1205         (attribute_list_contained): Use CONST_CAST_TREE.
1206
1207 2007-09-03  Krister Walfridsson  <cato@df.lth.se>
1208
1209         * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
1210
1211 2007-09-03  Richard Sandiford  <richard@codesourcery.com>
1212
1213         PR middle-end/33290
1214         * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
1215         before forcing them into a register.
1216
1217 2007-09-03  Richard Sandiford  <richard@codesourcery.com>
1218
1219         * config/mips/mips.md (fetchop_bit): Use define_code_iterator
1220         rather than define_code_macro.
1221
1222 2007-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1223
1224         * gcc.c (xputenv): New function.
1225         (putenv_from_prefixes): Use xputenv instead of putenv.
1226         (process_command): Use xputenv instead of putenv.
1227         (set_collect_gcc_options): Use xputenv instead of putenv.
1228         (main): Use xputenv instead of putenv.
1229
1230 2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
1231
1232         * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
1233         availability of swap instruction.
1234         * config/cris/cris.md (bswapsi2): Implement using swap instruction.
1235
1236 2007-09-03  Revital Eres  <eres@il.ibm.com>
1237
1238         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
1239         Documentation.
1240
1241 2007-09-03  Vladimir Yanovsky  <yanov@il.ibm.com>
1242             Ayal Zaks  <zaks@il.ibm.com>
1243             Revital Eres  <eres@il.ibm.com>
1244
1245         * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
1246         compute_split_row): New functions.
1247         (ps_unschedule_node): Remove.
1248         (normalize_sched_times): Iterate over the already scheduled
1249         insns instead of the number of nodes.
1250         (MAX_SPLIT_NUM): New definition.
1251         (sms_schedule_by_order): Change the scheduling heuristic to
1252         avoid useless increases of initiation interval ii.
1253         (get_sched_window): Add dump printouts.
1254
1255 2007-09-02  David Daney  <ddaney@avtrex.com>
1256
1257         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
1258         UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
1259         (optab, insn): Add more attributes.
1260         (fetchop_bit): New code macro.
1261         (immediate_insn): New code macro attribute.
1262         (sync): Change condition to ISA_HAS_SYNC.
1263         (rdhwr): Change predicate for operand 0 to register_operand.
1264         (memory_barrier): New expand.
1265         (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
1266         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
1267         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
1268         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1269         sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
1270         * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
1271         (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
1272         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
1273         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
1274         
1275 2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
1276             Hans-Peter Nilsson  <hp@axis.com>
1277
1278         * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
1279         Defined to describe availability and behavior of CLZ.
1280         * config/cris/cris.md (clzsi2): Implement using lz instruction.
1281         * config/cris/cris.opt: Tweak comment for "-metrax4".
1282         * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
1283         * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
1284         (count_leading_zeros): Define.
1285
1286 2007-09-01  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1287
1288         * ggc-page.c (ggc_pch_read): Call validate_free_objects.
1289
1290 2007-09-02  Joseph Myers  <joseph@codesourcery.com>
1291
1292         PR middle-end/33272
1293         * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
1294         decayed from array.
1295
1296 2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
1297
1298         * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
1299         config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
1300         ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
1301         sched-deps.c, sched-int.h, system.h, target.h,
1302         tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
1303         tree.def: Fix comment typos.
1304
1305 2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
1306
1307         * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
1308         (override_options): Turn on -mstrict-align on non-ColdFire
1309         targets.
1310         * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
1311
1312 2007-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1313
1314         * c-common.c (const_strip_array_types): Delete.
1315         * c-common.h (const_strip_array_types): Likewise.
1316         * emit-rtl.c (const_next_insn, const_previous_insn,
1317         const_next_nonnote_insn, const_prev_nonnote_insn,
1318         const_next_real_insn, const_prev_real_insn,
1319         const_next_active_insn, const_prev_active_insn, const_next_label,
1320         const_prev_label): Delete.
1321         * gimple-low.c (block_may_fallthru): Use expr_last.
1322         * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
1323         * rtl.h (const_previous_insn, const_next_insn,
1324         const_prev_nonnote_insn, const_next_nonnote_insn,
1325         const_prev_real_insn, const_next_real_insn,
1326         const_prev_active_insn, const_next_active_insn, const_prev_label,
1327         const_next_label): Delete.
1328         * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
1329         * system.h (CONST_CAST): Update comment.
1330         * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
1331         (const_first_stmt, const_last_stmt): Delete.
1332         (tree_block_ends_with_condjump_p): Use last_stmt.
1333         * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
1334         * tree-iterator.c (const_expr_first, const_expr_last,
1335         const_expr_only): Delete.
1336         * tree.c (const_lookup_attribute): Likewise.
1337         (attribute_list_contained): Use lookup_attribute.
1338         * tree.h (const_lookup_attribute, const_expr_first,
1339         const_expr_last, const_expr_only): Delete.
1340
1341 2007-09-01  Richard Guenther  <rguenther@suse.de>
1342
1343         * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
1344         instead of TREE_THIS_VOLATILE.
1345         * tree-ssa-operands.c (add_virtual_operand): Do not set
1346         has_volatile_ops.  Do not check s_ann for NULL.
1347         (get_indirect_ref_operands): Likewise.
1348         (get_expr_operands): Likewise.  For all reference trees
1349         set has_volatile_ops based on TREE_THIS_VOLATILE.  Also
1350         check base of reference for TREE_THIS_VOLATILE.
1351
1352 2007-09-01  Richard Guenther  <rguenther@suse.de>
1353
1354         * tree-cfg.c (verify_gimple_expr): Fix check for conversions
1355         between integral types.  Also allow conversions between
1356         pointer types.
1357
1358 2007-08-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1359
1360         * optabs.c (prepare_float_lib_cmp): Use
1361         libgcc_cmp_return_mode instead of word_mode.
1362         * config/dfp-bit.h: Likewise.
1363         * config/fp-bit.h: Likewise.
1364         * config/spu/spu.c (spu_libgcc_cmp_return_mode):
1365         New function.
1366         (spu_libgcc_shift_count_mode): New function.
1367         (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
1368         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
1369
1370 2007-08-31  Joseph Myers  <joseph@codesourcery.com>
1371
1372         * tree-pretty-print.c: Include output.h.
1373         (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
1374         HOST_WIDE_INT_PRINT_DEC.
1375         * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
1376
1377 2007-08-31  Zdenek Dvorak  <ook@ucw.cz>
1378
1379         PR rtl-optimization/33224
1380         * loop-iv.c (latch_dominating_def): Check that the definition belongs
1381         to the analysed region.
1382
1383 2007-08-31  Richard Guenther  <rguenther@suse.de>
1384
1385         * function.c (allocate_struct_function): Do not set
1386         current_function_returns_pointer.
1387         * function.h (struct var_refs_queue): Remove.
1388         (struct simple_obstack_stack): Likewise.
1389         (struct function): Remove fixup_var_refs_queue member.
1390         Remove returns_pointer flag.
1391         (current_function_returns_pointer): Remove define.
1392
1393 2007-08-31  Nick Clifton  <nickc@redhat.com>
1394
1395         * tree-ssa-coalesce.c (compare_pairs): Use the elements as
1396         secondary keys in order to obtain a stable sort.
1397
1398 2007-08-31  Nick Clifton  <nickc@redhat.com>
1399
1400         PR target/33132
1401         * config/m32r/constraints.md: Add W constraint for integer zero.
1402         * config/m32r/m32r.md (get_pc): Use W and i constraints.
1403         Fix length calculation by using alternatives.
1404
1405 2007-08-31  Richard Sandiford  <richard@codesourcery.com>
1406
1407         * optabs.c (shift_optab_p, commutative_optab_p): New functions,
1408         split out from expand_binop.
1409         (avoid_expensive_constant): New function.
1410         (expand_binop_directly): Remove commutative_op argument and
1411         (expand_binop_directly): Remove commutative_op argument and
1412         call cummutative_optab_p instead.  Do not change op0 or op1
1413         when swapping xop0 and xop1.  Apply avoid_expensive_constant
1414         to each argument after potential swapping.  Enforce the
1415         canonical order of commutative operands.
1416         (expand_binop): Use shift_optab_p and commutative_optab_p.
1417         Update the calls to expand_binop_directly.  Only force constants
1418         into registers when widening an operation.  Only swap operands
1419         once a direct expansion has been rejected.
1420         (expand_twoval_binop): Only force constants into registers when
1421         using a direct expansion.
1422
1423 2007-08-31  Maxim Kuvyrkov  <maxim@codesourcery.com>
1424
1425         * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
1426         (sched_analyze_insn): Don't postprocess speculative dependencies when
1427         target has no scheduling.
1428         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
1429         'uninitialized' warning.
1430
1431 2007-08-31  Richard Guenther  <rguenther@suse.de>
1432
1433         * tree.c (build_complex_type): Always set TYPE_NAME for
1434         comples types.
1435
1436 2007-08-31  Olivier Hainque  <hainque@adacore.com>
1437
1438         * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
1439         internal macro. Default alignment factor for csect directives, chosen
1440         to match what BIGGEST_ALIGNMENT allows.
1441         (DATA_SECTION_ASM_OP): Use it.
1442         * config/rs6000/rs6000.c
1443         (rs6000_xcoff_output_readonly_section_asm_op):
1444         Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
1445         (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
1446         
1447 2007-08-31  Olivier Hainque  <hainque@adacore.com>
1448
1449         * dbxout.c (dbxout_block): Move declaration within the first
1450         #if defined (DBX_DEBUGGING_INFO) block.  Rearrange another such
1451         block to include the definition, together with the associated
1452         helpers.
1453
1454 2007-08-31  David Edelsohn  <edelsohn@gnu.org>
1455             Revital Eres  <eres@il.ibm.com>
1456
1457         * doc/invoke.texi (-mpaired): Document flag.
1458         * config.gcc: Include paired.h in powerpc extra_headers and
1459         750cl.h in powerpc-*-linux*paired*.
1460         * config/rs6000/rs6000.opt (-mpaired): New flag.
1461         * config/rs6000/rs6000.c (paired_init_builtins,
1462         paired_expand_builtin, paired_expand_lv_builtin,
1463         paired_expand_stv_builtin, paired_expand_predicate_builtin):
1464         New functions to support the paired single builtin functions.
1465         (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
1466         (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
1467         single builtins.
1468         (bdesc_paired_preds): New structure for paired predicate
1469         instructions.
1470         (rs6000_expand_builtin): Expand paired single builtins.
1471         (rs6000_init_builtins): Init paired single builtins.
1472         (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
1473         Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
1474         and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf.  Add new types
1475         v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
1476         (rs6000_vector_mode_supported_p): Support paired vector mode.
1477         * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
1478         PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
1479         New.
1480         (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
1481         (DATA_ALIGNMENT): Likewise.
1482         (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
1483         (rs6000_builtins): Add PAIRED builtins.
1484         * config/rs6000/rs6000.md: Include paired.md.
1485         * config/rs6000/paired.h: New.
1486         * config/rs6000/paired.md: New.
1487         * config/rs6000/750cl.h: New.
1488         * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
1489
1490 2007-08-30  Ollie Wild  <aaw@google.com>
1491
1492         * c-opts.c (c_common_handle_option): Support -fno-directives-only.
1493         * gcc.c (default_compilers): Add -fno-directives-only to
1494         @assembler-with-cpp.
1495
1496 2007-08-30  Sandra Loosemore  <sandra@codesourcery.com>
1497
1498         PR middle-end/33211
1499
1500         * regclass.c (initial_fixed_regs): Revert previous change and make
1501         it const again.
1502         (initial_call_used_regs): Likewise.
1503         (initial_call_really_used_regs): Delete, reverting previous addition.
1504         (initial_reg_names): Likewise.
1505         (init_reg_sets): Revert previous change.
1506         (saved_fixed_regs): New.
1507         (saved_call_used_regs): New.
1508         (saved_call_really_used_regs): New.
1509         (saved_reg_names): New.
1510         (save_register_info): New.
1511         (restore_register_info): New.
1512         (init_reg_sets_1): Replace reset of register info with call to
1513         restore_register_info.
1514         * rtl.h (save_register_info): Declare.
1515         * toplev.c (backend_init): Call save_register_info.
1516
1517 2007-08-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1518
1519         * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
1520         from the original statement.
1521
1522 2007-08-30  Chao-ying Fu  <fu@mips.com>
1523
1524         * c-lex.c (interpret_fixed): Declare.
1525         (interpret_float): Process _Fract and _Accum.
1526         (interpret_fixed): New function.
1527         * final.c (output_addr_const): Process CONST_FIXED.
1528         * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
1529         (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
1530         SS_DIV, US_DIV.
1531         (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
1532         US_DIV, US_ASHIFT.
1533         (simplify_immed_subreg): Support CONST_FIXED.
1534         Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
1535         (simplify_subreg): Support CONST_FIXED.
1536
1537 2007-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1538
1539         * config/rs6000/ppu_intrinsics.h: New file.
1540         * config.gcc (powerpc*-*-* <extra_headers>): Install
1541         ppu_intrinsics.h.
1542
1543 2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
1544
1545         * cfg.c (dump_flow_info): Change to also print entry and exit
1546         block info.
1547         * print-rtl.c (print_rtl_single): Allow to print rtl with
1548         -fdump-unnumbered.
1549         
1550 2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
1551
1552         * df-core.h (df_dump_region): New function.
1553         * df.h (df_dump_region): New function.
1554         * loop-invariant.c (find_defs): Add call to df_dump_region.
1555         * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
1556         df_dump_region.
1557         
1558 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
1559
1560         PR target/33168
1561         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
1562         true if any of the compare_section_name calls returned true,
1563         rather than if any returned false.
1564
1565 2007-08-30  Richard Guenther  <rguenther@suse.de>
1566
1567         PR tree-optimization/33199
1568         * tree-ssa-structalias.c (handle_lhs_call): New function.
1569         (find_func_aliases): In non-IPA mode make sure that for
1570         calls that return a pointer we add a constraint for the
1571         result to point to anything.
1572
1573 2007-08-30  Richard Guenther  <rguenther@suse.de>
1574
1575         * doc/invoke.texi (-mveclibabi): Document new target option.
1576         * config/i386/i386.opt (-mveclibabi): New target option.
1577         * config/i386/i386.c (ix86_veclib_handler): Handler for
1578         vectorization library support.
1579         (override_options): Handle the -mveclibabi option, initialize
1580         the vectorization library handler.
1581         (ix86_builtin_vectorized_function): As fallback call the
1582         vectorization library handler, if set.
1583         (ix86_veclibabi_acml): New static function for ACML ABI style
1584         vectorization support.
1585
1586 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
1587
1588         * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
1589         used_m, even if it is 32-bit aligned, adjust used_m MEM to have
1590         SImode and update m.  Don't run gen_lowpart_common on arbitrary
1591         memory address, force it to register first.
1592
1593         PR middle-end/32758
1594         * dce.c (dce_process_block): Don't delete setters of
1595         artificially used registers.
1596
1597 2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1598
1599         * config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
1600         "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
1601         "*add<mode>3_alc_carry2_cconly"): New insn definitions.
1602
1603 2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1604
1605         * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
1606         pattern.
1607         * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
1608         "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
1609
1610 2007-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1611
1612         * system.h: Activate -Wcast-qual as warning-only.
1613
1614 2007-08-29  Paolo Bonzini  <bonzini@gnu.org>
1615
1616         PR target/33168
1617         * config/rs6000/rs6000.c (compare_section_name): New function.
1618         (rs6000_elf_in_small_data_p): Compare section prefixes instead
1619         of full name.
1620
1621 2007-08-29  Olivier Hainque  <hainque@adacore.com>
1622
1623         * xcoffout.c: #include debug.h.
1624         * Makefile.in (xcoffout.o): Add debug.h dependency.
1625
1626 2007-08-29  Uros Bizjak  <ubizjak@gmail.com>
1627
1628         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
1629         Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
1630
1631 2007-08-29  Richard Guenther  <rguenther@suse.de>
1632
1633         * tree-pretty-print.c (dump_generic_node): Print
1634         label DECL_UID as D.%u.
1635         * tree-dfa.c (dump_variable): Print DECL_UID as D.%u.
1636
1637 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1638
1639         * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
1640         * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
1641
1642 2007-08-29  Douglas Gregor  <doug.gregor@gmail.com>
1643
1644         PR c++/33194
1645         * tree.c (build_type_attribute_qual_variant): Set canonical types
1646         on the final, unqualified attribute variant before building the
1647         qualified version.
1648
1649 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
1650
1651         * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
1652         order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
1653
1654 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
1655
1656         Revert
1657         2007-08-29  Jie Zhang  <jie.zhang@analog.com>
1658         * config/bfin/bfin.md (composev2hi): Put operands into vector
1659         with correct order.
1660
1661 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
1662
1663         * config/bfin/bfin.md (composev2hi): Put operands into vector
1664         with correct order.
1665
1666 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
1667
1668         * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
1669         attribute when appropriate.
1670         (bfin_handle_l1_text_attribute): New.
1671         (bfin_handle_l1_data_attribute): New.
1672         (bfin_attribute_table): Add attributes: l1_text, l1_data,
1673         l1_data_A and l1_data_B.
1674         * doc/extend.texi (node Function Attributes): Document l1_text
1675         function attribute.
1676         (Variable Attributes): Add Blackfin subsection. Document l1_data,
1677         l1_data_A and l1_data_B variable attributes.
1678
1679 2007-08-28  Jie Zhang  <jie.zhang@analog.com>
1680
1681         * config/bfin/bfin.opt (minline-plt): Add.
1682         * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
1683         call to global functions.
1684         * doc/invoke.texi (Option Summary): Mention -minline-plt.
1685         (Blackfin Options): Document -minline-plt.
1686
1687 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
1688
1689         * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
1690         given a non-function.
1691         (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
1692
1693 2007-08-28  DJ Delorie  <dj@redhat.com>
1694
1695         * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
1696
1697 2007-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1698
1699         * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
1700
1701 2007-08-28  Richard Guenther  <rguenther@suse.de>
1702
1703         * tree.h (struct tree_function_decl): Increase size of
1704         function_code bitfield.
1705
1706 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
1707             Kazu Hirata  <kazu@codesourcery.com>
1708
1709         * gcc/config/m68k/linux.h
1710         (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
1711         * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
1712         (m68k_return_in_memory): New.
1713         * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
1714         New.
1715
1716 2007-08-28  Uros Bizjak  <ubizjak@gmail.com>
1717
1718         PR target/32661
1719         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
1720         Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
1721         operand) when top VEC_SELECT extracts scalar element.
1722         * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
1723         (*vec_extract_v4sf_mem): Ditto.
1724
1725 2007-08-28  Jakub Jelinek  <jakub@redhat.com>
1726
1727         PR middle-end/32370
1728         * passes.c (init_optimization_passes): Move pass_df_finish
1729         after pass_postreload sublist.
1730
1731         PR rtl-optimization/33148
1732         * simplify-rtx.c (simplify_unary_operation_1): Only optimize
1733         (neg (lt X 0)) if X has scalar int mode.
1734
1735         PR debug/32914
1736         * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
1737         initializer, use build_vector_from_ctor if possible to create
1738         VECTOR_CST out of it.  If vector initializer is not VECTOR_CST
1739         even after this, return NULL.
1740
1741 2007-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1742
1743         * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
1744
1745 2007-08-28  Richard Guenther  <rguenther@suse.de>
1746
1747         * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
1748         (struct tree_function_decl): Make function_code a bitfield.
1749         Add disregard_inline_limits flag.
1750         * cgraphunit.c (cgraph_process_new_functions): Check
1751         DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
1752         (cgraph_preserve_function_body_p): Likewise.
1753         * ipa-inline.c (compute_inline_parameters): Likewise.
1754         * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
1755         for GNU C extern inline functions.
1756         (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
1757         * tree-inline.c (disregard_inline_limits_p): Remove.
1758         * tree-inline.h (disregard_inline_limits_p): Likewise.
1759         * c-common.c (handle_always_inline_attribute): Set
1760         DECL_DISREGARD_INLINE_LIMITS.
1761         * langhooks.c (add_builtin_function): Verify the function code
1762         fits in the bitfield.
1763
1764 2007-08-28  Mircea Namolaru  <namolaru@il.ibm.com>
1765             Vladimir Yanovsky  <yanov@il.ibm.com>
1766             Revital Eres  <eres@il.ibm.com>
1767             Andrey Belevantsev  <abel@ispras.ru>
1768
1769         * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
1770         is set.
1771         * modulo-sched.c: Add documentation regarding do-loop.
1772         (doloop_register_get): Change number of arguments to support
1773         the new do-loop pattern and check whether COUNT_REG has no other
1774         occurences in the loop besides in the control part.
1775         (duplicate_insns_of_cycles): Do not duplicate the insn which
1776         changes count_reg as it is already adjusted.
1777         (generate_prolog_epilog): New argument to support the new
1778         do-loop pattern.  Change the subtract instruction to use
1779         expand_simple_binop.  Call duplicate_insns_of_cycles with new
1780         argument.
1781         (sms_schedule): Call doloop_register_get and
1782         generate_prolog_epilog with new argument.  Do not handle loops
1783         with single sets insns with subreg in their lhs.
1784         * loop-doloop.c (doloop_optimize): Support for another do-loop
1785         pattern.
1786         (doloop_condition_get): Gets an instruction instead of a pattern
1787         and change the return condition when the do-loop pattern is
1788         not parallel.
1789         * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
1790         deps when considering to not create edges.
1791
1792 2007-08-27  Alexandre Oliva  <aoliva@redhat.com>
1793
1794         * doc/extend.texi (gnu_inline funtion attribute): Document C++
1795         behavior.
1796
1797 2007-08-27  Jason Merrill  <jason@redhat.com>
1798
1799         PR c++/31337
1800         * gimplify.c (gimplify_modify_expr): Discard the assignment of 
1801         zero-sized types after calling gimplify_modify_expr_rhs.
1802
1803 2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
1804
1805         * regclass.c (init_reg_autoinc): Fix typo.
1806
1807 2007-08-27  Daniel Berlin  <dberlin@dberlin.org>
1808         
1809         Fix PR tree-optimization/33173
1810         * tree-ssa-alias.c (find_used_portions): Fix reversed test.
1811
1812 2007-08-27  H.J. Lu  <hongjiu.lu@intel.com>
1813
1814         PR target/31385
1815         * config/i386/i386.h (VALID_DFP_MODE_P): New.
1816         * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
1817         GPR.
1818
1819 2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
1820             David Ung  <davidu@mips.com>
1821             Nigel Stephens <nigel@mips.com>
1822
1823         Separate target-specific initialization from general
1824         back-end initialization.
1825
1826         * toplev.c (init_alignments): New, split out from...
1827         (process_options): ...here.
1828         (backend_init_target): New, split out from...
1829         (backend_init): ...here.
1830         (lang_dependent_init_target): New, split out from...
1831         (lang_dependent_init): ...here.
1832         (target_reinit): New.
1833         * toplev.h (target_reinit): Declare.
1834         * expr.c (init_expr_target): Renamed from init_expr_once, since it
1835         now can be called more than once.  Update comments.
1836         * expr.h (init_expr_target): Likewise.
1837         * alias.c (init_alias_target): Renamed from init_alias_once, since it
1838         now can be called more than once.  Explicitly zero
1839         static_reg_base_value.
1840         * emit-rtl.c (init_emit_regs): New, split out from...
1841         (init_emit_once): Here.
1842         * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
1843         non-const, so that changes from command-line arguments can overwrite
1844         values provided by the static initializers.
1845         (initial_call_really_used_regs): New, used similarly to the above.
1846         (initial_reg_names): Likewise.
1847         (last_mode_for_init_move_cost): Promoted function-local static to
1848         file-scope static to make it accessible outside init_move_cost.
1849         (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
1850         Do not initialize inv_reg_alloc_order yet, either.  Do initialize
1851         reg_names since it is needed for parsing command-line options.
1852         (init_move_cost): Use last_mode_for_init_move_cost instead of
1853         function-local static.
1854         (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
1855         call_really_used_regs now.  Reinitialize reg_names.  Also
1856         initialize inv_reg_alloc_order.  Zero reg_class_subunion and
1857         reg_class_superunion.  Clear losing_caller_save_reg_set.
1858         Preserve global registers if called more than once.  Reset
1859         move cost, may_move_in_cost, may_move_out_cost, and
1860         last_mode_for_init_move_cost.
1861         (init_reg_modes_target): Renamed from init_reg_modes_once, since it
1862         can now be invoked more than once.  Update comments.
1863         (init_regs): Update comments.
1864         (fix_register): Update initial_fixed_regs, initial_call_used_regs,
1865         and initial_call_really_used_regs, instead of the non-initial 
1866         variables.  This allows us to save the command-line register settings
1867         after target reinitialization.
1868         (init_reg_autoinc): Zero forbidden_inc_dec_classes.
1869         * rtl.h (init_emit_regs): Declare.
1870         (init_reg_modes_target, init_alias_target): Renamed as described
1871         above.
1872         * reload1.c (init_reload): Update comments.
1873         * optabs.c (init_optabs): Likewise.
1874         * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
1875         
1876 2007-08-26  Chao-ying Fu  <fu@mips.com>
1877
1878         * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
1879         __typeof().
1880
1881 2007-08-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1882
1883         * alias.c (memory_modified_1, memory_modified_in_insn_p):
1884         Constify.
1885         * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
1886         Likewise.
1887         * bb-reorder.c (copy_bb_p): Likewise.
1888         * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
1889         predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
1890         block_ends_with_condjump_p): Likewise.
1891         * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
1892         predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
1893         block_ends_with_condjump_p): Likewise.
1894         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
1895         * cfgrtl.c (can_delete_note_p, can_delete_label_p,
1896         rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
1897         rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
1898         need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
1899         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
1900         debug_true_const_tree instad of debug_true_tree.
1901         * debug.c (do_nothing_debug_hooks): Likewise.
1902         * debug.h (ignore_block, debug_true_const_tree): Constify.
1903         * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
1904         dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
1905         decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
1906         same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
1907         dbx_reg_number, is_based_loc, field_type,
1908         simple_type_align_in_bits, simple_decl_align_in_bits,
1909         simple_type_size_in_bits, field_byte_offset, insert_float,
1910         type_tag, member_declared_type, is_redundant_typedef,
1911         secname_for_decl, is_inlined_entry_point): Likewise.
1912         * emit-rtl.c (const_next_insn, const_previous_insn,
1913         const_next_nonnote_insn, const_prev_nonnote_insn,
1914         const_next_real_insn, const_prev_real_insn,
1915         const_next_active_insn, const_prev_active_insn, const_next_label,
1916         const_prev_label): Likewise.
1917         * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
1918         Likewise.
1919         * haifa-sched.c (may_trap_exp, haifa_classify_insn,
1920         find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
1921         sched_insn_is_legitimate_for_speculation_p): Likewise.
1922         * jump.c (reversed_comparison_code_parts,
1923         reversed_comparison_code, reversed_comparison, condjump_label):
1924         Likewise.
1925         * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
1926         * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
1927         Likewise.
1928         * rtl.h (const_previous_insn, const_next_insn,
1929         const_prev_nonnote_insn, const_next_nonnote_insn,
1930         const_prev_real_insn, const_next_real_insn,
1931         const_prev_active_insn, const_next_active_insn, const_prev_label,
1932         const_next_label, modified_between_p, modified_in_p,
1933         const_note_storeskeep_with_call_p, condjump_label,
1934         reversed_comparison, reversed_comparison_code,
1935         reversed_comparison_code_parts, memory_modified_in_insn_p,
1936         stack_regs_mentioned): Likewise.
1937         * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
1938         keep_with_call_p): Likewise.
1939         * sched-deps.c (deps_may_trap_p, sched_get_condition,
1940         conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
1941         sd_lists_size, sd_lists_empty_p): Likewise.
1942         * sched-int.h (sched_insns_conditions_mutex_p,
1943         haifa_classify_insn, no_real_insns_p,
1944         sched_insn_is_legitimate_for_speculation_p, sd_next_list,
1945         sd_lists_size, sd_lists_empty_p): Likewise.
1946         * sdbout.c (sdb_debug_hooks): Likewise.
1947         * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
1948         stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
1949         -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
1950         Likewise.
1951         * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
1952         tree_can_throw_internal): Likewise.
1953         * tree-flow-inline.h (phi_nodes): Likewise.
1954         * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
1955         tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
1956         * tree-gimple.c (const_get_call_expr_in): Likewise.
1957         * tree-gimple.h (const_get_call_expr_in): Likewise.
1958         * tree.c (const_lookup_attribute, attribute_list_equal,
1959         attribute_list_contained): Likewise.
1960         * tree.h (attribute_list_equal, attribute_list_contained,
1961         const_lookup_attribute): Likewise.
1962         * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
1963
1964 2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>
1965
1966         * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
1967         tree-ssa-pre.c: Remove unnecessary trailing whitespace.
1968
1969 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
1970
1971         PR target/32991
1972         * config/alpha/constraints.md: Delete "svn:mime-type" property
1973         with svn propdel "svn:mime-type".
1974
1975 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
1976
1977         PR middle-end/33181
1978         * ifcvt.c (noce_get_alt_condition): Make sure that the previous
1979         non NOTE insn doesn't cross basic block.
1980         (noce_try_abs): Likewise.
1981         (noce_process_if_block): Likewise.
1982
1983 2007-08-26  David Edelsohn  <edelsohn@gnu.org>
1984
1985         PR target/33151
1986         * config/rs6000/predicates.md (offsettable_mem_operand): Memory
1987         operand without auto-inc-dec.
1988         * config/rs6000/rs6000.md (floatsidf2_internal): Use
1989         offsettable_mem_operand.
1990         (floatunssidf2_internal): Same.
1991         (fix_truncdfsi2_internal): Same.
1992         (floatsidf_ppc64): Same.
1993         (floatunssidf_ppc64): Same.
1994         (fix_trunctfsi2_internal): Same.
1995
1996 2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>
1997
1998         PR bootstrap/30620
1999         * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
2000         pass defines needed for version.c.
2001
2002 2007-08-25  Joseph Myers  <joseph@codesourcery.com>
2003
2004         * configure.ac (--debug-prefix-map check): Change assembler
2005         version presumed to have feature to 2.18.
2006         * configure: Regenerate.
2007
2008 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2009
2010         * c-common.c (vector_types_convertible_p,
2011         decl_with_nonnull_addr_p, c_promoting_integer_type_p,
2012         self_promoting_args_p): Constify.
2013         * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
2014         c_promoting_integer_type_p, self_promoting_args_p,
2015         anon_aggr_type_p, vector_types_convertible_p): Likewise.
2016         * c-decl.c (anon_aggr_type_p): Likewise.
2017         * * c-dump.c (dump_stmt): Likewise.
2018         * c-objc-common.c (has_c_linkage): Likewise.
2019         * c-tree.h (same_translation_unit_p): Likewise.
2020         * c-typeck.c (null_pointer_constant_p,
2021         tagged_types_tu_compatible_p, function_types_compatible_p,
2022         type_lists_compatible_p, lvalue_or_else, lvalue_p,
2023         comptypes_internal, struct tagged_tu_seen_cache,
2024         same_translation_unit_p, alloc_tagged_tu_seen_cache,
2025         c_size_in_bytes): Likewise.
2026         * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
2027         hash_ptr, eq_ptr): Likewise.
2028         * langhooks-def.h (lhd_decl_ok_for_sibcall,
2029         LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
2030         * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
2031         * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
2032         Likewise.
2033         * optabs.c (optab_for_tree_code): Likewise.
2034         * optabs.h (optab_for_tree_code): Likewise.
2035         * rtl.h (simplify_rtx): Likewise.
2036         * simplify-rtx.c (simplify_rtx): Likewise.
2037         * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
2038         dump_flag, dump_node): Likewise.
2039         * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
2040         queue_and_dump_type, dump_flag): Likewise.
2041         * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
2042         * tree-pass.h (dump_node): Likewise.
2043         * tree-vectorizer.c (vect_can_force_dr_alignment_p,
2044         supportable_narrowing_operation): Likewise.
2045         * tree-vectorizer.h (vect_can_force_dr_alignment_p,
2046         supportable_narrowing_operation): Likewise.
2047         * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
2048         is_negative_overflow_infinity, is_positive_overflow_infinity,
2049         is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
2050         nonnull_arg_p, get_value_range, vrp_operand_equal_p,
2051         update_value_range, add_equivalence, ssa_name_nonnegative_p,
2052         ssa_name_nonzero_p, fp_predicate): Likewise.
2053         * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
2054         * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
2055         ssa_name_nonnegative_p): Likewise.
2056
2057 2007-08-25  Hans Kester  <hans.kester@ellips.nl>
2058
2059         * config.gcc : Add x86_64-elf target.
2060
2061 2007-08-25  Jakub Jelinek  <jakub@redhat.com>
2062
2063         * expr.c (store_expr): Fix order of store_by_pieces arguments.
2064
2065 2007-08-24  Sandra Loosemore  <sandra@codesourcery.com>
2066             Nigel Stephens <nigel@mips.com>
2067
2068         PR target/11787
2069
2070         * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
2071         (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
2072         * expr.c (SET_BY_PIECES_P): Define.
2073         (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
2074         it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
2075         (store_expr): Pass MEMSETP argument to can_store_by_pieces and
2076         store_by_pieces.
2077         * expr.h (SET_RATIO): Define.
2078         (can_store_by_pieces, store_by_pieces): Update prototypes.
2079         * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
2080         can_store_by_pieces/store_by_pieces.
2081         (expand_builtin_memcpy_args): Likewise.
2082         (expand_builtin_strncpy): Likewise.
2083         (expand_builtin_memset_args): Likewise.  Also remove special case
2084         for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
2085         decide what to do instead.
2086         * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
2087         to can_store_by_pieces.
2088
2089         * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
2090         * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
2091
2092         * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
2093         * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
2094         * config/mips/mips.h (MIPS_CALL_RATIO): Define.
2095         (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
2096         (STORE_BY_PIECES_P): Define.
2097
2098 2007-08-24  Tom Tromey  <tromey@redhat.com>
2099
2100         * varpool.c (varpool_last_needed_node): Fix comment typo.
2101         * c-decl.c (duplicate_decls): Fix comment typo.
2102         (clone_underlying_type): Update comment.
2103
2104 2007-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2105
2106         * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
2107         alpha_in_small_data_p, alpha_split_complex_arg,
2108         alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2109         Constify.
2110         * config/arm/arm-protos.h (arm_mangle_type): Likewise.
2111         * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
2112         Likewise.
2113         * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
2114         TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2115         * config/darwin-protos.h (darwin_binds_local_p): Likewise.
2116         * config/darwin.c (darwin_binds_local_p): Likewise.
2117         * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
2118         Likewise.
2119         * config/i386/i386-protos.h (i386_pe_binds_local_p,
2120         i386_pe_valid_dllimport_attribute_p): Likewise.
2121         * config/i386/i386.c (ix86_function_regparm,
2122         ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
2123         x86_can_output_mi_thunk, ix86_mangle_type,
2124         TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2125         * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
2126         i386_pe_binds_local_p): Likewise.
2127         * config/ia64/ia64.c
2128         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
2129         ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
2130         ia64_invalid_conversion, ia64_invalid_unary_op,
2131         ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2132         Likewise.
2133         * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
2134         * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
2135         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2136         * config/mips/mips.c (mips_use_blocks_for_constant_p,
2137         mips_in_small_data_p, mips_use_anchors_for_symbol_p,
2138         mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2139         mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
2140         mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
2141         * config/pa/pa.c (pa_commutative_p): Likewise.
2142         * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
2143         Likewise.
2144         * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
2145         rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
2146         rs6000_use_blocks_for_constant_p,
2147         rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
2148         invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2149         TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
2150         * config/s390/s390.c (s390_mangle_type,
2151         TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
2152         Likewise.
2153         * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2154         th_in_small_data_p): Likewise.
2155         * config/sh/sh.c (sh_ms_bitfield_layout_p,
2156         sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2157         Likewise.
2158         * config/sparc/sparc.c (sparc_can_output_mi_thunk,
2159         sparc_mangle_type): Likewise.
2160         * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
2161         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
2162         * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
2163         Likewise.
2164         * hooks.c (hook_bool_mode_const_rtx_false,
2165         hook_bool_mode_const_rtx_true,
2166         hook_bool_const_tree_hwi_hwi_const_tree_false,
2167         hook_bool_const_tree_hwi_hwi_const_tree_true,
2168         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2169         hook_constcharptr_const_tree_null,
2170         hook_constcharptr_const_rtx_null,
2171         hook_constcharptr_const_tree_const_tree_null,
2172         hook_constcharptr_int_const_tree_null,
2173         hook_constcharptr_int_const_tree_const_tree_null): New.
2174         (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
2175         hook_bool_tree_hwi_hwi_tree_false,
2176         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
2177         hook_int_tree_tree_1, hook_constcharptr_tree_null,
2178         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
2179         hook_constcharptr_int_tree_null,
2180         hook_constcharptr_int_tree_tree_null): Delete.
2181         (default_can_output_mi_thunk_no_vcall): Constify.
2182         * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
2183         hook_bool_tree_hwi_hwi_tree_false,
2184         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
2185         hook_int_tree_tree_1, hook_constcharptr_tree_null,
2186         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
2187         hook_constcharptr_int_tree_null,
2188         hook_constcharptr_int_tree_tree_null): Delete.
2189         (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
2190         hook_bool_const_tree_hwi_hwi_const_tree_false,
2191         hook_bool_const_tree_hwi_hwi_const_tree_true,
2192         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2193         hook_constcharptr_const_tree_null,
2194         hook_constcharptr_const_rtx_null,
2195         hook_constcharptr_const_tree_const_tree_null,
2196         hook_constcharptr_int_const_tree_null,
2197         hook_constcharptr_int_const_tree_const_tree_null): New.
2198         (default_can_output_mi_thunk_no_vcall): Constify.
2199         * integrate.c (function_attribute_inlinable_p): Likewise.
2200         * integrate.h (function_attribute_inlinable_p): Likewise.
2201         * jump.c (rtx_renumbered_equal_p): Likewise.
2202         * output.h (decl_readonly_section, categorize_decl_for_section,
2203         default_use_anchors_for_symbol_p, default_binds_local_p,
2204         default_binds_local_p_1): Likewise.
2205         * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
2206         Likewise.
2207         * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2208         TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
2209         TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
2210         TARGET_COMP_TYPE_ATTRIBUTES,
2211         TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
2212         TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
2213         TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
2214         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
2215         TARGET_DWARF_CALLING_CONVENTION): Likewise.
2216         * target.h (can_output_mi_thunk, needs_block_p,
2217         first_cycle_multipass_dfa_lookahead_guard_spec,
2218         vector_alignment_reachable, comp_type_attributes,
2219         function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
2220         commutative_p, use_blocks_for_constant_p,
2221         use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
2222         vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
2223         invalid_within_doloop, valid_dllimport_attribute_p,
2224         split_complex_arg, invalid_arg_for_unprototyped_fn,
2225         invalid_conversion, invalid_unary_op, invalid_binary_op):
2226         Likewise.
2227         * targhooks.c (default_invalid_within_doloop,
2228         hook_invalid_arg_for_unprototyped_fn,
2229         default_builtin_vector_alignment_reachable): Likewise.
2230         (hook_bool_rtx_commutative_p): Delete.
2231         (hook_bool_const_rtx_commutative_p): New.
2232         * targhooks.h (default_invalid_within_doloop,
2233         default_builtin_vector_alignment_reachable,
2234         hook_invalid_arg_for_unprototyped_fn): Constify.
2235         (hook_bool_rtx_commutative_p): Delete.
2236         (hook_bool_const_rtx_commutative_p): New.
2237         * varasm.c (bss_initializer_p, decl_default_tls_model,
2238         categorize_decl_for_section, decl_readonly_section,
2239         default_use_anchors_for_symbol_p, default_binds_local_p,
2240         default_binds_local_p_1): Constify.
2241
2242 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2243
2244         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2245         __NO_BUILTIN if -fno-builtin.
2246
2247 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2248
2249         * config/bfin/bfin.c (print_operand): Report error instead of
2250         ICE for wrong operand.
2251
2252 2007-08-24  Michael Matz  <matz@suse.de>
2253
2254         * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
2255
2256 2007-08-24  Richard Guenther  <rguenther@suse.de>
2257
2258         PR middle-end/33166
2259         * tree-ssa.c (useless_type_conversion_p): Split into a
2260         recursive and a non-recursive part.
2261         (useless_type_conversion_p_1): New function.
2262         * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
2263         from maybe_fold_offset_to_reference is trivially convertible
2264         to the desired type before doing the simplification.
2265
2266 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
2267
2268         * expr.c (store_expr): Optimize initialization of an array
2269         with STRING_CST.
2270         * expr.h (builtin_strncpy_read_str): New prototype.
2271         * builtins.c (builtin_strncpy_read_str): Remove prototype.
2272         No longer static.
2273
2274 2007-08-24  Uros Bizjak  <ubizjak@gmail.com>
2275
2276         PR middle-end/33157
2277         * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
2278         field when initializing if_info structure.
2279
2280 2007-08-24  Richard Guenther  <rguenther@suse.de>
2281
2282         * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
2283         dependencies.
2284         * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
2285         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
2286         * tree-inline.c (inlinable_function_p): Fold in common parts of
2287         the cannot_inline_tree_fn langhook.
2288         * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
2289         (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
2290         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
2291         cannot_inline_tree_fn langhook.
2292         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
2293         cannot_inline_tree_fn member.
2294
2295 2007-08-24  Richard Guenther  <rguenther@suse.de>
2296
2297         * expr.c (get_inner_reference): Do computation of bitoffset
2298         from offset in a way we can detect overflow reliably.
2299
2300 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2301
2302         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
2303
2304 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2305
2306         * config/bfin/bfin.opt (mfast-fp): Add.
2307         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
2308         libbffastfp override libgcc if -mfast-fp.
2309         * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
2310         * doc/invoke.texi (Option Summary): Mention -mfast-fp.
2311         (Blackfin Options): Document -mfast-fp.
2312
2313 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
2314
2315         PR tree-optimization/32573
2316         PR middle-end/32946
2317         * tree-data-ref.c (initialize_data_dependence_relation): Clear
2318         DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
2319         (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
2320         (build_classic_dist_vector): Return false rather than true if
2321         DDR_ARE_DEPENDENT is non-NULL at the beginning.  Return false
2322         if either subscript_dependence_tester_1 or build_classic_dist_vector_1
2323         returned false.  Don't call save_dist_v before calling
2324         build_classic_dist_vector_1.
2325         (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
2326         with NULL DDR_ARE_DEPENDENT.  Also free DDR_DIST_VECTS and/or
2327         DDR_DIR_VECTS vectors.
2328
2329 2007-08-23  Brian Sidebotham  <brian.sidebotham@gmail.com>
2330
2331         * configure.ac (leb128): Modify sed statement to work with any
2332         binutils version string.
2333         * configure: Regenerate
2334
2335 2007-08-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2336
2337         * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
2338         Wrap in RTX_CODE macro guard.
2339         * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
2340         arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
2341         arm_mark_dllimport, arm_pe_encode_section_info,
2342         arm_pe_unique_section): Use ISO-C function declarations.
2343         * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
2344         c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
2345         c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
2346         Likewise.
2347         * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
2348         * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
2349         defining.
2350         * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
2351         warnings.
2352         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
2353         * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
2354         (register_move_cost): Use ISO-C function declarations.
2355         * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
2356         * config/score/score-protos.h (score_declare_object): Add
2357         ATTRIBUTE_PRINTF_4.
2358         * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
2359         warnings.
2360         * final.c (profile_function): Avoid empty if-bodies.
2361         
2362         
2363         * calls.c (must_pass_in_stack_var_size,
2364         must_pass_in_stack_var_size_or_pad): Constify.
2365         * config/alpha/alpha-protos.h (function_value): Likewise.
2366         * config/alpha/alpha.c (alpha_return_in_memory,
2367         alpha_pass_by_reference, function_value,
2368         unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
2369         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2370         Likewise.
2371         * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
2372         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2373         TARGET_PROMOTE_PROTOTYPES): Likewise.
2374         * config/arm/arm-protos.h (arm_return_in_memory,
2375         arm_pad_arg_upward, arm_function_value): Likewise.
2376         * config/arm/arm.c (arm_pass_by_reference,
2377         arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
2378         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2379         arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
2380         Likewise.
2381         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
2382         * config/avr/avr-protos.h (avr_function_value): Likewise.
2383         * config/avr/avr.c (avr_return_in_memory,
2384         gas_output_limited_string, gas_output_ascii, avr_function_value,
2385         avr_return_in_memory): Likewise.
2386         * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
2387         * config/bfin/bfin.c (bfin_pass_by_reference,
2388         bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
2389         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
2390         Likewise.
2391         * config/cris/cris.c (cris_pass_by_reference,
2392         TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
2393         * config/crx/crx.c (crx_return_in_memory): Likewise.
2394         * config/darwin.c (function_base, machopic_function_base_name):
2395         Likewise.
2396         * config/fr30/fr30.c (fr30_must_pass_in_stack,
2397         TARGET_PROMOTE_PROTOTYPES): Likewise.
2398         * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
2399         * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
2400         * config/i386/i386-protos.h (ix86_return_in_memory,
2401         ix86_sol10_return_in_memory): Likewise.
2402         * config/i386/i386.c (ix86_function_value,
2403         ix86_function_sseregparm, ix86_must_pass_in_stack,
2404         type_natural_mode, classify_argument, examine_argument,
2405         construct_container, ix86_pass_by_reference, function_value_32,
2406         function_value_64, ix86_function_value_1, return_in_memory_32,
2407         return_in_memory_64, return_in_memory_ms_64,
2408         ix86_return_in_memory, ix86_sol10_return_in_memory,
2409         TARGET_PROMOTE_PROTOTYPES): Likewise.
2410         * config/ia64/ia64-protos.h (ia64_function_value,
2411         ia64_hpux_function_arg_padding): Likewise.
2412         * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
2413         ia64_function_value, bundle_state_hash, bundle_state_eq_p,
2414         ia64_hpux_function_arg_padding): Likewise.
2415         * config/iq2000/iq2000-protos.h (function_arg,
2416         iq2000_function_value): Likewise.
2417         * config/iq2000/iq2000.c (iq2000_return_in_memory,
2418         iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
2419         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2420         function_arg, iq2000_function_value): Likewise.
2421         * config/m32c/m32c-protos.h (m32c_function_value,
2422         m32c_promote_function_return): Likewise.
2423         * config/m32c/m32c.c (m32c_pass_by_reference,
2424         m32c_promote_prototypes, m32c_promote_function_return,
2425         m32c_function_value): Likewise.
2426         * config/m32r/m32r.c (m32r_return_in_memory,
2427         m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
2428         m32r_in_small_data_p): Likewise.
2429         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
2430         Likewise.
2431         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
2432         m68hc11_function_arg_padding): Likewise.
2433         * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
2434         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
2435         m68k_function_value): Likewise.
2436         * config/mcore/mcore-protos.h (mcore_num_arg_regs,
2437         mcore_function_value): Likewise.
2438         * config/mcore/mcore.c (handle_structs_in_regs,
2439         mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
2440         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2441         mcore_num_arg_regs, mcore_function_value): Likewise.
2442         * config/mips/mips-protos.h (mips_pad_arg_upward,
2443         mips_function_value): Likewise.
2444         * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
2445         mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
2446         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2447         TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
2448         mips_function_value): Likewise.
2449         * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
2450         Likewise.
2451         * config/mmix/mmix.c (mmix_pass_by_reference,
2452         TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
2453         mmix_encode_section_info): Likewise.
2454         * config/mn10300/mn10300-protos.h (mn10300_function_value):
2455         Likewise.
2456         * config/mn10300/mn10300.c (mn10300_return_in_memory,
2457         mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
2458         mn10300_function_value): Likewise.
2459         * config/mt/mt-protos.h (mt_function_value): Likewise.
2460         * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
2461         mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
2462         * config/pa/pa-protos.h (function_arg_padding, function_value,
2463         pa_return_in_memory): Likewise.
2464         * config/pa/pa.c (pa_pass_by_reference,
2465         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2466         function_arg_padding, function_value, pa_return_in_memory):
2467         Likewise.
2468         * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
2469         * config/rs6000/rs6000-protos.h (rs6000_function_value,
2470         function_arg_padding): Likewise.
2471         * config/rs6000/rs6000.c (rs6000_return_in_memory,
2472         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
2473         rs6000_pass_by_reference, rs6000_must_pass_in_stack,
2474         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2475         function_arg_padding, altivec_expand_dst_builtin,
2476         altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
2477         altivec_init_builtins, rs6000_common_init_builtins,
2478         rs6000_function_value): Likewise.
2479         * s390/s390-protos.h (s390_function_value): Likewise.
2480         * config/s390/s390.c (s390_function_arg_size,
2481         s390_pass_by_reference, s390_return_in_memory,
2482         s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
2483         TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
2484         * config/score/score-protos.h (score_function_value): Likewise.
2485         * config/score/score.c (score_arg_partial_bytes,
2486         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2487         TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
2488         score_pass_by_reference, score_add_offset, score_function_value):
2489         Likewise.
2490         * config/sh/sh-protos.h (sh_attr_renesas_p,
2491         sh_promote_prototypes): Likewise.
2492         * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
2493         sh_callee_copies, sh_promote_prototypes, shcompact_byref,
2494         sh_attr_renesas_p): Likewise.
2495         * config/sparc/sparc-protos.h (function_value,
2496         function_arg_padding): Likewise.
2497         * config/sparc/sparc.c (sparc_promote_prototypes,
2498         sparc_return_in_memory, sparc_pass_by_reference,
2499         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2500         function_arg_record_value_2, function_arg_record_value_1,
2501         function_arg_record_value, function_arg_record_value,
2502         function_arg_padding, function_value): Likewise.
2503         * config/spu/spu-protos.h (spu_function_value): Likewise.
2504         * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
2505         spu_function_value): Likewise.
2506         * config/stormy16/stormy16-protos.h (xstormy16_function_value):
2507         Likewise.
2508         * config/stormy16/stormy16.c (xstormy16_return_in_memory,
2509         xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
2510         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2511         Likewise.
2512         * config/v850/v850.c (v850_return_in_memory,
2513         v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
2514         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
2515         * config/xtensa/xtensa.c (xtensa_return_in_msb,
2516         xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
2517         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2518         Likewise.
2519         * explow.c (promote_mode, hard_function_value): Likewise.
2520         * expr.h (hard_function_value, promote_mode): Likewise.
2521         * function.c (aggregate_value_p): Likewise.
2522         * hooks.c (hook_bool_const_tree_true): New.
2523         * hooks.h (hook_bool_const_tree_true): New.
2524         * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
2525         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
2526         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2527         TARGET_RETURN_IN_MSB): Likewise.
2528         * target.h (promote_function_args, promote_function_return,
2529         promote_prototypes, return_in_memory, return_in_msb,
2530         pass_by_reference, must_pass_in_stack, callee_copies,
2531         function_value): Likewise.
2532         * targhooks.c (default_return_in_memory,
2533         hook_pass_by_reference_must_pass_in_stack,
2534         hook_callee_copies_named,
2535         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
2536         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
2537         default_function_value): Likewise. 
2538         * targhooks.h (default_return_in_memory,
2539         hook_pass_by_reference_must_pass_in_stack,
2540         hook_callee_copies_named,
2541         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
2542         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
2543         default_function_value): Likewise.
2544         * tree-ssa-structalias.c (const_equiv_class_label_t): New.
2545         (equiv_class_label_hash, equiv_class_label_eq): Constify.
2546         * tree-vectorizer.c (bb_in_loop_p): Likewise.
2547         * tree.c (needs_to_live_in_memory): Likewise.
2548         * tree.h (struct tree_type, needs_to_live_in_memory,
2549         aggregate_value_p, must_pass_in_stack_var_size,
2550         must_pass_in_stack_var_size_or_pad): Likewise.
2551         * vmsdbgout.c (write_debug_addr, write_debug_delta4,
2552         write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
2553         lookup_filename): Likewise.
2554
2555 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
2556
2557         PR target/17390
2558         * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
2559         fake fcomi i387 instruction for !TARGET_CMOVE.
2560         (ix86_expand_branch): Expand natural sequence with one jump for
2561         all targets, not only TARGET_CMOVE.
2562         * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
2563         pattern to implement fake fcomi sequence.  Split instruction after
2564         reload to correct compare sequences.
2565         (*cmpfp_xf_cc): Ditto.
2566         (*cmpfp_<mode>_cc): Ditto.
2567         (*cmpfp_u_cc): Ditto.
2568         (*cmpfp_<mode>_cc): Ditto.
2569
2570 2007-08-23  Richard Guenther  <rguenther@suse.de>
2571
2572         * tree-pretty-print.c (dump_generic_node): Annotate
2573         GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
2574
2575 2007-08-23  Richard Guenther  <rguenther@suse.de>
2576
2577         * builtins.c (expand_builtin_mathfn): Wrap argument in
2578         save_expr directly instead of re-building the call.
2579         (expand_builtin_mathfn_2): Likewise.
2580         (expand_builtin_mathfn_3): Likewise.
2581         (expand_builtin_interclass_mathfn): Likewise.
2582         (expand_builtin_int_roundingfn): Set arg.
2583         (expand_builtin_int_roundingfn_2): Likewise.
2584
2585 2007-08-23  Paolo Bonzini  <bonzini@gnu.org>
2586
2587         * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
2588         *sse_nand<mode>3, *sse_xor<mode>3): New.
2589
2590 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
2591
2592         * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
2593         * config/i386/i386.c (print_operand): Handle ';' code.  Output
2594         semicolon for TARGET_MACHO.
2595         * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
2596         emit semicolon after 'lock' prefix.
2597         (sync_double_compare_and_swap<mode>): Ditto.
2598         (*sync_double_compare_and_swapdi_pic): Ditto.
2599         (*sync_compare_and_swap_cc<mode>): Ditto.
2600         (sync_double_compare_and_swap_cc<mode>): Ditto.
2601         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
2602         (sync_old_add<mode>): Ditto.
2603         (sync_add<mode>): Ditto.
2604         (sync_sub<mode>): Ditto.
2605         (sync_ior<mode>): Ditto.
2606         (sync_and<mode>): Ditto.
2607         (sync_xor<mode>): Ditto.
2608
2609 2007-08-22  Chao-ying Fu  <fu@mips.com>
2610
2611         * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
2612         in DEF_RTL_EXPR.
2613         (copy_rtx): Handle CONST_FIXED.
2614         (rtx_equal_p): Likewise.
2615         * rtl.h (fixed_value.h): New include.
2616         (rtx_def): Add a new field of fixed_value to u.
2617         (XCNMPFV): Define for accessing fixed_value.
2618         (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
2619         Define.
2620         * rtl.def (CONST_FIXED): New constant.
2621         (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
2622         UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
2623         US_ASHIFT): New codes.
2624         * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
2625         us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
2626         unsigned_fract_convert, unsigned_sat_fract): Document them.
2627         * varasm.c (assemble_integer): Extend to support fixed-point constants
2628         by using different machine classes.
2629         (decode_addr_const): Handle FIXED_CST.
2630         (const_hash_1): Likewise.
2631         (compare_constant): Likewise.
2632         (copy_constant): Likewise.
2633         (const_rtx_hash_1): Handle CONST_FIXED.
2634         (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
2635         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
2636         MODE_VECTOR_UACCUM.
2637         (initializer_constant_valid_p): Handle FIXED_CST.
2638         (output_constant): Support FIXED_POINT_TYPE.
2639         * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
2640         * cse.c (hash_rtx): Support CONST_FIXED.
2641         (exp_equiv_p): Likewise.
2642         (cannon_reg): Likewise.
2643         (fold_rtx): Likewise.
2644         (equiv_constant): Likewise.
2645         (cse_process_notes_1): Likewise.
2646         (count_reg_usage): Likewise.
2647         * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
2648         (rtx_equal_for_cselib_p): Handle CONST_FIXED.
2649         (wrap_constant): Check CONST_FIXED.
2650         (cselib_hash_rtx): Support CONST_FIXED.
2651         (cselib_subst_to_values): Likewise.
2652         * df-scan.c (df_uses_record): Likewise.
2653         * gcse.c (want_to_gcse_p): Likewise.
2654         (oprs_unchanged_p): Likewise.
2655         (oprs_not_set_p): Likewise.
2656         (compute_transp): Likewise.
2657         (extract_mentioned_regs_helper): Likewise.
2658         * genemit.c (gen_exp): Likewise.
2659         * local-alloc.c (equiv_init_varies_p): Likewise.
2660         (contains_replace_regs): Likewise.
2661         (memref_referenced_p): Likewise.
2662         * loop-invariant.c (check_maybe_invariant): Likewise.
2663         (hash_invariant_expr_1): Likewise.
2664         (invariant_expr_equal_p): Likewise.
2665         * postreload-gcse.c (oprs_unchanged_p): Likewise.
2666         * regclass.c (reg_scan_mark_refs): Likewise.
2667         * regrename.c (scan_rtx): Likewise.
2668         * resource.c (mark_referenced_resources): Likewise.
2669         (mark_set_resources): Likewise.
2670         * rtlanal.c (rtx_unstable_p): Likewise.
2671         (rtx_varies_p): Likewise.
2672         (count_occurrences): Likewise.
2673         (reg_mentioned_p): Likewise.
2674         (modified_between_p): Likewise.
2675         (modified_in_p): Likewise.
2676         (volatile_insn_p): Likewise.
2677         (volatile_refs_p): Likewise.
2678         (side_effects_p): Likewise.
2679         (may_trap_p_1): Likewise.
2680         (inequality_comparisons_p): Likewise.
2681         (computed_jump_p_1): Likewise.
2682         (commutative_operand_precedence): Likewise.
2683         * sched-deps.c (sched_analyze_2): Likewise.
2684         * sched-vis.c (print_value): Likewise.
2685         * reload.c (operands_match_p): Likewise.
2686         (subst_reg_equivs): Likewise.
2687         * reload1.c (eliminate_regs_1): Likewise.
2688         (elimination_effects): Likewise.
2689         (scan_paradoxical_subregs): Likewise.
2690         * alias.c (rtx_equal_for_memref_p): Likewise.
2691         * Makefile.in (RTL_BASE_H): Add fixed-value.h.
2692         * emit-rtl.c (const_fixed_htab): New hash table.
2693         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
2694         Declare.
2695         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
2696         const_fixed_from_fixed_value): New functions.
2697         (verify_rtx_sharing): Handle CONST_FIXED.
2698         (copy_rtx_if_shared_1): Likewise.
2699         (reset_used_flags): Likewise.
2700         (set_used_flags): Likewise.
2701         (copy_insn_1): Likewise.
2702         (init_emit_once): Create const_fixed_htab.
2703         Store fixed-point scalar and vector zero and one to const_tiny_rtx.
2704
2705 2007-08-22  Zdenek Dvorak  <ook@ucw.cz>
2706
2707         PR tree-optimization/32949
2708         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
2709         before failing for ivs with non-constant step.
2710
2711 2007-08-22  Hans-Peter Nilsson  <hp@axis.com>
2712
2713         * doc/md.texi (Iterators): Renamed from Macros.  All contents
2714         changed to reflect rename of respectively define_code_macro and
2715         define_mode_macro to define_code_iterator and define_mode_iterator.
2716         (Mode Iterators, Code Iterators): Similar.
2717         * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
2718         (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
2719         (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
2720         (initialize_iterators, find_iterator, check_code_iterator)
2721         (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
2722         (read_mapping, read_rtx_1): Similar.
2723         * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
2724         config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
2725         config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
2726         config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
2727         config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
2728         config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
2729         config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
2730         config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
2731         config/rs6000/sync.md, config/rs6000/rs6000.md,
2732         config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
2733         config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
2734         config/vax/vax.md, config/bfin/bfin.md: Similar.
2735
2736 2007-08-22  David Daney  <ddaney@avtrex.com>
2737
2738         * doc/install.texi (Testing): Mention testing on a simulator.
2739
2740 2007-08-22  Janis Johnson  <janis187@us.ibm.com>
2741
2742         * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
2743
2744         * doc/libgcc.texi (Decimal float library routines): Fix formatting
2745         and rearrange floating point conversion functions into different
2746         categories.
2747
2748 2007-08-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2749
2750         * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
2751         dfa_post_advance_cycle): New scheduler hooks.
2752         * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2753         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
2754         new hooks.
2755         (TARGET_SCHED): Use them.
2756         * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2757         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
2758         * haifa-sched.c (advance_one_cycle): Invoke new hooks.
2759
2760         * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
2761         function to facilitate debugging.
2762         (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
2763         (output_insn_has_dfa_reservation_p): New static function to output
2764         insn_has_dfa_reservation_p ().
2765         (write_automata): Use it.
2766         * genattr.c (main): Output declaration for
2767         insn_has_dfa_reservation_p ().
2768
2769 2007-08-22  Christian Bruel  <christian.bruel@st.com>   
2770             Richard Guenther <rguenther@suse.de>
2771         
2772         * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
2773         * simplify_rtx (simplify_binary_operation_1): Likewise.
2774                 
2775 2007-08-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2776
2777         PR rtl-optimization/32557
2778         * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
2779         of REGNO (mws->mw_reg).
2780
2781 2007-08-22  Richard Guenther  <rguenther@suse.de>
2782
2783         PR middle-end/33007
2784         * builtins.c (expand_builtin_int_roundingfn): Replace call
2785         argument wrapped with SAVE_EXPR directly.
2786         (expand_builtin_int_roundingfn_2): Likewise.
2787
2788 2007-08-22  Richard Guenther  <rguenther@suse.de>
2789
2790         * tree-inline.c (inlinable_function_p): Restore disregarding
2791         inline limits for GNU extern inline functions.
2792
2793 2007-08-22  Richard Guenther  <rguenther@suse.de>
2794
2795         PR middle-end/32563
2796         * tree.c (host_integerp): Treat sizetype as signed as it is
2797         sign-extended.
2798
2799 2007-08-21  Ian Lance Taylor  <iant@google.com>
2800
2801         PR tree-optimization/33134
2802         * tree-vrp.c (adjust_range_with_scev): Call
2803         set_value_range_to_value.
2804
2805 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
2806
2807         * value-prof.h (gimple_remove_histogram_value): Remove duplicate
2808         prototype.
2809         
2810 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
2811
2812         * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
2813         whitespace.
2814
2815 2007-08-21  Nathan Froyd  <froydnj@codesourcery.com>
2816
2817         * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
2818         cases to set eight bytes at a time.
2819         (expand_block_move): Likewise.
2820         
2821 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
2822
2823         PR debug/32610
2824         * dwarf2out.c (gen_decl_die): Don't call
2825         gen_tagged_type_instantiation_die if decl doesn't have tagged type.
2826
2827 2007-08-21  Paul Brook  <paul@codesourcery.com>
2828             Nathan Sidwell  <nathan@codesourcery.com>
2829             Mark Mitchell  <mark@codesourcery.com>
2830             Joseph Myers  <joseph@codesourcery.com>
2831
2832         * configure.ac: Add --with-pkgversion and --with-bugurl.
2833         * configure: Regenerate.
2834         * doc/install.texi: Document them.
2835         * version.c (version_string): Remove VERSUFFIX.
2836         (VERSUFFIX): Remove.
2837         (pkgversion_string): New.
2838         (bug_report_url): Do not hard-code initializer.
2839         * version.h (pkgversion_string): Declare.
2840         * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
2841         Define.
2842         (version.o): Define PKGVERSION and BUGURL.
2843         (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
2844         (%.pod): Define BUGURL.
2845         * gcc.c (process_command, main): Use pkgversion_string.
2846         * toplev.c (compile_file, print_version): Likewise.
2847         * protoize.c (main): Likewise.
2848         * gcov.c (print_version): Likewise.  Update copyright date.
2849         * gcov-dump.c (print_version): Likewise.  Update copyright date.
2850         * mips-tdump.c (main): Likewise.  Update copyright date.
2851         * mips-tfile.c (main): Likewise.  Update copyright date.
2852         * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
2853         * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
2854         shorten description.
2855         * doc/gcc.texi: Include VERSION_PACKAGE in version description.
2856         * doc/gccint.texi: Likewise.
2857         * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
2858         Update copyright date.
2859
2860 2007-08-21  Uros Bizjak  <ubizjak@gmail.com>
2861
2862         * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
2863         (ix86_expand_strlensi_unroll_1): Ditto.
2864         (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
2865         (ix86_expand_carry_flag_compare): Update comment.
2866
2867 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
2868
2869         PR middle-end/32912
2870         * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
2871         (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
2872
2873 2007-08-21  Richard Guenther  <rguenther@suse.de>
2874
2875         * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
2876
2877 2007-08-21  Richard Guenther  <rguenther@suse.de>
2878
2879         PR middle-end/33122
2880         * fold-const.c (fold_binary): Remove index +p PTR folding.
2881         Fix types of POINTER_PLUS_EXPR generated by folding of
2882         (PTR +p B) +p A.
2883
2884 2007-08-20  Chao-ying Fu  <fu@mips.com>
2885
2886         * c-common.h (enum rid): Add new enumeration values of RID_SAT,
2887         RID_FRACT, and RID_ACCUM.  RID_SAT needs to be inserted before
2888         RID_ONEWAY, so that it can be checked in declspecs_add_type.
2889         (c_common_fixed_point_type_for_size): Declare.
2890         * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
2891         (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
2892         (c_token_starts_declspecs): Likewise.
2893         (c_parser_declspecs): Likewise.
2894         (c_parser_attributes): Likewise.
2895         * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
2896         (c_declspecs): Add saturating_p.
2897         * c-decl.c (build_null_declspecs): Initialize saturating_p.
2898         (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
2899         _Sat.  Handle RID_SAT.
2900         Avoid using void, bool, char, int, float, double, _Decimal32,
2901         _Decimal64, _Decimal128, and complex with _Sat.
2902         Handle RID_FRACT and RID_ACCUM.
2903         Make sure _Sat is used with _Fract or _Accum.
2904         (finish_declspecs): Handle cts_fract and cts_accum.
2905         * c-common.c (fixed-value.h): New include.
2906         (constant_expression_warning): Handle FIXED_CST.
2907         (overflow_warning): Likewise.
2908         (warnings_for_convert_and_check): Likewise.
2909         (c_common_fixed_point_type_for_size): New.
2910         (c_common_type_for_mode): Handle fixed-point modes to
2911         return various saturating/non-saturating, signed/unsigned types.
2912         (c_common_signed_or_unsigned_type): Support fixed-point types.
2913         (shorten_compare): Check fixed-point zero.
2914         Handle FIXED_POINT_TYPE.
2915         (c_common_truthvalue_conversion): Handle FIXED_CST.
2916         Handle FIXED_POINT_TYPE.
2917         (c_common_nodes_and_builtins): Record builtin types for fixed-point
2918         types.
2919         (handle_mode_attribute): Handle fixed-point modes.  Need to check
2920         if the signness of base type and fixed-point modes are consistent.
2921         (handle_vector_size_attribute): Handle fixed-point modes.
2922         (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
2923         (warn_for_div_by_zero): Check fixed-point zero.
2924         * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE.  Build
2925         a common fixed-point type based on fbit, ibit, sign, and saturation.
2926         (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
2927         NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
2928         PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
2929         (convert_for_assignment): Support FIXED_POINT_TYPE.
2930         (digest_init): Handle FIXED_POINT_TYPE.
2931         (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
2932         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
2933         TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
2934         GE_EXPR, LT_EXPR, GT_EXPR.
2935         * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
2936         (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
2937         * target.h (gcc_target): Add fixed_point_supported_p.
2938         * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
2939         MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
2940         (default_fixed_point_supported_p): Define.
2941         * targhooks.h (default_fixed_point_supported_p): Declare.
2942         * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
2943         * doc/install.texi (Configuration): Add --enable-fixed-point.
2944         * configure.ac (--enable-fixed-point): New to enable fixed-point
2945         arithmetic extension to C.  For mips targets, we enable it by default.
2946         * configure, config.in: Regenerate.
2947
2948 2007-08-20  Pawel Sikora  <pluto@pld-linux.org>
2949
2950         * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
2951
2952 2007-08-20  David Edelsohn  <edelsohn@gnu.org>
2953
2954         * dwarf2out.c (text_section_used): Move declaration outside ifdef
2955         DWARF2_DEBUGGING_INFO.
2956         (cold_text_section_used): Same.
2957         (cold_text_section): Same.
2958
2959 2007-08-20  Richard Guenther  <rguenther@suse.de>
2960
2961         * c-typeck.c (convert_for_assignment): Use the type of
2962         the member for the initialization.
2963
2964 2007-08-20  Richard Guenther  <rguenther@suse.de>
2965
2966         * c-objc-common.c (c_disregard_inline_limits): Remove.
2967         * c-objc-common.h (c_disregard_inline_limits): Likewise.
2968         * cgraphunit.c (cgraph_process_new_functions): Call
2969         disregard_inline_limits_p.
2970         (cgraph_preserve_function_body_p): Likewise.
2971         * ipa-inline.c (compute_inline_parameters): Likewise.
2972         * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
2973         Remove.
2974         (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
2975         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
2976         disregard_inline_limits langhook.
2977         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
2978         Remove.
2979         * langhooks.h (lang_hooks_for_tree_inlining): Remove
2980         disregard_inline_limits langhook.
2981         * tree-inline.c (disregard_inline_limits_p): New function.
2982         * tree-inline.h (disregard_inline_limits_p): Declare.
2983
2984 2007-08-20  Richard Guenther  <rguenther@suse.de>
2985
2986         * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
2987         (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
2988         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
2989         auto_var_in_fn_p langhook.
2990         * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
2991         move ...
2992         * tree.c (auto_var_in_fn_p): ... here.
2993         (find_var_from_fn): Call auto_var_in_fn_p directly.
2994         * langhooks.h (lang_hooks_for_tree_inlining): Remove
2995         auto_var_in_fn_p langhook.
2996         * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
2997         (copy_body_r): Likewise.
2998         (self_inlining_addr_expr): Likewise.
2999         * tree.h (auto_var_in_fn_p): Declare.
3000
3001 2007-08-20  Richard Guenther  <rguenther@suse.de>
3002
3003         * tree.c (WALK_SUBTREE): Call walk_tree_1.
3004         (walk_type_fields): Take lh parameter.
3005         (walk_tree): Rename to ...
3006         (walk_tree_1): ... this.  Do not call the walk_subtrees
3007         langhook but the now passed callback.  Pass lh on recursion.
3008         (walk_tree_without_duplicates): Rename to ...
3009         (walk_tree_without_duplicates_1): ... this.  Take lh parameter
3010         and call walk_tree_1.
3011         * tree.h (walk_tree_lh): New typedef.
3012         (walk_tree_1): Declare.
3013         (walk_tree_without_duplicates_1): Likewise.
3014         (walk_tree): New define to walk_tree_1 with NULL lh parameter.
3015         (walk_tree_without_duplicates): New define to
3016         walk_tree_without_duplicates_1 with NULL lh parameter.
3017         * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
3018         * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
3019         langhook.
3020         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
3021         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
3022         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
3023         initializer.
3024
3025 2007-08-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3026
3027         PR middle-end/30564
3028         * tree-inline.c (optimize_inline_calls): Move the cgraph checking
3029         code in front of the compacting of basic blocks.
3030         Move the folding of statements inbetween the cgraph checking
3031         and compacting of basic blocks.
3032
3033 2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3034            Serge Belyshev  <belyshev@depni.sinp.msu.ru>
3035
3036         PR target/32522
3037         * config/alpha/alpha.c (va_list_skip_additions): Check for
3038         POINTER_PLUS_EXPR in addition to PLUS_EXPR.
3039         (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
3040         PLUS_EXPR when checking ap.__base.
3041         (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
3042         when doing addition on pointer types.  Use size_int instead of
3043         build_int_cst.
3044         (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
3045         ptr_type in the second operand.
3046
3047 2007-08-19  Andrew Pinski  <pinskia@gmail.com>
3048
3049         PR target/33115
3050         * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
3051
3052 2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3053
3054         PR middle-end/32940
3055         * cfgexpand.c  (expand_one_register_var): Mark pointer
3056         DECL_ARTIFICIAL as REG_POINTER also.
3057         * stmt.c (expand_decl): Likewise.
3058
3059 2007-08-19  Daniel Berlin  <dberlin@dberlin.org>
3060
3061         Fix PR 32772
3062         Fix PR 32716
3063         Fix PR 32328
3064         Fix PR 32303
3065
3066         * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
3067         * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
3068         on_worklist argument and avoid adding things to worklist multiple
3069         times.
3070         (add_to_worklist): Ditto.
3071         (mark_aliases_call_clobbered): Mark entire structure clobbered if
3072         single SFT is clobbered.
3073         (set_initial_properties): Ditto.
3074         (compute_call_clobbered): Update for changes to function
3075         arguments.
3076         (create_overlap_variables_for): Always create SFT for offset 0.
3077         (create_structure_vars): Handle PHI's, since we are in SSA form at
3078         this point.
3079         * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
3080         * tree-ssa-operands.c (access_can_touch_variable): Don't handle
3081         TARGET_MEM_REF.
3082         (add_vars_for_offset): Figure out aliases from access + points-to.
3083         (add_virtual_operand): Use add_vars-for_offset.
3084         (get_tmr_operands): Update for NMT changes, rewrite to be correct.
3085         (add_call_clobber_ops): Remove makes_clobbering_call set.
3086         (get_expr_operands): Always pass through the INDIRECT_REF
3087         reference.
3088         * tree-ssa-structalias.c (struct constraint_graph): Remove
3089         variables member.
3090         Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
3091         address_taken, pt_used, number_incoming.
3092         (FIRST_ADDR_NODE): Removed.
3093         (merge_graph_nodes): Remove broken code for the moment.
3094         (init_graph): New function.
3095         (build_pred_graph): Remove code to init_graph.
3096         Add location equivalence support.
3097         (struct scc_info): Rename roots to deleted.
3098         (scc_visit): Ditto.
3099         (init_scc_info): Ditto
3100         (init_topo_info): Use graph->size.
3101         (compute_topo_order): Ditto.
3102         (do_da_constraint): Removed.
3103         (do_sd_constraint): Remove calls to find().
3104         set_union_with_increment should always get 0 as last arg here.
3105         (do_complex_constraint): Replace do_da_constraint with assert.
3106         Stop calling find.
3107         (struct equiv_class_label): New.
3108         (pointer_equiv_class_table): Ditto.
3109         (location_equiv_class_table): Ditto.
3110         (equiv_class_label_hash): Ditto.
3111         (equiv_class_label_eq): Ditto
3112         (equiv_class_lookup): Ditto.
3113         (equiv_class_ladd): Ditto.
3114         (pointer_equiv_class): Ditto.
3115         (location_equiv_class): Ditto.
3116         (condense_visit): Rename and rewrite from label_visit to do only
3117         SCC related stuff for HU.
3118         (label_visit): Do HU work for HU.
3119         (perform_var_substitution): Update to do HU and location
3120         equivalence.
3121         (free_var_substitution_info): Update to free HU and location
3122         equivalence structures.  */
3123         (find_equivalent_node): Update for pointer but not location
3124         equivalence.
3125         (unite_pointer_equivalences): New function.
3126         (move_complex_constraints): Rewrite to only do moving.
3127         (rewrite_constraints): Split out of move_complex_constraints.
3128         (solve_graph): Use graph->size.
3129         (process_constraint_1): Add from_call argument, use it.
3130         Split *a = &b into two constraints.
3131         (process_constraint): Use new process_constraint_1.
3132         (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
3133         (get_constraint_for): Handle non-pointer integers properly.
3134         Remove code that used to handle structures.
3135         (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
3136         with unknown addends.
3137         (handle_rhs_call): New function.
3138         (find_func_aliases): Use handle_rhs_call.
3139         (set_uids_in_ptset): Add an assert.
3140         (set_used_smts): Fix bug in not considering unified vars.
3141         (compute_tbaa_pruning): Stop initing useless iteration_obstack.
3142         (compute_points_to_sets): Update for other function changes.
3143         (delete_points_to_sets): Ditto.
3144         (ipa_pta_execute): Ditto.
3145         (pass_ipa_pta): We need to update SSA after ipa_pta.
3146         
3147 2007-08-19  Jan Hubicka  <jh@suse.cz>
3148
3149         * i386.md: Replace "rim" and "mri" constraints by "g".
3150
3151 2007-08-19  Joseph Myers  <joseph@codesourcery.com>
3152
3153         * dwarf2out.c (text_section_used, cold_text_section_used,
3154         cold_text_section, dwarf2out_note_section_used): New.
3155         (dwarf2out_init): Initialize cold_text_section.
3156         (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
3157         dwarf2out_note_section_used.
3158         (size_of_aranges): Only count entry for text section if it was
3159         used.  Count entry for cold text section if it was used.
3160         (output_aranges): Only output entries for text section and cold
3161         text section if they were used.
3162
3163 2007-08-19  Andrew Pinski  <pinskia@gmail.com>
3164
3165         * tree-pretty-print.c (debug_generic_expr): Add a comment about
3166         the function.
3167         (debug_generic_stmt): Likewise.
3168         (debug_tree_chain): Likewise.
3169
3170 2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
3171
3172         * tree-data-refs.c (split_constant_offset): Expose.
3173         * tree-data-refs.h (split_constant_offset): Add declaration.
3174
3175         * tree-vectorizer.h (dr_alignment_support): Renamed
3176         dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
3177         Added a new value dr_explicit_realign.
3178         (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
3179         dr_offset, dr_step, and dr_aligned_to, along with new access
3180         functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
3181         STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
3182         STMT_VINFO_DR_ALIGNED_TO.
3183
3184         * tree-vectorizer.c (vect_supportable_dr_alignment): Add
3185         documentation.
3186         In case of outer-loop vectorization with non-fixed misalignment - use
3187         the dr_explicit_realign scheme instead of the optimized realignment
3188         scheme.
3189         (new_stmt_vec_info): Initialize new fields.
3190
3191         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
3192         'nested_in_vect_loop' case. Change verbosity level.
3193         (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
3194         Don't fail on zero step in the outer-loop for loads.
3195         (vect_analyze_data_refs): Call split_constant_offset to calculate
3196         base, offset and init relative to the outer-loop.
3197
3198         * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
3199         BSI function argument with a new function argument - at_loop.
3200         Simplify the condition that determines STEP. Takes additional argument
3201         INV_P. Support outer-loop vectorization (handle the
3202         nested_in_vect_loop case), including zero step in the outer-loop. Call
3203         vect_create_addr_base_for_vector_ref with additional argument.
3204         (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
3205         Updated function documentation. Handle the 'nested_in_vect_loop' case.
3206         Fixed and simplified calculation of step.
3207         (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
3208         of bsi, and with additional argument. Call bump_vector_ptr with
3209         additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
3210         (vect_setup_realignment): Takes additional arguments INIT_ADDR and
3211         DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
3212         when the realignment setup needs to take place inside the loop.
3213         Support the dr_explicit_realign scheme. Allow generating the optimized
3214         realignment scheme for outer-loop vectorization. Added documentation.
3215         (vectorizable_load): Support the dr_explicit_realign scheme. Handle
3216         the 'nested_in_vect_loop' case, including loads that are invariant in
3217         the outer-loop and the realignment schemes. Handle the case when the
3218         realignment setup needs to take place inside the loop. Call
3219         vect_setup_realignment with additional arguments.  Call
3220         vect_create_data_ref_ptr with additional argument and with loop instead
3221         of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
3222         (vect_gen_niters_for_prolog_loop): Call
3223         vect_create_addr_base_for_vector_ref with additional arguments.
3224         (vect_create_cond_for_align_checks): Likewise.
3225         (bump_vector_ptr): Updated to support the new dr_explicit_realign
3226         scheme: takes additional argument bump; argument ptr_incr is now
3227         optional; updated documentation.
3228         (vect_init_vector): Takes additional argument (bsi). Use it, if
3229         available, to insert the vector initialization.
3230         (get_initial_def_for_induction): Pass additional argument in call to
3231         vect_init_vector.
3232         (vect_get_vec_def_for_operand): Likewise.
3233         (vect_setup_realignment): Likewise.
3234         (vectorizable_load): Likewise.
3235
3236 2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
3237
3238         * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
3239         as argument instead of struct loop.
3240         (nested_in_vect_loop_p): New function.
3241         (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
3242         vect_used_in_outer.
3243         (is_loop_header_bb_p): New. Used to differentiate loop-header phis
3244         from other phis in the loop.
3245         (destroy_loop_vec_info): Add additional argument to declaration.
3246
3247         * tree-vectorizer.c (supportable_widening_operation): Also check if
3248         nested_in_vect_loop_p (don't allow changing the order in this case).
3249         (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
3250         of struct loop. Call nested_in_vect_loop_p and don't require
3251         flag_unsafe_math_optimizations if it returns true.
3252         (new_stmt_vec_info): When setting def_type for phis differentiate 
3253         loop-header phis from other phis.
3254         (bb_in_loop_p): New function.
3255         (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
3256         just update their loop_vinfo.  Order of BB traversal now matters -
3257         call dfs_enumerate_from with bb_in_loop_p.
3258         (destroy_loop_vec_info): Takes additional argument to control whether
3259         stmt_vinfo of the loop stmts should be destroyed as well.
3260         (vect_is_simple_reduction): Allow the "non-reduction" use of a
3261         reduction stmt to be defines by a non loop-header phi.
3262         (vectorize_loops): Call destroy_loop_vec_info with additional argument.
3263
3264         * tree-vect-transform.c (vectorizable_reduction): Call
3265         nested_in_vect_loop_p. Check for multitypes in the inner-loop.
3266         (vectorizable_call): Likewise.
3267         (vectorizable_conversion): Likewise.
3268         (vectorizable_operation): Likewise.
3269         (vectorizable_type_promotion): Likewise.
3270         (vectorizable_type_demotion): Likewise.
3271         (vectorizable_store): Likewise.
3272         (vectorizable_live_operation): Likewise.
3273         (vectorizable_reduction): Likewise. Also pass loop_info to
3274         vect_is_simple_reduction instead of loop.
3275         (vect_init_vector): Call nested_in_vect_loop_p.
3276         (get_initial_def_for_reduction): Likewise.
3277         (vect_create_epilog_for_reduction): Likewise.
3278         (vect_init_vector): Check which loop to work with, in case there's an
3279         inner-loop.
3280         (get_initial_def_for_inducion): Extend to handle outer-loop
3281         vectorization. Fix indentation.
3282         (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
3283         In the case vect_induction_def get the vector def from the induction
3284         phi node, instead of calling get_initial_def_for_inducion.
3285         (get_initial_def_for_reduction): Extend to handle outer-loop 
3286         vectorization.
3287         (vect_create_epilog_for_reduction): Extend to handle outer-loop
3288         vectorization.
3289         (vect_transform_loop): Change assert to just skip this case.  Add a
3290         dump printout.
3291         (vect_finish_stmt_generation): Add a couple asserts.
3292
3293         (vect_estimate_min_profitable_iters): Multiply
3294         cost of inner-loop stmts (in outer-loop vectorization) by estimated
3295         inner-loop bound.
3296         (vect_model_reduction_cost): Don't add reduction epilogue cost in case
3297         this is an inner-loop reduction in outer-loop vectorization.
3298
3299         * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
3300         Same code as what used to be vect_analyze_scalar_cycles, only with
3301         additional argument loop, and loop_info passed to
3302         vect_is_simple_reduction instead of loop.
3303         (vect_analyze_scalar_cycles): Code factored out into
3304         vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
3305         Updated documentation.
3306         (analyze_operations): Check for inner-loop loop-closed exit-phis during
3307         outer-loop vectorization that are live or not used in the outerloop,
3308         cause this requires special handling.
3309         (vect_enhance_data_refs_alignment): Don't consider versioning for
3310         nested-loops.
3311         (vect_analyze_data_refs): Check that there are no datarefs in the
3312         inner-loop.
3313         (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
3314         and vect_used_in_outer_by_reduction cases.
3315         (process_use): Also consider the case of outer-loop stmt defining an
3316         inner-loop stmt and vice versa.
3317         (vect_analyze_loop_1): New function.
3318         (vect_analyze_loop_form): Extend, to allow a restricted form of nested
3319         loops.  Call vect_analyze_loop_1.
3320         (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
3321         been vectorized.  Call destroy_loop_vec_info with additional argument.
3322
3323         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
3324         in the inner-loop when doing outer-loop vectorization. Add
3325         documentation and printout.
3326         (vect_recog_dot_prod_pattern): Likewise. Also add check for
3327         GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
3328
3329 2007-08-18  Andrew Pinski  <pinskia@gmail.com>
3330
3331         * tree-affine.h (print_aff): New prototype.
3332         (debug_aff): Likewise.
3333         * tree-affine.c (print_aff): New function.
3334         (debug_aff): Likewise.
3335
3336 2007-08-18  Paul Brook  <paul@codesourcery.com>
3337             Joseph Myers  <joseph@codesourcery.com>
3338
3339         * common.opt (-fdebug-prefix-map=): New option.
3340         * opts.c: Include debug.h.
3341         (common_handle_option): Handle -fdebug-prefix-map.
3342         * final.c: Include ggc.h.
3343         (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
3344         remap_debug_filename): New.
3345         * Makefile.in (final.o, opts.o): Update dependencies.
3346         * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
3347         * configure.ac: Check for assembler --debug-prefix-map support.
3348         * configure, config.in: Regenerate.
3349         * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
3350         (ASM_DEBUG_SPEC): Include ASM_MAP.
3351         * doc/install.texi (--with-debug-prefix-map): Document.
3352         * doc/invoke.texi (-fdebug-prefix-map): Document.
3353         * dbxout.c (dbxout_init, dbxout_start_source_file,
3354         dbxout_source_file): Call remap_debug_filename.
3355         * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
3356         dwarf2out_start_source_file, dwarf2out_finish): Call
3357         remap_debug_filename.
3358         (file_table_relative_p): Do not check d->emitted_number.
3359         * toplev.c (output_file_directive): Call remap_debug_filename.
3360         * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
3361         * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
3362
3363 2007-08-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3364
3365         * loop-invariant.c (find_invariants_to_move): Add missing macro
3366         argument.
3367
3368 2007-08-17  Tom Tromey  <tromey@redhat.com>
3369
3370         * tree.h (struct tree_label_decl): Removed old "java" fields.
3371
3372 2007-08-17  Richard Sandiford  <richard@codesourcery.com>
3373             Nigel Stephens  <nigel@mips.com>
3374
3375         * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
3376         Treat -mno-data-in-code and -mcode-xonly as aliases for
3377         -mcode-readable=no and -mcode-readable=pcrel respectively.
3378         * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
3379         (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
3380         (MULTILIB_DIRNAMES): Update accordingly.
3381
3382 2007-08-17  H.J. Lu  <hongjiu.lu@intel.com>
3383
3384         * Makefile.in (version.o): Depend on $(REVISION) only if
3385         REVISION_s is defined.
3386
3387 2007-08-17  Sa Liu  <saliu@de.ibm.com>
3388             Ulrich Weigand  <uweigand@de.ibm.com>
3389
3390         PR middle-end/32970
3391         * tree.c (reconstruct_complex_type): For a pointer to a vector,
3392         use build_qualified_type to retain qualifiers of the base type.
3393
3394 2007-08-17  Chen Liqin  <liqin@sunnorth.com.cn>
3395
3396         * config/score/score.md : Update pattern tablejump.
3397         * config/score/score.c : Update score_initialize_trampoline 
3398         function.
3399         * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
3400         (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
3401         * doc/contrib.texi: Add my entry.
3402
3403 2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>
3404
3405         * Makefile.in (REVISION): New.
3406         (REVISION_c): New.
3407         (REVISION_s): New.
3408         (version.o): Also depend on $(REVISION). Add
3409         -DREVISION=$(REVISION_s).
3410
3411         * version.c (version_string): Add REVISION.
3412
3413 2007-08-16  Seongbae Park <seongbae.park@gmail.com>
3414
3415         * tree-eh.c (lower_try_finally_onedest): Reset the locus
3416         of GOTO that's relocated to a different block.
3417
3418 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3419
3420         * c-common.c (const_strip_array_types): New.
3421         * c-common.h (lang_missing_noreturn_ok_p): Delete.
3422         (const_strip_array_types): New.
3423         * c-objc-common.c (c_disregard_inline_limits,
3424         c_warn_unused_global_decl): Constify.
3425         * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
3426         c_vla_type_p, c_incomplete_type_error): Likewise.
3427         * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
3428         * hooks.c (hook_bool_const_tree_false): New.
3429         * hooks.h (hook_bool_const_tree_false): Likewise.
3430         * langhooks-def.h (lhd_warn_unused_global_decl,
3431         lhd_incomplete_type_error, lhd_expr_size,
3432         lhd_tree_inlining_disregard_inline_limits,
3433         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
3434         LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
3435         * langhooks.c (lhd_warn_unused_global_decl,
3436         lhd_incomplete_type_error,
3437         lhd_tree_inlining_disregard_inline_limits,
3438         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
3439         lhd_expr_size): Likewise.
3440         * langhooks.h (lang_hooks_for_tree_inlining,
3441         lang_hooks_for_tree_dump, lang_hooks_for_types,
3442         lang_hooks_for_decls, lang_hooks): Likewise.
3443         * pointer-set.c (pointer_set_t, pointer_set_create,
3444         pointer_set_contains, insert_aux, pointer_set_insert,
3445         pointer_set_traverse, pointer_map_t, pointer_map_create,
3446         pointer_map_contains, pointer_map_insert, pointer_map_traverse):
3447         Likewise.
3448         * pointer-set.h (pointer_set_contains, pointer_set_insert,
3449         pointer_set_traverse, pointer_map_contains, pointer_map_insert,
3450         pointer_map_traverse): Likewise.
3451         * predict.c (assert_is_empty): Likewise.
3452         * tree-affine.c (free_name_expansion): Likewise.
3453         * tree-cfg.c (edge_to_cases_cleanup): Likewise.
3454         * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
3455         * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
3456
3457 2007-08-16  Victor Kaplansky <victork@il.ibm.com>
3458
3459         * tree-vectorizer.c (new_loop_vec_info): Initialize new 
3460         field.
3461         (destroy_loop_vec_info): Add call to VEC_free.
3462         * tree-vectorizer.h (may_alias_ddrs): Define.
3463         (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
3464         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
3465         Change reporting to dump.
3466         (vect_is_duplicate_ddr): New.
3467         (vect_mark_for_runtime_alias_test): New.
3468         (vect_analyze_data_ref_dependences) Add call to
3469         vect_mark_for_runtime_alias_test.
3470         (vect_enhance_data_refs_alignment): Define local variable
3471         vect_versioning_for_alias_required, don't perform
3472         peeling for alignment if versioning for alias is
3473         required.
3474         (vect_enhance_data_refs_alignment): Use
3475         PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
3476         PARAM_VECT_MAX_VERSION_CHECKS.
3477         * tree-vect-transform.c
3478         (vect_create_cond_for_alias_checks): New.
3479         (vect_transform_loop): Add call to
3480         vect_create_cond_for_alias_checks.
3481         (vect_vfa_segment_size): New.
3482         * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
3483         Rename.
3484         (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
3485         * gcc/doc/invoke.texi
3486         (vect-max-version-for-alignment-checks): Document.
3487         (vect-max-version-for-alias-checks): Document.
3488         (vect-max-version-checks): Remove.
3489      
3490 2007-08-16  Uros Bizjak  <ubizjak@gmail.com>
3491
3492         * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
3493         the same line as the instruction for all asm dialects.
3494         (*rep_movsi): Ditto.
3495         (*rep_movsi_rex64): Ditto.
3496         (*rep_movqi): Ditto.
3497         (*rep_movqi_rex64): Ditto.
3498         (*rep_stosdi_rex64): Ditto.
3499         (*rep_stossi): Ditto.
3500         (*rep_stossi_rex64): Ditto.
3501         (*rep_stosqi): Ditto.
3502         (*rep_stosqi_rex64): Ditto.
3503         (*cmpstrnqi_nz_1): Ditto.
3504         (*cmpstrnqi_nz_rex_1): Ditto.
3505         (*cmpstrnqi_1): Ditto.
3506         (*cmpstrnqi_rex_1): Ditto.
3507         (*strlenqi_1): Ditto.
3508         (*strlenqi_rex_1): Ditto.
3509         * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
3510         prefix on the same line as the instruction for all asm dialects.
3511         (sync_double_compare_and_swap<mode>): Ditto.
3512         (*sync_double_compare_and_swapdi_pic): Ditto.
3513         (*sync_compare_and_swap_cc<mode>): Ditto.
3514         (sync_double_compare_and_swap_cc<mode>): Ditto.
3515         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
3516         (sync_old_add<mode>): Ditto.
3517         (sync_add<mode>): Ditto.
3518         (sync_sub<mode>): Ditto.
3519         (sync_ior<mode>): Ditto.
3520         (sync_and<mode>): Ditto.
3521         (sync_xor<mode>): Ditto.
3522
3523 2007-08-16  Richard Sandiford  <richard@codesourcery.com>
3524
3525         PR middle-end/32897
3526         * reload.c (find_reloads): Check that the memory returned by
3527         find_reloads_toplev was not the result of forcing a constant
3528         to memory.
3529         (find_reloads_toplev): Always use simplify_gen_subreg to get
3530         the subreg of a constant.  If the result is also a constant,
3531         but not a legitimate one, force it into the constant pool
3532         and reload its address.
3533
3534 2007-08-15  David Edelsohn  <edelsohn@gnu.org>
3535
3536         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
3537         POPCOUNT.
3538
3539 2007-08-15  Daniel Jacobowitz  <dan@codesourcery.com>
3540
3541         * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
3542         directive for the current vector ABI.
3543
3544 2007-08-15  Steve Ellcey  <sje@cup.hp.com>
3545
3546         PR target/32963
3547         * caller-save.c (reg_save_code): Set invalide status on restore code.
3548         
3549 2007-08-15  Diego Novillo  <dnovillo@google.com>
3550
3551         * tree-ssa-alias.c (compute_memory_partitions): Use
3552         alias_bitmap_obstack to allocate bitmaps.
3553         (reset_alias_info): Factor out of init_alias_info.
3554         Mark all name tags not associated to an SSA name for renaming.
3555         (init_alias_info): Call it.
3556         (create_name_tags): Tidy.  Add comments.
3557         (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
3558
3559 2007-08-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3560
3561         * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
3562         scheduler dependencies.
3563
3564 2007-08-15  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3565
3566         * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
3567         "register_operand".
3568         (*iorsi_1_zext): Likewise.
3569         (*iorsi_1_zext_imm): Likewise.
3570         * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
3571         with "rm"/"xm" constraint.
3572         (sse2_vmsqrtv2df2): Likewise.
3573
3574 2007-08-15  Jakub Jelinek  <jakub@redhat.com>
3575
3576         PR middle-end/33074
3577         * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
3578         REG_LIBCALL note.
3579
3580 2007-08-14  Daniel Berlin  <dberlin@dberlin.org>
3581
3582         * tree-pass.h (PROP_pta): Removed.
3583         (TODO_rebuild_alias): New.
3584         (pass_may_alias): Removed.
3585         * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
3586         aliasing if we changed something.
3587         * tree-ssa-alias.c (compute_may_aliases): Make non-static.  Update
3588         SSA internally.
3589         (pass_may_alias): Removed.
3590         (create_structure_vars): Return TODO_rebuild_alias.
3591         * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
3592         * tree-sra.c (tree_sra): Only rebuild aliasing if something
3593         changed.
3594         (tree_sra_early): We never affect aliasing right now.
3595         * tree-flow.h (compute_may_aliases): New prototype.
3596         * passes.c: Remove pass_may_alias from the passes.
3597         (execute_function_todo): Support TODO_rebuild_alias.    
3598
3599 2007-08-14  Kai Tietz  <kai.tietz@onevision.com>
3600
3601         * i386.c: (legitimize_address): Move dllimported variable check
3602         infront of legitimizing pic address of CONST symbols.
3603
3604 2007-08-14  Steve Ellcey  <sje@cup.hp.com>
3605
3606         PR tree-optimization/32941
3607         * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
3608         (goto_queue_cmp): Remove.
3609         (find_goto_replacement): Change search method.
3610         (maybe_record_in_goto_queue): Add assert.
3611         (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
3612         * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
3613
3614 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3615
3616         * alias.c (component_uses_parent_alias_set): Constify.
3617         * alias.h (component_uses_parent_alias_set): Likewise.
3618         * cfgrtl.c (print_rtl_with_bb): Likewise.
3619         * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
3620         mpz_get_double_int): Likewise.
3621         * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
3622         mpz_get_double_int): Likewise.
3623         * expr.c (is_aligning_offset, undefined_operand_subword_p,
3624         mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
3625         Likewise.
3626         * expr.h (safe_from_p): Likewise.
3627         * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
3628         Likewise.
3629         * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
3630         zero_sized_type, goa_lhs_expr_p): Likewise.
3631         * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
3632         * rtl.h (print_rtl_with_bb): Likewise.
3633         * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
3634         * tree-cfg.c (const_first_stmt, const_last_stmt): New.
3635         * tree-flow-inline.h (bb_stmt_list): Constify.
3636         (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
3637         cbsi_stmt): New.
3638         * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
3639         const_first_stmt, const_last_stmt): New.
3640         (block_may_fallthru, empty_block_p): Constify.
3641         * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
3642         EXPR_ONLY_BODY): New.
3643         (expr_first, expr_last, expr_only): Use macro for body.
3644         (const_expr_first, const_expr_last, const_expr_only): New.
3645         * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
3646         ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
3647         ctsi_prev, ctsi_stmt): New.
3648         * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
3649         * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
3650         * tree-ssa-loop-niter.c (loop_only_exit_p,
3651         derive_constant_upper_bound): Likewise.
3652         * tree-ssa-phiopt.c (empty_block_p): Likewise.
3653         * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
3654         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
3655         * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
3656         * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
3657         * tree.c (get_type_static_bounds): Likewise.
3658         * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
3659         (get_type_static_bounds): Constify.
3660
3661 2007-08-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3662
3663         PR target/30315
3664         * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
3665         * config/i386/i386.md (plusminus)(addsub)(SWI): New.
3666         (*<addsub><mode>3_cc_overflow): New.
3667         (*add<mode>3_cconly_overflow): New.
3668         (*sub<mode>3_cconly_overflow): New.
3669         (*<addsub>si3_zext_cc_overflow): New.
3670         * config/i386/predicates.md (fcmov_comparison_operator): Accept
3671         CCCmode for LTU, GTU, LEU and GEU.
3672         (ix86_comparison_operator): Likewise.
3673         (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
3674         * config/i386/i386.c (put_condition_code): Support CCCmode.
3675         (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
3676         or MINUS expressions.
3677
3678 2007-08-14  Andrew Pinski  <pinskia@gmail.com>
3679
3680         PR c/30428
3681         * c-typeck.c (build_binary_op): Disallow vector float types with
3682         BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
3683
3684 2007-08-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
3685
3686         * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
3687         (DEP_KIND): Rename to DEP_TYPE.  Update all uses.
3688         (dep_def): New typedef.
3689         (init_dep_1, sd_debug_dep): Declare functions.
3690         (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
3691         (debug_dep_links): Remove.
3692         (struct _deps_list): New field 'n_links'.
3693         (DEPS_LIST_N_LINKS): New macro.
3694         (FOR_EACH_DEP_LINK): Remove.
3695         (create_deps_list, free_deps_list, delete_deps_list): Remove
3696         declaration.
3697         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
3698         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
3699         (copy_deps_list_change_con, move_dep_link): Ditto.
3700         (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
3701         and 'spec_back_deps'.  New field 'resolved_forw_deps'.  Remove field
3702         'dep_count'.
3703         (INSN_BACK_DEPS): Remove.
3704         (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
3705         New macros.
3706         (INSN_DEP_COUNT): Remove.
3707         (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP.  Fix comments.
3708         (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
3709         Declare global variables.
3710         (deps_pools_are_empty_p, sched_free_deps): Declare functions.
3711         (add_forw_dep, compute_forward_dependences): Remove declarations.
3712         (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
3713         (add_back_forw_dep, delete_back_forw_dep): Ditto.
3714         (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
3715         functions.
3716         (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
3717         New constants.
3718         (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
3719         (sd_list_types_def): New typedef.
3720         (sd_next_list): Declare function.
3721         (struct _sd_iterator): New type.
3722         (sd_iterator_def): New typedef.
3723         (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
3724         functions.
3725         (FOR_EACH_DEP): New cycle wrapper.
3726         (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
3727         Declare functions.
3728         (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
3729         (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
3730         Ditto.
3731
3732         * sched-deps.c (init_dep_1): Make global.
3733         (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
3734         constants.
3735         (dump_dep): New static function.
3736         (dump_dep_flags): New static variable.
3737         (sd_debug_dep): New function.
3738         (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
3739         the list.
3740         (move_dep_link): Use remove_from_deps_list (), instead of
3741         detach_dep_link ().
3742         (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
3743         (dep_link_is_detached_p): New static function.
3744         (deps_obstack, dl_obstack, dn_obstack): Remove.  Use dn_pool, dl_pool
3745         instead.
3746         (dn_pool, dl_pool): New alloc_pools.
3747         (dn_pool_diff, dl_pool_diff): New static variables.
3748         (create_dep_node, delete_dep_node): New static function.
3749         (create_deps_list): Make it static.  Use alloc_pool 'dl_pool'.
3750         (deps_list_empty_p): Make it static.  Use 'n_links' field.
3751         (deps_pools_are_empty_p): New static function.
3752         (alloc_deps_list, delete_deps_list): Remove.
3753         (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
3754         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
3755         (copy_deps_list_change_con): Remove.  Use sd_copy_back_deps () instead.
3756         (forward_dependency_cache): Remove.
3757         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
3758         'back' from the names.  Change signature to use dep_t instead of
3759         equivalent quad.
3760         (add_back_dep): Ditto.  Make global.
3761         (check_dep_status): Rename to check_dep ().
3762         (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
3763         New functions.
3764         (sd_finish_insn): Ditto.
3765         (sd_find_dep_between_no_cache): New static function.
3766         (sd_find_dep_between): New function.
3767         (ask_dependency_caches, set_dependency_caches): New static functions.
3768         (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
3769         (add_or_update_dep_1): Separate pieces of functionality into
3770         ask_dependency_caches (), update_dependency_caches (),
3771         change_spec_dep_to_hard (), update_dep ().
3772         (get_back_and_forw_lists): New static function.
3773         (sd_add_dep): Separate setting of dependency caches into
3774         set_dependency_caches ().
3775         (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
3776         New functions.
3777         (sd_delete_dep): Ditto.
3778         (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
3779         (dump_lists): New static function.
3780         (sd_debug_lists): New debug function.
3781         (delete_all_dependences, fixup_sched_groups): Update to use
3782         sd_* infrastructure.
3783         (sched_analyze_2): Create data-speculative dependency only if
3784         data-speculation is enabled.
3785         (sched_analyze_insn): If insn cannot be speculative, make all its
3786         dependencies non-speculative.
3787         (sched_analyze): Use sd_init_insn ().
3788         (add_forw_dep, compute_forward_dependencies): Remove.
3789         (delete_dep_nodes_in_back_deps): New static function.
3790         (sched_free_deps): New function.
3791         (init_dependency_caches): Init alloc_pools.
3792         (extend_depedency_caches): Update after removing of
3793         forward_dependency_cache.
3794         (free_dependency_caches): Ditto.  Free alloc_pools.
3795         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
3796         (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
3797         Ditto.
3798         (add_back_forw_dep, delete_back_forw_dep): Ditto.
3799         (add_dependence): Use init_dep ().
3800         (get_dep_weak_1): New static function.
3801         (get_dep_weak): Move logic to get_dep_weak_1 ().
3802         (dump_ds): New static function moved from haifa-sched.c:
3803         debug_spec_status ().
3804         (debug_ds): New debug function.
3805         (check_dep_status): Rename to check_dep ().  Update to check whole
3806         dependencies.
3807
3808         * haifa-sched.c (spec_info): Make global.
3809         (added_recovery_block_p): Rename to
3810         'haifa_recovery_block_was_added_during_current_schedule_block_p'.
3811         (haifa_recovery_block_was_added_during_scheduling_p): New variable.
3812         (dep_cost, priority, rank_for_schedule, schedule_insn): Update
3813         to use new interfaces.
3814         (ok_for_early_queue_removal): Ditto.
3815         (schedule_block): Initialize logical uids of insns emitted by the
3816         target.
3817         (sched_init): Initialize new variable.
3818         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
3819         interfaces.
3820         (extend_global): Initialize insn data.
3821         (init_h_i_d): Remove code that is now handled in sd_init_insn ().
3822         (process_insn_forw_deps_be_in_spec): Change signature.  Update to use
3823         new interfaces.
3824         (add_to_speculative_block): Update to use new interfaces.
3825         (create_recovery_block): Set new variables.
3826         (create_check_block_twin, fix_recovery_deps): Update to use new
3827         interfaces.
3828         (sched_insn_is_legitimate_for_speculation_p): New function.
3829         (speculate_insn): Move checking logic to
3830         sched_insn_is_legitimate_for_speculation_p ().
3831         (sched_remove_insn): Finalize sched-deps information of instruction.
3832         (clear_priorities, add_jump_dependencies): Update to use new
3833         interfaces.
3834         (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
3835         
3836         * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
3837         to use new interfaces.
3838         (is_conditionally_protected, is_pfree, is_prisky) Ditto.
3839         (new_ready): Try to use control speculation only if it is available.
3840         (add_branch_dependences): Update to use new interfaces.
3841         (compute_block_backward_dependences): Rename to
3842         compute_block_dependences ().  Call
3843         targetm.sched.dependencies_evaluation_hook ().
3844         (free_block_dependencies): New static function.
3845         (debug_dependencies): Update to use new interfaces.
3846         (schedule_region): Remove separate computation of forward dependencies.
3847         Move call of targetm.sched.dependencies_evaluation_hook () to
3848         compute_block_dependences ().  Free dependencies at the end of
3849         scheduling the region.
3850
3851         * sched-ebb.c (earliest_block_with_similiar_load): Update to use
3852         new interfaces.
3853         (add_deps_for_risky_insns): Ditto.
3854         (schedule_ebb): Remove separate computation of forward dependencies.
3855         Free dependencies at the end of scheduling the ebb.
3856
3857         * ddg.c (create_ddg_dependence): Update to use new interfaces.
3858         (build_intra_loop_deps): Ditto.  Remove separate computation of
3859         forward dependencies.  Free sched-deps dependencies.
3860
3861         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
3862         to use new interfaces.
3863         (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
3864
3865         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
3866         new interfaces.
3867         (is_costly_group): Ditto.
3868
3869 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3870
3871         * alias.c (rtx_equal_for_memref_p): Constify.
3872         * basic-block.h (const_edge, const_basic_block): New.
3873         (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
3874         single_pred_p, single_succ_edge, single_pred_edge, single_succ,
3875         single_pred, maybe_hot_bb_p, probably_cold_bb_p,
3876         probably_never_executed_bb_p, edge_probability_reliable_p,
3877         br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
3878         inside_basic_block_p, control_flow_insn_p, dominated_by_p):
3879         Likewise.
3880         * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
3881         * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
3882         Likewise.
3883         * cfganal.c (flow_active_insn_p, forwarder_block_p,
3884         flow_nodes_print, dfs_enumerate_from): Likewise.
3885         * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
3886         control_flow_insn_p, count_basic_blocks): Likewise.
3887         * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
3888         get_loop_body_with_size, loop_exit_edge_p): Likewise.
3889         * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
3890         average_num_loop_insns, loop_exit_edge_p,
3891         just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
3892         * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
3893         average_num_loop_insns, seq_cost): Likewise.
3894         * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
3895         * dominance.c (dominated_by_p): Likewise.
3896         * emit-rtl.c (validate_subreg): Likewise.
3897         * except.c (can_throw_internal, can_throw_external): Likewise.
3898         * except.h (can_throw_internal, can_throw_external): Likewise.
3899         * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
3900         oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
3901         compute_transp, load_killed_in_block_p, reg_killed_on_edge,
3902         simple_mem, store_ops_ok, load_kills_store, find_loads,
3903         store_killed_in_insn, store_killed_after, store_killed_before,
3904         gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
3905         Likewise.
3906         * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
3907         noce_mem_write_may_trap_or_fault_p): Likewise.
3908         * pointer-set.c (pointer_set_contains, pointer_map_contains):
3909         Likewise.
3910         * pointer-set.h (pointer_set_contains, pointer_map_contains):
3911         Likewise.
3912         * predict.c (can_predict_insn_p, maybe_hot_bb_p,
3913         probably_cold_bb_p, probably_never_executed_bb_p,
3914         edge_probability_reliable_p, br_prob_note_reliable_p,
3915         can_predict_insn_p): Likewise.
3916         * regclass.c (reg_set_to_hard_reg_set): Likewise.
3917     &