OSDN Git Service

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