OSDN Git Service

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