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