1 2007-09-06 Basile Starynkevitch <basile@starynkevitch.net>
3 * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for
6 2007-09-05 Ian Lance Taylor <iant@google.com>
8 * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
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.
17 2007-09-06 Jesper Nilsson <jesper.nilsson@axis.com>
19 * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
21 * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
22 * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
24 2007-09-06 Jie Zhang <jie.zhang@analog.com>
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.
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.
42 2007-09-06 Jan Hubicka <jh@suse.cz>
44 * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
47 2007-09-06 Jan Hubicka <jh@suse.cz>
49 * opts.c (common_handle_option): Enable inlining functions for
52 2007-09-06 Jakub Jelinek <jakub@redhat.com>
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):
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_*_*.
73 2007-09-06 Hans-Peter Nilsson <hp@axis.com>
75 * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
76 parts re-used for REG_FRAME_RELATED_EXPR.
78 2007-09-05 Janis Johnson <janis187@us.ibm.com>
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
87 * real.h (real_2expN): Ditto.
88 * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
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.
99 2007-09-05 Ian Lance Taylor <iant@google.com>
101 * init-regs.c (initialize_uninitialized_regs): Call
102 emit_insn_before rather than add_insn_before.
104 2007-09-05 Jakub Jelinek <jakub@redhat.com>
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.
126 2007-09-05 Adam Nemet <anemet@caviumnetworks.com>
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.
135 2007-09-05 Rask Ingemann Lambertsen <rask@sygehus.dk>
138 PR tree-optimization/13756
139 * doc/invoke.texi (Options That Control Optimization): Document
142 2007-09-05 Uros Bizjak <ubizjak@gmail.com>
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.
173 2007-09-05 Jie Zhang <jie.zhang@analog.com>
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.
179 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
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
186 (expand_case): New allocation pool case_node_pool. Initialize it,
187 pass to add_case_node and free it.
189 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
190 David Ung <davidu@mips.com>
191 Nigel Stephens <nigel@mips.com>
193 Add mips16/nomips16 function attributes and -mflip-mips16 option
194 for testing mixed-mode compilation.
196 * config/mips/mips.opt (mflip-mips16): New.
198 * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
199 (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
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
215 (mips_init_split_addresses): New, split out from override_options.
216 (mips_init_relocs): New, split out from override_options.
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.
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.
238 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
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.
249 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
251 Add target hook invoked when cfun changes.
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...
261 * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
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.
269 (push_cfun, pop_cfun): Use set_cfun.
270 (push_struct_function): New.
271 (allocate_struct_function): Call invoke_set_current_function_hook
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.
294 2007-09-05 Kenneth Zadeck <zadeck@naturalbridge.com>
296 * regrename.c (rerename_optimize): Use deferred rescanning and
297 insert explicit calls to rescan insns when changed.
299 2007-09-05 Jan Hubicka <jh@suse.cz>
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.
306 2007-09-05 Jan Hubicka <jh@suse.cz>
308 * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
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.
351 2007-09-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
375 2007-09-04 Steven Bosscher <steven@gcc.gnu.org>
378 * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
379 note, remove the associated REG_RETVAL note.
381 2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
389 2007-09-05 Ben Elliston <bje@au.ibm.com>
391 * varasm.c (initializer_constant_valid_p): Fix comment typo.
393 2007-09-05 Ben Elliston <bje@au.ibm.com>
395 * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
397 (__stdcx): Make asm volatile.
398 (__stwcx, __stdcx): Return only 0 or 1.
400 2007-09-05 Jan Hubicka <jh@suse.cz>
404 2007-09-04 Jan Hubicka <jh@suse.cz>
405 * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
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.
411 2007-09-05 Jakub Jelinek <jakub@redhat.com>
413 * config/rs6000/tramp.asm: Include config.h.
414 Check __PIC__ or __pic__ macro instead of SHARED.
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.
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.
430 2007-09-04 Laurynas Biveinis <laurynas.biveinis@gmail.com>
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.
439 2007-09-05 Ben Elliston <bje@au.ibm.com>
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.
446 2007-09-04 Jan Hubicka <jh@suse.cz>
448 * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
450 2007-09-04 Jan Hubicka <jh@suse.cz>
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
462 2007-09-04 Richard Guenther <rguenther@suse.de>
464 * tree-ssa-operands.c (add_virtual_operand): Only mark
465 stores as has_volatile_ops if alias information is not available.
467 2007-09-04 Andrew Haley <aph@redhat.com>
469 * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.
471 2007-09-04 Andrew Haley <aph@redhat.com>
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.
477 2007-09-04 Emmanuel Thome <Emmanuel.Thome@inria.fr>
480 * common.opt: Mention ABI version 2 in comment.
482 2007-09-04 Jan Hubicka <jh@suse.cz>
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
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.
516 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
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
522 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
524 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
527 2007-09-04 Revital Eres <eres@il.ibm.com>
528 Richard Guenther <rguenther@suse.de>
529 R. Clint Whaley <whaley@cs.utsa.edu>
531 * doc/invoke.texi (-fassociative-math, -freciprocal-math):
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):
557 * common.opt (-fassociative-math, -freciprocal-math): New flags.
559 2007-09-04 Paolo Carlini <pcarlini@suse.de>
562 * doc/install.texi (--enable-__cxa_atexit): Fix typo.
564 2007-09-04 Jan Hubicka <jh@suse.cz>
566 * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
568 2007-09-04 Jan Hubicka <jh@suse.cz>
570 * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
571 and corresponding MATCH_DUP.
573 2007-09-04 Uros Bizjak <ubizjak@gmail.com>
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.
579 2007-09-04 Ben Elliston <bje@au.ibm.com>
581 * c-opts.c: Include "tm_p.h".
582 * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
584 2007-09-04 Richard Guenther <rguenther@suse.de>
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
600 2007-09-03 Zack Weinberg <zack@codesourcery.com>
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
607 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
609 * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
610 (unprotoize.o): Remove SHLIB_MULTILIB.
612 2007-09-03 Eric Weddington <eweddington@cso.atmel.com>
614 * doc/extend.texi: Document progmem attribute for AVR.
616 2007-09-03 Anatoly Sokolov <aesok@post.ru>
619 * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
621 2007-09-03 Zack Weinberg <zack@codesourcery.com>
623 * optabs.c (expand_ffs): Initialize val and defined_at_zero
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
637 * config/arm/arm.md (ffssi2, ctzsi2): Delete.
639 2007-09-03 Zack Weinberg <zack@codesourcery.com>
641 * config.gcc: Delete stanza for arm-semi-aof and
642 armel-semi-aof targets.
643 * config/arm/arm-protos.h
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.
650 * config/arm/semiaof.h
651 * config/arm/t-semi: Delete file.
653 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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
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
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.
682 2007-09-03 Krister Walfridsson <cato@df.lth.se>
684 * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
686 2007-09-03 Richard Sandiford <richard@codesourcery.com>
689 * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
690 before forcing them into a register.
692 2007-09-03 Richard Sandiford <richard@codesourcery.com>
694 * config/mips/mips.md (fetchop_bit): Use define_code_iterator
695 rather than define_code_macro.
697 2007-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
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.
705 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
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.
711 2007-09-03 Revital Eres <eres@il.ibm.com>
713 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
716 2007-09-03 Vladimir Yanovsky <yanov@il.ibm.com>
717 Ayal Zaks <zaks@il.ibm.com>
718 Revital Eres <eres@il.ibm.com>
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.
730 2007-09-02 David Daney <ddaney@avtrex.com>
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.
750 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
751 Hans-Peter Nilsson <hp@axis.com>
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.
761 2007-09-01 Laurynas Biveinis <laurynas.biveinis@gmail.com>
763 * ggc-page.c (ggc_pch_read): Call validate_free_objects.
765 2007-09-02 Joseph Myers <joseph@codesourcery.com>
768 * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
771 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
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.
780 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
782 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
783 (override_options): Turn on -mstrict-align on non-ColdFire
785 * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
787 2007-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
816 2007-09-01 Richard Guenther <rguenther@suse.de>
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.
827 2007-09-01 Richard Guenther <rguenther@suse.de>
829 * tree-cfg.c (verify_gimple_expr): Fix check for conversions
830 between integral types. Also allow conversions between
833 2007-08-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
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):
841 (spu_libgcc_shift_count_mode): New function.
842 (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
843 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
845 2007-08-31 Joseph Myers <joseph@codesourcery.com>
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.
852 2007-08-31 Zdenek Dvorak <ook@ucw.cz>
854 PR rtl-optimization/33224
855 * loop-iv.c (latch_dominating_def): Check that the definition belongs
856 to the analysed region.
858 2007-08-31 Richard Guenther <rguenther@suse.de>
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.
868 2007-08-31 Nick Clifton <nickc@redhat.com>
870 * tree-ssa-coalesce.c (compare_pairs): Use the elements as
871 secondary keys in order to obtain a stable sort.
873 2007-08-31 Nick Clifton <nickc@redhat.com>
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.
880 2007-08-31 Richard Sandiford <richard@codesourcery.com>
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.
898 2007-08-31 Maxim Kuvyrkov <maxim@codesourcery.com>
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.
906 2007-08-31 Richard Guenther <rguenther@suse.de>
908 * tree.c (build_complex_type): Always set TYPE_NAME for
911 2007-08-31 Olivier Hainque <hainque@adacore.com>
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.
922 2007-08-31 Olivier Hainque <hainque@adacore.com>
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
929 2007-08-31 David Edelsohn <edelsohn@gnu.org>
930 Revital Eres <eres@il.ibm.com>
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
943 (bdesc_paired_preds): New structure for paired predicate
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):
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.
965 2007-08-30 Ollie Wild <aaw@google.com>
967 * c-opts.c (c_common_handle_option): Support -fno-directives-only.
968 * gcc.c (default_compilers): Add -fno-directives-only to
971 2007-08-30 Sandra Loosemore <sandra@codesourcery.com>
975 * regclass.c (initial_fixed_regs): Revert previous change and make
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.
992 2007-08-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
994 * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
995 from the original statement.
997 2007-08-30 Chao-ying Fu <fu@mips.com>
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,
1006 (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
1008 (simplify_immed_subreg): Support CONST_FIXED.
1009 Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
1010 (simplify_subreg): Support CONST_FIXED.
1012 2007-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
1014 * config/rs6000/ppu_intrinsics.h: New file.
1015 * config.gcc (powerpc*-*-* <extra_headers>): Install
1018 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
1020 * cfg.c (dump_flow_info): Change to also print entry and exit
1022 * print-rtl.c (print_rtl_single): Allow to print rtl with
1025 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
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
1033 2007-08-30 Jakub Jelinek <jakub@redhat.com>
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.
1040 2007-08-30 Richard Guenther <rguenther@suse.de>
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.
1048 2007-08-30 Richard Guenther <rguenther@suse.de>
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.
1061 2007-08-30 Jakub Jelinek <jakub@redhat.com>
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.
1069 * dce.c (dce_process_block): Don't delete setters of
1070 artificially used registers.
1072 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
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.
1078 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1080 * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
1082 * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
1083 "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
1085 2007-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1087 * system.h: Activate -Wcast-qual as warning-only.
1089 2007-08-29 Paolo Bonzini <bonzini@gnu.org>
1092 * config/rs6000/rs6000.c (compare_section_name): New function.
1093 (rs6000_elf_in_small_data_p): Compare section prefixes instead
1096 2007-08-29 Olivier Hainque <hainque@adacore.com>
1098 * xcoffout.c: #include debug.h.
1099 * Makefile.in (xcoffout.o): Add debug.h dependency.
1101 2007-08-29 Uros Bizjak <ubizjak@gmail.com>
1103 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
1104 Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
1106 2007-08-29 Richard Guenther <rguenther@suse.de>
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.
1112 2007-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1114 * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
1115 * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
1117 2007-08-29 Douglas Gregor <doug.gregor@gmail.com>
1120 * tree.c (build_type_attribute_qual_variant): Set canonical types
1121 on the final, unqualified attribute variant before building the
1124 2007-08-29 Jie Zhang <jie.zhang@analog.com>
1126 * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
1127 order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
1129 2007-08-29 Jie Zhang <jie.zhang@analog.com>
1132 2007-08-29 Jie Zhang <jie.zhang@analog.com>
1133 * config/bfin/bfin.md (composev2hi): Put operands into vector
1136 2007-08-29 Jie Zhang <jie.zhang@analog.com>
1138 * config/bfin/bfin.md (composev2hi): Put operands into vector
1141 2007-08-29 Jie Zhang <jie.zhang@analog.com>
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
1151 (Variable Attributes): Add Blackfin subsection. Document l1_data,
1152 l1_data_A and l1_data_B variable attributes.
1154 2007-08-28 Jie Zhang <jie.zhang@analog.com>
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.
1162 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
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.
1168 2007-08-28 DJ Delorie <dj@redhat.com>
1170 * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
1172 2007-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1174 * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
1176 2007-08-28 Richard Guenther <rguenther@suse.de>
1178 * tree.h (struct tree_function_decl): Increase size of
1179 function_code bitfield.
1181 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
1182 Kazu Hirata <kazu@codesourcery.com>
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):
1191 2007-08-28 Uros Bizjak <ubizjak@gmail.com>
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.
1200 2007-08-28 Jakub Jelinek <jakub@redhat.com>
1203 * passes.c (init_optimization_passes): Move pass_df_finish
1204 after pass_postreload sublist.
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.
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.
1216 2007-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
1218 * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
1220 2007-08-28 Richard Guenther <rguenther@suse.de>
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.
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>
1244 * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
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
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
1261 (doloop_condition_get): Gets an instruction instead of a pattern
1262 and change the return condition when the do-loop pattern is
1264 * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
1265 deps when considering to not create edges.
1267 2007-08-27 Alexandre Oliva <aoliva@redhat.com>
1269 * doc/extend.texi (gnu_inline funtion attribute): Document C++
1272 2007-08-27 Jason Merrill <jason@redhat.com>
1275 * gimplify.c (gimplify_modify_expr): Discard the assignment of
1276 zero-sized types after calling gimplify_modify_expr_rhs.
1278 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
1280 * regclass.c (init_reg_autoinc): Fix typo.
1282 2007-08-27 Daniel Berlin <dberlin@dberlin.org>
1284 Fix PR tree-optimization/33173
1285 * tree-ssa-alias.c (find_used_portions): Fix reversed test.
1287 2007-08-27 H.J. Lu <hongjiu.lu@intel.com>
1290 * config/i386/i386.h (VALID_DFP_MODE_P): New.
1291 * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
1294 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
1295 David Ung <davidu@mips.com>
1296 Nigel Stephens <nigel@mips.com>
1298 Separate target-specific initialization from general
1299 back-end initialization.
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
1347 * reload1.c (init_reload): Update comments.
1348 * optabs.c (init_optabs): Likewise.
1349 * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
1351 2007-08-26 Chao-ying Fu <fu@mips.com>
1353 * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
1356 2007-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1358 * alias.c (memory_modified_1, memory_modified_in_insn_p):
1360 * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
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):
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):
1400 * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
1401 * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
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):
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.
1439 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
1441 * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
1442 tree-ssa-pre.c: Remove unnecessary trailing whitespace.
1444 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
1447 * config/alpha/constraints.md: Delete "svn:mime-type" property
1448 with svn propdel "svn:mime-type".
1450 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
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.
1458 2007-08-26 David Edelsohn <edelsohn@gnu.org>
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.
1471 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
1474 * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
1475 pass defines needed for version.c.
1477 2007-08-25 Joseph Myers <joseph@codesourcery.com>
1479 * configure.ac (--debug-prefix-map check): Change assembler
1480 version presumed to have feature to 2.18.
1481 * configure: Regenerate.
1483 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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.
1532 2007-08-25 Hans Kester <hans.kester@ellips.nl>
1534 * config.gcc : Add x86_64-elf target.
1536 2007-08-25 Jakub Jelinek <jakub@redhat.com>
1538 * expr.c (store_expr): Fix order of store_by_pieces arguments.
1540 2007-08-24 Sandra Loosemore <sandra@codesourcery.com>
1541 Nigel Stephens <nigel@mips.com>
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
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.
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.
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.
1573 2007-08-24 Tom Tromey <tromey@redhat.com>
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.
1579 2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
1585 * config/arm/arm-protos.h (arm_mangle_type): Likewise.
1586 * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
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):
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):
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):
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):
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):
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):
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):
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):
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.
1717 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1719 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1720 __NO_BUILTIN if -fno-builtin.
1722 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1724 * config/bfin/bfin.c (print_operand): Report error instead of
1725 ICE for wrong operand.
1727 2007-08-24 Michael Matz <matz@suse.de>
1729 * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
1731 2007-08-24 Richard Guenther <rguenther@suse.de>
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.
1741 2007-08-24 Jakub Jelinek <jakub@redhat.com>
1743 * expr.c (store_expr): Optimize initialization of an array
1745 * expr.h (builtin_strncpy_read_str): New prototype.
1746 * builtins.c (builtin_strncpy_read_str): Remove prototype.
1749 2007-08-24 Uros Bizjak <ubizjak@gmail.com>
1752 * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
1753 field when initializing if_info structure.
1755 2007-08-24 Richard Guenther <rguenther@suse.de>
1757 * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
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.
1770 2007-08-24 Richard Guenther <rguenther@suse.de>
1772 * expr.c (get_inner_reference): Do computation of bitoffset
1773 from offset in a way we can detect overflow reliably.
1775 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1777 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
1779 2007-08-24 Jie Zhang <jie.zhang@analog.com>
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.
1788 2007-08-24 Jakub Jelinek <jakub@redhat.com>
1790 PR tree-optimization/32573
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.
1804 2007-08-23 Brian Sidebotham <brian.sidebotham@gmail.com>
1806 * configure.ac (leb128): Modify sed statement to work with any
1807 binutils version string.
1808 * configure: Regenerate
1810 2007-08-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
1822 * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
1823 * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
1825 * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
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
1833 * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
1835 * final.c (profile_function): Avoid empty if-bodies.
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):
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):
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):
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):
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):
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):
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):
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):
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):
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):
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):
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):
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.
2030 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
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.
2045 2007-08-23 Richard Guenther <rguenther@suse.de>
2047 * tree-pretty-print.c (dump_generic_node): Annotate
2048 GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
2050 2007-08-23 Richard Guenther <rguenther@suse.de>
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.
2060 2007-08-23 Paolo Bonzini <bonzini@gnu.org>
2062 * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
2063 *sse_nand<mode>3, *sse_xor<mode>3): New.
2065 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
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.
2084 2007-08-22 Chao-ying Fu <fu@mips.com>
2086 * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
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):
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,
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):
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.
2180 2007-08-22 Zdenek Dvorak <ook@ucw.cz>
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.
2186 2007-08-22 Hans-Peter Nilsson <hp@axis.com>
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.
2211 2007-08-22 David Daney <ddaney@avtrex.com>
2213 * doc/install.texi (Testing): Mention testing on a simulator.
2215 2007-08-22 Janis Johnson <janis187@us.ibm.com>
2217 * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
2219 * doc/libgcc.texi (Decimal float library routines): Fix formatting
2220 and rearrange floating point conversion functions into different
2223 2007-08-22 Maxim Kuvyrkov <maxim@codesourcery.com>
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
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.
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 ().
2244 2007-08-22 Christian Bruel <christian.bruel@st.com>
2245 Richard Guenther <rguenther@suse.de>
2247 * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
2248 * simplify_rtx (simplify_binary_operation_1): Likewise.
2250 2007-08-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
2252 PR rtl-optimization/32557
2253 * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
2254 of REGNO (mws->mw_reg).
2256 2007-08-22 Richard Guenther <rguenther@suse.de>
2259 * builtins.c (expand_builtin_int_roundingfn): Replace call
2260 argument wrapped with SAVE_EXPR directly.
2261 (expand_builtin_int_roundingfn_2): Likewise.
2263 2007-08-22 Richard Guenther <rguenther@suse.de>
2265 * tree-inline.c (inlinable_function_p): Restore disregarding
2266 inline limits for GNU extern inline functions.
2268 2007-08-22 Richard Guenther <rguenther@suse.de>
2271 * tree.c (host_integerp): Treat sizetype as signed as it is
2274 2007-08-21 Ian Lance Taylor <iant@google.com>
2276 PR tree-optimization/33134
2277 * tree-vrp.c (adjust_range_with_scev): Call
2278 set_value_range_to_value.
2280 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
2282 * value-prof.h (gimple_remove_histogram_value): Remove duplicate
2285 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
2287 * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
2290 2007-08-21 Nathan Froyd <froydnj@codesourcery.com>
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.
2296 2007-08-21 Jakub Jelinek <jakub@redhat.com>
2299 * dwarf2out.c (gen_decl_die): Don't call
2300 gen_tagged_type_instantiation_die if decl doesn't have tagged type.
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>
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):
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.
2335 2007-08-21 Uros Bizjak <ubizjak@gmail.com>
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.
2342 2007-08-21 Jakub Jelinek <jakub@redhat.com>
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.
2348 2007-08-21 Richard Guenther <rguenther@suse.de>
2350 * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
2352 2007-08-21 Richard Guenther <rguenther@suse.de>
2355 * fold-const.c (fold_binary): Remove index +p PTR folding.
2356 Fix types of POINTER_PLUS_EXPR generated by folding of
2359 2007-08-20 Chao-ying Fu <fu@mips.com>
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
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.
2423 2007-08-20 Pawel Sikora <pluto@pld-linux.org>
2425 * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
2427 2007-08-20 David Edelsohn <edelsohn@gnu.org>
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.
2434 2007-08-20 Richard Guenther <rguenther@suse.de>
2436 * c-typeck.c (convert_for_assignment): Use the type of
2437 the member for the initialization.
2439 2007-08-20 Richard Guenther <rguenther@suse.de>
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):
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):
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.
2459 2007-08-20 Richard Guenther <rguenther@suse.de>
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
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.
2476 2007-08-20 Richard Guenther <rguenther@suse.de>
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
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
2500 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
2508 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2509 Serge Belyshev <belyshev@depni.sinp.msu.ru>
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
2519 (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
2520 ptr_type in the second operand.
2522 2007-08-19 Andrew Pinski <pinskia@gmail.com>
2525 * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
2527 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2530 * cfgexpand.c (expand_one_register_var): Mark pointer
2531 DECL_ARTIFICIAL as REG_POINTER also.
2532 * stmt.c (expand_decl): Likewise.
2534 2007-08-19 Daniel Berlin <dberlin@dberlin.org>
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
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
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
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
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
2563 * tree-ssa-structalias.c (struct constraint_graph): Remove
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.
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.
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
2596 (free_var_substitution_info): Update to free HU and location
2597 equivalence structures. */
2598 (find_equivalent_node): Update for pointer but not location
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.
2622 2007-08-19 Jan Hubicka <jh@suse.cz>
2624 * i386.md: Replace "rim" and "mri" constraints by "g".
2626 2007-08-19 Joseph Myers <joseph@codesourcery.com>
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.
2638 2007-08-19 Andrew Pinski <pinskia@gmail.com>
2640 * tree-pretty-print.c (debug_generic_expr): Add a comment about
2642 (debug_generic_stmt): Likewise.
2643 (debug_tree_chain): Likewise.
2645 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
2647 * tree-data-refs.c (split_constant_offset): Expose.
2648 * tree-data-refs.h (split_constant_offset): Add declaration.
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.
2659 * tree-vectorizer.c (vect_supportable_dr_alignment): Add
2661 In case of outer-loop vectorization with non-fixed misalignment - use
2662 the dr_explicit_realign scheme instead of the optimized realignment
2664 (new_stmt_vec_info): Initialize new fields.
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.
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
2707 (vect_get_vec_def_for_operand): Likewise.
2708 (vect_setup_realignment): Likewise.
2709 (vectorizable_load): Likewise.
2711 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
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
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.
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.
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
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
2762 (vect_create_epilog_for_reduction): Extend to handle outer-loop
2764 (vect_transform_loop): Change assert to just skip this case. Add a
2766 (vect_finish_stmt_generation): Add a couple asserts.
2768 (vect_estimate_min_profitable_iters): Multiply
2769 cost of inner-loop stmts (in outer-loop vectorization) by estimated
2771 (vect_model_reduction_cost): Don't add reduction epilogue cost in case
2772 this is an inner-loop reduction in outer-loop vectorization.
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
2786 (vect_analyze_data_refs): Check that there are no datarefs in the
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.
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).
2804 2007-08-18 Andrew Pinski <pinskia@gmail.com>
2806 * tree-affine.h (print_aff): New prototype.
2807 (debug_aff): Likewise.
2808 * tree-affine.c (print_aff): New function.
2809 (debug_aff): Likewise.
2811 2007-08-18 Paul Brook <paul@codesourcery.com>
2812 Joseph Myers <joseph@codesourcery.com>
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.
2838 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2840 * loop-invariant.c (find_invariants_to_move): Add missing macro
2843 2007-08-17 Tom Tromey <tromey@redhat.com>
2845 * tree.h (struct tree_label_decl): Removed old "java" fields.
2847 2007-08-17 Richard Sandiford <richard@codesourcery.com>
2848 Nigel Stephens <nigel@mips.com>
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.
2857 2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
2859 * Makefile.in (version.o): Depend on $(REVISION) only if
2860 REVISION_s is defined.
2862 2007-08-17 Sa Liu <saliu@de.ibm.com>
2863 Ulrich Weigand <uweigand@de.ibm.com>
2866 * tree.c (reconstruct_complex_type): For a pointer to a vector,
2867 use build_qualified_type to retain qualifiers of the base type.
2869 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
2871 * config/score/score.md : Update pattern tablejump.
2872 * config/score/score.c : Update score_initialize_trampoline
2874 * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
2875 (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
2876 * doc/contrib.texi: Add my entry.
2878 2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
2880 * Makefile.in (REVISION): New.
2883 (version.o): Also depend on $(REVISION). Add
2884 -DREVISION=$(REVISION_s).
2886 * version.c (version_string): Add REVISION.
2888 2007-08-16 Seongbae Park <seongbae.park@gmail.com>
2890 * tree-eh.c (lower_try_finally_onedest): Reset the locus
2891 of GOTO that's relocated to a different block.
2893 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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.
2932 2007-08-16 Victor Kaplansky <victork@il.ibm.com>
2934 * tree-vectorizer.c (new_loop_vec_info): Initialize new
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
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):
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.
2965 2007-08-16 Uros Bizjak <ubizjak@gmail.com>
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.
2998 2007-08-16 Richard Sandiford <richard@codesourcery.com>
3001 * reload.c (find_reloads): Check that the memory returned by
3002 find_reloads_toplev was not the result of forcing a constant
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.
3009 2007-08-15 David Edelsohn <edelsohn@gnu.org>
3011 * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
3014 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com>
3016 * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
3017 directive for the current vector ABI.
3019 2007-08-15 Steve Ellcey <sje@cup.hp.com>
3022 * caller-save.c (reg_save_code): Set invalide status on restore code.
3024 2007-08-15 Diego Novillo <dnovillo@google.com>
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.
3034 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3036 * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
3037 scheduler dependencies.
3039 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
3041 * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
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.
3049 2007-08-15 Jakub Jelinek <jakub@redhat.com>
3052 * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
3055 2007-08-14 Daniel Berlin <dberlin@dberlin.org>
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
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
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.
3074 2007-08-14 Kai Tietz <kai.tietz@onevision.com>
3076 * i386.c: (legitimize_address): Move dllimported variable check
3077 infront of legitimizing pic address of CONST symbols.
3079 2007-08-14 Steve Ellcey <sje@cup.hp.com>
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.
3089 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
3101 * expr.h (safe_from_p): Likewise.
3102 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
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,
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.
3136 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
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.
3153 2007-08-14 Andrew Pinski <pinskia@gmail.com>
3156 * c-typeck.c (build_binary_op): Disallow vector float types with
3157 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
3159 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
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
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
3178 (INSN_BACK_DEPS): Remove.
3179 (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
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
3191 (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
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
3200 (FOR_EACH_DEP): New cycle wrapper.
3201 (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
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):
3207 * sched-deps.c (init_dep_1): Make global.
3208 (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
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
3215 (move_dep_link): Use remove_from_deps_list (), instead of
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
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
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):
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):
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):
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
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
3292 (sched_init): Initialize new variable.
3293 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
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
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
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
3309 (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
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.
3326 * sched-ebb.c (earliest_block_with_similiar_load): Update to use
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.
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.
3336 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
3337 to use new interfaces.
3338 (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
3340 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
3342 (is_costly_group): Ditto.
3344 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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):
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):
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):
3385 * pointer-set.h (pointer_set_contains, pointer_map_contains):
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):
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):
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):
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):
3432 2007-08-13 Dan Hipschman <dsh@google.com>
3435 * c-format.c (check_format_arg): Move check for zero-length
3436 format strings below the check for unterminated strings.
3438 2007-08-13 Andrew Pinski <pinskia@gmail.com>
3441 * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
3444 2007-08-13 Nick Clifton <nickc@redhat.com>
3446 * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
3448 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
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.
3456 2007-08-12 Sa Liu <saliu@de.ibm.com>
3458 * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
3459 and with REG_RETVAL note after split.
3461 2007-08-11 David Daney <ddaney@avtrex.com>
3463 * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
3464 as ATTRIBUTE_UNUSED.
3466 2007-08-11 David Edelsohn <edelsohn@gnu.org>
3467 Segher Boessenkool <segher@kernel.crashing.org>
3469 * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
3470 HAVE_LOCAL_CPU_DETECT not defined.
3472 2007-08-11 Jan Hubicka <jh@suse.cz>
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.
3479 2007-08-11 Ian Lance Taylor <iant@google.com>
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
3531 (alpha_setup_incoming_varargs): Use alias_set_type.
3532 * config/i386/i386.c (setup_incoming_varargs_64): Use
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
3542 * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
3543 * config/sparc/sparc.c (sparc_sr_alias_set): Change to
3545 (struct_value_alias_set): Likewise.
3546 * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
3548 2007-08-11 Richard Sandiford <richard@codesourcery.com>
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.
3555 2007-08-11 Richard Sandiford <richard@codesourcery.com>
3557 * calls.c (avoid_likely_spilled_reg): New function.
3558 (expand_call): Use it.
3560 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3562 * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
3564 2007-08-10 Adam Nemet <anemet@caviumnetworks.com>
3566 * config/mips/predicates.md (const_call_insn_operand): Invoke
3567 SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
3569 2007-08-10 David Edelsohn <edelsohn@gnu.org>
3572 * config/rs6000/driver-rs6000.c: Include link.h.
3573 Use ElfW instead of wordsize-specif typedef.
3575 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
3589 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
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
3596 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com>
3598 * lower-subreg.c (resolve_shift_zext): Don't adjust
3599 src_reg_num for wordmode operands.
3601 2007-08-10 Sandra Loosemore <sandra@codesourcery.com>
3602 David Ung <davidu@mips.com>
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
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.
3616 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
3618 * tree-flow-inline.h (get_filename): Remove.
3620 2007-08-10 Richard Sandiford <richard@codesourcery.com>
3622 * config/mips/mips-protos.h (mips_address_insns): Add a boolean
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.
3637 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
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.
3653 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
3656 * c-typeck.c (build_binary_op): Check for non pointer types before
3657 calling int_fits_type_p.
3659 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
3666 2007-08-09 Daniel Berlin <dberlin@dberlin.org>
3668 * c-typeck.c (readonly_error): Improve error for assignment.
3670 * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
3672 (pp_c_expression): Ditto.
3674 2007-08-09 Simon Baldwin <simonb@google.com>
3676 * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
3677 break that was preventing simplify_associative_operation() for xor.
3679 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
3680 Nigel Stephens <nigel@mips.com>
3682 * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
3683 Document change in interpretation of value from boolean to
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
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.
3694 2007-08-09 Jan Hubicka <jh@suse.cz>
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):
3796 2007-08-09 Michael Matz <matz@suse.de>
3798 * tree.h (fixed_zerop): Declare as taking a const_tree.
3799 * tree.c (fixed_zerop): Take a const_tree.
3801 2007-08-09 Ira Rosen <irar@il.ibm.com>
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.
3811 2007-08-08 Chao-ying Fu <fu@mips.com>
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.
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
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.