OSDN Git Service

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