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