OSDN Git Service

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