1 2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
3 PR tree-optimization/34458
4 * tree-data-ref.c (dd_int_cst_value): New.
5 (initialize_matrix_A, compute_overlap_steps_for_affine_1_2,
6 analyze_subscript_affine_affine, build_classic_dist_vector_1,
7 add_multivariate_self_dist, init_omega_eq_with_af): Use
8 dd_int_cst_value instead of int_cst_value.
10 2008-01-03 Jan Hubicka <jh@suse.cz>
12 PR tree-optimization/31081
13 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
14 0 when inlining and not inlining to first basic block.
15 (remap_decl): When var is initialized to 0, don't set default_def.
16 (expand_call_inline): Set entry_bb.
17 * tree-inline.h (copy_body_data): Add entry_bb.
19 2008-01-03 Jakub Jelinek <jakub@redhat.com>
22 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
25 PR tree-optimization/29484
26 * tree-inline.c (inline_forbidden_p_2): New function.
27 (inline_forbidden_p): Disallow inlining if some static var
28 has an address of a local LABEL_DECL in its initializer.
29 * doc/extend.texi (Labels as Values): Document &&foo behaviour
32 2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
34 PR tree-optimization/34635
35 * tree-data-ref.c (add_other_self_distances): Make sure that the
36 evolution step is constant.
38 2008-01-03 Jakub Jelinek <jakub@redhat.com>
41 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the
44 2008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
46 * tree-sra.c (scalarize_init): Insert the generate_element_init
47 statements after the generate_element_zero statements.
49 2008-01-02 Richard Guenther <rguenther@suse.de>
53 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
54 for very large number of operands instead of ICEing.
56 2008-01-02 Arthur Norman <acn1@cam.ac.uk>
59 * gcc/config/i386/i386.c: (ix86_expand_prologue): Save red-zone
62 2008-01-01 Douglas Gregor <doug.gregor@gmail.com>
64 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
67 2008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
70 * tree-mudflap.c (mx_register_decls): Guard warning by
71 !DECL_ARTIFICIAL check.
73 2008-01-01 Jakub Jelinek <jakub@redhat.com>
75 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
76 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
77 sse5_perm<mode>): Fix constraints.
79 2007-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
82 * collect2.c (SHLIB_SUFFIX): Define if not defined.
83 (write_c_file_stat): Use SHLIB_SUFFIX.
84 * som.h (SHLIB_SUFFIX): Define.
85 * doc/tm.texi (SHLIB_SUFFIX): Document.
87 2007-12-29 Uros Bizjak <ubizjak@gmail.com>
89 * config/i386/sse.md ("*divv4sf3"): Rename to "sse_divv4sf3".
90 ("*sse_rsqrtv4sf2"): Export.
91 ("*sse_sqrtv4sf2"): Ditto.
92 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_RSQRTPS_NR,
93 IX86_BUILTIN_SQRTPS_NR]: New constants.
94 (struct builtin_description) [IX86_BUILTIN_DIVPS]: Use
95 CODE_FOR_sse_divv4sf3.
96 [IX86_BUILTIN_SQRTPS]: Use CODE_FOR_sse_sqrtv4sf2.
97 [IX86_BUILTIN_SQRTPS_NR]: New.
98 [IX86_BUILTIN_RSQRTPS_NR]: Ditto.
99 (ix86_init_mmx_sse_builtins): Initialize __builtin_ia32_rsqrtps_nr and
100 __builtin_ia32_sqrtps_nr.
101 (ix86_builtin_vectorized_function): Convert BUILT_IN_SQRTF to
102 IX86_BUILTIN_SQRTPS_NR.
103 (ix86_builtin_reciprocal): Convert IX86_BUILTIN_SQRTPS_NR to
104 IX86_BUILTIN_RSQRTPS_NR.
106 2007-12-27 Brian Dessent <brian@dessent.net>
108 * doc/invoke.texi (Optimize Options): Add missing opindex for
109 -fno-toplevel-reorder.
111 2007-12-27 Dorit Nuzman <dorit@il.ibm.com>
113 PR tree-optimization/34591
114 * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip
115 stmts (including reduction stmts) that are not live.
117 2007-12-27 Jakub Jelinek <jakub@redhat.com>
120 * config/arm/arm.c (arm_setup_incoming_varargs): If last named
121 argument needs double word alignment and cum->nregs is odd, account
122 for the inserted padding.
125 * tree-mudflap.c (mf_make_builtin): Make decl artificial
126 and don't emit debug info for it.
128 2007-12-26 Anatoly Sokolov <aesok@post.ru>
130 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82
131 and AT90USB162 devices from 'avr5' to 'avr35' architecture.
132 (ASM_SPEC): Add 'avr35' architecture.
133 * config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162
134 devices from 'avr5' to 'avr35' architecture.
135 (avr_arch_types): Add "avr23" entries.
136 (avr_arch): Add 'ARCH_AVR35'.
137 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'.
138 (MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5'
139 to 'avr35' architecture.
141 2007-12-22 David Daney <ddaney@avtrex.com>
143 * doc/install.texi (disable-libgcj-bc): Document new option.
145 2007-12-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
147 * config/pa/pa.c (hppa_legitimize_address): Use INT14_OK_STRICT in
151 * pa.c (legitimize_pic_address): Emit insn to load function label
154 2007-12-21 Andrew Pinski <pinskia@gmail.com>
155 Rask Ingemann Lambertsen <rask@sygehus.dk>
158 * config/mcore/mcore.c (mcore_function_value): Call promote_mode
159 instead of PROMOTE_MODE.
161 2007-12-21 Sebastian Pop <sebastian.pop@amd.com>
163 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix typo.
165 2007-12-21 Sebastian Pop <sebastian.pop@amd.com>
167 * tree-data-ref.c (signed_type_for_types): New.
168 (affine_fn_op): Use signed_type_for_types and signed_type_for instead
169 of long_integer_type_node.
170 (analyze_ziv_subscript): Same.
171 (analyze_siv_subscript_cst_affine): Same.
172 (analyze_miv_subscript): Same.
173 (omega_setup_subscript): Same.
175 2007-12-21 Richard Sandiford <rsandifo@nildram.co.uk>
177 * config/mips/mips.c (mips_emit_loadgp): Replace gen_* calls with
178 separate gen_*_si and gen_*_di calls. Pass pic_offset_table_rtx
179 as the first argument.
180 * config/mips/mips.md (loadgp_newabi, loadgp_absolute)
181 (loadgp_rtp): Rename to...
182 (loadgp_newabi_<mode>, loadgp_absolute<mode>, loadgp_rtp<mode>):
183 ...these. Add modes to all operands. Add the target register
184 as an operand. Combine loadgp_rtp<mode> with its splitter.
186 2007-12-20 Bob Wilson <bob.wilson@acm.org>
188 * config/xtensa/xtensa.md (fix_return_addr): Remove.
189 * config/xtensa/xtensa-protos.h (xtensa_initialize_trampoline): New.
190 (xtensa_trampoline_template): New.
191 * config/xtensa/xtensa.c (MIN_FRAME_SIZE): Moved here from xtensa.h.
192 (xtensa_return_addr): Expand to standard Xtensa insns instead of
193 fix_return_addr. Get high bits from a local label.
194 (xtensa_trampoline_template): New function with code moved from
195 TRAMPOLINE_TEMPLATE in xtensa.h. Use L32R instead of CALL0 except
196 when using CONST16 or absolute-mode literals.
197 (xtensa_initialize_trampoline): New function with code moved from
198 INITIALIZE_TRAMPOLINE in xtensa.h. Use different offsets depending
199 on which trampoline version is used.
200 * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Add comment.
201 * config/xtensa/xtensa.h (TARGET_ABSOLUTE_LITERALS): Define.
202 (MIN_FRAME_SIZE): Moved to xtensa.c.
203 (TRAMPOLINE_TEMPLATE): Use xtensa_trampoline_template.
204 (TRAMPOLINE_SIZE): Two versions of the trampoline have different sizes.
205 (INITIALIZE_TRAMPOLINE): Use xtensa_initialize_trampoline.
206 * config/xtensa/ieee754-df.S (XCHAL_NO_MUL): Define.
207 (__muldf3): Use CALL12 instead of CALL0 to invoke .Lmul_mulsi3
208 helper when not using the CALL0 ABI. Change .Lmul_mulsi3 to match.
209 * config/xtensa/lib1funcs.asm (__umulsidi3): Likewise.
210 * config/xtensa/ieee754-sf.S (__mulsf3): Likewise.
212 2007-12-20 Jakub Jelinek <jakub@redhat.com>
215 * tree-ssa-dse.c (dse_optimize_stmt): Don't eliminate store if
216 USE_STMT not only stores into the same object as STMT, but might
219 2007-12-19 Sebastian Pop <sebastian.pop@amd.com>
221 PR tree-optimization/34413
222 * tree-data-ref.c (affine_fn_op, analyze_ziv_subscript,
223 analyze_siv_subscript_cst_affine, analyze_miv_subscript,
224 omega_setup_subscript): Use long_integer_type_node instead of
227 2007-12-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
230 * pa.c (legitimize_pic_address): Force function labels into memory.
232 2007-12-19 Zdenek Dvorak <ook@ucw.cz>
234 * omp-low.c (build_omp_regions_1): Recognition of combined parallels
236 (expand_omp): ... here.
238 2007-12-19 Zdenek Dvorak <ook@ucw.cz>
240 PR tree-optimization/34355
241 * tree-parloops.c (take_address_of): Handle expresions
242 instead of just variables.
243 (eliminate_local_variables_1): Force whole invariant
246 2007-12-19 Alexander Monakov <amonakov@ispras.ru>
247 Revital Eres <eres@il.ibm.com>
249 * modulo-sched.c (generate_reg_moves): Insert the reg-moves
250 right before the notes which precedes the insn, if they exists.
251 (loop_canon_p): Add dump info.
252 (sms_schedule): Likewise.
254 2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk>
256 * tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter.
257 * emit-rtl.c (set_decl_incoming_rtl): Likewise. Don't set the
258 rtl's register attributes when the parameter is true.
259 * function.c (assign_parms_unsplit_complex, assign_parms)
260 (expand_function_start): Update calls to set_decl_incoming_rtl.
262 2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk>
264 * rtl.def (SUBREG): Update comments.
265 * rtl.h (reg_attrs): Be explicit about the type of offset used.
266 (set_reg_attrs_from_mem): Rename to...
267 (set_reg_attrs_from_value): ...this.
268 (adjust_reg_mode, byte_lowpart_offset): Declare.
269 * emit-rtl.c (byte_lowpart_offset): New function.
270 (update_reg_offset): Remove special offset handling for big-endian
272 (gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the
273 offset parameter is added to REG_OFFSET.
274 (adjust_reg_mode): New function.
275 (set_reg_attrs_for_mem): Rename to...
276 (set_reg_attrs_for_value): ...this and generalize to all values.
277 If the register is a lowpart of the value, adjust the offset
279 (set_reg_attrs_for_parm): Update after the above renaming.
280 (set_reg_attrs_for_decl_rtl): New function, split out from
281 set_decl_incoming_rtl. Set the offset of plain REGs to the
282 offset of the REG's mode from the decl's. Assert that all
283 subregs are lowparts and handle their inner registers in the
284 same way as plain REGs.
285 (set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl.
286 (subreg_lowpart_offset): Explicitly say that the returned offset
288 * combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode
290 * final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset.
291 * config/ia64/ia64.c (ia64_expand_load_address): Likewise.
292 * regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value.
293 * reload.c (find_reloads_subreg_address): Call set_mem_offset
294 when offseting a MEM.
295 * var-tracking.c (offset_valid_for_tracked_p): Delete.
296 (mode_for_reg_attrs): Replace with...
297 (track_loc_p): ...this new function. Return the mode and offset
298 to the caller, checking that the latter is valid. If the rtx is
299 a paradoxical lowpart of the decl, use the decl's mode instead.
300 Do the same when storing to a register that contains the entire decl.
301 (var_lowpart): Use byte_lowpart_offset rather than
302 subreg_lowpart_offset when adjusting the offset attribute.
303 (count_uses, add_uses, add_stores): Use track_reg_p instead of
304 REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p,
305 offset_valid_for_tracked_p and mode_for_reg_attrs. Generate
306 lowparts for MEMs as well as REGs.
307 (vt_add_function_parameters): When obtaining the information from
308 the decl_rtl, adjust the offset to match incoming. Use track_loc_p
311 2007-12-18 Sebastian Pop <sebastian.pop@amd.com>
313 PR tree-optimization/34123
314 * lambda-code.c (can_duplicate_iv): New.
315 (cannot_convert_modify_to_perfect_nest): New.
316 (cannot_convert_bb_to_perfect_nest): New.
317 (can_convert_to_perfect_nest): Split up.
319 2007-12-18 David Daney <ddaney@avtrex.com>
321 * config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation
322 instead of .set push and .set pop.
324 2007-12-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
327 * config/bfin/bfin.c (bfin_adjust_cost): Dig into PARALLELs to find
330 2007-12-18 Razya Ladelsky <razya@il.ibm.com>
332 * tree-parloops.c (reduiction_info): Change documentation of
333 reduction_initial field.
334 (initialize_reductions): Remove creation of reduction_initial variable.
335 (create_loads_for_reductions): don't join reduction_initial to
338 2007-12-18 Kaz Kylheku <kaz@zeugmasystems.com>
340 PR rtl-optimization/34456
341 * resource.c (mark_set_resources): Use regs_invalidated_by_call
342 rather than call_used_regs and global_regs.
344 2007-12-18 Jakub Jelinek <jakub@redhat.com>
346 PR rtl-optimization/34490
347 * simplify-rtx.c (simplify_const_relational_operation): If !sign,
348 don't reduce mmin/mmax using num_sign_bit_copies.
350 2007-12-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
352 * doc/install.texi: Change recommended MPFR from 2.2.1 > 2.3.0.
354 2007-12-17 Andreas Schwab <schwab@suse.de>
356 * doc/invoke.texi (Warning Options): Use @itemx.
358 2007-12-17 Dorit Nuzman <dorit@il.ibm.com>
360 * tree-vectorizer.h (verbosity_levels): Add new verbosity level
362 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Change
363 verbosity level to REPORT_COST.
364 (vect_model_reduction_cost): Likewise.
365 (vect_model_induction_cost): Likewise.
366 (vect_model_simple_cost): likewise.
367 (vect_model_store_cost): likewise.
368 (vect_model_load_cost): likewise.
369 (conservative_cost_threshold): Likewise. Remove print.
371 2007-12-17 Rask Ingemann Lambertsen <rask@sygehus.dk>
373 * doc/tm.texi (TARGET_SECONDARY_RELOAD): Fix typos.
375 2007-12-17 Jakub Jelinek <jakub@redhat.com>
378 * c-parser.c (c_parser_omp_all_clauses): Accept optional comma
381 2007-12-17 Dorit Nuzman <dorit@il.ibm.com>
383 PR tree-optimization/34445
384 * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip
385 stmts (including live stmts) that are not relevant.
387 2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu>
390 * config/i386/t-crtpc: Add $(MULTILIB_CFLAGS).
391 * config/i386/t-crtfm: Likewise.
393 2007-12-17 Uros Bizjak <ubizjak@gmail.com>
395 * config/i386/i386.h (WIDEST_HARDWARE_FP_SIZE): Define.
397 2007-12-16 Uros Bizjak <ubizjak@gmail.com>
399 * tree-vect-transform.c (conservative_cost_threshold): Add missing
400 space to "not vectorized" message.
402 2007-12-16 Richard Sandiford <rsandifo@nildram.co.uk>
404 PR rtl-optimization/34415
405 * df.h (DF_LR_IN, DF_LR_OUT): Update comments.
406 * resource.c (mark_target_live_regs): Use DF_LR_IN rather than
407 df_get_live_in. Don't handle pseudos.
409 2007-12-16 Jakub Jelinek <jakub@redhat.com>
412 * c-decl.c (merge_decls): Copy RTL from olddecl to newdecl.
413 * config/pa/pa.c (pa_encode_section_info): If !first, preserve
414 SYMBOL_FLAG_REFERENCED flag.
416 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
418 * tree.c (type_hash_add): Fix whitespace.
420 2007-12-15 Hans-Peter Nilsson <hp@axis.com>
422 Add CRIS v32 support. Fix -mcc-init.
423 * config.gcc: Make crisv32-* have cpu_type cris. Handle
424 crisv32-*-elf and crisv32-*-none like cris-*-elf and cris-*-none
425 but without multilibs and with target_cpu_default=32.
426 (crisv32-*-linux*): Handle as cris-*-linux*. Set
427 target_cpu_default to 32 and 10 accordingly.
428 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Remove unused macro.
429 (cris_movem_load_rest_p, cris_store_multiple_op_p): Remove FIXME.
430 Change regno_dir and regno only if !TARGET_V32.
431 (cris_conditional_register_usage): If TARGET_V32, set
432 reg_alloc_order as per REG_ALLOC_ORDER_V32 and make
433 CRIS_ACR_REGNUM non-fixed.
434 (cris_print_base): Add gcc_assert for post_inc on CRIS_ACR_REGNUM.
435 (cris_print_operand) <case 'Z', case 'u'>: New cases.
436 <case REG of case 'H'>: Allow for CRIS_SRP_REGNUM.
437 (cris_reload_address_legitimized): Always return false for TARGET_V32.
438 (cris_register_move_cost): New function, guts from
439 REGISTER_MOVE_COST adjusted for CRIS v32.
440 (cris_normal_notice_update_cc): New function split out from...
441 (cris_notice_update_cc): Set cc_status.flags CC_REVERSED for
442 TARGET_CCINIT. Call cris_normal_notice_update_cc for CC_REV,
443 CC_NOOV32 and CC_NORMAL, but set cc_status.flags CC_NO_OVERFLOW
444 for CC_NOOV32 and TARGET_V32.
445 (cris_simple_epilogue): Always return false for TARGET_V32 if
446 cris_return_address_on_stack yields true.
447 (cris_cc0_user_requires_cmp): New function.
448 (cris_valid_pic_const): Add argument ANY_OPERAND. All callers
449 changed. Handle CRIS_UNSPEC_PLT_PCREL and CRIS_UNSPEC_PCREL.
450 (cris_asm_output_case_end): New function, guts from
451 ASM_OUTPUT_CASE_END adjusted for CRIS v32.
452 (cris_override_options): Adjust for CRIS v32. Mask out
453 TARGET_SIDE_EFFECT_PREFIXES and TARGET_MUL_BUG if v32.
454 (cris_asm_output_mi_thunk, cris_expand_epilogue)
455 (cris_gen_movem_load, cris_emit_movem_store)
456 (cris_expand_pic_call_address, cris_asm_output_symbol_ref)
457 (cris_asm_output_label_ref, cris_output_addr_const_extra): Adjust
459 (cris_split_movdx): Copy re-used MEM.
460 * config/cris/t-elfmulti: Add multilib v32 for -march=v32.
461 * config/cris/predicates.md
462 ("cris_general_operand_or_pic_source"): New predicate.
463 ("cris_general_operand_or_plt_symbol"): Replace by...
464 ("cris_nonmemory_operand_or_callable_symbol"): New predicate.
465 * config/cris/linux.h: Sanity-check TARGET_CPU_DEFAULT for
466 presence and contents.
467 (CRIS_SUBTARGET_DEFAULT_ARCH): New macro, MASK_AVOID_GOTPLT for
469 (CRIS_CPP_SUBTARGET_SPEC, CRIS_CC1_SUBTARGET_SPEC,
470 CRIS_ASM_SUBTARGET_SPEC): Adjust for different TARGET_CPU_DEFAULT.
471 (CRIS_SUBTARGET_DEFAULT): Add CRIS_SUBTARGET_DEFAULT_ARCH.
472 * config/cris/cris.h: Sanity-check TARGET_CPU_DEFAULT for contents.
473 (CRIS_DEFAULT_TUNE, CRIS_ARCH_CPP_DEFAULT)
474 (CRIS_DEFAULT_ASM_ARCH_OPTION): New macros.
475 (CRIS_CC1_SUBTARGET_SPEC): Change default tuning to use
477 (CRIS_CPP_SUBTARGET_SPEC): Ditto. Add CRIS_ARCH_CPP_DEFAULT.
478 (ASM_SPEC): Add sanity-check erroring out when both -march= and
479 -mcpu= are specified. Pass on either as --march=v32.
480 (CRIS_ASM_SUBTARGET_SPEC): When neither -march= or -mcpu= are
481 specified, pass on CRIS_DEFAULT_ASM_ARCH_OPTION.
482 (CRIS_CPU_V32): New macro.
483 [!TARGET_CPU_DEFAULT]: Default-define as CRIS_CPU_BASE.
484 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]: Move default
485 TARGET_DEFAULT definition after new TARGET_CPU_DEFAULT definition.
486 Define v32-adjusted TARGET_DEFAULT.
487 (CRIS_DEFAULT_CPU_VERSION): Change to TARGET_CPU_DEFAULT from
489 (TARGET_V32): New macro.
490 (REG_ALLOC_ORDER_V32): New macro.
491 (HARD_REGNO_MODE_OK): Do not allow larger-than-register-size modes
492 into CRIS_ACR_REGNUM.
493 (enum reg_class): New classes ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS
494 and SPEC_GENNONACR_REGS.
495 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Adjust for new classes.
496 (REGNO_REG_CLASS): Give ACR_REGS for CRIS_ACR_REGNUM.
497 (MODE_CODE_BASE_REG_CLASS): Define, give for OCODE POST_INC
498 GENNONACR_REGS, BASE_REG_CLASS otherwise.
499 (REG_CLASS_FROM_LETTER): 'a' is for ACR_REGS.
500 (REGNO_MODE_CODE_OK_FOR_BASE_P): Define, refusing OCODE POST_INC
502 (PREFERRED_RELOAD_CLASS): Keep ACR_REGS as preferred.
503 (HARD_REGNO_RENAME_OK): Refuse CRIS_ACR_REGNUM as TO.
504 (EXTRA_CONSTRAINT): New constraint 'U'.
505 (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE)
506 (ASM_OUTPUT_ADDR_DIFF_ELT): Adjust for CRIS v32.
507 (BASE_OR_AUTOINCR_P): Refuse POST_INC for CRIS_ACR_REGNUM.
508 (SIMPLE_ADDRESS_P): Remove.
509 (GO_IF_LEGITIMATE_ADDRESS): Use BASE_OR_AUTOINCR_P, not redundant
510 SIMPLE_ADDRESS_P. Make one chained if-else, finishing as
511 non-match after BASE_OR_AUTOINCR_P for TARGET_V32.
512 (REGISTER_MOVE_COST): Just call the new function
513 cris_register_move_cost.
514 (enum cris_pic_symbol_type): Rename cris_gotrel_symbol to
515 cris_rel_symbol. All users changed.
516 (REGISTER_NAMES): Replace "pc" with "acr".
517 (ADDITIONAL_REGISTER_NAMES): Add "pc" for 15.
518 (ASM_OUTPUT_REG_PUSH): Change to v32-compatible sequence.
519 (ASM_OUTPUT_REG_POP): Change to v32-compatible syntax.
520 (ASM_OUTPUT_CASE_END): Just call the new function
521 cris_asm_output_case_end.
522 * gcc/config/cris/cris.md: Group related constants together, with
524 (CRIS_UNSPEC_PLT_GOTREL, CRIS_UNSPEC_PLT_PCREL, CRIS_UNSPEC_PCREL)
525 (CRIS_UNSPEC_CASESI): New constants.
526 (CRIS_UNSPEC_PLT): Remove constant.
527 (CRIS_ACR_REGNUM): New constant.
528 ("slottable"): New attr alternatives "has_return_slot" and
530 ("cc"): New attr alternatives "noov32" and "rev".
531 ((eq_attr "slottable" "has_call_slot"))
532 ((eq_attr "slottable" "has_return_slot")): New define_delays.
533 ("movdi", "movsi"): Adjust operands for CRIS v32.
534 ("tstdi", "cmpdi", "adddi3", "subdi3", "uminsi3")
535 ("indirect_jump"): Ditto. Make define_expand.
536 ("*tstdi_non_v32", "*tstdi_v32", "*tst<mode>_cmp")
537 ("*tst<mode>_non_cmp", "*cmpdi_non_v32", "*cmpdi_v32")
538 ("*movdi_v32", "*adddi3_non_v32", "*adddi3_v32")
539 ("*addsi3_non_v32", "*addsi3_v32", "*addhi3_non_v32")
540 ("*addhi3_v32", "*addqi3_non_v32", "*addqi3_v32")
541 ("*subdi3_non_v32", "*subdi3_v32", "*subsi3_non_v32")
542 ("*subsi3_v32", "*sub<mode>3_nonv32", "*sub<mode>3_v32")
543 ("*andqi3_non_v32", "*andqi3_v32", "*iorsi3_non_v32")
544 ("*iorsi3_v32", "*iorhi3_non_v32", "*iorhi3_v32")
545 ("*iorqi3_non_v32", "*iorqi3_v32", "*uminsi3_non_v32")
546 ("*uminsi3_v32", "*indirect_jump_non_v32", "*indirect_jump_v32")
547 ("*expanded_call_v32", "*expanded_call_value_v32"): New patterns,
548 for the corresponding standard name.
549 ("tst<mode>"): Limit to BW and make define_expand.
550 ("tstsi"): Make separate insn, adjusting for CRIS v32.
551 ("*cmp_swapext<mode>"): Adjust for v32. Specify "rev" for attr "cc".
552 ("cmpsi", "cmp<mode>"): Remove special cases for zero. Specify
554 ("*btst"): Don't match for TARGET_CCINIT. Replace test of
555 register with compatible "cmpq 0". Specify attr "cc".
556 ("*movdi_insn_non_v32"): New pattern, replacing "*movdi_insn" and
558 (define_split for DI move): Match CRIS v32 only.
559 ("*movsi_got_load", "*movsi_internal", "*addi"): Adjust for CRIS v32.
560 ("load_multiple", "store_multiple", "*addsbw_v32", "*addubw_v32")
561 ("*adds<mode>_v32", "*addu<mode>_v32", "*bound<mode>_v32")
562 ("*casesi_jump_v32", "*expanded_andsi_v32", "*expanded_andhi_v32")
563 ("*extop<mode>si_v32", "*extopqihi_v32", "*andhi_lowpart_v32")
564 ("*andqi_lowpart_v32", "cris_casesi_v32"): New patterns.
565 ("add<mode>3"): Make addsi3, addhi3 and addqi3 define_expand.
566 ("sub<mode>3"): Ditto subsi3, subhi3 and subqi3.
567 ("ior<mode>3"): Ditto iorsi3, iorhi3 and iorqi3.
568 ("*extopqihi_non_v32"): Replace "*extopqihi".
569 ("*extop<mode>si_non_v32"): Replace "*extop<mode>si".
570 ("*addxqihi_swap_non_v32"): Rename from "*extopqihi_swap", make
572 ("*extop<mode>si_swap_non_v32"): Ditto "*extop<mode>si_swap".
573 ("*expanded_andsi_non_v32"): Ditto "*expanded_andsi".
574 ("*expanded_andhi_non_v32"): Ditto "*expanded_andhi".
575 ("*andhi_lowpart_non_v32"): Ditto "*andhi_lowpart".
576 ("*andqi_lowpart_non_v32"): Ditto "*andqi_lowpart".
577 ("*expanded_call_non_v32"): Ditto "*expanded_call". Change from
578 "cris_general_operand_or_plt_symbol" to "general_operand".
579 ("*expanded_call_value_non_v32") Ditto "*expanded_call_value".
580 ("*casesi_adds_w", "mstep_shift", "mstep_mul")
581 ("*expanded_call_side", "*expanded_call_value_side")
582 (op-extend-split, op-extend-split-rx=rz, op-extend-split-swapped)
583 (op-extend-split-swapped-rx=rz, op-extend, op-split-rx=rz)
584 (op-split-swapped, op-split-swapped-rx=rz): Make non-v32 only.
585 ("dstep_mul", "xorsi3", "one_cmplsi2", "<shlr>si3")
586 ("*expanded_<shlr><mode>", "*<shlr><mode>_lowpart", "ashl<mode>3")
587 ("*ashl<mode>_lowpart", "abssi2", "clzsi2", "bswapsi2")
588 ("cris_swap_bits"): Specify "noov32" for attr "cc".
589 ("<su>mulsi3_highpart"): Ditto. Correct operand 0 to register_operand.
590 ("andqi3"): Make define_expand.
591 ("*return_expanded"): For attr "slottable", change from "has_slot"
592 to "has_return_slot".
593 ("cris_casesi_non_v32"): New pattern, old contents of "casesi".
594 ("casesi"): Divert into "cris_casesi_v32" and "cris_casesi_non_v32".
595 (moversideqi, movemsideqi, mover2side): Require
596 TARGET_SIDE_EFFECT_PREFIXES.
597 (gotplt-to-plt, gotplt-to-plt-side): Change from CRIS_UNSPEC_PLT
598 to CRIS_UNSPEC_PLT_GOTREL.
599 * config/cris/cris-protos.h (cris_register_move_cost)
600 (cris_cc0_user_requires_cmp, cris_asm_output_case_end): Declare.
602 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
605 * dwarf2out.c (dwarf_tag_name): Synchronize with dwarf2.h.
606 (is_type_die): Cover interface types.
607 (class_or_namespace_scope_p): Cover interface and class types.
608 (record_type_tag): New.
609 (gen_inlined_structure_type_die): Use it.
610 (gen_struct_or_union_type_die): Likewise.
611 (prune_unused_types_walk): Cover interface types.
612 * langhooks.h (classify_record): New enum.
613 (classify_record): New member in struct langhooks_for_types.
614 * langhooks-def.h (LANG_HOOKS_CLASSIFY_RECORD): New.
615 (LANGHOOKS_FOR_TYPES_INITIALIZER): Adjust.
617 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
619 * dwarf2out.c (reference_to_unused): Don't emit strings in
620 initializers just because of debug information.
621 * tree.h (TREE_ASM_WRITTEN): Document use for STRING_CSTs.
623 2007-12-15 Sebastian Pop <sebastian.pop@amd.com>
625 * tree-scalar-evolution.c (number_of_iterations_for_all_loops): Replace
626 print_loop_ir with print_loops.
627 * tree-flow.h (dot_cfg, debug_loops, debug_loop, debug_loop_num,
628 print_loops, print_loops_bb): Declare.
629 * tree-cfg.c (print_loops_bb): New.
630 (print_loop): Print header, latch, bounds, estimation of iterations.
631 (print_loop_and_siblings): New.
632 (print_loop_ir): Renamed print_loops.
633 (debug_loop_ir): Renamed debug_loops.
634 (debug_loop, debug_loop_num): New.
636 2007-12-15 Bernhard Fischer <aldot@gcc.gnu.org>
638 * tree-flow-inline.h.c (next_readonly_imm_use): Fix typo in comment.
640 2007-12-15 Bernhard Fischer <aldot@gcc.gnu.org>
642 * toplev.c (process_options): Fix typo in warning.
644 2007-12-14 Jakub Jelinek <jakub@redhat.com>
647 * config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU
648 DImode comparisons against constant with all 1's in the lower word.
650 2007-12-14 Uros Bizjak <ubizjak@gmail.com>
652 * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand
653 constraint for operand 2. Use nonimm_not_xmm0_operand constraint
654 for operand 4. Update arguments in the call to
655 gen_sse4_2_pcmpestr_cconly.
656 (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn
657 template accordingly.
658 (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2.
659 Use nonimm_not_xmm0_operand constraint for operand 3. Update
660 arguments in the call to gen_sse4_2_pcmpistr_cconly.
661 (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn
662 template accordingly.
664 2007-12-14 Richard Guenther <rguenther@suse.de>
667 * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add
668 parameter to say whether to unlink immediate uses.
669 * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not
670 mark the artificial stmt as modified. Unlink immediate uses
672 * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller.
673 * tree-ssa-pre.c (insert_fake_stores): Likewise.
675 2007-12-13 Eric Botcazou <ebotcazou@libertysurf.fr>
678 * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
679 * tree-complex.c (init_dont_simulate_again): Return true if there are
680 uninitialized loads generated by gimplify_modify_expr_complex_part.
681 * tree-gimple.c (is_gimple_reg_type): Return false for complex types
683 * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
684 (warn_uninit): ...here. Use ssa_undefined_value_p.
685 * tree-ssa-pre.c (is_undefined_value): Delete.
686 (phi_translate_1): Use ssa_undefined_value_p.
687 (add_to_exp_gen): Likewise.
688 (make_values_for_stmt): Likewise.
689 * tree-flow.h (ssa_undefined_value_p): Declare.
691 2007-12-13 Andrew Pinski <pinskia@gmail.com>
692 David Daney <ddaney@avtrex.com>
695 * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING
698 2007-12-13 Jakub Jelinek <jakub@redhat.com>
700 PR rtl-optimization/32636
701 * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx
702 regno in entry_block_defs even if HAVE_prologue && epilogue_completed.
704 2007-12-13 Uros Bizjak <ubizjak@gmail.com>
705 Richard Guenther <rguenther@suse.de>
708 * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16,
709 _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16,
710 _mm_shuffle_epi32): Cast non-constant input values to either __m64,
711 __m128, __m128i or __m128d in a macro version of the intrinsic.
712 Cast constant input values to int.
713 * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto.
714 * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16,
715 _mm_roti_epi32, _mm_roti_epi64): Ditto.
716 * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd,
717 _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8,
718 _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32,
719 _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri,
720 _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro,
721 _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro,
722 _mm_cmpestrs, _mm_cmpestrz): Ditto.
723 * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto.
724 * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw,
725 _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto.
726 * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd,
727 _mm_round_ps, _mm_round_ss): Ditto.
729 2007-12-13 Richard Guenther <rguenther@suse.de>
731 PR tree-optimization/34450
732 * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param.
733 * invoke.texi (sccvn-max-scc-size): Document.
734 * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency.
735 * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false
737 * tree-ssa-sccvn.c (params.h): Include.
738 (DFS): Return true if all went well, return false as soon as
739 a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE.
740 (run_scc_vn): Return true if all went well, return false if
741 we aborted during DFS.
742 * tree-ssa-pre.c (execute_pre): Check if SCCVN finished
743 successfully, otherwise bail out.
745 2007-12-13 Olga Golovanevsky <olga@il.ibm.com>
747 * ipa-struct-reorg.c (is_candidate): Print information to dump
748 file when the type is initialized.
749 (get_stmt_accesses): Likewise when a structure has bitfields
750 or field access is too complicate.
751 (safe_cond_expr_check): Likewise for unsafe condition expressions.
752 (exclude_cold_structs): Likewise for cold structures.
753 (collect_structures): Suppress redundant print when there are
754 no structures to transform.
755 (do_reorg): Print to dump file a number of structures that
757 (dump_new_types): Print a number of new types to replace
758 an original structure type.
760 2007-12-13 Olga Golovanevsky <olga@il.ibm.com>
762 * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg
763 option and struct-reorg-cold-struct-ratio parameter.
765 2007-12-13 Torbjorn Granlund <tege@swox.com>
767 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for
768 ZERO_EXTEND when computing costs for widening multiplication.
770 2007-12-13 Richard Earnshaw <rearnsha@arm.com>
773 * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
774 exit when using hard FPA.
775 * config/arm/ieee754-df.S (floatdidf): Likewise.
777 2007-12-12 Jakub Jelinek <jakub@redhat.com>
780 * doc/install.texi: Document that for MinGW only runtime 3.12 and
783 2007-12-12 David Edelsohn <edelsohn@gnu.org>
785 * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE.
787 2007-12-12 Aldy Hernandez <aldyh@redhat.com>
789 PR tree-optimization/32901
790 * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we
791 are assigning from a constant constructor.
792 Fix wrapping in function comment.
794 2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com>
796 * config/s390/s390.c (s390_O_constraint_str): Limit the range
797 for 'On' to -4G+1..-1.
798 * config/s390/constraints.md: Adjust comment accordingly.
800 2007-12-11 Nathan Sidwell <nathan@codesourcery.com>
802 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx
805 2007-12-11 Kai Tietz <kai.tietz@onevision.com>
807 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit
808 target same as 32-bit.
810 2007-12-10 Jakub Jelinek <jakub@redhat.com>
812 PR tree-optimization/34371
813 * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged
815 (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field.
816 * tree-vectorizer.c (set_prologue_iterations,
817 slpeel_tree_peel_loop_to_edge): Call unshare_expr on
818 LOOP_VINFO_NITERS_UNCHANGED before using it.
820 2007-12-10 Eric Botcazou <ebotcazou@libertysurf.fr>
823 * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large.
824 (ix86_expand_setmem): Likewise.
826 2007-12-10 Kenneth Zadeck <zadeck@naturalbridge.com>
828 PR rtl-optimization/34302
829 * auto-inc-dec.c (attempt_change): Change place where move is
832 2007-12-10 Jakub Jelinek <jakub@redhat.com>
834 * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For
835 Fortran multi-dimensional arrays use DW_AT_ordering
838 2007-12-10 Paolo Bonzini <bonzini@gnu.org>
841 * config/i386/i386.c (override_options): Enable -fvect-cost-model.
843 2007-12-10 Uros Bizjak <ubizjak@gmail.com>
845 * config/i386/i386.c (ix86_function_regparm): Do not check global_regs
846 array, registers that are members of global_regs are also members of
847 fixed_regs array. Use REGPARM_MAX to check that no regparm hard
848 register is taken by a fixed register variable. Check up to and
849 including DI_REG when adjusting regparm value due to fixed regs usage.
850 (rep_prefix_usable): Check fixed_regs array, not global_regs array for
851 available hard registers.
852 (ix86_expand_strlen): Ditto.
853 * config/i386/i386.md (strmov): Ditto.
856 2007-12-10 Kaz Kojima <kkojima@gcc.gnu.org>
858 * genopinit.c: Include tm_p.h in generated file.
860 * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
861 to extract the integer from operands[2].
862 (vec_setv2di_internal): Likewise.
864 * config/arm/arm.c (arm_size_return_regs): Make return type unsigned.
865 (arm_init_neon_builtins): Move code after declarations.
867 2007-12-10 Hans-Peter Nilsson <hp@axis.com>
869 * reload.c (find_reloads_address_1): To properly mark as an
870 autoincdec, pass X for non-NULL OUT in call to push_reload for
871 autoincdec which can't be trivially used as an address.
873 2007-12-10 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
874 Hans-Peter Nilsson <hp@axis.com>
876 * caller-save.c (insert_one_insn): If inserting before a call_insn
877 then the registers containing the arguments of the call are
878 live_throughout in the new insn.
880 2007-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
884 * pa.md: Consolidate HImode and QImode move patterns into one pattern
885 each, eliminating floating-point alternatives.
886 * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
888 * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
889 * pa.c (pa_secondary_reload): Use an intermediate general register
890 for copies to/from floating-point register classes. Simplify code
891 SHIFT_REGS class. Provide additional comments.
892 (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
893 * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
894 (SECONDARY_MEMORY_NEEDED): Delete define.
895 (INT14_OK_STRICT): Define.
896 (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
898 (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
899 (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
901 (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
902 Align DImode offsets when generating 64-bit code.
903 * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
904 (CANNOT_CHANGE_MODE_CLASS): Define.
905 * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
906 (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.
908 2007-12-09 Jakub Jelinek <jakub@redhat.com>
911 * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define.
912 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
913 * langhooks.h (struct array_descr_info): Forward declaration.
914 (struct lang_hooks_for_types): Add get_array_descr_info field.
915 * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New.
916 (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2
918 * dwarf2out.h (struct array_descr_info): New type.
919 * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to
920 DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size.
921 (descr_info_loc, add_descr_info_field, gen_descr_array_type_die):
923 (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info
924 and gen_descr_array_type_die.
926 2007-12-08 Richard Guenther <rguenther@suse.de>
928 PR tree-optimization/34391
929 * tree-vect-transform.c (vect_setup_realignment): Mark new
930 symbols for renaming.
932 2007-12-07 Bob Wilson <bob.wilson@acm.org>
934 * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
935 (ASM_OUTPUT_DWARF_PCREL): Define.
937 2007-12-07 Richard Guenther <rguenther@suse.de>
940 * opts.c (common_handle_option): Handle OPT_fforce_addr.
942 2007-12-07 Aldy Hernandez <aldyh@redhat.com>
944 * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win.
945 (LEGITIMIZE_RELOAD_ADDRESS): Same.
947 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
950 * doc/install.texi: Explain how to check for a clean environment when
953 2007-12-07 Richard Guenther <rguenther@suse.de>
955 * tree-profile.c (gcov_type_tmp_var): New global variable.
956 (tree_gen_edge_profiler): Use a single shared variable decl per
957 function for edge counter incrementing.
958 (tree_profiling): Re-set the shared variable.
960 2007-12-06 Bob Wilson <bob.wilson@acm.org>
962 * config/xtensa/xtensa.c (xtensa_va_start): Add prototype.
964 2007-12-06 Tom Tromey <tromey@redhat.com>
967 * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache.
969 2007-12-06 Richard Sandiford <rsandifo@nildram.co.uk>
971 * config/mips/mips.c (mips_function_ok_for_sibcall): Check
972 targetm.binds_local_p as well as DECL_EXTERNAL.
974 2007-12-06 Harsha Jagasia <harsha.jagasia@amd.com>
976 * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
977 (set_prologue_iterations): New. Set the prologue iterations to total
978 number of scalar iterations if the cost model check indicates that
979 scalar code should be generated.
980 (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for
981 generating the cost condition for epilog. Call
982 set_prologue_iterations to generate cost condition for prolog.
983 (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
984 * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
985 (slpeel_tree_peel_loop_to_edge): Update declaration.
986 (set_prologue_iterations): New declaration.
987 * tree-vect-analyze.c (vect_analyze_loop_form): Update
988 LOOP_VINFO_NITERS_UNCHANGED.
989 * tree-vect-transform.c
990 (vect_estimate_min_profitable_iters): Add new parameter and
991 code to check if run time cost model test is needed.
992 Remove code that adds builtin vectorization cost to scalar
993 outside cost for the run time cost model test. If run time
994 cost model test is needed add the appropriate guard cost to
995 the scalar outside cost. The guard cost depends on whether
996 the guard is generated at versioning or at prolog generation
997 or at epilog generation. Change cost model equation to include
999 (conservative_cost_threshold): New. Return the less conservative
1000 profitability threshold between the cost model threshold and the
1001 user defined vectorization threshold.
1002 (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
1003 (vect_do_peeling_for_alignment): Same.
1004 (vect_loop_versioning): Same.
1005 (vect_create_cond_for_align_checks): ANDs the cost model condition
1006 with the alignment condition.
1007 (vect_transform_loop): Call loop versioning only when there is a
1008 misalignment or an aliasing problem.
1010 2007-12-06 Jakub Jelinek <jakub@redhat.com>
1013 * tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
1014 (execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
1015 BUILT_IN_VA_COPY and BUILT_IN_VA_END.
1017 * target.h (struct ggc_target): Add expand_builtin_va_start hook.
1018 * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
1019 (TARGET_INITIALIZER): Add it.
1020 * builtins.c (expand_builtin_va_start): Use
1021 targetm.expand_builtin_va_start hook instead of
1022 EXPAND_BUILTIN_VA_START macro.
1023 * alpha/alpha.c (alpha_va_start): Made static.
1024 (override_options): Clear targetm.expand_builtin_va_start if
1026 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1027 * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
1028 * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
1029 * alpha/alpha-protos.h (alpha_va_start): Remove prototype.
1030 * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
1031 * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
1032 (xtensa_va_start): Made static.
1033 * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
1034 * pa/pa-protos.h (hppa_va_start): Remove prototype.
1035 * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
1036 * pa/pa.c (hppa_va_start): Made static, add prototype.
1037 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1038 * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
1039 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1040 * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
1041 * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
1042 * i386/i386.c (override_options): Clear
1043 targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
1044 (ix86_va_start): Made static.
1045 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1046 * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
1047 * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
1048 * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
1049 * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
1050 * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
1051 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1052 * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
1053 * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
1054 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1055 (rs6000_override_options): Clear targetm.expand_builtin_va_start if
1056 DEFAULT_ABI != ABI_V4.
1057 * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
1058 * spu/spu.c (spu_va_start): Made static, add prototype.
1059 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1060 * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
1061 * spu/spu-protos.h spu_va_start): Remove prototype.
1062 * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
1063 * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
1065 * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static.
1066 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1067 * s390/s390-protos.h (s390_va_start): Remove prototype.
1068 * s390/s390.c (s390_va_start): Made static.
1069 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1070 * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
1071 * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
1072 * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
1073 * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
1074 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1075 * arc/arc.c (arc_va_start): Made static, add prototype.
1076 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1077 * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
1078 * arc/arc-protos.h (arc_va_start): Remove prototype.
1079 * mt/mt-protos.h (mt_va_start): Remove prototype.
1080 * sparc/sparc.c (sparc_va_start): Made static, add prototype.
1081 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1082 * sparc/sparc-protos.h (sparc_va_start): Remove prototype.
1083 * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
1084 * sh/sh.c (sh_va_start): Made static, add prototype.
1085 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1086 * sh/sh-protos.h (sh_va_start): Remove prototype.
1087 * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
1088 * mips/mips-protos.h (mips_va_start): Remove prototype.
1089 * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
1090 * mips/mips.c (mips_va_start): Made static.
1091 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1093 2007-12-06 Uros Bizjak <ubizjak@gmail.com>
1095 * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
1096 "flag_tree_parallelize_loops > 1".
1098 2007-12-06 Zdenek Dvorak <ook@ucw.cz>
1099 Dorit Nuzman <dorit@il.ibm.com>
1100 Jakub Jelinek <jakub@redhat.com>
1102 PR tree-optimization/34005
1103 * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
1104 * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
1105 (gimplify_pure_cond_expr): New function.
1106 (generic_expr_could_trap_p): New function.
1107 (gimplify_cond_expr): Call gimplify_pure_cond_expr.
1108 (force_gimple_operand): Initialize new field allow_rhs_cond_expr.
1110 2007-12-06 Andreas Krebbel <krebbel1@de.ibm.com>
1112 * config/s390/s390.c (s390_emit_stack_tie): New function.
1113 (s390_emit_prologue): Emit a stack tie when writing to the
1115 * config/s390/s390.md ("stack_tie"): New insn definition.
1117 2007-12-06 Ben Elliston <bje@au.ibm.com>
1120 * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.
1122 2007-12-05 Jakub Jelinek <jakub@redhat.com>
1125 * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
1126 number of bits set in C1 if a mode mask for some mode can be used
1129 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
1131 * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
1134 2007-12-05 Richard Guenther <rguenther@suse.de>
1136 PR tree-optimization/34138
1137 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1138 Do not forward propagate addresses if that changes volatileness of
1139 the pointed-to type.
1141 2007-12-05 Uros Bizjak <ubizjak@gmail.com>
1144 * config/i386/i386.c (ix86_function_regparm): Also check for fixed
1145 registers when checking that regparm registers are available.
1146 Lower regparm value due to fixed registers usage in addition to
1149 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
1151 * sparseset.c: Include config.h and system.h before sparseset.h.
1152 * sparseset.h: Remove inclusion of system.h.
1154 2007-12-05 Jakub Jelinek <jakub@redhat.com>
1155 Richard Sandiford <rsandifo@nildram.co.uk>
1157 * optabs.c (init_insn_codes): New function.
1158 (new_optab): Delete.
1159 (init_optab, init_optabv): Don't call new_optab.
1160 (init_convert_optab): Don't clear the insn codes.
1161 (init_optabs): Call init_insn_codes.
1163 2007-12-04 Jakub Jelinek <jakub@redhat.com>
1165 * omp-low.c (optimize_omp_library_calls): New function.
1166 (expand_omp_parallel): Call it if optimizing.
1169 * stmt.c (expand_stack_restore): Call expand_normal on var to get
1170 rtx for it instead of assuming it will be a VAR_DECL.
1172 2007-12-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1174 * c-parser (c_parser_statement_after_labels): Move error from here...
1175 (c_parser_label): ... to here. Check that the declaration is not
1176 actually just another label.
1178 2007-12-04 Richard Guenther <rguenther@suse.de>
1182 * tree-ssa-operands.c (get_addr_dereference_operands): If we
1183 fall back to using the SMTs aliases, make sure to add virtual
1184 operands for the SMT itself.
1185 (create_ssa_artificial_load_stmt): Fix typo. Make sure to also
1186 clear the loaded and stored symbols bitmaps.
1188 2007-12-04 Ben Elliston <bje@au.ibm.com>
1190 * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
1192 2007-12-04 Ben Elliston <bje@au.ibm.com>
1194 * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
1196 2007-12-03 Steven Bosscher <stevenb.gcc@gmail.com>
1199 * doc/invoke.texi: Remove -fforce-addr documentation.
1200 * expr.c (emit_move_insn): Remove use of flag_force_addr.
1201 (expand_expr_real_1): Same.
1202 (do_tablejump): Same.
1203 Call memory_address instead of memory_address_noforce.
1204 * expr.h (memory_address_noforce): Remove prototype.
1205 * explow.c (memory_address): Remove support for flag_force_addr.
1206 (validize_mem): Same.
1207 (memory_address_noforce): Remove.
1208 * common.opt: Add dummy documentation for -fforce-addr.
1209 * combine.c (can_combine_p): Remove -fforce-addr comment.
1210 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
1212 * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
1213 relating to memory_address_noforce.
1214 * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
1215 * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
1217 2007-12-03 Jakub Jelinek <jakub@redhat.com>
1219 * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
1220 with !ctx->is_nested.
1221 (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
1222 even if !ctx->is_nested.
1223 (lower_copyprivate_clauses, lower_send_clauses,
1224 lower_send_shared_vars): Call lookup_decl_in_outer_ctx
1228 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
1229 (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
1230 and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
1231 (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
1232 (X & C2) << C1 into (X << C1) & (C2 << C1) and
1233 (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
1236 PR tree-optimization/33453
1237 * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
1238 for pointer addition.
1239 * tree-parloops.c (canonicalize_loop_ivs): Likewise.
1240 (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
1243 2007-12-03 Bernd Schmidt <bernd.schmidt@analog.com>
1245 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
1248 2007-12-03 Razya Ladelsky <razya@il.ibm.com>
1250 * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
1252 2007-12-03 Jakub Jelinek <jakub@redhat.com>
1255 * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
1256 * common.opt (ftree-store-copy-prop): Use the same help text as for
1259 2007-12-02 Ayal Zaks <zaks@il.ibm.com>
1260 Revital Eres <eres@il.ibm.com>
1262 * modulo-sched.c (calculate_must_precede_follow,
1263 try_scheduling_node_in_cycle): New functions.
1264 (sms_schedule_by_order): Call the new functions.
1265 (ps_insn_find_column): Use must_follow and must_precede only if
1267 (ps_insn_advance_column): Likewise.
1269 2007-12-02 Ayal Zaks <zaks@il.ibm.com>
1270 Revital Eres <eres@il.ibm.com>
1272 * modulo-sched.c (get_sched_window): Fix the direction of the
1273 scheduling window and add dump info.
1275 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
1277 * config/sh/sh.md (cmpgeusi_t): Fix condition.
1279 2007-11-30 Jan Hubicka <jh@suse.cz>
1281 * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.
1283 2007-11-30 Seongbae Park <seongbae.park@gmail.com>
1285 PR rtl-optimization/34171
1286 * cfgrtl.c (update_bb_for_insn_chain): New function,
1287 refactored from update_bb_for_insn.
1288 (update_bb_for_insn): Call update_bb_for_insn.
1289 (rtl_merge_blocks, try_redirect_by_replacing_jump):
1290 Replace a loop with update_bb_for_insn_chain call.
1291 (cfg_layout_merge_blocks): Add a call to
1292 update_bb_for_insn_chain. Replace the for loop
1293 with a call to update_bb_for_insn_chain.
1295 2007-11-30 Ben Elliston <bje@au.ibm.com>
1297 * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.
1299 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
1301 PR tree-optimization/34244
1302 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1303 (record_numbers_of_iterations): New function.
1304 (execute_vrp): Cache the numbers of iterations of loops.
1305 * tree-scalar-evolution.c (scev_reset_except_niters): New function.
1306 (scev_reset): Use scev_reset_except_niters.
1307 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1309 2007-11-29 Jan Hubicka <jh@suse.cz>
1310 Jakub Jelinek <jakub@redhat.com>
1312 PR tree-optimization/33434
1313 * tree-inline.c (setup_one_parameter): If the value passed to
1314 a parameter is never used, don't set it up.
1316 2007-11-29 Jakub Jelinek <jakub@redhat.com>
1319 * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
1320 * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.
1322 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
1324 * Makefile.in: Use separate vpath lines for each path.
1326 2007-11-29 Ben Elliston <bje@au.ibm.com>
1328 * SERVICE: Update URL.
1330 2007-11-28 Jakub Jelinek <jakub@redhat.com>
1332 PR tree-optimization/34140
1333 * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
1334 loop->header has virtual phi nodes.
1336 2007-11-28 Richard Sandiford <rsandifo@nildram.co.uk>
1339 * builtins.c (expand_builtin_nonlocal_goto): Also emit a use
1340 of GP register, if valid and fixed.
1343 2007-06-21 David Daney <ddaney@avtrex.com>
1346 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
1347 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
1348 (exception_receiver): Renamed to ...
1349 (nonlocal_goto_receiver): ... this.
1351 2007-11-27 H.J. Lu <hongjiu.lu@intel.com>
1352 Joey Ye <joey.ye@intel.com>
1355 * config/i386/i386.c (function_arg_32): Don't pass aggregate
1356 arguments in ECX/EDX for fastcall.
1358 2007-11-28 Rask Ingemann Lambertsen <rask@sygehus.dk>
1360 * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
1362 * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
1363 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
1365 2007-11-28 Ben Elliston <bje@au.ibm.com>
1367 * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
1368 (maix32): Add Negative(maix64).
1370 2007-11-27 Jakub Jelinek <jakub@redhat.com>
1372 PR tree-optimization/34016
1373 * tree-ssa-loop.c (pass_linear_transform): Add
1374 TODO_update_ssa_only_virtuals to todo_flags_finish.
1376 2007-11-27 Eric B. Weddington <eric.weddington@atmel.com>
1378 * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
1379 * config/avr/avr.h (LINK_SPEC): Likewise.
1380 (CRT_BINUTILS_SPECS): Likewsie.
1381 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1383 2007-11-27 Jakub Jelinek <jakub@redhat.com>
1386 * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
1387 MEM_SIZE is set on all MEMs.
1389 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
1391 * config/s390/s390.opt (mhard-float): Add the option to be
1392 overridden. That was missing in my last patch.
1394 2007-11-27 Richard Guenther <rguenther@suse.de>
1396 PR tree-optimization/34241
1397 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
1398 to only delete real conversion chains.
1400 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
1402 * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
1403 mhard-float, mlong-double-64, mlong-double-128): Add the
1404 option to be overridden.
1406 2007-11-27 Richard Guenther <rguenther@suse.de>
1408 * builtins.c (fold_builtin_1): Verify the argument types
1409 of BUILT_IN_ISNORMAL.
1410 (fold_builtin_n): Verify the number of arguments to variadic
1413 2007-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
1415 * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
1416 * doc/invoke.texi (Blackfin Options): Document the effects.
1418 2007-11-27 Ben Elliston <bje@au.ibm.com>
1420 * config/rs6000/sysv4.opt (m32): Add Negative(m64).
1421 (m64): Add Negative(m32).
1422 * config/rs6000/darwin.opt (m32): Add Negative(m64).
1423 (m64): Add Negative(m32).
1425 2007-11-26 Eric Botcazou <ebotcazou@adacore.com>
1427 * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
1429 2007-11-26 Michael Meissner <michael.meissner@amd.com>
1432 * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
1433 constant, avoid calling emit_cmp_and_jump_insns. Use counter_mode
1434 to get the mode for loading a pseudo register with a count rather
1435 than duplicating code.
1437 2007-11-25 Eric B. Weddington <eric.weddington@atmel.com>
1439 * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
1440 * config/avr/avr.h (LINK_SPEC): Likewise.
1441 (CRT_BINUTILS_SPECS): Likewsie.
1442 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1444 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1446 * c-common.c (conversion_warning): Use get_unwidened instead of
1449 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1452 * c-parser.c (struct c_parser): New bit in_if_block.
1453 (c_parser_compound_statement_nostart): Handle unexpected 'else'
1455 (c_parser_statement_after_labels): Set in_if_block to false while
1457 (c_parser_if_body): Don't call c_parser_statement_after_labels if
1458 a semicolon is found, just consume it. Don't call
1459 c_parser_statement_after_labels if an open brace is found, call
1460 c_parser_compound_statement instead.
1461 (c_parser_else_body): New.
1462 (c_parser_if_statement): Set in_if_block to true when parsing the
1463 body of the 'if' statement. Use c_parser_else_body.
1465 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
1468 * c-decl.c (store_parm_decls): Pass 'false' for the new
1469 allocate_struct_function parameter.
1470 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1471 * tree-parloops.c (create_loop_fn): Likewise.
1472 * function.c (push_function_context_to, push_struct_function,
1473 init_function_start): Likewise.
1474 (allocate_struct_function): Add boolean parameter.
1475 * tree.h (allocate_struct_function): Add boolean parameter.
1476 * function.h (struct function): Move returns_struct and
1477 returns_pcc_struct to the end of the structure definiton.
1479 2007-11-26 Uros Bizjak <ubizjak@gmail.com>
1482 * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
1483 virtual registers are already instantiated.
1484 (truncxf<mode>2): Ditto.
1485 (floatsi<mode>2): Ditto.
1486 (floatdisf2): Ditto.
1487 (floatdidf2): Ditto.
1489 2007-11-26 Rask Ingemann Lambertsen <rask@sygehus.dk>
1492 * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
1493 the address before it is clobbered.
1495 2007-11-26 Nick Clifton <nickc@redhat.com>
1497 * config/mn10300/mn10300.md: (call_internal): Remove mode on
1498 operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
1499 (call_value_internal): Remove mode on operands 0 and 1 in order to
1500 match UNPSEC'ed calls generated in PIC mode.
1501 (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
1504 2007-11-26 Richard Guenther <rguenther@suse.de>
1507 * builtins.c (expand_builtin_pow): Use expand_expr to expand
1508 the result of build_call_expr.
1510 2007-11-26 Steven Bosscher <stevenb.gcc@gmail.com>
1511 Revital Eres <eres@il.ibm.com>
1514 * bb-reorder.c (insert_section_boundary_note): Clear
1515 BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.
1517 2007-11-26 Richard Sandiford <rsandifo@nildram.co.uk>
1519 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.
1521 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1523 * dwarf2asm.c (splay_tree_compare_strings): New function.
1524 (dw2_force_const_mem): Use it.
1526 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1528 * tree.c (type_hash_add): Don't violate strict aliasing rules.
1530 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1533 * c-typeck.c (tagged_types_tu_compatible_p): Enable exact
1534 matches between anonymous union fields.
1536 2007-11-26 Alexandre Oliva <aoliva@redhat.com>, Jan Hubicka <jh@suse.cz>
1538 * tree-ssa-live.c (remove_unused_scope_block_p): Drop
1539 declarations and blocks only after inlining. Check that
1540 non-empty blocks are not dropped.
1541 * tree-inline.c (expand_call_inline): Check that functions are
1542 not inlined too late.
1544 2007-11-26 Ben Elliston <bje@au.ibm.com>
1546 * unwind-dw2-fde.c: Fix comment typo.
1547 * unwind-generic.h: Likewise, fix comment typos.
1549 2007-11-25 Richard Sandiford <rsandifo@nildram.co.uk>
1551 * tree-sra.c (scalarize_use): Adjust the vpos argument to
1552 sra_explode_bitfield_assignment in cases where the type is
1553 wider than the bitfield.
1555 2007-11-25 Richard Guenther <rguenther@suse.de>
1557 * tree.h (struct tree_block): Move locus member next to flags.
1558 * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
1559 (SCOPE_LIST_CONCAT): Likewise.
1560 (pop_scope): Likewise.
1561 * function.c (instantiate_decls_1): Likewise.
1562 (setjmp_vars_warning): Likewise.
1563 * emit-rtl.c (set_used_decls): Likewise.
1564 * tree-inline.c (add_lexical_block): Likewise.
1566 2007-11-24 Hans-Peter Nilsson <hp@axis.com>
1568 * rtlanal.c (label_is_jump_target_p): Return true for a matching
1570 * reorg.c (fill_slots_from_thread): Correct last change to use
1571 NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and
1572 decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
1573 * jump.c (mark_jump_label_1): Add comment for last change
1574 regarding JUMP_LABEL setting.
1575 * gcse.c (add_label_notes): Remove conditional that the label is
1576 mentioned in insn before adding regnote.
1577 * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
1578 single_set insn only feeding a label to a jump through a
1579 register that dies there.
1581 2007-11-23 Dirk Mueller <dmueller@suse.de>
1582 Richard Guenther <rguenther@suse.de>
1585 * tree-vrp.c (check_array_ref): Move check for valid location..
1586 (check_array_bounds) here. Use EXPR_HAS_LOCATION().
1588 2007-11-23 Hans-Peter Nilsson <hp@axis.com>
1590 * reload.c (find_reloads_address_1) <autoincdec cases>:
1591 Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code.
1593 2007-11-23 Richard Guenther <rguenther@suse.de>
1594 Michael Matz <matz@suse.de>
1596 PR tree-optimization/34176
1597 * alloc-pool.h (empty_alloc_pool): Declare.
1598 * alloc-pool.c (empty_alloc_pool): New function.
1599 * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
1600 valid table if a lookup from the optimistic table failed.
1601 (vn_unary_op_lookup): Likewise.
1602 (vn_binary_op_lookup): Likewise.
1603 (vn_phi_lookup): Likewise.
1604 (process_scc): Clear optimistic tables before every iteration.
1606 2007-11-23 Richard Guenther <rguenther@suse.de>
1608 * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
1609 (merge_alias_info): Do verification only if checking is
1610 enabled. Merge flow-sensitive alias information in simple cases.
1611 * tree-ssa-operands.c (get_addr_dereference_operands): Also
1612 complain about missing NMTs.
1614 2007-11-23 Jakub Jelinek <jakub@redhat.com>
1617 * c-common.c (conversion_warning): For INTEGER_TYPE to
1618 INTEGER_TYPE conversions call get_narrower on expr to avoid
1619 spurious warnings from binop shortening or when the implicit
1620 conversion can't change the value.
1622 2007-11-22 Joseph Myers <joseph@codesourcery.com>
1625 * c-decl.c (set_array_declarator_inner): Don't give error for
1626 static or type qualifiers in abstract declarator. Remove
1627 abstract_p parameter.
1628 * c-tree.h (set_array_declarator_inner): Update prototype.
1629 * c-parser.c (c_parser_direct_declarator_inner): Update call to
1630 set_array_declarator_inner.
1631 * doc/standards.texi: Update for C99 TC3.
1633 2007-11-22 Hans-Peter Nilsson <hp@bitrange.com>
1635 * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
1636 line in my edit of the last change.
1638 2007-11-22 Jakub Jelinek <jakub@redhat.com>
1641 * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
1642 and TREE_READONLY on the fn decl rather than passing a chain
1645 2007-11-22 Kaz Kojima <kkojima@gcc.gnu.org>
1647 * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.
1649 2007-11-22 Uros Bizjak <ubizjak@gmail.com>
1651 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
1652 of ix86_arch and ix86_tune into a switch statement.
1653 (enum processor_type): Default PROCESSOR_I386 to 0.
1654 * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
1655 of "ix86_tune == PROCESSOR_K6".
1656 (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
1659 2007-11-22 Tom Tromey <tromey@redhat.com>
1661 * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
1662 avoid writing into string allocated by ggc_alloc_string.
1664 2007-11-21 Kaz Kojima <kkojima@gcc.gnu.org>
1667 * config/sh/sh.md (binary_sf_op): Remove.
1668 (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
1669 * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
1670 and gen_binary_sf_op1.
1672 2007-11-21 Hans-Peter Nilsson <hp@axis.com>
1674 * regclass.c (init_reg_autoinc): Fix typo preventing test of
1675 secondary output reload when setting forbidden_inc_dec_class.
1677 2007-11-21 Richard Guenther <rguenther@suse.de>
1679 PR tree-optimization/34148
1680 * tree-ssa-structalias.c (create_variable_info_for): Do not use
1681 field-sensitive PTA for single-element structures.
1682 * tree-ssa-alias.c (create_overlap_variables_for): Do not create
1683 SFTs for single-element structures.
1685 2007-11-20 Richard Guenther <rguenther@suse.de>
1688 * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
1689 of the signed INT_CST_LT.
1690 * stmt.c (expand_case): Likewise.
1691 (estimate_case_costs): Likewise.
1693 2007-11-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
1695 * read-rtl.c (fatal_expected_char): Print EOF as text rather that
1696 its binary representation.
1698 2007-11-20 Richard Guenther <rguenther@suse.de>
1700 * tree-ssa-operands.c (add_virtual_operand): Consistently prune
1703 2007-11-20 Thiemo Seufer <ths@mips.com>
1705 * config/mips/mips.c (mips_file_start): Add support for
1706 flagging 32-bit code with -mfp64 floating-point.
1708 2007-11-20 Jakub Jelinek <jakub@redhat.com>
1711 * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
1712 (c_gimplify_expr): Use it.
1714 2007-11-20 Ben Elliston <bje@au.ibm.com>
1716 * config/spu/spu_mfcio.h: Fix typo.
1718 2007-11-20 Ben Elliston <bje@au.ibm.com>
1720 * unwind.inc: Comment that unwind-sjlj.c includes this file.
1722 2007-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1723 Ben Elliston <bje@au.ibm.com>
1725 * config/spu/mfc_tag_release.c: New file.
1726 * config/spu/mfc_multi_tag_release.c: Likewise.
1727 * config/spu/mfc_multi_tag_reserve.c: Likewise.
1728 * config/spu/mfc_tag_release.c: Likewise.
1729 * config/spu/mfc_tag_reserve.c: Likewise.
1730 * config/spu/mfc_tag_table.c: Likewise.
1731 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
1732 (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
1733 * config/spu/spu_mfcio.h: Avoid <stdint.h>.
1734 (uint64_t): Typedef if __IN_LIBGCC2 is defined.
1735 (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
1736 (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
1737 mfc_multi_tag_release): Likewise.
1738 (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
1739 __mfc_multi_tag_release): Declare.
1741 2007-11-19 Jason Merrill <jason@redhat.com>
1743 PR debug/28834, debug/29436, c/32326
1744 * tree.c (build_type_attribute_qual_variant): Refuse to make
1745 a distinct copy of a struct/enum type. Use build_distinct_type_copy.
1746 * doc/extend.texi (Type Attributes): Don't encourage people to add
1747 attributes to struct/enum types in a typedef. Fix
1748 transparent_union example.
1750 * tree-inline.c (remap_type_1): Remove code that's redundant with
1752 (build_duplicate_type): Set id.copy_decl.
1753 * c-common.c (handle_transparent_union_attribute): Simplify logic.
1755 2007-11-19 Peter Bergner <bergner@vnet.ibm.com>
1757 * config/rs6000/rs6000.c (invalid_e500_subreg,
1758 rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
1759 rs6000_legitimize_address, rs6000_legitimize_reload_address,
1760 rs6000_legitimate_address, function_arg_advance,
1761 spe_build_register_parallel, rs6000_spe_function_arg,
1762 rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
1763 emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
1764 rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
1765 TDmode similarly to DFmode and TFmode.
1766 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1767 DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
1769 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
1771 * stor-layout.c (lang_adjust_rli): Delete.
1772 (set_lang_adjust_rli): Likewise.
1773 (layout_type): Do not call lang_adjust_rli hook.
1774 * tree.h (set_lang_adjust_rli): Delete.
1776 2007-11-19 Bernd Schmidt <bernd.schmidt@analog.com>
1778 * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
1779 n_dregs_to_save and n_pregs_to_save.
1780 (n_pregs_to_save, n_dregs_to_save): Use it. New argument CONSECUTIVE;
1781 all callers changed.
1782 (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
1783 able to save single D/P registers that aren't saved by the push/pop
1786 2007-11-19 Richard Guenther <rguenther@suse.de>
1788 PR tree-optimization/34099
1789 * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
1790 MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
1791 if only one operand is undefined.
1793 2007-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>
1795 PR tree-optimization/34036
1796 * opts.c (set_fast_math_flags): Do not set flags in common
1797 with set_unsafe_math_optimizations_flags, invoke it directly.
1798 (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
1799 and flag_signed_zeros.
1800 * toplev.c (process_options): Force flag_associative_math to 0 and
1801 warn, if it is set and either flag_trapping_math or flag_signed_zeros
1803 * doc/invoke.texi (Optimize Options): Document the new behavior
1804 of -funsafe-math-optimizations, that -fassociative-math requires
1805 both -fno-signed-zeros and -fno-trapping-math and make it clear
1806 that -fno-trapping-math requires -fno-signaling-nans. Refactor
1807 documentation of -ffast-math.
1809 2007-11-18 Jakub Jelinek <jakub@redhat.com>
1811 PR rtl-optimization/34132
1812 * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
1816 * optabs.h (optab_table): Change type to struct optab from optab.
1817 (convert_optab_table): Similarly.
1818 Adjust all _optab macros to expand to addresses of optab_table
1819 resp. convert_optab_table elements rather than the values of the
1821 * optabs.c (optab_table): Change typype to struct optab from optab.
1822 If compiled by recent GCC, initialize all the insn_code fields in
1823 the array using designated range initializers.
1824 (convert_optab_table): Similarly.
1825 (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
1826 set_conv_libfunc): Into libfunc_entry's optab field store index within
1827 optab_table resp. convert_optab_table array instead of difference
1828 between two separately malloced addresses.
1829 (new_optab): Add op argument, don't return anything. Initialize
1830 just the insn_code field in handlers array and only when needed.
1831 (init_optab, init_optabv): Add op argument, don't return anything.
1832 Adjust new_optab caller.
1833 (new_convert_optab): Removed.
1834 (init_convert_optab): Add op argument, don't return anything, don't
1835 call new_convert_optab. If needed, initialize insn_code field in
1837 (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
1839 (debug_optab_libfuncs): Adjust uses of optab_table and
1840 convert_optab_table arrays.
1842 2007-11-18 Richard Guenther <rguenther@suse.de>
1844 PR tree-optimization/34127
1845 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1846 Make code match up the comments, require compatibility of the
1849 2007-11-17 Richard Guenther <rguenther@suse.de>
1852 * fold-const.c (extract_muldiv_1): Do not move negative
1853 constants inside ABS_EXPR.
1855 2007-11-16 Ian Lance Taylor <iant@google.com>
1857 * collect2.c (dump_file): If a demangled symbol is followed by a
1858 space, make sure we output at least one space.
1860 2007-11-16 Richard Guenther <rguenther@suse.de>
1863 * fold-const.c (fold_binary): Use correct types for folding
1864 1 << X & Y to Y >> X & 1.
1866 2007-11-16 Richard Guenther <rguenther@suse.de>
1868 PR tree-optimization/33870
1869 * tree.h (struct tree_memory_tag): Add base_for_components flag.
1870 (struct tree_struct_field_tag): Remove nesting_level field.
1871 (SFT_NESTING_LEVEL): Remove.
1872 (SFT_BASE_FOR_COMPONENTS_P): Add.
1873 * tree-flow.h (struct fieldoff): Remove nesting_level field. Add
1874 base_for_components flag.
1875 (push_fields_onto_fieldstack): Remove nesting_level parameter.
1876 * tree-ssa-alias.c (create_sft): Likewise. Add base_for_components
1878 (create_overlap_variables_for): Deal with it.
1879 * tree-dfa.c (dump_subvars_for): Likewise.
1880 (dump_variable): Likewise.
1881 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
1882 Set base_for_components for first elements of sub-structures.
1883 (create_variable_info_for): Handle base_for_components.
1884 (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
1885 pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
1886 * tree-ssa-operands.c (ref_nesting_level): Remove.
1887 (add_vars_for_offset): Remove full_ref parameter, always add
1888 the offset of the pointed-to SFT.
1889 (add_virtual_operand): Adjust for changed signature of
1890 add_vars_for_offset.
1892 2007-11-16 Sa Liu <saliu@de.ibm.com>
1894 * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined
1895 floatunssidf2 and floatunsdidf2.
1897 2007-11-16 Richard Guenther <rguenther@suse.de>
1899 PR tree-optimization/34113
1900 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1901 Use correct conversion direction for checking type compatibility.
1903 2007-11-16 Richard Guenther <rguenther@suse.de>
1905 PR tree-optimization/34099
1906 * tree-ssa-ccp.c (likely_value): Use a whitelist for operators
1907 that produce UNDEFINED result if at least one of its operands
1908 is UNDEFINED. By default the result is only UNDEFINED if all
1909 operands are UNDEFINED.
1911 2007-11-16 Jakub Jelinek <jakub@redhat.com>
1914 * gcc.c (init_spec): Don't initialize asm_debug here...
1915 (main): ... but here.
1917 2007-11-07 Tom Tromey <tromey@redhat.com>
1919 * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'.
1920 * tree-parloops.c (create_loop_fn): Use set_cfun.
1921 * gengtype.c (open_base_files): Emit #undef cfun.
1922 * ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
1923 * function.h (cfun): New define.
1924 * function.c: Undefine cfun.
1926 2007-11-07 Eric B. Weddington <eweddington@cso.atmel.com>
1928 * config/avr/avr.c (avr_mcu_types): Add attiny88.
1929 * config/avr/avr.h (LINK_SPEC): Likewise.
1930 (CRT_BINUTILS_SPECS): Likewsie.
1931 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1933 2007-11-15 Jakub Jelinek <jakub@redhat.com>
1936 * tree-ssa-ccp.c (optimize_stack_restore): New function.
1937 (execute_fold_all_builtins): Call optimize_stack_restore for
1938 BUILT_IN_STACK_RESTORE.
1940 2007-11-15 Paolo Bonzini <bonzini@gnu.org>
1942 * fwprop.c (try_fwprop_subst): Skip profitability check for forward
1943 propagation into an address; that's done in should_replace_address.
1945 2007-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1947 * config/spu/spu-protos.h (legitimate_const): Remove prototype.
1948 * config/spu/spu.c (legitimate_const): Remove.
1949 (classify_immediate): Inline call to legitimate_const.
1950 (spu_legitimate_address): Likewise. Allow SYMBOL_REF + CONST_INT
1951 for any constant, not just -512 .. 511.
1953 2007-11-15 Sa Liu <saliu@de.ibm.com>
1955 * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
1956 condition from HONOR_NANS test.
1957 * config/spu/spu.md (ceq_df): Always generate comparison code
1958 inline, including checks for NaNs and infinities.
1960 (cgt_v2df): Likewise.
1961 (cmpdf): Make this expander unconditional.
1963 2007-11-15 Richard Guenther <rguenther@suse.de>
1965 * tree-ssa-alias.c (create_overlap_variables_for): Make sure
1966 to only create SFTs if we also create variable infos for PTA.
1967 * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs.
1969 2007-11-15 Richard Guenther <rguenther@suse.de>
1971 * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
1972 type for TBAA pruning.
1973 (find_what_p_points_to): Call set_uids_in_ptset with the original
1974 pointer, not the decl of the solution we collapsed to.
1976 2007-11-14 David Daney <ddaney@avtrex.com>
1978 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
1981 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1984 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
1985 for registers in BR_REGS class.
1987 2007-11-14 Jakub Jelinek <jakub@redhat.com>
1990 * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
1991 init_ssa_operands has not been called for cfun.
1993 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1995 PR tree-optimization/34046
1996 * cfg.c (update_bb_profile_for_threading): Avoid the division for the
1997 scaling if the old probability is greater than the new base.
1999 2007-11-14 Sebastian Pop <sebastian.pop@amd.com>
2001 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
2002 unused edges after loop duplication.
2004 2007-11-14 Uros Bizjak <ubizjak@gmail.com>
2006 * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
2007 (enum target_cpu_default): ... this enum.
2008 (TARGET_CPU_DEFAULT_NAMES): Remove macro. Move initializer to ...
2009 * config/i386/i386.c (override_options): ... here.
2010 * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
2011 TARGET_CPU_DEFAULT_i486.
2013 2007-11-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
2015 * global.c (rest_of_handle_global_alloc): Fix comment typos.
2016 * config/sh/sh.c (sh_rtx_costs): Likewise.
2017 * ChangeLog: Likewise.
2019 2007-11-13 Sebastian Pop <sebastian.pop@amd.com>
2021 * tree-chrec.h (build_polynomial_chrec): RHS of a chrec
2022 should not be of pointer type.
2024 2007-11-13 Michael Meissner <michael.meissner@amd.com>
2026 * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line.
2028 2007-11-13 Sterling Augustine <sterling@tensilica.com>
2029 Bob Wilson <bob.wilson@acm.org>
2031 * config/xtensa/unwind-dw2-xtensa.c: New.
2032 * config/xtensa/unwind-dw2-xtensa.h: New.
2033 * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
2034 (DWARF2_UNWIND_INFO): Remove.
2035 (DWARF_FRAME_REGISTERS): Define.
2036 (EH_RETURN_DATA_REGNO): Define.
2037 * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
2039 * config/xtensa/t-xtensa (LIB2ADDEH): Define.
2041 2007-11-13 Jakub Jelinek <jakub@redhat.com>
2043 * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
2044 -fsched-stalled-insns.
2046 PR tree-optimization/34063
2047 * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
2048 as first chrec_fold_plus operand rather than second.
2050 2007-11-13 Diego Novillo <dnovillo@google.com>
2052 PR tree-optimization/33870
2053 * tree.h (strcut tree_memory_tag): Add field unpartitionable.
2054 Remove field in_nested_struct.
2055 (struct tree_struct_field_tag): Add field nesting_level.
2056 (sft_in_nested_struct): Remove.
2057 (sft_nesting_level): Define.
2058 (sft_unpartitionable_p): Define.
2059 * tree-ssa-alias.c (mem_sym_score): If mp->var is not
2060 partitionable, return long_max.
2061 (compute_memory_partitions): Do not partition sfts marked
2063 (create_sft): Add argument nesting_level. Set
2064 sft_nesting_level with it. Update all users.
2065 (create_overlap_variables_for): Show nesting level.
2066 * tree-dfa.c (dump_subvars_for): Likewise.
2067 (dump_variable): Likewise. Show whether the sft is
2068 partitionable or not.
2069 * tree-flow.h (struct fieldoff): Remove field in_nested_struct.
2070 Add field nesting_level.
2071 * tree-ssa-structalias.c (struct variable_info): Remove
2072 field in_nested_struct.
2073 (push_fields_onto_fieldstack): Add argument nesting_level.
2074 Update all users. Update documentation. Update pair->nesting_level
2075 with nesting_level. Make recursive calls with nesting_level + 1.
2076 (set_uids_in_ptset): If an sft is added to the points-to set,
2077 mark it as unpartitionable.
2078 * tree-ssa-operands.c (ref_nesting_level): New.
2079 (add_vars_for_offset): Call it. Add argument full_ref. Update
2080 callers. If var is inside a nested structure and the nesting level
2081 of full_ref is lower than the nesting level of var,
2082 adjust offset by the offset of var.
2084 2007-11-13 Victor Kaplansky <victork@il.ibm.com>
2086 PR tree-optimization/32582
2087 * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
2089 2007-11-12 Danny Smith <dannysmith@users.sourceforge.net>
2091 * doc/extend.texi (dllimport): Document that pointers to dllimport'd
2092 functions can be used as constant.
2094 2007-11-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2096 PR rtl-optimization/34035
2097 * cse.c (cse_cfg_altered): New global variable.
2098 (cse_jumps_altered): Make boolean.
2099 (recorded_label_ref): Likewise.
2100 (cse_insn): Adjust for above changes.
2101 (cse_extended_basic_block): Likewise. Set cse_cfg_altered
2102 if dead edges have been purged.
2103 (cse_main): Change return value specification and adjust code.
2104 (rest_of_handle_cse): Adjust for above change.
2105 (rest_of_handle_cse2): Likewise.
2106 * gcse.c (rest_of_handle_gcse): Likewise.
2108 2007-11-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2109 Michael Meissner <michael.meissner@amd.com>
2111 * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
2112 get the appropriate suffix for the coms* instruction.
2113 (sse5_pcmov_<mode>): Restrict operands of pcmov
2114 for scalar case to be only xmm registers and not memory.
2116 * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
2117 constraints to follow the mnemonics for the pcmov instruction
2119 2007-11-12 Richard Sandiford <rsandifo@nildram.co.uk>
2122 * config/mips/mips.c (mips_return_fpr_single): New function.
2123 (mips_function_value): Use it when returning single-field
2125 (mips_expand_call): Handle the PARALLELs created by
2126 mips_return_fpr_single.
2128 2007-11-12 Richard Guenther <rguenther@suse.de>
2131 * fold-const.c (fold_binary): If testing for non-negative
2132 operands with tree_expr_nonnegative_warnv_p make sure to
2133 use op0 which has all (sign) conversions retained.
2135 2007-11-12 Richard Guenther <rguenther@suse.de>
2138 * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
2139 (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
2141 2007-11-12 Ira Rosen <irar@il.ibm.com>
2143 PR tree-optimization/33953
2144 * tree-vect-transform.c (vectorizable_operation): In case of SLP,
2145 allocate vec_oprnds1 according to the number of created vector
2146 statements. In case of shift with scalar argument, store scalar
2147 operand for every vector statement to be created for the SLP node.
2150 2007-11-10 Steven Bosscher <stevenb.gcc@gmail.com>
2152 * gcse.c (CUID_INSN): Remove.
2154 (alloc_gcse_mem): Don't allocate cuid_insn.
2155 (free_gcse_mem): Don't free cuid_insn.
2157 2007-11-10 Jakub Jelinek <jakub@redhat.com>
2160 * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
2164 * tree-inline.h (copy_body_data): Add regimplify field.
2165 * tree-inline.c (copy_body_r): Set id->regimplify to true
2166 if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
2168 (copy_bb): Clear id->regimplify before walk_tree, if it is
2169 set afterwards, regimplify the whole statement.
2171 PR tree-optimization/33680
2172 * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
2173 if the added cast involves variable length types.
2175 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
2176 Maxim Kuvyrkov <maxim@codesourcery.com>
2178 * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
2179 instead of TRUE_BARRIER for jumps. Add register dependencies
2180 even when reg_pending_barrier is set.
2182 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
2184 * haifa-sched.c (haifa_classify_insn): Rename to ...
2185 (haifa_classify_rtx): ... this. Improve handling of COND_EXECs,
2186 handle PARALLELs by recursing. Use it ...
2187 (haifa_classify_insn): ... here. Reimplement.
2189 2007-11-09 Richard Guenther <rguenther@suse.de>
2191 * bitmap.h (bitmap_single_bit_set_p): Declare.
2192 * bitmap.c (bitmap_single_bit_set_p): New function.
2193 * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
2194 (maybe_create_global_var): Use bitmap_empty_p.
2196 2007-11-09 Paolo Bonzini <bonzini@gnu.org>
2197 Jakub Jelinek <jakub@redhat.com>
2199 PR rtl-optimization/34012
2200 * fwprop.c (try_fwprop_subst): Do not replace if the new
2201 SET_SRC has a higher cost than the old one.
2203 2007-11-09 Eric Botcazou <ebotcazou@libertysurf.fr>
2205 PR rtl-optimization/33732
2206 * reload.c (push_reload): Check that the REG_DEAD note was referring
2207 to a hardreg or to a pseudo that has been assigned exactly one hardreg
2208 before considering it in order to select the reload register.
2209 (combine_reloads): Likewise.
2210 (find_dummy_reload): Likewise.
2212 2007-11-09 Richard Guenther <rguenther@suse.de>
2214 * tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD.
2215 (struct ptr_info_def): Likewise.
2216 (enum escape_type): Also use bit zero.
2218 2007-11-09 Richard Guenther <rguenther@suse.de>
2220 PR tree-optimization/33604
2221 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2222 Disregard changes in CV qualifiers of pointed to types for
2223 forward propagating ADDR_EXPRs.
2224 * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
2227 2007-11-09 Richard Sandiford <rsandifo@nildram.co.uk>
2229 * dse.c (find_shift_sequence): Always choose an integer mode for
2231 (replace_read): Require both the read and store mode to be
2232 integer ones. Remove a then-redundant FLOAT_P check.
2234 2007-11-08 Richard Guenther <rguenther@suse.de>
2236 * tree-dfa.c (remove_referenced_var): If removing a
2237 variable which has subvars, also remove those from
2238 the referenced vars. Do not create a variable annotation.
2240 2007-11-08 Bob Wilson <bob.wilson@acm.org>
2242 * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
2243 argument for gen_entry calls.
2244 * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
2245 (entry): Use the new attribute value. Remove unused first operand.
2247 2007-11-08 Tom Tromey <tromey@redhat.com>
2249 * c-parser.c (c_parser_translation_unit): Use location in error.
2250 (c_parser_external_declaration): Likewise.
2251 (c_parser_declaration_or_fndef): Likewise.
2252 (c_parser_enum_specifier): Likewise.
2253 (c_parser_struct_or_union_specifier): Likewise.
2254 (c_parser_struct_declaration): Likewise.
2255 (c_parser_typeof_specifier): Likewise.
2256 (c_parser_parms_list_declarator): Likewise.
2257 (c_parser_asm_string_literal): Likewise.
2258 (c_parser_braced_init): Likewise.
2259 (c_parser_initelt): Likewise.
2260 (c_parser_compound_statement_nostart): Likewise.
2261 (c_parser_statement_after_labels): Likewise.
2262 (c_parser_do_statement): Likewise.
2263 (c_parser_asm_statement): Likewise.
2264 (c_parser_conditional_expression): Likewise.
2265 (c_parser_unary_expression): Likewise.
2266 (c_parser_sizeof_expression): Likewise.
2267 (c_parser_postfix_expression): Likewise.
2268 (c_parser_postfix_expression_after_paren_type): Likewise.
2269 (c_parser_objc_class_instance_variables): Likewise.
2270 (c_parser_objc_method_definition): Likewise.
2271 (c_parser_objc_methodprotolist): Likewise.
2272 (c_parser_pragma): Likewise.
2273 (c_parser_omp_clause_num_threads): Likewise.
2274 (c_parser_omp_clause_schedule): Likewise.
2275 (c_parser_omp_all_clauses): Likewise.
2276 (c_parser_omp_sections_scope): Likewise.
2277 (c_parser_label): Use location of label, not colon.
2279 2007-11-08 Danny Smith <dannysmith@users.sourceforge.net>
2282 * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
2285 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2288 * ipa-pure-const.c (static_execute): Added code to keep recursive
2289 functions from being marked as pure or const.
2290 * ipa-utils.c (searchc): Fixed comment.
2292 2007-11-08 Tom Tromey <tromey@redhat.com>
2294 * common.opt (fshow-column): Default to 0.
2295 * configure: Rebuilt.
2296 * configure.ac (--enable-mapped-location): Default to 'yes'.
2298 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2300 * common.opt: Add pointer to doc/options.texi.
2301 * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
2302 -fipa-reference): Add or correct doc. Sorted options list for -Os
2305 2007-11-07 Bernhard Fischer <aldot@gcc.gnu.org>
2308 * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
2309 * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
2310 TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS.
2311 (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
2312 (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
2313 * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
2314 to TARGET_BIG_ENDIAN_DEFAULT.
2315 (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
2316 * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
2317 to TARGET_BIG_ENDIAN_DEFAULT.
2319 2007-11-07 Diego Novillo <dnovillo@google.com>
2321 * tree.h (struct tree_struct_field_tag): Move field
2322 in_nested_struct ...
2323 (struct tree_memory_tag): ... here.
2325 2007-11-07 Diego Novillo <dnovillo@google.com>
2328 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
2329 (SFT_IN_NESTED_STRUCT): Define.
2330 * tree-dfa.c (dump_subvars_for): Show offset of each sub-var.
2331 * tree-flow.h (struct fieldoff): Add field in_nested_struct.
2332 * tree-ssa-structalias.c (struct variable_info): Likewise.
2333 (push_fields_onto_fieldstack): If OFFSET is positive,
2334 set in_nested_struct.
2335 (create_variable_info_for): Copy setting of
2336 in_nested_struct from the field offset object.
2337 (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
2338 variable info object.
2339 * tree-ssa-operands.c (add_vars_for_offset): If VAR
2340 belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR).
2342 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2344 PR rtl-optimization/33737
2345 * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
2346 target block after computing the probabilities of outgoing edges.
2347 Cap the frequency to BB_FREQ_MAX.
2348 * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
2349 frequency of the basic block if it has been reused.
2351 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2353 PR rtl-optimization/33822
2354 * rtl.h (REG_OFFSET): Fix comment.
2355 * var-tracking.c (INT_MEM_OFFSET): New macro.
2356 (var_mem_set): Use it.
2357 (var_mem_delete_and_set): Likewise.
2358 (var_mem_delete): Likewise.
2359 (same_variable_part_p): Likewise.
2360 (vt_get_decl_and_offset): Likewise.
2361 (offset_valid_for_tracked_p): New predicate.
2362 (count_uses): Do not track locations with invalid offsets.
2363 (add_uses): Likewise.
2364 (add_stores): Likewise.
2366 2007-11-07 Tom Tromey <tromey@redhat.com>
2368 * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
2369 (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
2371 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru>
2372 Andrey Belevantsev <abel@ispras.ru>
2374 * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
2375 generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
2376 (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
2377 Save calculated max_asap in it.
2378 (sms_schedule): Calculate maxii using max_asap.
2380 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com>
2382 * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
2383 with -mhard-dfp/-mno-hard-dfp.
2385 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com>
2386 Jakub Jelinek <jakub@redhat.com>
2389 * haifa-sched.c (check_sched_flags): Remove.
2390 (sched_init): Don't call it.
2392 2007-11-06 Diego Novillo <dnovillo@google.com>
2394 * tree-flow.h (struct fieldoff): Reformat comment. Document fields.
2395 * tree-ssa-operands.c: Tidy top-level comments.
2396 (add_vop): Likewise.
2397 (add_vars_for_offset): Tidy parameter formatting..
2398 (get_addr_dereference_operands): Likewise.
2399 (get_indirect_ref_operands): Likewise.
2400 (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
2401 <OMP_ATOMIC_STORE>: Likewise.
2403 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk>
2406 * config/i386/driver-i386.c: Test for __GNUC__ instead of
2407 GCC_VERSION which is always defined.
2409 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2412 * reload1.c (find_reloads): Also check in_reg when handling a
2413 simple move with an input reload and a destination of a hard register.
2415 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
2417 * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
2418 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
2419 TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
2420 TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2421 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
2422 (m68k_sched_attr_type2): New function.
2423 (sched_adjust_cost_state): New static variable.
2424 (m68k_sched_adjust_cost): New static function implementing
2426 (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
2427 New static variables.
2428 (m68k_sched_variable_issue): New static function implementing
2430 (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
2431 (sched_dump_split_class): New static function.
2432 (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
2434 (sched_dump_dfa_class, m68k_sched_dump): New static function.
2435 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2436 m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
2437 m68k_sched_dfa_post_advance_cycle): New static functions implementing
2440 * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
2441 (CPU_UNITS_QUERY): Define.
2443 * config/m68k/cf.md: New file.
2444 * config/m68k/m68.md (cf.md): New include.
2446 2007-11-06 Tom Tromey <tromey@redhat.com>
2448 PR c++/32256, PR c++/32368:
2449 * function.c (saved_in_system_header): New global.
2450 (push_cfun): Save in_system_header.
2451 (pop_cfun): Restore in_system_header.
2452 (push_struct_function): Save in_system_header.
2454 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
2458 * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
2459 (complete_array_type): Set canonical type appropriately.
2460 * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
2461 C and C++ front ends now have different versions of this function,
2462 because the C++ version needs to maintain canonical types here.
2464 2007-11-04 Razya Ladelsky <razya@il.ibm.com>
2466 * tree-parloops.c (reduction_info): Remove reduction_init field.
2467 (initialize_reductions): Remove creation of the reduction_init variable.
2468 (struct data_arg): Remove.
2469 (add_field_for_reduction, create_stores_for_reduction): New functions.
2470 (add_field_for_name): Remove reduction handling.
2471 (separate_decls_in_loop): Call add_field_for_reduction,
2472 create_stores_for_reduction.
2474 2007-11-06 Jakub Jelinek <jakub@redhat.com>
2476 PR tree-optimization/33458
2477 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
2478 !is_gimple_val PHI argument, gimplify it and insert it on edge.
2480 PR tree-optimization/33993
2481 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
2482 rather than build_constructor_from_list if all list values are
2484 (get_initial_def_for_induction): Use build_vector instead of
2485 build_constructor_from_list.
2487 2007-11-05 Mark Mitchell <mark@codesourcery.com>
2490 * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
2491 (DECL_FINI_PRIORITY): Likewise.
2492 * tree.c (decl_init_priority_lookup): Remove assert.
2493 (decl_fini_priority_insert): Likewise.
2494 * cgraphunit.c (static_ctors): Make it a VEC.
2495 (static_dtors): Likewise.
2496 (record_cdtor_fn): Adjust accordingly.
2497 (build_cdtor): Generate multiple functions for each initialization
2499 (compare_ctor): New function.
2500 (compare_dtor): Likewise.
2501 (cgraph_build_cdtor_fns): Sort the functions by priority before
2502 calling build_cdtor.
2503 (cgraph_build_static_cdtor): Put the priority in the function's name.
2505 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
2508 * common.opt: Add shared and pie.
2510 2007-11-05 Bob Wilson <bob.wilson@acm.org>
2512 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
2513 replace references to virtual_stack_vars_rtx in goto_handler.
2515 2007-11-05 Paul Brook <paul@codesourcery.com>
2517 * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
2518 * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
2519 (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call
2520 arm_lang_output_object_attributes_hook.
2521 * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
2522 (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
2523 * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
2525 * config/arm/t-arm.c (arm.o): New rule.
2526 * config/arm/arm-c.c: New file.
2528 2007-11-05 Nick Clifton <nickc@redhat.com>
2529 Sebastian Pop <sebastian.pop@amd.com>
2531 PR tree-optimization/32540
2532 PR tree-optimization/33922
2533 * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
2534 * tree-ssa-pre.c: Include params.h.
2535 (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
2536 to limit the maximum length of the PA set for a given block.
2537 * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
2538 * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
2540 2007-11-05 Nathan Sidwell <nathan@codesourcery.com>
2542 * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
2543 __fixunssfDI): Make return type unsigned.
2544 * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
2545 __fixunssfDI): Make return type unsigned.
2547 2007-11-05 Jakub Jelinek <jakub@redhat.com>
2549 PR tree-optimization/33856
2550 * tree-data-ref.c (get_references_in_stmt): Don't add
2551 REFERENCE_CLASS_P trees to references vector if get_base_address
2552 returns NULL on them.
2554 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
2556 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
2558 2007-11-04 Andrew Pinski <pinskia@gmail.com>
2561 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
2562 for TRUTH_NOT_EXPR to type.
2564 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
2566 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
2568 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2571 * dwarf2out.c (add_calling_convention_attribute): Change
2572 second argument. Set calling convention to DW_CC_program for
2573 Fortran main program.
2574 (gen_subprogram_die): Adjust to new prototype for
2575 add_calling_convention_attribute.
2577 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
2579 PR tree-optimization/33987
2580 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
2582 (vectorizable_reduction): Add type check.
2584 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2587 * c-parser.c (c_parser_statement_after_labels): Error if a
2588 declaration is parsed after a label.
2590 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
2593 * reorg.c (emit_delay_sequence): Do not clear the locator on
2594 the jump instruction.
2596 2007-11-03 Jakub Jelinek <jakub@redhat.com>
2599 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
2600 current sched region.
2602 2007-11-02 Jakub Jelinek <jakub@redhat.com>
2604 * config/ia64/ia64.c (struct reg_write_state): Change into
2605 unsigned short bitfields rather than unsigned int, decrease
2606 first_pred to just 10 bits.
2607 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
2608 into two char array.
2609 (rws_insn_set, rws_insn_test): New functions.
2610 (in_safe_group_barrier): New variable.
2611 (rws_update): Remove first argument, always set rws_sum array.
2612 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
2613 or update rws_sum if !in_safe_group_barrier, adjust rws_update args.
2614 (rtx_needs_barrier): Use rws_insn_test macro.
2615 (safe_group_barrier_needed): Don't save/restore rws_sum array,
2616 instead set/clear in_safe_group_barrier flag.
2618 2007-11-02 Bob Wilson <bob.wilson@acm.org>
2620 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
2621 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
2622 pointer or frame pointer.
2623 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
2624 (MUST_USE_SJLJ_EXCEPTIONS): Define.
2625 (DWARF2_UNWIND_INFO): Define.
2626 (INCOMING_RETURN_ADDR_RTX): Define.
2627 (DWARF_FRAME_RETURN_COLUMN): Define.
2629 2007-11-02 Tom Tromey <tromey@redhat.com>
2631 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
2634 2007-11-02 Diego Novillo <dnovillo@google.com>
2636 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
2637 argument from function pointer ANALYZE_EXPR. Update all users.
2638 * cgraph.c (debug_cgraph_node): New.
2639 (debug_cgraph): New.
2641 2007-11-02 Jakub Jelinek <jakub@redhat.com>
2643 PR rtl-optimization/33648
2644 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
2645 the newly created basic block.
2647 2007-11-01 Richard Guenther <rguenther@suse.de>
2649 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
2651 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
2653 PR rtl-optimization/33828
2654 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
2655 of VBEIN and VBEOUT.
2657 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2659 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
2660 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
2661 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
2663 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
2665 * gcc.c (getenv_spec_function): Escape the environment variable's
2668 2007-11-01 Janis Johnson <janis187@us.ibm.com>
2670 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
2671 show that CSE means common subexpression elimination. Change wording
2672 for -fsee and define LCM. Remove capitalization of optimizations
2673 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
2675 2007-11-01 Janis Johnson <janis187@us.ibm.com>
2678 * doc/sourcebuild.texi (Test Directives): Document that xfail
2679 has no effect for dg-do except when dg-do-what is "run".
2681 2007-11-01 Tom Tromey <tromey@redhat.com>
2683 * c-decl.c (grokdeclarator): Set decl source locations.
2684 * c-parser.c (c_parser_enum_specifier): Set location.
2685 (c_parser_struct_or_union_specifier): Likewise.
2687 2007-11-01 Tom Tromey <tromey@redhat.com>
2689 * print-tree.c (print_node): Print column number.
2691 2007-11-01 Jakub Jelinek <jakub@redhat.com>
2694 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2695 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
2696 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
2698 PR rtl-optimization/33673
2699 * gcse.c (cprop_jump): If a conditional jump has been optimized
2700 into unconditional jump, make the remaining normal edge fallthru
2701 and delete the jump insn.
2703 2007-11-01 Ben Elliston <bje@au.ibm.com>
2705 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
2706 (set_mem_attrs_from_reg): Likewise.
2708 2007-11-01 Michael Matz <matz@suse.de>
2710 PR tree-optimization/33961
2711 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
2712 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
2713 (add_or_mark_expr): New argument 'store', using it to search
2715 (nt_init_block): Adjust calls to add_or_mark_expr.
2717 2007-10-31 Jakub Jelinek <jakub@redhat.com>
2720 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
2721 for the first push_operand.
2723 2007-10-31 Revital Eres <eres@il.ibm.com>
2725 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
2726 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
2727 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
2728 movmisalignv2sf, vcondv2sf): New.
2729 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
2730 UNSPEC_EXTODD_V2SF): Define new constants.
2731 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
2732 paired_emit_vector_cond_expr): New.
2733 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
2734 * config/rs6000/rs6000.c (paired_expand_vector_move,
2735 paired_emit_vector_cond_expr, paired_emit_vector_compare):
2737 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
2739 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
2741 PR tree-optimization/32377
2742 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
2743 work also for unknown number of iterations.
2744 (analyze_subscript_affine_affine): Clean up. Don't fail when the
2745 number of iterations is not known.
2747 2007-10-31 Richard Guenther <rguenther@suse.de>
2750 * fold-const.c (extract_muldiv_1): Make sure to not introduce
2751 new undefined integer overflow.
2752 (fold_binary): Avoid useless conversion.
2754 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
2757 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.
2759 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
2761 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
2763 * config/s390/s390.c: (override_options): Replace
2764 -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp.
2765 * config/s390/s390.opt: Likewise.
2766 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
2769 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2771 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
2773 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2775 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
2776 optimization options.
2777 (Optimize Options): Add -fdce and -fdse to the list of optimizations
2778 enabled by -O. Document -fdce and -fdse.
2780 2007-10-30 Jakub Jelinek <jakub@redhat.com>
2783 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
2784 convert second operand of COMPOUND_EXPR to the original type of
2787 2007-10-30 Richard Guenther <rguenther@suse.de>
2789 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
2790 of loop adding SFTs as virtual operands.
2792 2007-10-30 Richard Guenther <rguenther@suse.de>
2794 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
2796 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
2798 PR tree-optimization/32893
2799 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
2800 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
2802 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
2804 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
2806 (sub_ddmmss): Likewise.
2807 (umul_ppmm): Likewise.
2808 (udiv_qrnnd): Likewise.
2810 2007-10-29 Janis Johnson <janis187@us.ibm.com>
2813 * doc/sourcebuild.texi (Test Directives): Document that dg-require
2814 directives must come before dg-additional-sources.
2816 2007-10-29 Jakub Jelinek <jakub@redhat.com>
2818 PR tree-optimization/33723
2819 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
2820 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
2822 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
2824 PR tree-optimization/33614
2825 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
2826 if they can't be reduced to VECTOR_CSTs and aren't legitimate
2827 initializer constants.
2829 2007-10-29 Richard Guenther <rguenther@suse.de>
2831 PR tree-optimization/33870
2832 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
2833 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
2836 2007-10-29 Richard Guenther <rguenther@suse.de>
2838 * passes.c (init_optimization_passes): Exchange store_copy_prop
2840 * tree-pass.h (pass_store_copy_prop): Remove.
2841 * tree-ssa-copy.c (do_store_copy_prop): Remove.
2842 (stmt_may_generate-copy): Do not handle store_copy_prop.
2843 (get_copy_of_val): Likewise.
2844 (set_copy_of_val): Likewise.
2845 (copy_prop_visit_assignment): Likewise.
2846 (copy_prop_visit_stmt): Likewise.
2847 (copy_prop_visit_phi_node): Likewise.
2848 (init_copy_prop): Likewise.
2849 (execute_copy_prop): Likewise.
2850 (do_copy_prop): Remove.
2851 (gate_store_copy_prop): Likewise.
2852 (store_copy_prop): Likewise.
2853 (pass_store_copy_prop): Likewise.
2854 (pass_copy_prop): Call execute_copy_prop.
2855 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
2856 * common.opt (ftree-store-copy-prop): Mark obsolete.
2857 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
2859 2007-10-29 Ian Lance Taylor <iant@google.com>
2861 * ifcvt.c (noce_can_store_speculate_p): New static function.
2862 (noce_process_if_block): Call it.
2863 (if_convert): Remove recompute_dominance parameter. Change all
2866 2007-10-29 Richard Guenther <rguenther@suse.de>
2868 * tree-flow-inline.h (get_subvar_at): Use binary search.
2869 (get_first_overlapping_subvar): New function to binary search
2870 for the first overlapping subvar.
2871 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
2872 just handle adding subvars for a pointed-to subvar. Optimize
2873 and use get_first_overlapping_subvar.
2874 (add_vars_for_bitmap): Fold into single caller.
2875 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
2876 and non pointed-to bits of add_vars_for_offset.
2878 2007-10-29 Revital Eres <eres@il.ibm.com>
2880 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
2882 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
2883 Zdenek Dvorak <ook@ucw.cz>
2886 reduction support for automatic parallelization.
2888 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
2890 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
2891 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
2892 and OMP_ATOMIC_STORE.
2893 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2894 * gimple-low.c (lower_stmt): Same.
2895 * gimplify.c (gimplify_expr): Same.
2896 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
2897 gimplify_omp_atomic_mutex): Remove.
2898 (gimplify_omp_atomic): Change it to simply gimplify the
2899 statement instead of expanding it.
2900 * omp-low.c: Add includes to optabs.h, cfgloop.h.
2901 (expand_omp_atomic, expand_omp_atomic_pipeline,
2902 goa_stabilize_expr, expand_omp_atomic_mutex,
2903 expand_omp_atomic_fetch_op): New functions to implement
2904 expansion of OMP_ATOMIC.
2905 (expand_omp, build_omp_regions_1): Add support for
2906 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
2907 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
2909 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
2911 * tree-parloops.c: add include to tree-vectorizer.h.
2912 (reduction_info): New structure for reduction.
2913 (reduction_list): New list to represent list of reductions per loop.
2914 (struct data_arg): New helper structure for reduction.
2915 (reduction_info_hash, reduction_info_eq, reduction_phi,
2916 initialize_reductions, create_call_for_reduction,
2917 create_phi_for_local_result, create_call_for_reduction_1,
2918 create_loads_for_reductions, create_final_loads_for_reduction):
2920 (loop_parallel_p): Identify reductions, add reduction_list parameter.
2921 (separate_decls_in_loop_name): Support reduction variables.
2922 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
2923 call create_loads_for_reduction for each reduction.
2924 (canonicalize_loop_ivs): Identify reductions, add reduction_list
2926 (transform_to_exit_first_loop): Add reduction support, add
2927 reduction_list parameter.
2928 (gen_parallel_loop): Add reduction_list parameter. Add call
2929 separate_decls_in_loop with
2930 the new argument. Traverse reductions and call
2931 initialize_reductions, create_call_for_reduction.
2932 (parallelize_loops): Create and delete the reduction list.
2933 (add_field_for_name): Change use of data parameter. Add fields for
2935 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
2936 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
2937 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2938 * tree-inline.c (estimate_num_insns_1): add cases for
2939 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2940 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2941 * tree-ssa-operands.c (get_addr_dereference_operands):
2942 New function. Subroutine of get_indirect_ref_operands.
2943 (get_indirect_ref_operands): Call get_addr_dereference_operands.
2944 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2947 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
2949 * config/cris/cris.c: Include df.h.
2950 (cris_address_cost): Add gcc_assert for canonicalization
2951 assumptions. For PLUS with MULT or register, correct
2952 test for register in other arm. Tweak comments.
2954 2007-10-28 Richard Guenther <rguenther@suse.de>
2956 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
2957 telling if the var is to be treated as points-to location.
2958 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
2959 (add_virtual_operand): Only recurse into MPTs if aliases
2962 2007-10-28 Richard Guenther <rguenther@suse.de>
2964 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
2965 (add_vars_for_bitmap): Do not recurse further. Only add vars
2966 for pointed-to SFTs.
2967 (add_virtual_operand): Re-instantiate loop to add operands for
2968 aliases. Recurse into MPTs.
2969 (get_indirect_ref_operands): If we fall back to use a pointers
2970 SMT, make sure to not prune based on the access offset and size.
2972 2007-10-28 Andrew Pinski <pinskia@gmail.com>
2975 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
2976 the eh information on the statement.
2978 2007-10-28 Richard Guenther <rguenther@suse.de>
2980 * tree-flow.h (subvar_t): Make it a VEC.
2981 (struct subvar): Remove.
2982 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
2983 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
2985 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2986 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
2987 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
2988 (set_initial_properties): Likewise.
2989 (setup_pointers_and_addressables): Likewise.
2990 (new_type_alias): Likewise.
2991 (create_overlap_variables_for): Likewise.
2992 * tree-dfa.c (dump_subvars_for): Likewise.
2993 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
2994 (get_expr_operands): Likewise.
2995 (add_to_addressable_set): Likewise.
2996 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
2998 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
3000 PR tree-optimization/33920
3001 * tree-if-conv.c (tree_if_conversion): Force predicate of single
3002 successor bb to true when predecessor bb has NULL predicate.
3003 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
3005 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
3007 * config/mips/mips.md: Add combiner patterns for DImode extensions
3008 of HImode and QImode truncations. Reformat HImode <- QImode pattern
3011 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
3014 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
3016 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
3018 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
3019 LIBCALL notes if they are about to be moved to the same insn.
3021 2007-10-27 Richard Guenther <rguenther@suse.de>
3023 PR tree-optimization/33870
3024 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
3025 duplication. Remove redundant call to access_can_touch_variable.
3026 (add_vars_for_bitmap): New helper for recursing over MPT contents.
3027 (add_virtual_operand): Use it.
3029 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3032 * pa.h (ASM_PN_FORMAT): Delete define.
3034 2007-10-26 Janis Johnson <janis187@us.ibm.com>
3036 * doc/invoke.texi (Option Summary, optimizations): Remove
3037 -fbounds-check. Add -fassociative-math, -freciprocal-math,
3038 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
3039 -fsplit-wide-types to match later entry. Break up a long line.
3040 (Option Summary, code gen options) Add -fno-stack-limit. Add
3041 missing @gol to the end of a line.
3042 (Optimization Options): Remove -fbounds-check, which is also
3043 documented under Code Generation Options. Remove =n from
3044 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
3045 to -fcprop-registers to match other options, and say when it is
3046 enabled rather than disabled. Remove extra index entry for
3047 -fno-cx-limited-range. Add index entries for -fstack-protector
3048 and -fstack-protector-all.
3049 (Code Gen Options): Add index entry for -ftls-model.
3051 2007-10-26 Anatoly Sokolov <aesok@post.ru>
3053 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
3054 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
3055 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
3056 expand_epilogue, output_movhi): Don't handle 'main' function.
3057 (avr_attribute_table): Add 'OS_task' function attribute.
3058 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
3060 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
3061 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
3063 * config/avr/avr.opt (minit-stack): Remove.
3065 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
3067 * tree-nested.c (get_trampoline_type): Fix thinko.
3069 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
3072 * tree.c (build_offset_type): Build canonical type based on the
3073 TYPE_MAIN_VARIANT of the base type.
3075 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
3077 * reorg.c (emit_delay_sequence): Move insn locator from the
3078 first insn to the sequence.
3080 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
3082 * ipa-pure-const.c (check_decl): Return immediately when
3083 pure_const_state has been set to IPA_NEITHER.
3085 2007-10-25 Ira Rosen <irar@il.ibm.com>
3087 PR tree-optimization/33833
3088 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
3089 and convert init to sizetype in inner_base construction.
3091 2007-10-25 Richard Guenther <rguenther@suse.de>
3093 * tree-flow.h (mem_sym_stats): Remove.
3094 (dump_mem_sym_stats_for_var): Declare.
3095 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
3096 (mem_sym_stats): Move ...
3097 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
3098 (mem_sym_score): Rename from ...
3099 (pscore): ... this. Remove.
3100 (dump_mem_sym_stats_for_var): New function. Dump the score, but
3101 not the frequencies.
3102 (compare_mp_info_entries): Make sort stable by disambiguating
3105 2007-10-25 Ira Rosen <irar@il.ibm.com>
3107 PR tree-optimization/33866
3108 * tree-vect-transform.c (vectorizable_store): Check operands of all
3109 the stmts in the group of strided accesses. Get def stmt type for each
3110 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
3112 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
3114 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
3115 (Yt): Rename register constraint to Y2.
3116 * config/i386/sse.md: Use renamed register constraints.
3117 * config/i386/mmx.md: Ditto.
3118 * config/i386/i386.md: Ditto.
3120 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
3122 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
3124 2007-10-24 Chao-ying Fu <fu@mips.com>
3126 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
3127 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
3129 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
3130 Olga Golovanevsky <olga@il.ibm.com>
3132 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
3133 the compiler that wr.wrap and wr.domain are initialized in
3136 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
3138 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
3139 to print gcov_type values.
3141 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
3143 * config/avr/avr.h: Do not include progmem_section definition when
3144 building with IN_TARGET_LIBS.
3146 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
3149 * config/mips/mips.c (mips_lo_sum_offset): New structure.
3150 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
3151 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
3152 (mips_orphaned_high_part_p: New functions.
3153 (mips_avoid_hazard): Don't check INSN_P here.
3154 (mips_avoid_hazards): Rename to...
3155 (mips_reorg_process_insns): ...this. Cope with
3156 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
3157 or turn them into nops.
3158 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
3159 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
3160 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
3161 (mips_override_options): Set flag_delayed_branch to 0.
3163 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
3165 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
3166 MIPS-specific implementation details.
3167 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
3168 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
3169 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
3170 for targets with movmemsi.
3171 (MOVE_BY_PIECES_P): Define.
3172 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
3173 (mips_block_move_loop): Add a bytes_per_iter argument.
3174 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
3175 Update call to mips_block_move_loop.
3177 2007-10-24 Michael Matz <matz@suse.de>
3180 * var-tracking.c (variable_union): Don't break after one loop
3181 iteration but only when a difference is found.
3182 (dump_variable): Also print DECL_UID.
3184 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
3186 * ipa-type-escape.h: Expose function
3187 is_array_access_through_pointer_and_index.
3189 (is_array_access_through_pointer_and_index):
3190 Add three new parameters. Add support of
3191 POINTER_PLUS_EXPR tree code.
3193 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
3195 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
3196 * tree-pass.h: Add pass_ipa_struct_reorg.
3197 * common.opt: Add ipa-struct-reorg flag.
3198 * Makefile.in: Add ipa-strcut-reorg.o compilation.
3199 * passes.c: Add pass pass_ipa_struct_reorg.
3200 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
3201 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
3203 2007-10-24 Ira Rosen <irar@il.ibm.com>
3205 PR tree-optimization/33804
3206 * tree-vect-transform.c (vectorizable_operation): Remove the
3207 checks that the vectorization is worthwhile from the transformation
3210 2007-10-24 Ira Rosen <irar@il.ibm.com>
3212 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
3213 vectype cannot be determined for the scalar type.
3214 (vect_analyze_slp_instance): Likewise.
3215 * tree-vect-transform.c (vect_model_reduction_cost): Change the
3216 return type to bool. Return false if vectype cannot be determined
3217 for the scalar type.
3218 (vect_get_constant_vectors): Return false if vectype cannot be
3219 determined for the scalar type.
3220 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
3221 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
3222 vectorizable_reduction): Likewise.
3224 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
3226 * config.gcc: For a FreeBSD target, parse the value of ${target}
3227 to determine the value of FBSD_MAJOR, instead of adding an
3228 explicit check for every possible FreeBSD major version.
3230 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
3232 PR rtl-optimization/33846
3233 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
3235 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
3237 PR tree-optimization/33860
3238 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
3239 interleaved accesses in case the dr is inside the inner-loop during
3240 outer-loop vectorization.
3242 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
3244 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
3245 Document MEM_POINTER. Replace mentions of "integrated"
3246 field with "return_val". Delete outdated stuff.
3248 2007-10-23 David Edelsohn <edelsohn@gnu.org>
3250 * config/rs6000/rs6000.c (rs6000_override_options): Set
3251 rs6000_altivec_abi on AIX.
3252 (conditional_register_usage): Set VR20:31 fixed on AIX.
3254 2007-10-23 Richard Guenther <rguenther@suse.de>
3256 * alias.c (get_alias_set): For INDIRECT_REFs, deal with
3259 2007-10-22 Seongbae Park <seongbae.park@gmail.com>
3260 David S. Miller <davem@davemloft.net>
3262 * df-scan.c (df_get_call_refs): Mark global registers as both a
3263 DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
3265 2007-10-22 Dorit Nuzman <dorit@il.ibm.com>
3267 PR tree-optimization/33834
3268 PR tree-optimization/33835
3269 * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
3270 stmts need to be checked for success seperately.
3271 * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
3272 Remove the check that stmt is not LIVE.
3273 (vectorizable_assignment, vectorizable_induction): Likewise.
3274 (vectorizable_operation, vectorizable_type_demotion): Likewise.
3275 (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
3277 (vectorizable_live_operation): Check that op is not NULL.
3279 2007-10-22 Janis Johnson <janis187@us.ibm.com>
3281 * doc/invoke.texi (Optimization Options): In the summary, show
3282 that the value for options -falign-jumps, -falign-labels,
3283 -falign-loops, -falign-functions, -fsched-stalled-insns, and
3284 -fsched-stalled-insns-dep is optional. In the summary, show that
3285 -fsched-stalled-insns takes an optional argument and that
3286 -fparallelize-loops takes an argument. Add opindex for several
3287 optimization options, and fix typos in the opindex commands for
3288 several others. In the descriptions for -fsched-stalled-insns
3289 and -fsched-stalled-insns-dep, show the options with and without
3292 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com>
3294 * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
3296 * config/avr/avr.h (LINK_SPEC): Likewise.
3297 (CRT_BINUTILS_SPECS): Likewsie.
3298 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3300 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3302 PR rtl-optimization/33644
3303 * cfgcleanup.c: Do not include dce.h.
3304 * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
3305 * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
3306 * dce.c (something_changed): Delete.
3307 (libcall_dead_p): New predicate.
3308 (delete_unmarked_insns): Use it to delete dead libcalls.
3309 Deal with REG_LIBCALL and REG_RETVAL notes.
3310 (prescan_libcall_for_dce): New function.
3311 (prescan_insns_for_dce): Use it to deal with libcalls.
3312 (mark_reg_dependencies): Do nothing special for libcalls.
3313 (dce_process_block): Likewise.
3314 (fast_dce): Delete unused local variable.
3315 (run_fast_dce): Do not return a value.
3316 * dce.h (struct df): Delete.
3317 (run_fast_dce): Adjust prototype.
3318 * optabs.c (libcall_id): Delete.
3319 (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
3320 (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
3321 * reload1.c (reload): Delete REG_LIBCALL_ID case.
3322 * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
3323 * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
3324 notes instead of REG_LIBCALL_ID notes.
3325 * reg-notes.def (LIBCALL_ID): Delete.
3326 * Makefile.in (see.o): Add dce.h dependency.
3327 (cfgcleanup.o): Remove dce.h dependency.
3329 2007-10-22 Michael Matz <matz@suse.de>
3331 PR tree-optimization/33855
3332 * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
3335 2007-10-22 Ira Rosen <irar@il.ibm.com>
3337 PR tree-optimization/33854
3338 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
3339 FLOAT_EXPR to the list of promotion operations.
3341 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
3345 * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
3346 (print_reg): Print register prefix only with AT&T asm syntax.
3347 Support pc_rtx for RIP register.
3348 (print_operand_address): Use print_reg()'s pc_rtx support for RIP
3349 relative addressing. Always print segment register prefix with AT&T
3350 asm syntax and never with Intel asm syntax.
3351 (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands.
3352 Fix prefix for 16-byte XFmode operands.
3353 (output_addr_const_extra): Support Intel asm syntax.
3354 (x86_file_start): Don't use register prefix with Intel asm syntax.
3355 * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
3356 ("return_internal_long"): Fix Intel asm syntax output.
3357 ("set_got_rex64"): Support Intel asm syntax.
3358 ("set_rip_rex64"): Likewise.
3359 ("set_got_offset_rex64"): Likewise.
3360 ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
3362 ("*tls_global_dynamic_64"): Likewise.
3363 ("*tls_local_dynamic_base_64"): Likewise.
3364 ("*load_tp_si")("*load_tp_di"): Likewise.
3365 ("*add_tp_si")("*add_tp_di"): Likewise.
3366 ("*tls_dynamic_lea_64"): Likewise.
3367 ("*sibcall_value_1_rex64_v"): Likewise.
3368 ("stack_tls_protect_set_si"): Likewise.
3369 ("stack_tls_protect_set_di"): Likewise.
3370 ("stack_tls_protect_test_si"): Likewise.
3371 ("stack_tls_protect_test_di"): Likewise.
3372 * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
3374 ("*movv2sf_internal_rex64"): Likewise.
3375 * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
3376 (__get_cpuid_max): Likewise.
3378 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3380 * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
3381 the STRICT_P argument type "bool" rather than "int".
3382 (mips_legitimate_address_p): Likewise.
3383 (fp_register_operand, lo_operand): Delete.
3384 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
3385 (mips_emit_scc): Rename to...
3386 (mips_expand_scc): ...this.
3387 (gen_conditional_branch): Rename to...
3388 (mips_expand_conditional_branch): ...this.
3389 (gen_conditional_move): Rename to...
3390 (mips_expand_conditional_move): ...this.
3391 (mips_gen_conditional_trap): Rename to...
3392 (mips_expand_conditional_trap): ...this and take an rtx code instead
3393 of an operands array.
3394 (mips_expand_call): Give the SIBCALL_P argument type "bool"
3396 (mips_emit_fcc_reload): Rename to...
3397 (mips_expand_fcc_reload): ...this.
3398 (init_cumulative_args): Rename to...
3399 (mips_init_cumulative_args): ...this and remove the libname argument.
3400 (function_arg_advance): Rename to...
3401 (mips_function_arg_advance): ...this.
3402 (function_arg): Rename to...
3403 (mips_function_arg): ...this and use "rtx" instead of
3405 (function_arg_boundary): Rename to...
3406 (mips_function_arg_boundary): ...this.
3407 (mips_expand_unaligned_load): Rename to...
3408 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
3409 and BITPOS arguments type "HOST_WIDE_INT".
3410 (mips_expand_unaligned_store): Rename to...
3411 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
3412 and BITPOS arguments type "HOST_WIDE_INT".
3413 (override_options): Rename to...
3414 (mips_override_options): ...this.
3415 (print_operand): Rename to...
3416 (mips_print_operand): ...this.
3417 (print_operand_address): Rename to...
3418 (mips_print_operand_address): ...this.
3419 (mips_output_ascii): Remove the PREFIX argument.
3420 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
3422 (mips_can_use_return_insn): Return a "bool" rather than an "int".
3423 (mips_function_value): Remove the FUNC argument. Use "rtx" instead
3424 of "struct rtx_def *".
3425 (mips_secondary_reload_class): Give the IN_P argument type "bool"