OSDN Git Service

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