OSDN Git Service

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