1 2007-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4 * collect2.c (SHLIB_SUFFIX): Define if not defined.
5 (write_c_file_stat): Use SHLIB_SUFFIX.
6 * som.h (SHLIB_SUFFIX): Define.
7 * doc/tm.texi (SHLIB_SUFFIX): Document.
9 2007-12-29 Uros Bizjak <ubizjak@gmail.com>
11 * config/i386/sse.md ("*divv4sf3"): Rename to "sse_divv4sf3".
12 ("*sse_rsqrtv4sf2"): Export.
13 ("*sse_sqrtv4sf2"): Ditto.
14 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_RSQRTPS_NR,
15 IX86_BUILTIN_SQRTPS_NR]: New constants.
16 (struct builtin_description) [IX86_BUILTIN_DIVPS]: Use
17 CODE_FOR_sse_divv4sf3.
18 [IX86_BUILTIN_SQRTPS]: Use CODE_FOR_sse_sqrtv4sf2.
19 [IX86_BUILTIN_SQRTPS_NR]: New.
20 [IX86_BUILTIN_RSQRTPS_NR]: Ditto.
21 (ix86_init_mmx_sse_builtins): Initialize __builtin_ia32_rsqrtps_nr and
22 __builtin_ia32_sqrtps_nr.
23 (ix86_builtin_vectorized_function): Convert BUILT_IN_SQRTF to
24 IX86_BUILTIN_SQRTPS_NR.
25 (ix86_builtin_reciprocal): Convert IX86_BUILTIN_SQRTPS_NR to
26 IX86_BUILTIN_RSQRTPS_NR.
28 2007-12-27 Brian Dessent <brian@dessent.net>
30 * doc/invoke.texi (Optimize Options): Add missing opindex for
31 -fno-toplevel-reorder.
33 2007-12-27 Dorit Nuzman <dorit@il.ibm.com>
35 PR tree-optimization/34591
36 * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip
37 stmts (including reduction stmts) that are not live.
39 2007-12-27 Jakub Jelinek <jakub@redhat.com>
42 * config/arm/arm.c (arm_setup_incoming_varargs): If last named
43 argument needs double word alignment and cum->nregs is odd, account
44 for the inserted padding.
47 * tree-mudflap.c (mf_make_builtin): Make decl artificial
48 and don't emit debug info for it.
50 2007-12-26 Anatoly Sokolov <aesok@post.ru>
52 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82
53 and AT90USB162 devices from 'avr5' to 'avr35' architecture.
54 (ASM_SPEC): Add 'avr35' architecture.
55 * config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162
56 devices from 'avr5' to 'avr35' architecture.
57 (avr_arch_types): Add "avr23" entries.
58 (avr_arch): Add 'ARCH_AVR35'.
59 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'.
60 (MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5'
61 to 'avr35' architecture.
63 2007-12-22 David Daney <ddaney@avtrex.com>
65 * doc/install.texi (disable-libgcj-bc): Document new option.
67 2007-12-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
69 * config/pa/pa.c (hppa_legitimize_address): Use INT14_OK_STRICT in
73 * pa.c (legitimize_pic_address): Emit insn to load function label
76 2007-12-21 Andrew Pinski <pinskia@gmail.com>
77 Rask Ingemann Lambertsen <rask@sygehus.dk>
80 * config/mcore/mcore.c (mcore_function_value): Call promote_mode
81 instead of PROMOTE_MODE.
83 2007-12-21 Sebastian Pop <sebastian.pop@amd.com>
85 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix typo.
87 2007-12-21 Sebastian Pop <sebastian.pop@amd.com>
89 * tree-data-ref.c (signed_type_for_types): New.
90 (affine_fn_op): Use signed_type_for_types and signed_type_for instead
91 of long_integer_type_node.
92 (analyze_ziv_subscript): Same.
93 (analyze_siv_subscript_cst_affine): Same.
94 (analyze_miv_subscript): Same.
95 (omega_setup_subscript): Same.
97 2007-12-21 Richard Sandiford <rsandifo@nildram.co.uk>
99 * config/mips/mips.c (mips_emit_loadgp): Replace gen_* calls with
100 separate gen_*_si and gen_*_di calls. Pass pic_offset_table_rtx
101 as the first argument.
102 * config/mips/mips.md (loadgp_newabi, loadgp_absolute)
103 (loadgp_rtp): Rename to...
104 (loadgp_newabi_<mode>, loadgp_absolute<mode>, loadgp_rtp<mode>):
105 ...these. Add modes to all operands. Add the target register
106 as an operand. Combine loadgp_rtp<mode> with its splitter.
108 2007-12-20 Bob Wilson <bob.wilson@acm.org>
110 * config/xtensa/xtensa.md (fix_return_addr): Remove.
111 * config/xtensa/xtensa-protos.h (xtensa_initialize_trampoline): New.
112 (xtensa_trampoline_template): New.
113 * config/xtensa/xtensa.c (MIN_FRAME_SIZE): Moved here from xtensa.h.
114 (xtensa_return_addr): Expand to standard Xtensa insns instead of
115 fix_return_addr. Get high bits from a local label.
116 (xtensa_trampoline_template): New function with code moved from
117 TRAMPOLINE_TEMPLATE in xtensa.h. Use L32R instead of CALL0 except
118 when using CONST16 or absolute-mode literals.
119 (xtensa_initialize_trampoline): New function with code moved from
120 INITIALIZE_TRAMPOLINE in xtensa.h. Use different offsets depending
121 on which trampoline version is used.
122 * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Add comment.
123 * config/xtensa/xtensa.h (TARGET_ABSOLUTE_LITERALS): Define.
124 (MIN_FRAME_SIZE): Moved to xtensa.c.
125 (TRAMPOLINE_TEMPLATE): Use xtensa_trampoline_template.
126 (TRAMPOLINE_SIZE): Two versions of the trampoline have different sizes.
127 (INITIALIZE_TRAMPOLINE): Use xtensa_initialize_trampoline.
128 * config/xtensa/ieee754-df.S (XCHAL_NO_MUL): Define.
129 (__muldf3): Use CALL12 instead of CALL0 to invoke .Lmul_mulsi3
130 helper when not using the CALL0 ABI. Change .Lmul_mulsi3 to match.
131 * config/xtensa/lib1funcs.asm (__umulsidi3): Likewise.
132 * config/xtensa/ieee754-sf.S (__mulsf3): Likewise.
134 2007-12-20 Jakub Jelinek <jakub@redhat.com>
137 * tree-ssa-dse.c (dse_optimize_stmt): Don't eliminate store if
138 USE_STMT not only stores into the same object as STMT, but might
141 2007-12-19 Sebastian Pop <sebastian.pop@amd.com>
143 PR tree-optimization/34413
144 * tree-data-ref.c (affine_fn_op, analyze_ziv_subscript,
145 analyze_siv_subscript_cst_affine, analyze_miv_subscript,
146 omega_setup_subscript): Use long_integer_type_node instead of
149 2007-12-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
152 * pa.c (legitimize_pic_address): Force function labels into memory.
154 2007-12-19 Zdenek Dvorak <ook@ucw.cz>
156 * omp-low.c (build_omp_regions_1): Recognition of combined parallels
158 (expand_omp): ... here.
160 2007-12-19 Zdenek Dvorak <ook@ucw.cz>
162 PR tree-optimization/34355
163 * tree-parloops.c (take_address_of): Handle expresions
164 instead of just variables.
165 (eliminate_local_variables_1): Force whole invariant
168 2007-12-19 Alexander Monakov <amonakov@ispras.ru>
169 Revital Eres <eres@il.ibm.com>
171 * modulo-sched.c (generate_reg_moves): Insert the reg-moves
172 right before the notes which precedes the insn, if they exists.
173 (loop_canon_p): Add dump info.
174 (sms_schedule): Likewise.
176 2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk>
178 * tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter.
179 * emit-rtl.c (set_decl_incoming_rtl): Likewise. Don't set the
180 rtl's register attributes when the parameter is true.
181 * function.c (assign_parms_unsplit_complex, assign_parms)
182 (expand_function_start): Update calls to set_decl_incoming_rtl.
184 2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk>
186 * rtl.def (SUBREG): Update comments.
187 * rtl.h (reg_attrs): Be explicit about the type of offset used.
188 (set_reg_attrs_from_mem): Rename to...
189 (set_reg_attrs_from_value): ...this.
190 (adjust_reg_mode, byte_lowpart_offset): Declare.
191 * emit-rtl.c (byte_lowpart_offset): New function.
192 (update_reg_offset): Remove special offset handling for big-endian
194 (gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the
195 offset parameter is added to REG_OFFSET.
196 (adjust_reg_mode): New function.
197 (set_reg_attrs_for_mem): Rename to...
198 (set_reg_attrs_for_value): ...this and generalize to all values.
199 If the register is a lowpart of the value, adjust the offset
201 (set_reg_attrs_for_parm): Update after the above renaming.
202 (set_reg_attrs_for_decl_rtl): New function, split out from
203 set_decl_incoming_rtl. Set the offset of plain REGs to the
204 offset of the REG's mode from the decl's. Assert that all
205 subregs are lowparts and handle their inner registers in the
206 same way as plain REGs.
207 (set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl.
208 (subreg_lowpart_offset): Explicitly say that the returned offset
210 * combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode
212 * final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset.
213 * config/ia64/ia64.c (ia64_expand_load_address): Likewise.
214 * regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value.
215 * reload.c (find_reloads_subreg_address): Call set_mem_offset
216 when offseting a MEM.
217 * var-tracking.c (offset_valid_for_tracked_p): Delete.
218 (mode_for_reg_attrs): Replace with...
219 (track_loc_p): ...this new function. Return the mode and offset
220 to the caller, checking that the latter is valid. If the rtx is
221 a paradoxical lowpart of the decl, use the decl's mode instead.
222 Do the same when storing to a register that contains the entire decl.
223 (var_lowpart): Use byte_lowpart_offset rather than
224 subreg_lowpart_offset when adjusting the offset attribute.
225 (count_uses, add_uses, add_stores): Use track_reg_p instead of
226 REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p,
227 offset_valid_for_tracked_p and mode_for_reg_attrs. Generate
228 lowparts for MEMs as well as REGs.
229 (vt_add_function_parameters): When obtaining the information from
230 the decl_rtl, adjust the offset to match incoming. Use track_loc_p
233 2007-12-18 Sebastian Pop <sebastian.pop@amd.com>
235 PR tree-optimization/34123
236 * lambda-code.c (can_duplicate_iv): New.
237 (cannot_convert_modify_to_perfect_nest): New.
238 (cannot_convert_bb_to_perfect_nest): New.
239 (can_convert_to_perfect_nest): Split up.
241 2007-12-18 David Daney <ddaney@avtrex.com>
243 * config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation
244 instead of .set push and .set pop.
246 2007-12-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
249 * config/bfin/bfin.c (bfin_adjust_cost): Dig into PARALLELs to find
252 2007-12-18 Razya Ladelsky <razya@il.ibm.com>
254 * tree-parloops.c (reduiction_info): Change documentation of
255 reduction_initial field.
256 (initialize_reductions): Remove creation of reduction_initial variable.
257 (create_loads_for_reductions): don't join reduction_initial to
260 2007-12-18 Kaz Kylheku <kaz@zeugmasystems.com>
262 PR rtl-optimization/34456
263 * resource.c (mark_set_resources): Use regs_invalidated_by_call
264 rather than call_used_regs and global_regs.
266 2007-12-18 Jakub Jelinek <jakub@redhat.com>
268 PR rtl-optimization/34490
269 * simplify-rtx.c (simplify_const_relational_operation): If !sign,
270 don't reduce mmin/mmax using num_sign_bit_copies.
272 2007-12-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
274 * doc/install.texi: Change recommended MPFR from 2.2.1 -> 2.3.0.
276 2007-12-17 Andreas Schwab <schwab@suse.de>
278 * doc/invoke.texi (Warning Options): Use @itemx.
280 2007-12-17 Dorit Nuzman <dorit@il.ibm.com>
282 * tree-vectorizer.h (verbosity_levels): Add new verbosity level
284 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Change
285 verbosity level to REPORT_COST.
286 (vect_model_reduction_cost): Likewise.
287 (vect_model_induction_cost): Likewise.
288 (vect_model_simple_cost): likewise.
289 (vect_model_store_cost): likewise.
290 (vect_model_load_cost): likewise.
291 (conservative_cost_threshold): Likewise. Remove print.
293 2007-12-17 Rask Ingemann Lambertsen <rask@sygehus.dk>
295 * doc/tm.texi (TARGET_SECONDARY_RELOAD): Fix typos.
297 2007-12-17 Jakub Jelinek <jakub@redhat.com>
300 * c-parser.c (c_parser_omp_all_clauses): Accept optional comma
303 2007-12-17 Dorit Nuzman <dorit@il.ibm.com>
305 PR tree-optimization/34445
306 * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip
307 stmts (including live stmts) that are not relevant.
309 2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu>
312 * config/i386/t-crtpc: Add $(MULTILIB_CFLAGS).
313 * config/i386/t-crtfm: Likewise.
315 2007-12-17 Uros Bizjak <ubizjak@gmail.com>
317 * config/i386/i386.h (WIDEST_HARDWARE_FP_SIZE): Define.
319 2007-12-16 Uros Bizjak <ubizjak@gmail.com>
321 * tree-vect-transform.c (conservative_cost_threshold): Add missing
322 space to "not vectorized" message.
324 2007-12-16 Richard Sandiford <rsandifo@nildram.co.uk>
326 PR rtl-optimization/34415
327 * df.h (DF_LR_IN, DF_LR_OUT): Update comments.
328 * resource.c (mark_target_live_regs): Use DF_LR_IN rather than
329 df_get_live_in. Don't handle pseudos.
331 2007-12-16 Jakub Jelinek <jakub@redhat.com>
334 * c-decl.c (merge_decls): Copy RTL from olddecl to newdecl.
335 * config/pa/pa.c (pa_encode_section_info): If !first, preserve
336 SYMBOL_FLAG_REFERENCED flag.
338 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
340 * tree.c (type_hash_add): Fix whitespace.
342 2007-12-15 Hans-Peter Nilsson <hp@axis.com>
344 Add CRIS v32 support. Fix -mcc-init.
345 * config.gcc: Make crisv32-* have cpu_type cris. Handle
346 crisv32-*-elf and crisv32-*-none like cris-*-elf and cris-*-none
347 but without multilibs and with target_cpu_default=32.
348 (crisv32-*-linux*): Handle as cris-*-linux*. Set
349 target_cpu_default to 32 and 10 accordingly.
350 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Remove unused macro.
351 (cris_movem_load_rest_p, cris_store_multiple_op_p): Remove FIXME.
352 Change regno_dir and regno only if !TARGET_V32.
353 (cris_conditional_register_usage): If TARGET_V32, set
354 reg_alloc_order as per REG_ALLOC_ORDER_V32 and make
355 CRIS_ACR_REGNUM non-fixed.
356 (cris_print_base): Add gcc_assert for post_inc on CRIS_ACR_REGNUM.
357 (cris_print_operand) <case 'Z', case 'u'>: New cases.
358 <case REG of case 'H'>: Allow for CRIS_SRP_REGNUM.
359 (cris_reload_address_legitimized): Always return false for TARGET_V32.
360 (cris_register_move_cost): New function, guts from
361 REGISTER_MOVE_COST adjusted for CRIS v32.
362 (cris_normal_notice_update_cc): New function split out from...
363 (cris_notice_update_cc): Set cc_status.flags CC_REVERSED for
364 TARGET_CCINIT. Call cris_normal_notice_update_cc for CC_REV,
365 CC_NOOV32 and CC_NORMAL, but set cc_status.flags CC_NO_OVERFLOW
366 for CC_NOOV32 and TARGET_V32.
367 (cris_simple_epilogue): Always return false for TARGET_V32 if
368 cris_return_address_on_stack yields true.
369 (cris_cc0_user_requires_cmp): New function.
370 (cris_valid_pic_const): Add argument ANY_OPERAND. All callers
371 changed. Handle CRIS_UNSPEC_PLT_PCREL and CRIS_UNSPEC_PCREL.
372 (cris_asm_output_case_end): New function, guts from
373 ASM_OUTPUT_CASE_END adjusted for CRIS v32.
374 (cris_override_options): Adjust for CRIS v32. Mask out
375 TARGET_SIDE_EFFECT_PREFIXES and TARGET_MUL_BUG if v32.
376 (cris_asm_output_mi_thunk, cris_expand_epilogue)
377 (cris_gen_movem_load, cris_emit_movem_store)
378 (cris_expand_pic_call_address, cris_asm_output_symbol_ref)
379 (cris_asm_output_label_ref, cris_output_addr_const_extra): Adjust
381 (cris_split_movdx): Copy re-used MEM.
382 * config/cris/t-elfmulti: Add multilib v32 for -march=v32.
383 * config/cris/predicates.md
384 ("cris_general_operand_or_pic_source"): New predicate.
385 ("cris_general_operand_or_plt_symbol"): Replace by...
386 ("cris_nonmemory_operand_or_callable_symbol"): New predicate.
387 * config/cris/linux.h: Sanity-check TARGET_CPU_DEFAULT for
388 presence and contents.
389 (CRIS_SUBTARGET_DEFAULT_ARCH): New macro, MASK_AVOID_GOTPLT for
391 (CRIS_CPP_SUBTARGET_SPEC, CRIS_CC1_SUBTARGET_SPEC,
392 CRIS_ASM_SUBTARGET_SPEC): Adjust for different TARGET_CPU_DEFAULT.
393 (CRIS_SUBTARGET_DEFAULT): Add CRIS_SUBTARGET_DEFAULT_ARCH.
394 * config/cris/cris.h: Sanity-check TARGET_CPU_DEFAULT for contents.
395 (CRIS_DEFAULT_TUNE, CRIS_ARCH_CPP_DEFAULT)
396 (CRIS_DEFAULT_ASM_ARCH_OPTION): New macros.
397 (CRIS_CC1_SUBTARGET_SPEC): Change default tuning to use
399 (CRIS_CPP_SUBTARGET_SPEC): Ditto. Add CRIS_ARCH_CPP_DEFAULT.
400 (ASM_SPEC): Add sanity-check erroring out when both -march= and
401 -mcpu= are specified. Pass on either as --march=v32.
402 (CRIS_ASM_SUBTARGET_SPEC): When neither -march= or -mcpu= are
403 specified, pass on CRIS_DEFAULT_ASM_ARCH_OPTION.
404 (CRIS_CPU_V32): New macro.
405 [!TARGET_CPU_DEFAULT]: Default-define as CRIS_CPU_BASE.
406 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]: Move default
407 TARGET_DEFAULT definition after new TARGET_CPU_DEFAULT definition.
408 Define v32-adjusted TARGET_DEFAULT.
409 (CRIS_DEFAULT_CPU_VERSION): Change to TARGET_CPU_DEFAULT from
411 (TARGET_V32): New macro.
412 (REG_ALLOC_ORDER_V32): New macro.
413 (HARD_REGNO_MODE_OK): Do not allow larger-than-register-size modes
414 into CRIS_ACR_REGNUM.
415 (enum reg_class): New classes ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS
416 and SPEC_GENNONACR_REGS.
417 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Adjust for new classes.
418 (REGNO_REG_CLASS): Give ACR_REGS for CRIS_ACR_REGNUM.
419 (MODE_CODE_BASE_REG_CLASS): Define, give for OCODE POST_INC
420 GENNONACR_REGS, BASE_REG_CLASS otherwise.
421 (REG_CLASS_FROM_LETTER): 'a' is for ACR_REGS.
422 (REGNO_MODE_CODE_OK_FOR_BASE_P): Define, refusing OCODE POST_INC
424 (PREFERRED_RELOAD_CLASS): Keep ACR_REGS as preferred.
425 (HARD_REGNO_RENAME_OK): Refuse CRIS_ACR_REGNUM as TO.
426 (EXTRA_CONSTRAINT): New constraint 'U'.
427 (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE)
428 (ASM_OUTPUT_ADDR_DIFF_ELT): Adjust for CRIS v32.
429 (BASE_OR_AUTOINCR_P): Refuse POST_INC for CRIS_ACR_REGNUM.
430 (SIMPLE_ADDRESS_P): Remove.
431 (GO_IF_LEGITIMATE_ADDRESS): Use BASE_OR_AUTOINCR_P, not redundant
432 SIMPLE_ADDRESS_P. Make one chained if-else, finishing as
433 non-match after BASE_OR_AUTOINCR_P for TARGET_V32.
434 (REGISTER_MOVE_COST): Just call the new function
435 cris_register_move_cost.
436 (enum cris_pic_symbol_type): Rename cris_gotrel_symbol to
437 cris_rel_symbol. All users changed.
438 (REGISTER_NAMES): Replace "pc" with "acr".
439 (ADDITIONAL_REGISTER_NAMES): Add "pc" for 15.
440 (ASM_OUTPUT_REG_PUSH): Change to v32-compatible sequence.
441 (ASM_OUTPUT_REG_POP): Change to v32-compatible syntax.
442 (ASM_OUTPUT_CASE_END): Just call the new function
443 cris_asm_output_case_end.
444 * gcc/config/cris/cris.md: Group related constants together, with
446 (CRIS_UNSPEC_PLT_GOTREL, CRIS_UNSPEC_PLT_PCREL, CRIS_UNSPEC_PCREL)
447 (CRIS_UNSPEC_CASESI): New constants.
448 (CRIS_UNSPEC_PLT): Remove constant.
449 (CRIS_ACR_REGNUM): New constant.
450 ("slottable"): New attr alternatives "has_return_slot" and
452 ("cc"): New attr alternatives "noov32" and "rev".
453 ((eq_attr "slottable" "has_call_slot"))
454 ((eq_attr "slottable" "has_return_slot")): New define_delays.
455 ("movdi", "movsi"): Adjust operands for CRIS v32.
456 ("tstdi", "cmpdi", "adddi3", "subdi3", "uminsi3")
457 ("indirect_jump"): Ditto. Make define_expand.
458 ("*tstdi_non_v32", "*tstdi_v32", "*tst<mode>_cmp")
459 ("*tst<mode>_non_cmp", "*cmpdi_non_v32", "*cmpdi_v32")
460 ("*movdi_v32", "*adddi3_non_v32", "*adddi3_v32")
461 ("*addsi3_non_v32", "*addsi3_v32", "*addhi3_non_v32")
462 ("*addhi3_v32", "*addqi3_non_v32", "*addqi3_v32")
463 ("*subdi3_non_v32", "*subdi3_v32", "*subsi3_non_v32")
464 ("*subsi3_v32", "*sub<mode>3_nonv32", "*sub<mode>3_v32")
465 ("*andqi3_non_v32", "*andqi3_v32", "*iorsi3_non_v32")
466 ("*iorsi3_v32", "*iorhi3_non_v32", "*iorhi3_v32")
467 ("*iorqi3_non_v32", "*iorqi3_v32", "*uminsi3_non_v32")
468 ("*uminsi3_v32", "*indirect_jump_non_v32", "*indirect_jump_v32")
469 ("*expanded_call_v32", "*expanded_call_value_v32"): New patterns,
470 for the corresponding standard name.
471 ("tst<mode>"): Limit to BW and make define_expand.
472 ("tstsi"): Make separate insn, adjusting for CRIS v32.
473 ("*cmp_swapext<mode>"): Adjust for v32. Specify "rev" for attr "cc".
474 ("cmpsi", "cmp<mode>"): Remove special cases for zero. Specify
476 ("*btst"): Don't match for TARGET_CCINIT. Replace test of
477 register with compatible "cmpq 0". Specify attr "cc".
478 ("*movdi_insn_non_v32"): New pattern, replacing "*movdi_insn" and
480 (define_split for DI move): Match CRIS v32 only.
481 ("*movsi_got_load", "*movsi_internal", "*addi"): Adjust for CRIS v32.
482 ("load_multiple", "store_multiple", "*addsbw_v32", "*addubw_v32")
483 ("*adds<mode>_v32", "*addu<mode>_v32", "*bound<mode>_v32")
484 ("*casesi_jump_v32", "*expanded_andsi_v32", "*expanded_andhi_v32")
485 ("*extop<mode>si_v32", "*extopqihi_v32", "*andhi_lowpart_v32")
486 ("*andqi_lowpart_v32", "cris_casesi_v32"): New patterns.
487 ("add<mode>3"): Make addsi3, addhi3 and addqi3 define_expand.
488 ("sub<mode>3"): Ditto subsi3, subhi3 and subqi3.
489 ("ior<mode>3"): Ditto iorsi3, iorhi3 and iorqi3.
490 ("*extopqihi_non_v32"): Replace "*extopqihi".
491 ("*extop<mode>si_non_v32"): Replace "*extop<mode>si".
492 ("*addxqihi_swap_non_v32"): Rename from "*extopqihi_swap", make
494 ("*extop<mode>si_swap_non_v32"): Ditto "*extop<mode>si_swap".
495 ("*expanded_andsi_non_v32"): Ditto "*expanded_andsi".
496 ("*expanded_andhi_non_v32"): Ditto "*expanded_andhi".
497 ("*andhi_lowpart_non_v32"): Ditto "*andhi_lowpart".
498 ("*andqi_lowpart_non_v32"): Ditto "*andqi_lowpart".
499 ("*expanded_call_non_v32"): Ditto "*expanded_call". Change from
500 "cris_general_operand_or_plt_symbol" to "general_operand".
501 ("*expanded_call_value_non_v32") Ditto "*expanded_call_value".
502 ("*casesi_adds_w", "mstep_shift", "mstep_mul")
503 ("*expanded_call_side", "*expanded_call_value_side")
504 (op-extend-split, op-extend-split-rx=rz, op-extend-split-swapped)
505 (op-extend-split-swapped-rx=rz, op-extend, op-split-rx=rz)
506 (op-split-swapped, op-split-swapped-rx=rz): Make non-v32 only.
507 ("dstep_mul", "xorsi3", "one_cmplsi2", "<shlr>si3")
508 ("*expanded_<shlr><mode>", "*<shlr><mode>_lowpart", "ashl<mode>3")
509 ("*ashl<mode>_lowpart", "abssi2", "clzsi2", "bswapsi2")
510 ("cris_swap_bits"): Specify "noov32" for attr "cc".
511 ("<su>mulsi3_highpart"): Ditto. Correct operand 0 to register_operand.
512 ("andqi3"): Make define_expand.
513 ("*return_expanded"): For attr "slottable", change from "has_slot"
514 to "has_return_slot".
515 ("cris_casesi_non_v32"): New pattern, old contents of "casesi".
516 ("casesi"): Divert into "cris_casesi_v32" and "cris_casesi_non_v32".
517 (moversideqi, movemsideqi, mover2side): Require
518 TARGET_SIDE_EFFECT_PREFIXES.
519 (gotplt-to-plt, gotplt-to-plt-side): Change from CRIS_UNSPEC_PLT
520 to CRIS_UNSPEC_PLT_GOTREL.
521 * config/cris/cris-protos.h (cris_register_move_cost)
522 (cris_cc0_user_requires_cmp, cris_asm_output_case_end): Declare.
524 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
527 * dwarf2out.c (dwarf_tag_name): Synchronize with dwarf2.h.
528 (is_type_die): Cover interface types.
529 (class_or_namespace_scope_p): Cover interface and class types.
530 (record_type_tag): New.
531 (gen_inlined_structure_type_die): Use it.
532 (gen_struct_or_union_type_die): Likewise.
533 (prune_unused_types_walk): Cover interface types.
534 * langhooks.h (classify_record): New enum.
535 (classify_record): New member in struct langhooks_for_types.
536 * langhooks-def.h (LANG_HOOKS_CLASSIFY_RECORD): New.
537 (LANGHOOKS_FOR_TYPES_INITIALIZER): Adjust.
539 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
541 * dwarf2out.c (reference_to_unused): Don't emit strings in
542 initializers just because of debug information.
543 * tree.h (TREE_ASM_WRITTEN): Document use for STRING_CSTs.
545 2007-12-15 Sebastian Pop <sebastian.pop@amd.com>
547 * tree-scalar-evolution.c (number_of_iterations_for_all_loops): Replace
548 print_loop_ir with print_loops.
549 * tree-flow.h (dot_cfg, debug_loops, debug_loop, debug_loop_num,
550 print_loops, print_loops_bb): Declare.
551 * tree-cfg.c (print_loops_bb): New.
552 (print_loop): Print header, latch, bounds, estimation of iterations.
553 (print_loop_and_siblings): New.
554 (print_loop_ir): Renamed print_loops.
555 (debug_loop_ir): Renamed debug_loops.
556 (debug_loop, debug_loop_num): New.
558 2007-12-15 Bernhard Fischer <aldot@gcc.gnu.org>
560 * tree-flow-inline.h.c (next_readonly_imm_use): Fix typo in comment.
562 2007-12-15 Bernhard Fischer <aldot@gcc.gnu.org>
564 * toplev.c (process_options): Fix typo in warning.
566 2007-12-14 Jakub Jelinek <jakub@redhat.com>
569 * config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU
570 DImode comparisons against constant with all 1's in the lower word.
572 2007-12-14 Uros Bizjak <ubizjak@gmail.com>
574 * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand
575 constraint for operand 2. Use nonimm_not_xmm0_operand constraint
576 for operand 4. Update arguments in the call to
577 gen_sse4_2_pcmpestr_cconly.
578 (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn
579 template accordingly.
580 (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2.
581 Use nonimm_not_xmm0_operand constraint for operand 3. Update
582 arguments in the call to gen_sse4_2_pcmpistr_cconly.
583 (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn
584 template accordingly.
586 2007-12-14 Richard Guenther <rguenther@suse.de>
589 * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add
590 parameter to say whether to unlink immediate uses.
591 * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not
592 mark the artificial stmt as modified. Unlink immediate uses
594 * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller.
595 * tree-ssa-pre.c (insert_fake_stores): Likewise.
597 2007-12-13 Eric Botcazou <ebotcazou@libertysurf.fr>
600 * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
601 * tree-complex.c (init_dont_simulate_again): Return true if there are
602 uninitialized loads generated by gimplify_modify_expr_complex_part.
603 * tree-gimple.c (is_gimple_reg_type): Return false for complex types
605 * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
606 (warn_uninit): ...here. Use ssa_undefined_value_p.
607 * tree-ssa-pre.c (is_undefined_value): Delete.
608 (phi_translate_1): Use ssa_undefined_value_p.
609 (add_to_exp_gen): Likewise.
610 (make_values_for_stmt): Likewise.
611 * tree-flow.h (ssa_undefined_value_p): Declare.
613 2007-12-13 Andrew Pinski <pinskia@gmail.com>
614 David Daney <ddaney@avtrex.com>
617 * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING
620 2007-12-13 Jakub Jelinek <jakub@redhat.com>
622 PR rtl-optimization/32636
623 * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx
624 regno in entry_block_defs even if HAVE_prologue && epilogue_completed.
626 2007-12-13 Uros Bizjak <ubizjak@gmail.com>
627 Richard Guenther <rguenther@suse.de>
630 * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16,
631 _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16,
632 _mm_shuffle_epi32): Cast non-constant input values to either __m64,
633 __m128, __m128i or __m128d in a macro version of the intrinsic.
634 Cast constant input values to int.
635 * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto.
636 * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16,
637 _mm_roti_epi32, _mm_roti_epi64): Ditto.
638 * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd,
639 _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8,
640 _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32,
641 _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri,
642 _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro,
643 _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro,
644 _mm_cmpestrs, _mm_cmpestrz): Ditto.
645 * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto.
646 * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw,
647 _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto.
648 * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd,
649 _mm_round_ps, _mm_round_ss): Ditto.
651 2007-12-13 Richard Guenther <rguenther@suse.de>
653 PR tree-optimization/34450
654 * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param.
655 * invoke.texi (sccvn-max-scc-size): Document.
656 * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency.
657 * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false
659 * tree-ssa-sccvn.c (params.h): Include.
660 (DFS): Return true if all went well, return false as soon as
661 a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE.
662 (run_scc_vn): Return true if all went well, return false if
663 we aborted during DFS.
664 * tree-ssa-pre.c (execute_pre): Check if SCCVN finished
665 successfully, otherwise bail out.
667 2007-12-13 Olga Golovanevsky <olga@il.ibm.com>
669 * ipa-struct-reorg.c (is_candidate): Print information to dump
670 file when the type is initialized.
671 (get_stmt_accesses): Likewise when a structure has bitfields
672 or field access is too complicate.
673 (safe_cond_expr_check): Likewise for unsafe condition expressions.
674 (exclude_cold_structs): Likewise for cold structures.
675 (collect_structures): Suppress redundant print when there are
676 no structures to transform.
677 (do_reorg): Print to dump file a number of structures that
679 (dump_new_types): Print a number of new types to replace
680 an original structure type.
682 2007-12-13 Olga Golovanevsky <olga@il.ibm.com>
684 * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg
685 option and struct-reorg-cold-struct-ratio parameter.
687 2007-12-13 Torbjorn Granlund <tege@swox.com>
689 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for
690 ZERO_EXTEND when computing costs for widening multiplication.
692 2007-12-13 Richard Earnshaw <rearnsha@arm.com>
695 * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
696 exit when using hard FPA.
697 * config/arm/ieee754-df.S (floatdidf): Likewise.
699 2007-12-12 Jakub Jelinek <jakub@redhat.com>
702 * doc/install.texi: Document that for MinGW only runtime 3.12 and
705 2007-12-12 David Edelsohn <edelsohn@gnu.org>
707 * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE.
709 2007-12-12 Aldy Hernandez <aldyh@redhat.com>
711 PR tree-optimization/32901
712 * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we
713 are assigning from a constant constructor.
714 Fix wrapping in function comment.
716 2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com>
718 * config/s390/s390.c (s390_O_constraint_str): Limit the range
719 for 'On' to -4G+1..-1.
720 * config/s390/constraints.md: Adjust comment accordingly.
722 2007-12-11 Nathan Sidwell <nathan@codesourcery.com>
724 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx
727 2007-12-11 Kai Tietz <kai.tietz@onevision.com>
729 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit
730 target same as 32-bit.
732 2007-12-10 Jakub Jelinek <jakub@redhat.com>
734 PR tree-optimization/34371
735 * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged
737 (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field.
738 * tree-vectorizer.c (set_prologue_iterations,
739 slpeel_tree_peel_loop_to_edge): Call unshare_expr on
740 LOOP_VINFO_NITERS_UNCHANGED before using it.
742 2007-12-10 Eric Botcazou <ebotcazou@libertysurf.fr>
745 * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large.
746 (ix86_expand_setmem): Likewise.
748 2007-12-10 Kenneth Zadeck <zadeck@naturalbridge.com>
750 PR rtl-optimization/34302
751 * auto-inc-dec.c (attempt_change): Change place where move is
754 2007-12-10 Jakub Jelinek <jakub@redhat.com>
756 * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For
757 Fortran multi-dimensional arrays use DW_AT_ordering
760 2007-12-10 Paolo Bonzini <bonzini@gnu.org>
763 * config/i386/i386.c (override_options): Enable -fvect-cost-model.
765 2007-12-10 Uros Bizjak <ubizjak@gmail.com>
767 * config/i386/i386.c (ix86_function_regparm): Do not check global_regs
768 array, registers that are members of global_regs are also members of
769 fixed_regs array. Use REGPARM_MAX to check that no regparm hard
770 register is taken by a fixed register variable. Check up to and
771 including DI_REG when adjusting regparm value due to fixed regs usage.
772 (rep_prefix_usable): Check fixed_regs array, not global_regs array for
773 available hard registers.
774 (ix86_expand_strlen): Ditto.
775 * config/i386/i386.md (strmov): Ditto.
778 2007-12-10 Kaz Kojima <kkojima@gcc.gnu.org>
780 * genopinit.c: Include tm_p.h in generated file.
782 * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
783 to extract the integer from operands[2].
784 (vec_setv2di_internal): Likewise.
786 * config/arm/arm.c (arm_size_return_regs): Make return type unsigned.
787 (arm_init_neon_builtins): Move code after declarations.
789 2007-12-10 Hans-Peter Nilsson <hp@axis.com>
791 * reload.c (find_reloads_address_1): To properly mark as an
792 autoincdec, pass X for non-NULL OUT in call to push_reload for
793 autoincdec which can't be trivially used as an address.
795 2007-12-10 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
796 Hans-Peter Nilsson <hp@axis.com>
798 * caller-save.c (insert_one_insn): If inserting before a call_insn
799 then the registers containing the arguments of the call are
800 live_throughout in the new insn.
802 2007-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
806 * pa.md: Consolidate HImode and QImode move patterns into one pattern
807 each, eliminating floating-point alternatives.
808 * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
810 * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
811 * pa.c (pa_secondary_reload): Use an intermediate general register
812 for copies to/from floating-point register classes. Simplify code
813 SHIFT_REGS class. Provide additional comments.
814 (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
815 * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
816 (SECONDARY_MEMORY_NEEDED): Delete define.
817 (INT14_OK_STRICT): Define.
818 (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
820 (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
821 (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
823 (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
824 Align DImode offsets when generating 64-bit code.
825 * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
826 (CANNOT_CHANGE_MODE_CLASS): Define.
827 * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
828 (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.
830 2007-12-09 Jakub Jelinek <jakub@redhat.com>
833 * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define.
834 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
835 * langhooks.h (struct array_descr_info): Forward declaration.
836 (struct lang_hooks_for_types): Add get_array_descr_info field.
837 * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New.
838 (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2
840 * dwarf2out.h (struct array_descr_info): New type.
841 * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to
842 DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size.
843 (descr_info_loc, add_descr_info_field, gen_descr_array_type_die):
845 (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info
846 and gen_descr_array_type_die.
848 2007-12-08 Richard Guenther <rguenther@suse.de>
850 PR tree-optimization/34391
851 * tree-vect-transform.c (vect_setup_realignment): Mark new
852 symbols for renaming.
854 2007-12-07 Bob Wilson <bob.wilson@acm.org>
856 * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
857 (ASM_OUTPUT_DWARF_PCREL): Define.
859 2007-12-07 Richard Guenther <rguenther@suse.de>
862 * opts.c (common_handle_option): Handle OPT_fforce_addr.
864 2007-12-07 Aldy Hernandez <aldyh@redhat.com>
866 * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win.
867 (LEGITIMIZE_RELOAD_ADDRESS): Same.
869 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
872 * doc/install.texi: Explain how to check for a clean environment when
875 2007-12-07 Richard Guenther <rguenther@suse.de>
877 * tree-profile.c (gcov_type_tmp_var): New global variable.
878 (tree_gen_edge_profiler): Use a single shared variable decl per
879 function for edge counter incrementing.
880 (tree_profiling): Re-set the shared variable.
882 2007-12-06 Bob Wilson <bob.wilson@acm.org>
884 * config/xtensa/xtensa.c (xtensa_va_start): Add prototype.
886 2007-12-06 Tom Tromey <tromey@redhat.com>
889 * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache.
891 2007-12-06 Richard Sandiford <rsandifo@nildram.co.uk>
893 * config/mips/mips.c (mips_function_ok_for_sibcall): Check
894 targetm.binds_local_p as well as DECL_EXTERNAL.
896 2007-12-06 Harsha Jagasia <harsha.jagasia@amd.com>
898 * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
899 (set_prologue_iterations): New. Set the prologue iterations to total
900 number of scalar iterations if the cost model check indicates that
901 scalar code should be generated.
902 (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for
903 generating the cost condition for epilog. Call
904 set_prologue_iterations to generate cost condition for prolog.
905 (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
906 * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
907 (slpeel_tree_peel_loop_to_edge): Update declaration.
908 (set_prologue_iterations): New declaration.
909 * tree-vect-analyze.c (vect_analyze_loop_form): Update
910 LOOP_VINFO_NITERS_UNCHANGED.
911 * tree-vect-transform.c
912 (vect_estimate_min_profitable_iters): Add new parameter and
913 code to check if run time cost model test is needed.
914 Remove code that adds builtin vectorization cost to scalar
915 outside cost for the run time cost model test. If run time
916 cost model test is needed add the appropriate guard cost to
917 the scalar outside cost. The guard cost depends on whether
918 the guard is generated at versioning or at prolog generation
919 or at epilog generation. Change cost model equation to include
921 (conservative_cost_threshold): New. Return the less conservative
922 profitability threshold between the cost model threshold and the
923 user defined vectorization threshold.
924 (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
925 (vect_do_peeling_for_alignment): Same.
926 (vect_loop_versioning): Same.
927 (vect_create_cond_for_align_checks): ANDs the cost model condition
928 with the alignment condition.
929 (vect_transform_loop): Call loop versioning only when there is a
930 misalignment or an aliasing problem.
932 2007-12-06 Jakub Jelinek <jakub@redhat.com>
935 * tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
936 (execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
937 BUILT_IN_VA_COPY and BUILT_IN_VA_END.
939 * target.h (struct ggc_target): Add expand_builtin_va_start hook.
940 * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
941 (TARGET_INITIALIZER): Add it.
942 * builtins.c (expand_builtin_va_start): Use
943 targetm.expand_builtin_va_start hook instead of
944 EXPAND_BUILTIN_VA_START macro.
945 * alpha/alpha.c (alpha_va_start): Made static.
946 (override_options): Clear targetm.expand_builtin_va_start if
948 (TARGET_EXPAND_BUILTIN_VA_START): Define.
949 * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
950 * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
951 * alpha/alpha-protos.h (alpha_va_start): Remove prototype.
952 * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
953 * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
954 (xtensa_va_start): Made static.
955 * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
956 * pa/pa-protos.h (hppa_va_start): Remove prototype.
957 * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
958 * pa/pa.c (hppa_va_start): Made static, add prototype.
959 (TARGET_EXPAND_BUILTIN_VA_START): Define.
960 * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
961 (TARGET_EXPAND_BUILTIN_VA_START): Define.
962 * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
963 * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
964 * i386/i386.c (override_options): Clear
965 targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
966 (ix86_va_start): Made static.
967 (TARGET_EXPAND_BUILTIN_VA_START): Define.
968 * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
969 * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
970 * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
971 * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
972 * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
973 (TARGET_EXPAND_BUILTIN_VA_START): Define.
974 * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
975 * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
976 (TARGET_EXPAND_BUILTIN_VA_START): Define.
977 (rs6000_override_options): Clear targetm.expand_builtin_va_start if
978 DEFAULT_ABI != ABI_V4.
979 * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
980 * spu/spu.c (spu_va_start): Made static, add prototype.
981 (TARGET_EXPAND_BUILTIN_VA_START): Define.
982 * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
983 * spu/spu-protos.h spu_va_start): Remove prototype.
984 * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
985 * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
987 * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static.
988 (TARGET_EXPAND_BUILTIN_VA_START): Define.
989 * s390/s390-protos.h (s390_va_start): Remove prototype.
990 * s390/s390.c (s390_va_start): Made static.
991 (TARGET_EXPAND_BUILTIN_VA_START): Define.
992 * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
993 * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
994 * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
995 * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
996 (TARGET_EXPAND_BUILTIN_VA_START): Define.
997 * arc/arc.c (arc_va_start): Made static, add prototype.
998 (TARGET_EXPAND_BUILTIN_VA_START): Define.
999 * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
1000 * arc/arc-protos.h (arc_va_start): Remove prototype.
1001 * mt/mt-protos.h (mt_va_start): Remove prototype.
1002 * sparc/sparc.c (sparc_va_start): Made static, add prototype.
1003 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1004 * sparc/sparc-protos.h (sparc_va_start): Remove prototype.
1005 * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
1006 * sh/sh.c (sh_va_start): Made static, add prototype.
1007 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1008 * sh/sh-protos.h (sh_va_start): Remove prototype.
1009 * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
1010 * mips/mips-protos.h (mips_va_start): Remove prototype.
1011 * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
1012 * mips/mips.c (mips_va_start): Made static.
1013 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1015 2007-12-06 Uros Bizjak <ubizjak@gmail.com>
1017 * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
1018 "flag_tree_parallelize_loops > 1".
1020 2007-12-06 Zdenek Dvorak <ook@ucw.cz>
1021 Dorit Nuzman <dorit@il.ibm.com>
1022 Jakub Jelinek <jakub@redhat.com>
1024 PR tree-optimization/34005
1025 * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
1026 * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
1027 (gimplify_pure_cond_expr): New function.
1028 (generic_expr_could_trap_p): New function.
1029 (gimplify_cond_expr): Call gimplify_pure_cond_expr.
1030 (force_gimple_operand): Initialize new field allow_rhs_cond_expr.
1032 2007-12-06 Andreas Krebbel <krebbel1@de.ibm.com>
1034 * config/s390/s390.c (s390_emit_stack_tie): New function.
1035 (s390_emit_prologue): Emit a stack tie when writing to the
1037 * config/s390/s390.md ("stack_tie"): New insn definition.
1039 2007-12-06 Ben Elliston <bje@au.ibm.com>
1042 * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.
1044 2007-12-05 Jakub Jelinek <jakub@redhat.com>
1047 * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
1048 number of bits set in C1 if a mode mask for some mode can be used
1051 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
1053 * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
1056 2007-12-05 Richard Guenther <rguenther@suse.de>
1058 PR tree-optimization/34138
1059 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1060 Do not forward propagate addresses if that changes volatileness of
1061 the pointed-to type.
1063 2007-12-05 Uros Bizjak <ubizjak@gmail.com>
1066 * config/i386/i386.c (ix86_function_regparm): Also check for fixed
1067 registers when checking that regparm registers are available.
1068 Lower regparm value due to fixed registers usage in addition to
1071 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
1073 * sparseset.c: Include config.h and system.h before sparseset.h.
1074 * sparseset.h: Remove inclusion of system.h.
1076 2007-12-05 Jakub Jelinek <jakub@redhat.com>
1077 Richard Sandiford <rsandifo@nildram.co.uk>
1079 * optabs.c (init_insn_codes): New function.
1080 (new_optab): Delete.
1081 (init_optab, init_optabv): Don't call new_optab.
1082 (init_convert_optab): Don't clear the insn codes.
1083 (init_optabs): Call init_insn_codes.
1085 2007-12-04 Jakub Jelinek <jakub@redhat.com>
1087 * omp-low.c (optimize_omp_library_calls): New function.
1088 (expand_omp_parallel): Call it if optimizing.
1091 * stmt.c (expand_stack_restore): Call expand_normal on var to get
1092 rtx for it instead of assuming it will be a VAR_DECL.
1094 2007-12-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1096 * c-parser (c_parser_statement_after_labels): Move error from here...
1097 (c_parser_label): ... to here. Check that the declaration is not
1098 actually just another label.
1100 2007-12-04 Richard Guenther <rguenther@suse.de>
1104 * tree-ssa-operands.c (get_addr_dereference_operands): If we
1105 fall back to using the SMTs aliases, make sure to add virtual
1106 operands for the SMT itself.
1107 (create_ssa_artificial_load_stmt): Fix typo. Make sure to also
1108 clear the loaded and stored symbols bitmaps.
1110 2007-12-04 Ben Elliston <bje@au.ibm.com>
1112 * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
1114 2007-12-04 Ben Elliston <bje@au.ibm.com>
1116 * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
1118 2007-12-03 Steven Bosscher <stevenb.gcc@gmail.com>
1121 * doc/invoke.texi: Remove -fforce-addr documentation.
1122 * expr.c (emit_move_insn): Remove use of flag_force_addr.
1123 (expand_expr_real_1): Same.
1124 (do_tablejump): Same.
1125 Call memory_address instead of memory_address_noforce.
1126 * expr.h (memory_address_noforce): Remove prototype.
1127 * explow.c (memory_address): Remove support for flag_force_addr.
1128 (validize_mem): Same.
1129 (memory_address_noforce): Remove.
1130 * common.opt: Add dummy documentation for -fforce-addr.
1131 * combine.c (can_combine_p): Remove -fforce-addr comment.
1132 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
1134 * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
1135 relating to memory_address_noforce.
1136 * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
1137 * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
1139 2007-12-03 Jakub Jelinek <jakub@redhat.com>
1141 * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
1142 with !ctx->is_nested.
1143 (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
1144 even if !ctx->is_nested.
1145 (lower_copyprivate_clauses, lower_send_clauses,
1146 lower_send_shared_vars): Call lookup_decl_in_outer_ctx
1150 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
1151 (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
1152 and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
1153 (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
1154 (X & C2) << C1 into (X << C1) & (C2 << C1) and
1155 (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
1158 PR tree-optimization/33453
1159 * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
1160 for pointer addition.
1161 * tree-parloops.c (canonicalize_loop_ivs): Likewise.
1162 (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
1165 2007-12-03 Bernd Schmidt <bernd.schmidt@analog.com>
1167 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
1170 2007-12-03 Razya Ladelsky <razya@il.ibm.com>
1172 * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
1174 2007-12-03 Jakub Jelinek <jakub@redhat.com>
1177 * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
1178 * common.opt (ftree-store-copy-prop): Use the same help text as for
1181 2007-12-02 Ayal Zaks <zaks@il.ibm.com>
1182 Revital Eres <eres@il.ibm.com>
1184 * modulo-sched.c (calculate_must_precede_follow,
1185 try_scheduling_node_in_cycle): New functions.
1186 (sms_schedule_by_order): Call the new functions.
1187 (ps_insn_find_column): Use must_follow and must_precede only if
1189 (ps_insn_advance_column): Likewise.
1191 2007-12-02 Ayal Zaks <zaks@il.ibm.com>
1192 Revital Eres <eres@il.ibm.com>
1194 * modulo-sched.c (get_sched_window): Fix the direction of the
1195 scheduling window and add dump info.
1197 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
1199 * config/sh/sh.md (cmpgeusi_t): Fix condition.
1201 2007-11-30 Jan Hubicka <jh@suse.cz>
1203 * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.
1205 2007-11-30 Seongbae Park <seongbae.park@gmail.com>
1207 PR rtl-optimization/34171
1208 * cfgrtl.c (update_bb_for_insn_chain): New function,
1209 refactored from update_bb_for_insn.
1210 (update_bb_for_insn): Call update_bb_for_insn.
1211 (rtl_merge_blocks, try_redirect_by_replacing_jump):
1212 Replace a loop with update_bb_for_insn_chain call.
1213 (cfg_layout_merge_blocks): Add a call to
1214 update_bb_for_insn_chain. Replace the for loop
1215 with a call to update_bb_for_insn_chain.
1217 2007-11-30 Ben Elliston <bje@au.ibm.com>
1219 * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.
1221 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
1223 PR tree-optimization/34244
1224 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1225 (record_numbers_of_iterations): New function.
1226 (execute_vrp): Cache the numbers of iterations of loops.
1227 * tree-scalar-evolution.c (scev_reset_except_niters): New function.
1228 (scev_reset): Use scev_reset_except_niters.
1229 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1231 2007-11-29 Jan Hubicka <jh@suse.cz>
1232 Jakub Jelinek <jakub@redhat.com>
1234 PR tree-optimization/33434
1235 * tree-inline.c (setup_one_parameter): If the value passed to
1236 a parameter is never used, don't set it up.
1238 2007-11-29 Jakub Jelinek <jakub@redhat.com>
1241 * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
1242 * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.
1244 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
1246 * Makefile.in: Use separate vpath lines for each path.
1248 2007-11-29 Ben Elliston <bje@au.ibm.com>
1250 * SERVICE: Update URL.
1252 2007-11-28 Jakub Jelinek <jakub@redhat.com>
1254 PR tree-optimization/34140
1255 * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
1256 loop->header has virtual phi nodes.
1258 2007-11-28 Richard Sandiford <rsandifo@nildram.co.uk>
1261 * builtins.c (expand_builtin_nonlocal_goto): Also emit a use
1262 of GP register, if valid and fixed.
1265 2007-06-21 David Daney <ddaney@avtrex.com>
1268 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
1269 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
1270 (exception_receiver): Renamed to ...
1271 (nonlocal_goto_receiver): ... this.
1273 2007-11-27 H.J. Lu <hongjiu.lu@intel.com>
1274 Joey Ye <joey.ye@intel.com>
1277 * config/i386/i386.c (function_arg_32): Don't pass aggregate
1278 arguments in ECX/EDX for fastcall.
1280 2007-11-28 Rask Ingemann Lambertsen <rask@sygehus.dk>
1282 * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
1284 * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
1285 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
1287 2007-11-28 Ben Elliston <bje@au.ibm.com>
1289 * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
1290 (maix32): Add Negative(maix64).
1292 2007-11-27 Jakub Jelinek <jakub@redhat.com>
1294 PR tree-optimization/34016
1295 * tree-ssa-loop.c (pass_linear_transform): Add
1296 TODO_update_ssa_only_virtuals to todo_flags_finish.
1298 2007-11-27 Eric B. Weddington <eric.weddington@atmel.com>
1300 * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
1301 * config/avr/avr.h (LINK_SPEC): Likewise.
1302 (CRT_BINUTILS_SPECS): Likewsie.
1303 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1305 2007-11-27 Jakub Jelinek <jakub@redhat.com>
1308 * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
1309 MEM_SIZE is set on all MEMs.
1311 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
1313 * config/s390/s390.opt (mhard-float): Add the option to be
1314 overridden. That was missing in my last patch.
1316 2007-11-27 Richard Guenther <rguenther@suse.de>
1318 PR tree-optimization/34241
1319 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
1320 to only delete real conversion chains.
1322 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
1324 * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
1325 mhard-float, mlong-double-64, mlong-double-128): Add the
1326 option to be overridden.
1328 2007-11-27 Richard Guenther <rguenther@suse.de>
1330 * builtins.c (fold_builtin_1): Verify the argument types
1331 of BUILT_IN_ISNORMAL.
1332 (fold_builtin_n): Verify the number of arguments to variadic
1335 2007-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
1337 * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
1338 * doc/invoke.texi (Blackfin Options): Document the effects.
1340 2007-11-27 Ben Elliston <bje@au.ibm.com>
1342 * config/rs6000/sysv4.opt (m32): Add Negative(m64).
1343 (m64): Add Negative(m32).
1344 * config/rs6000/darwin.opt (m32): Add Negative(m64).
1345 (m64): Add Negative(m32).
1347 2007-11-26 Eric Botcazou <ebotcazou@adacore.com>
1349 * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
1351 2007-11-26 Michael Meissner <michael.meissner@amd.com>
1354 * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
1355 constant, avoid calling emit_cmp_and_jump_insns. Use counter_mode
1356 to get the mode for loading a pseudo register with a count rather
1357 than duplicating code.
1359 2007-11-25 Eric B. Weddington <eric.weddington@atmel.com>
1361 * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
1362 * config/avr/avr.h (LINK_SPEC): Likewise.
1363 (CRT_BINUTILS_SPECS): Likewsie.
1364 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1366 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1368 * c-common.c (conversion_warning): Use get_unwidened instead of
1371 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1374 * c-parser.c (struct c_parser): New bit in_if_block.
1375 (c_parser_compound_statement_nostart): Handle unexpected 'else'
1377 (c_parser_statement_after_labels): Set in_if_block to false while
1379 (c_parser_if_body): Don't call c_parser_statement_after_labels if
1380 a semicolon is found, just consume it. Don't call
1381 c_parser_statement_after_labels if an open brace is found, call
1382 c_parser_compound_statement instead.
1383 (c_parser_else_body): New.
1384 (c_parser_if_statement): Set in_if_block to true when parsing the
1385 body of the 'if' statement. Use c_parser_else_body.
1387 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
1390 * c-decl.c (store_parm_decls): Pass 'false' for the new
1391 allocate_struct_function parameter.
1392 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1393 * tree-parloops.c (create_loop_fn): Likewise.
1394 * function.c (push_function_context_to, push_struct_function,
1395 init_function_start): Likewise.
1396 (allocate_struct_function): Add boolean parameter.
1397 * tree.h (allocate_struct_function): Add boolean parameter.
1398 * function.h (struct function): Move returns_struct and
1399 returns_pcc_struct to the end of the structure definiton.
1401 2007-11-26 Uros Bizjak <ubizjak@gmail.com>
1404 * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
1405 virtual registers are already instantiated.
1406 (truncxf<mode>2): Ditto.
1407 (floatsi<mode>2): Ditto.
1408 (floatdisf2): Ditto.
1409 (floatdidf2): Ditto.
1411 2007-11-26 Rask Ingemann Lambertsen <rask@sygehus.dk>
1414 * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
1415 the address before it is clobbered.
1417 2007-11-26 Nick Clifton <nickc@redhat.com>
1419 * config/mn10300/mn10300.md: (call_internal): Remove mode on
1420 operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
1421 (call_value_internal): Remove mode on operands 0 and 1 in order to
1422 match UNPSEC'ed calls generated in PIC mode.
1423 (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
1426 2007-11-26 Richard Guenther <rguenther@suse.de>
1429 * builtins.c (expand_builtin_pow): Use expand_expr to expand
1430 the result of build_call_expr.
1432 2007-11-26 Steven Bosscher <stevenb.gcc@gmail.com>
1433 Revital Eres <eres@il.ibm.com>
1436 * bb-reorder.c (insert_section_boundary_note): Clear
1437 BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.
1439 2007-11-26 Richard Sandiford <rsandifo@nildram.co.uk>
1441 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.
1443 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1445 * dwarf2asm.c (splay_tree_compare_strings): New function.
1446 (dw2_force_const_mem): Use it.
1448 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1450 * tree.c (type_hash_add): Don't violate strict aliasing rules.
1452 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1455 * c-typeck.c (tagged_types_tu_compatible_p): Enable exact
1456 matches between anonymous union fields.
1458 2007-11-26 Alexandre Oliva <aoliva@redhat.com>, Jan Hubicka <jh@suse.cz>
1460 * tree-ssa-live.c (remove_unused_scope_block_p): Drop
1461 declarations and blocks only after inlining. Check that
1462 non-empty blocks are not dropped.
1463 * tree-inline.c (expand_call_inline): Check that functions are
1464 not inlined too late.
1466 2007-11-26 Ben Elliston <bje@au.ibm.com>
1468 * unwind-dw2-fde.c: Fix comment typo.
1469 * unwind-generic.h: Likewise, fix comment typos.
1471 2007-11-25 Richard Sandiford <rsandifo@nildram.co.uk>
1473 * tree-sra.c (scalarize_use): Adjust the vpos argument to
1474 sra_explode_bitfield_assignment in cases where the type is
1475 wider than the bitfield.
1477 2007-11-25 Richard Guenther <rguenther@suse.de>
1479 * tree.h (struct tree_block): Move locus member next to flags.
1480 * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
1481 (SCOPE_LIST_CONCAT): Likewise.
1482 (pop_scope): Likewise.
1483 * function.c (instantiate_decls_1): Likewise.
1484 (setjmp_vars_warning): Likewise.
1485 * emit-rtl.c (set_used_decls): Likewise.
1486 * tree-inline.c (add_lexical_block): Likewise.
1488 2007-11-24 Hans-Peter Nilsson <hp@axis.com>
1490 * rtlanal.c (label_is_jump_target_p): Return true for a matching
1492 * reorg.c (fill_slots_from_thread): Correct last change to use
1493 NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and
1494 decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
1495 * jump.c (mark_jump_label_1): Add comment for last change
1496 regarding JUMP_LABEL setting.
1497 * gcse.c (add_label_notes): Remove conditional that the label is
1498 mentioned in insn before adding regnote.
1499 * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
1500 single_set insn only feeding a label to a jump through a
1501 register that dies there.
1503 2007-11-23 Dirk Mueller <dmueller@suse.de>
1504 Richard Guenther <rguenther@suse.de>
1507 * tree-vrp.c (check_array_ref): Move check for valid location..
1508 (check_array_bounds) here. Use EXPR_HAS_LOCATION().
1510 2007-11-23 Hans-Peter Nilsson <hp@axis.com>
1512 * reload.c (find_reloads_address_1) <autoincdec cases>:
1513 Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code.
1515 2007-11-23 Richard Guenther <rguenther@suse.de>
1516 Michael Matz <matz@suse.de>
1518 PR tree-optimization/34176
1519 * alloc-pool.h (empty_alloc_pool): Declare.
1520 * alloc-pool.c (empty_alloc_pool): New function.
1521 * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
1522 valid table if a lookup from the optimistic table failed.
1523 (vn_unary_op_lookup): Likewise.
1524 (vn_binary_op_lookup): Likewise.
1525 (vn_phi_lookup): Likewise.
1526 (process_scc): Clear optimistic tables before every iteration.
1528 2007-11-23 Richard Guenther <rguenther@suse.de>
1530 * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
1531 (merge_alias_info): Do verification only if checking is
1532 enabled. Merge flow-sensitive alias information in simple cases.
1533 * tree-ssa-operands.c (get_addr_dereference_operands): Also
1534 complain about missing NMTs.
1536 2007-11-23 Jakub Jelinek <jakub@redhat.com>
1539 * c-common.c (conversion_warning): For INTEGER_TYPE to
1540 INTEGER_TYPE conversions call get_narrower on expr to avoid
1541 spurious warnings from binop shortening or when the implicit
1542 conversion can't change the value.
1544 2007-11-22 Joseph Myers <joseph@codesourcery.com>
1547 * c-decl.c (set_array_declarator_inner): Don't give error for
1548 static or type qualifiers in abstract declarator. Remove
1549 abstract_p parameter.
1550 * c-tree.h (set_array_declarator_inner): Update prototype.
1551 * c-parser.c (c_parser_direct_declarator_inner): Update call to
1552 set_array_declarator_inner.
1553 * doc/standards.texi: Update for C99 TC3.
1555 2007-11-22 Hans-Peter Nilsson <hp@bitrange.com>
1557 * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
1558 line in my edit of the last change.
1560 2007-11-22 Jakub Jelinek <jakub@redhat.com>
1563 * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
1564 and TREE_READONLY on the fn decl rather than passing a chain
1567 2007-11-22 Kaz Kojima <kkojima@gcc.gnu.org>
1569 * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.
1571 2007-11-22 Uros Bizjak <ubizjak@gmail.com>
1573 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
1574 of ix86_arch and ix86_tune into a switch statement.
1575 (enum processor_type): Default PROCESSOR_I386 to 0.
1576 * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
1577 of "ix86_tune == PROCESSOR_K6".
1578 (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
1581 2007-11-22 Tom Tromey <tromey@redhat.com>
1583 * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
1584 avoid writing into string allocated by ggc_alloc_string.
1586 2007-11-21 Kaz Kojima <kkojima@gcc.gnu.org>
1589 * config/sh/sh.md (binary_sf_op): Remove.
1590 (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
1591 * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
1592 and gen_binary_sf_op1.
1594 2007-11-21 Hans-Peter Nilsson <hp@axis.com>
1596 * regclass.c (init_reg_autoinc): Fix typo preventing test of
1597 secondary output reload when setting forbidden_inc_dec_class.
1599 2007-11-21 Richard Guenther <rguenther@suse.de>
1601 PR tree-optimization/34148
1602 * tree-ssa-structalias.c (create_variable_info_for): Do not use
1603 field-sensitive PTA for single-element structures.
1604 * tree-ssa-alias.c (create_overlap_variables_for): Do not create
1605 SFTs for single-element structures.
1607 2007-11-20 Richard Guenther <rguenther@suse.de>
1610 * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
1611 of the signed INT_CST_LT.
1612 * stmt.c (expand_case): Likewise.
1613 (estimate_case_costs): Likewise.
1615 2007-11-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
1617 * read-rtl.c (fatal_expected_char): Print EOF as text rather that
1618 its binary representation.
1620 2007-11-20 Richard Guenther <rguenther@suse.de>
1622 * tree-ssa-operands.c (add_virtual_operand): Consistently prune
1625 2007-11-20 Thiemo Seufer <ths@mips.com>
1627 * config/mips/mips.c (mips_file_start): Add support for
1628 flagging 32-bit code with -mfp64 floating-point.
1630 2007-11-20 Jakub Jelinek <jakub@redhat.com>
1633 * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
1634 (c_gimplify_expr): Use it.
1636 2007-11-20 Ben Elliston <bje@au.ibm.com>
1638 * config/spu/spu_mfcio.h: Fix typo.
1640 2007-11-20 Ben Elliston <bje@au.ibm.com>
1642 * unwind.inc: Comment that unwind-sjlj.c includes this file.
1644 2007-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1645 Ben Elliston <bje@au.ibm.com>
1647 * config/spu/mfc_tag_release.c: New file.
1648 * config/spu/mfc_multi_tag_release.c: Likewise.
1649 * config/spu/mfc_multi_tag_reserve.c: Likewise.
1650 * config/spu/mfc_tag_release.c: Likewise.
1651 * config/spu/mfc_tag_reserve.c: Likewise.
1652 * config/spu/mfc_tag_table.c: Likewise.
1653 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
1654 (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
1655 * config/spu/spu_mfcio.h: Avoid <stdint.h>.
1656 (uint64_t): Typedef if __IN_LIBGCC2 is defined.
1657 (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
1658 (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
1659 mfc_multi_tag_release): Likewise.
1660 (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
1661 __mfc_multi_tag_release): Declare.
1663 2007-11-19 Jason Merrill <jason@redhat.com>
1665 PR debug/28834, debug/29436, c/32326
1666 * tree.c (build_type_attribute_qual_variant): Refuse to make
1667 a distinct copy of a struct/enum type. Use build_distinct_type_copy.
1668 * doc/extend.texi (Type Attributes): Don't encourage people to add
1669 attributes to struct/enum types in a typedef. Fix
1670 transparent_union example.
1672 * tree-inline.c (remap_type_1): Remove code that's redundant with
1674 (build_duplicate_type): Set id.copy_decl.
1675 * c-common.c (handle_transparent_union_attribute): Simplify logic.
1677 2007-11-19 Peter Bergner <bergner@vnet.ibm.com>
1679 * config/rs6000/rs6000.c (invalid_e500_subreg,
1680 rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
1681 rs6000_legitimize_address, rs6000_legitimize_reload_address,
1682 rs6000_legitimate_address, function_arg_advance,
1683 spe_build_register_parallel, rs6000_spe_function_arg,
1684 rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
1685 emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
1686 rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
1687 TDmode similarly to DFmode and TFmode.
1688 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1689 DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
1691 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
1693 * stor-layout.c (lang_adjust_rli): Delete.
1694 (set_lang_adjust_rli): Likewise.
1695 (layout_type): Do not call lang_adjust_rli hook.
1696 * tree.h (set_lang_adjust_rli): Delete.
1698 2007-11-19 Bernd Schmidt <bernd.schmidt@analog.com>
1700 * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
1701 n_dregs_to_save and n_pregs_to_save.
1702 (n_pregs_to_save, n_dregs_to_save): Use it. New argument CONSECUTIVE;
1703 all callers changed.
1704 (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
1705 able to save single D/P registers that aren't saved by the push/pop
1708 2007-11-19 Richard Guenther <rguenther@suse.de>
1710 PR tree-optimization/34099
1711 * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
1712 MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
1713 if only one operand is undefined.
1715 2007-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>
1717 PR tree-optimization/34036
1718 * opts.c (set_fast_math_flags): Do not set flags in common
1719 with set_unsafe_math_optimizations_flags, invoke it directly.
1720 (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
1721 and flag_signed_zeros.
1722 * toplev.c (process_options): Force flag_associative_math to 0 and
1723 warn, if it is set and either flag_trapping_math or flag_signed_zeros
1725 * doc/invoke.texi (Optimize Options): Document the new behavior
1726 of -funsafe-math-optimizations, that -fassociative-math requires
1727 both -fno-signed-zeros and -fno-trapping-math and make it clear
1728 that -fno-trapping-math requires -fno-signaling-nans. Refactor
1729 documentation of -ffast-math.
1731 2007-11-18 Jakub Jelinek <jakub@redhat.com>
1733 PR rtl-optimization/34132
1734 * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
1738 * optabs.h (optab_table): Change type to struct optab from optab.
1739 (convert_optab_table): Similarly.
1740 Adjust all _optab macros to expand to addresses of optab_table
1741 resp. convert_optab_table elements rather than the values of the
1743 * optabs.c (optab_table): Change typype to struct optab from optab.
1744 If compiled by recent GCC, initialize all the insn_code fields in
1745 the array using designated range initializers.
1746 (convert_optab_table): Similarly.
1747 (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
1748 set_conv_libfunc): Into libfunc_entry's optab field store index within
1749 optab_table resp. convert_optab_table array instead of difference
1750 between two separately malloced addresses.
1751 (new_optab): Add op argument, don't return anything. Initialize
1752 just the insn_code field in handlers array and only when needed.
1753 (init_optab, init_optabv): Add op argument, don't return anything.
1754 Adjust new_optab caller.
1755 (new_convert_optab): Removed.
1756 (init_convert_optab): Add op argument, don't return anything, don't
1757 call new_convert_optab. If needed, initialize insn_code field in
1759 (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
1761 (debug_optab_libfuncs): Adjust uses of optab_table and
1762 convert_optab_table arrays.
1764 2007-11-18 Richard Guenther <rguenther@suse.de>
1766 PR tree-optimization/34127
1767 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1768 Make code match up the comments, require compatibility of the
1771 2007-11-17 Richard Guenther <rguenther@suse.de>
1774 * fold-const.c (extract_muldiv_1): Do not move negative
1775 constants inside ABS_EXPR.
1777 2007-11-16 Ian Lance Taylor <iant@google.com>
1779 * collect2.c (dump_file): If a demangled symbol is followed by a
1780 space, make sure we output at least one space.
1782 2007-11-16 Richard Guenther <rguenther@suse.de>
1785 * fold-const.c (fold_binary): Use correct types for folding
1786 1 << X & Y to Y >> X & 1.
1788 2007-11-16 Richard Guenther <rguenther@suse.de>
1790 PR tree-optimization/33870
1791 * tree.h (struct tree_memory_tag): Add base_for_components flag.
1792 (struct tree_struct_field_tag): Remove nesting_level field.
1793 (SFT_NESTING_LEVEL): Remove.
1794 (SFT_BASE_FOR_COMPONENTS_P): Add.
1795 * tree-flow.h (struct fieldoff): Remove nesting_level field. Add
1796 base_for_components flag.
1797 (push_fields_onto_fieldstack): Remove nesting_level parameter.
1798 * tree-ssa-alias.c (create_sft): Likewise. Add base_for_components
1800 (create_overlap_variables_for): Deal with it.
1801 * tree-dfa.c (dump_subvars_for): Likewise.
1802 (dump_variable): Likewise.
1803 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
1804 Set base_for_components for first elements of sub-structures.
1805 (create_variable_info_for): Handle base_for_components.
1806 (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
1807 pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
1808 * tree-ssa-operands.c (ref_nesting_level): Remove.
1809 (add_vars_for_offset): Remove full_ref parameter, always add
1810 the offset of the pointed-to SFT.
1811 (add_virtual_operand): Adjust for changed signature of
1812 add_vars_for_offset.
1814 2007-11-16 Sa Liu <saliu@de.ibm.com>
1816 * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined
1817 floatunssidf2 and floatunsdidf2.
1819 2007-11-16 Richard Guenther <rguenther@suse.de>
1821 PR tree-optimization/34113
1822 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1823 Use correct conversion direction for checking type compatibility.
1825 2007-11-16 Richard Guenther <rguenther@suse.de>
1827 PR tree-optimization/34099
1828 * tree-ssa-ccp.c (likely_value): Use a whitelist for operators
1829 that produce UNDEFINED result if at least one of its operands
1830 is UNDEFINED. By default the result is only UNDEFINED if all
1831 operands are UNDEFINED.
1833 2007-11-16 Jakub Jelinek <jakub@redhat.com>
1836 * gcc.c (init_spec): Don't initialize asm_debug here...
1837 (main): ... but here.
1839 2007-11-07 Tom Tromey <tromey@redhat.com>
1841 * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'.
1842 * tree-parloops.c (create_loop_fn): Use set_cfun.
1843 * gengtype.c (open_base_files): Emit #undef cfun.
1844 * ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
1845 * function.h (cfun): New define.
1846 * function.c: Undefine cfun.
1848 2007-11-07 Eric B. Weddington <eweddington@cso.atmel.com>
1850 * config/avr/avr.c (avr_mcu_types): Add attiny88.
1851 * config/avr/avr.h (LINK_SPEC): Likewise.
1852 (CRT_BINUTILS_SPECS): Likewsie.
1853 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1855 2007-11-15 Jakub Jelinek <jakub@redhat.com>
1858 * tree-ssa-ccp.c (optimize_stack_restore): New function.
1859 (execute_fold_all_builtins): Call optimize_stack_restore for
1860 BUILT_IN_STACK_RESTORE.
1862 2007-11-15 Paolo Bonzini <bonzini@gnu.org>
1864 * fwprop.c (try_fwprop_subst): Skip profitability check for forward
1865 propagation into an address; that's done in should_replace_address.
1867 2007-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1869 * config/spu/spu-protos.h (legitimate_const): Remove prototype.
1870 * config/spu/spu.c (legitimate_const): Remove.
1871 (classify_immediate): Inline call to legitimate_const.
1872 (spu_legitimate_address): Likewise. Allow SYMBOL_REF + CONST_INT
1873 for any constant, not just -512 .. 511.
1875 2007-11-15 Sa Liu <saliu@de.ibm.com>
1877 * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
1878 condition from HONOR_NANS test.
1879 * config/spu/spu.md (ceq_df): Always generate comparison code
1880 inline, including checks for NaNs and infinities.
1882 (cgt_v2df): Likewise.
1883 (cmpdf): Make this expander unconditional.
1885 2007-11-15 Richard Guenther <rguenther@suse.de>
1887 * tree-ssa-alias.c (create_overlap_variables_for): Make sure
1888 to only create SFTs if we also create variable infos for PTA.
1889 * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs.
1891 2007-11-15 Richard Guenther <rguenther@suse.de>
1893 * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
1894 type for TBAA pruning.
1895 (find_what_p_points_to): Call set_uids_in_ptset with the original
1896 pointer, not the decl of the solution we collapsed to.
1898 2007-11-14 David Daney <ddaney@avtrex.com>
1900 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
1903 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1906 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
1907 for registers in BR_REGS class.
1909 2007-11-14 Jakub Jelinek <jakub@redhat.com>
1912 * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
1913 init_ssa_operands has not been called for cfun.
1915 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1917 PR tree-optimization/34046
1918 * cfg.c (update_bb_profile_for_threading): Avoid the division for the
1919 scaling if the old probability is greater than the new base.
1921 2007-11-14 Sebastian Pop <sebastian.pop@amd.com>
1923 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
1924 unused edges after loop duplication.
1926 2007-11-14 Uros Bizjak <ubizjak@gmail.com>
1928 * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
1929 (enum target_cpu_default): ... this enum.
1930 (TARGET_CPU_DEFAULT_NAMES): Remove macro. Move initializer to ...
1931 * config/i386/i386.c (override_options): ... here.
1932 * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
1933 TARGET_CPU_DEFAULT_i486.
1935 2007-11-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
1937 * global.c (rest_of_handle_global_alloc): Fix comment typos.
1938 * config/sh/sh.c (sh_rtx_costs): Likewise.
1939 * ChangeLog: Likewise.
1941 2007-11-13 Sebastian Pop <sebastian.pop@amd.com>
1943 * tree-chrec.h (build_polynomial_chrec): RHS of a chrec
1944 should not be of pointer type.
1946 2007-11-13 Michael Meissner <michael.meissner@amd.com>
1948 * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line.
1950 2007-11-13 Sterling Augustine <sterling@tensilica.com>
1951 Bob Wilson <bob.wilson@acm.org>
1953 * config/xtensa/unwind-dw2-xtensa.c: New.
1954 * config/xtensa/unwind-dw2-xtensa.h: New.
1955 * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1956 (DWARF2_UNWIND_INFO): Remove.
1957 (DWARF_FRAME_REGISTERS): Define.
1958 (EH_RETURN_DATA_REGNO): Define.
1959 * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
1961 * config/xtensa/t-xtensa (LIB2ADDEH): Define.
1963 2007-11-13 Jakub Jelinek <jakub@redhat.com>
1965 * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
1966 -fsched-stalled-insns.
1968 PR tree-optimization/34063
1969 * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
1970 as first chrec_fold_plus operand rather than second.
1972 2007-11-13 Diego Novillo <dnovillo@google.com>
1974 PR tree-optimization/33870
1975 * tree.h (strcut tree_memory_tag): Add field unpartitionable.
1976 Remove field in_nested_struct.
1977 (struct tree_struct_field_tag): Add field nesting_level.
1978 (sft_in_nested_struct): Remove.
1979 (sft_nesting_level): Define.
1980 (sft_unpartitionable_p): Define.
1981 * tree-ssa-alias.c (mem_sym_score): If mp->var is not
1982 partitionable, return long_max.
1983 (compute_memory_partitions): Do not partition sfts marked
1985 (create_sft): Add argument nesting_level. Set
1986 sft_nesting_level with it. Update all users.
1987 (create_overlap_variables_for): Show nesting level.
1988 * tree-dfa.c (dump_subvars_for): Likewise.
1989 (dump_variable): Likewise. Show whether the sft is
1990 partitionable or not.
1991 * tree-flow.h (struct fieldoff): Remove field in_nested_struct.
1992 Add field nesting_level.
1993 * tree-ssa-structalias.c (struct variable_info): Remove
1994 field in_nested_struct.
1995 (push_fields_onto_fieldstack): Add argument nesting_level.
1996 Update all users. Update documentation. Update pair->nesting_level
1997 with nesting_level. Make recursive calls with nesting_level + 1.
1998 (set_uids_in_ptset): If an sft is added to the points-to set,
1999 mark it as unpartitionable.
2000 * tree-ssa-operands.c (ref_nesting_level): New.
2001 (add_vars_for_offset): Call it. Add argument full_ref. Update
2002 callers. If var is inside a nested structure and the nesting level
2003 of full_ref is lower than the nesting level of var,
2004 adjust offset by the offset of var.
2006 2007-11-13 Victor Kaplansky <victork@il.ibm.com>
2008 PR tree-optimization/32582
2009 * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
2011 2007-11-12 Danny Smith <dannysmith@users.sourceforge.net>
2013 * doc/extend.texi (dllimport): Document that pointers to dllimport'd
2014 functions can be used as constant.
2016 2007-11-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2018 PR rtl-optimization/34035
2019 * cse.c (cse_cfg_altered): New global variable.
2020 (cse_jumps_altered): Make boolean.
2021 (recorded_label_ref): Likewise.
2022 (cse_insn): Adjust for above changes.
2023 (cse_extended_basic_block): Likewise. Set cse_cfg_altered
2024 if dead edges have been purged.
2025 (cse_main): Change return value specification and adjust code.
2026 (rest_of_handle_cse): Adjust for above change.
2027 (rest_of_handle_cse2): Likewise.
2028 * gcse.c (rest_of_handle_gcse): Likewise.
2030 2007-11-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2031 Michael Meissner <michael.meissner@amd.com>
2033 * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
2034 get the appropriate suffix for the coms* instruction.
2035 (sse5_pcmov_<mode>): Restrict operands of pcmov
2036 for scalar case to be only xmm registers and not memory.
2038 * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
2039 constraints to follow the mnemonics for the pcmov instruction
2041 2007-11-12 Richard Sandiford <rsandifo@nildram.co.uk>
2044 * config/mips/mips.c (mips_return_fpr_single): New function.
2045 (mips_function_value): Use it when returning single-field
2047 (mips_expand_call): Handle the PARALLELs created by
2048 mips_return_fpr_single.
2050 2007-11-12 Richard Guenther <rguenther@suse.de>
2053 * fold-const.c (fold_binary): If testing for non-negative
2054 operands with tree_expr_nonnegative_warnv_p make sure to
2055 use op0 which has all (sign) conversions retained.
2057 2007-11-12 Richard Guenther <rguenther@suse.de>
2060 * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
2061 (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
2063 2007-11-12 Ira Rosen <irar@il.ibm.com>
2065 PR tree-optimization/33953
2066 * tree-vect-transform.c (vectorizable_operation): In case of SLP,
2067 allocate vec_oprnds1 according to the number of created vector
2068 statements. In case of shift with scalar argument, store scalar
2069 operand for every vector statement to be created for the SLP node.
2072 2007-11-10 Steven Bosscher <stevenb.gcc@gmail.com>
2074 * gcse.c (CUID_INSN): Remove.
2076 (alloc_gcse_mem): Don't allocate cuid_insn.
2077 (free_gcse_mem): Don't free cuid_insn.
2079 2007-11-10 Jakub Jelinek <jakub@redhat.com>
2082 * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
2086 * tree-inline.h (copy_body_data): Add regimplify field.
2087 * tree-inline.c (copy_body_r): Set id->regimplify to true
2088 if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
2090 (copy_bb): Clear id->regimplify before walk_tree, if it is
2091 set afterwards, regimplify the whole statement.
2093 PR tree-optimization/33680
2094 * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
2095 if the added cast involves variable length types.
2097 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
2098 Maxim Kuvyrkov <maxim@codesourcery.com>
2100 * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
2101 instead of TRUE_BARRIER for jumps. Add register dependencies
2102 even when reg_pending_barrier is set.
2104 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
2106 * haifa-sched.c (haifa_classify_insn): Rename to ...
2107 (haifa_classify_rtx): ... this. Improve handling of COND_EXECs,
2108 handle PARALLELs by recursing. Use it ...
2109 (haifa_classify_insn): ... here. Reimplement.
2111 2007-11-09 Richard Guenther <rguenther@suse.de>
2113 * bitmap.h (bitmap_single_bit_set_p): Declare.
2114 * bitmap.c (bitmap_single_bit_set_p): New function.
2115 * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
2116 (maybe_create_global_var): Use bitmap_empty_p.
2118 2007-11-09 Paolo Bonzini <bonzini@gnu.org>
2119 Jakub Jelinek <jakub@redhat.com>
2121 PR rtl-optimization/34012
2122 * fwprop.c (try_fwprop_subst): Do not replace if the new
2123 SET_SRC has a higher cost than the old one.
2125 2007-11-09 Eric Botcazou <ebotcazou@libertysurf.fr>
2127 PR rtl-optimization/33732
2128 * reload.c (push_reload): Check that the REG_DEAD note was referring
2129 to a hardreg or to a pseudo that has been assigned exactly one hardreg
2130 before considering it in order to select the reload register.
2131 (combine_reloads): Likewise.
2132 (find_dummy_reload): Likewise.
2134 2007-11-09 Richard Guenther <rguenther@suse.de>
2136 * tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD.
2137 (struct ptr_info_def): Likewise.
2138 (enum escape_type): Also use bit zero.
2140 2007-11-09 Richard Guenther <rguenther@suse.de>
2142 PR tree-optimization/33604
2143 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2144 Disregard changes in CV qualifiers of pointed to types for
2145 forward propagating ADDR_EXPRs.
2146 * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
2149 2007-11-09 Richard Sandiford <rsandifo@nildram.co.uk>
2151 * dse.c (find_shift_sequence): Always choose an integer mode for
2153 (replace_read): Require both the read and store mode to be
2154 integer ones. Remove a then-redundant FLOAT_P check.
2156 2007-11-08 Richard Guenther <rguenther@suse.de>
2158 * tree-dfa.c (remove_referenced_var): If removing a
2159 variable which has subvars, also remove those from
2160 the referenced vars. Do not create a variable annotation.
2162 2007-11-08 Bob Wilson <bob.wilson@acm.org>
2164 * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
2165 argument for gen_entry calls.
2166 * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
2167 (entry): Use the new attribute value. Remove unused first operand.
2169 2007-11-08 Tom Tromey <tromey@redhat.com>
2171 * c-parser.c (c_parser_translation_unit): Use location in error.
2172 (c_parser_external_declaration): Likewise.
2173 (c_parser_declaration_or_fndef): Likewise.
2174 (c_parser_enum_specifier): Likewise.
2175 (c_parser_struct_or_union_specifier): Likewise.
2176 (c_parser_struct_declaration): Likewise.
2177 (c_parser_typeof_specifier): Likewise.
2178 (c_parser_parms_list_declarator): Likewise.
2179 (c_parser_asm_string_literal): Likewise.
2180 (c_parser_braced_init): Likewise.
2181 (c_parser_initelt): Likewise.
2182 (c_parser_compound_statement_nostart): Likewise.
2183 (c_parser_statement_after_labels): Likewise.
2184 (c_parser_do_statement): Likewise.
2185 (c_parser_asm_statement): Likewise.
2186 (c_parser_conditional_expression): Likewise.
2187 (c_parser_unary_expression): Likewise.
2188 (c_parser_sizeof_expression): Likewise.
2189 (c_parser_postfix_expression): Likewise.
2190 (c_parser_postfix_expression_after_paren_type): Likewise.
2191 (c_parser_objc_class_instance_variables): Likewise.
2192 (c_parser_objc_method_definition): Likewise.
2193 (c_parser_objc_methodprotolist): Likewise.
2194 (c_parser_pragma): Likewise.
2195 (c_parser_omp_clause_num_threads): Likewise.
2196 (c_parser_omp_clause_schedule): Likewise.
2197 (c_parser_omp_all_clauses): Likewise.
2198 (c_parser_omp_sections_scope): Likewise.
2199 (c_parser_label): Use location of label, not colon.
2201 2007-11-08 Danny Smith <dannysmith@users.sourceforge.net>
2204 * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
2207 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2210 * ipa-pure-const.c (static_execute): Added code to keep recursive
2211 functions from being marked as pure or const.
2212 * ipa-utils.c (searchc): Fixed comment.
2214 2007-11-08 Tom Tromey <tromey@redhat.com>
2216 * common.opt (fshow-column): Default to 0.
2217 * configure: Rebuilt.
2218 * configure.ac (--enable-mapped-location): Default to 'yes'.
2220 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2222 * common.opt: Add pointer to doc/options.texi.
2223 * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
2224 -fipa-reference): Add or correct doc. Sorted options list for -Os
2227 2007-11-07 Bernhard Fischer <aldot@gcc.gnu.org>
2230 * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
2231 * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
2232 TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS.
2233 (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
2234 (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
2235 * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
2236 to TARGET_BIG_ENDIAN_DEFAULT.
2237 (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
2238 * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
2239 to TARGET_BIG_ENDIAN_DEFAULT.
2241 2007-11-07 Diego Novillo <dnovillo@google.com>
2243 * tree.h (struct tree_struct_field_tag): Move field
2244 in_nested_struct ...
2245 (struct tree_memory_tag): ... here.
2247 2007-11-07 Diego Novillo <dnovillo@google.com>
2250 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
2251 (SFT_IN_NESTED_STRUCT): Define.
2252 * tree-dfa.c (dump_subvars_for): Show offset of each sub-var.
2253 * tree-flow.h (struct fieldoff): Add field in_nested_struct.
2254 * tree-ssa-structalias.c (struct variable_info): Likewise.
2255 (push_fields_onto_fieldstack): If OFFSET is positive,
2256 set in_nested_struct.
2257 (create_variable_info_for): Copy setting of
2258 in_nested_struct from the field offset object.
2259 (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
2260 variable info object.
2261 * tree-ssa-operands.c (add_vars_for_offset): If VAR
2262 belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR).
2264 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2266 PR rtl-optimization/33737
2267 * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
2268 target block after computing the probabilities of outgoing edges.
2269 Cap the frequency to BB_FREQ_MAX.
2270 * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
2271 frequency of the basic block if it has been reused.
2273 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2275 PR rtl-optimization/33822
2276 * rtl.h (REG_OFFSET): Fix comment.
2277 * var-tracking.c (INT_MEM_OFFSET): New macro.
2278 (var_mem_set): Use it.
2279 (var_mem_delete_and_set): Likewise.
2280 (var_mem_delete): Likewise.
2281 (same_variable_part_p): Likewise.
2282 (vt_get_decl_and_offset): Likewise.
2283 (offset_valid_for_tracked_p): New predicate.
2284 (count_uses): Do not track locations with invalid offsets.
2285 (add_uses): Likewise.
2286 (add_stores): Likewise.
2288 2007-11-07 Tom Tromey <tromey@redhat.com>
2290 * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
2291 (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
2293 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru>
2294 Andrey Belevantsev <abel@ispras.ru>
2296 * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
2297 generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
2298 (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
2299 Save calculated max_asap in it.
2300 (sms_schedule): Calculate maxii using max_asap.
2302 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com>
2304 * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
2305 with -mhard-dfp/-mno-hard-dfp.
2307 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com>
2308 Jakub Jelinek <jakub@redhat.com>
2311 * haifa-sched.c (check_sched_flags): Remove.
2312 (sched_init): Don't call it.
2314 2007-11-06 Diego Novillo <dnovillo@google.com>
2316 * tree-flow.h (struct fieldoff): Reformat comment. Document fields.
2317 * tree-ssa-operands.c: Tidy top-level comments.
2318 (add_vop): Likewise.
2319 (add_vars_for_offset): Tidy parameter formatting..
2320 (get_addr_dereference_operands): Likewise.
2321 (get_indirect_ref_operands): Likewise.
2322 (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
2323 <OMP_ATOMIC_STORE>: Likewise.
2325 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk>
2328 * config/i386/driver-i386.c: Test for __GNUC__ instead of
2329 GCC_VERSION which is always defined.
2331 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2334 * reload1.c (find_reloads): Also check in_reg when handling a
2335 simple move with an input reload and a destination of a hard register.
2337 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
2339 * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
2340 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
2341 TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
2342 TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2343 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
2344 (m68k_sched_attr_type2): New function.
2345 (sched_adjust_cost_state): New static variable.
2346 (m68k_sched_adjust_cost): New static function implementing
2348 (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
2349 New static variables.
2350 (m68k_sched_variable_issue): New static function implementing
2352 (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
2353 (sched_dump_split_class): New static function.
2354 (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
2356 (sched_dump_dfa_class, m68k_sched_dump): New static function.
2357 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2358 m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
2359 m68k_sched_dfa_post_advance_cycle): New static functions implementing
2362 * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
2363 (CPU_UNITS_QUERY): Define.
2365 * config/m68k/cf.md: New file.
2366 * config/m68k/m68.md (cf.md): New include.
2368 2007-11-06 Tom Tromey <tromey@redhat.com>
2372 * function.c (saved_in_system_header): New global.
2373 (push_cfun): Save in_system_header.
2374 (pop_cfun): Restore in_system_header.
2375 (push_struct_function): Save in_system_header.
2377 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
2381 * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
2382 (complete_array_type): Set canonical type appropriately.
2383 * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
2384 C and C++ front ends now have different versions of this function,
2385 because the C++ version needs to maintain canonical types here.
2387 2007-11-04 Razya Ladelsky <razya@il.ibm.com>
2389 * tree-parloops.c (reduction_info): Remove reduction_init field.
2390 (initialize_reductions): Remove creation of the reduction_init variable.
2391 (struct data_arg): Remove.
2392 (add_field_for_reduction, create_stores_for_reduction): New functions.
2393 (add_field_for_name): Remove reduction handling.
2394 (separate_decls_in_loop): Call add_field_for_reduction,
2395 create_stores_for_reduction.
2397 2007-11-06 Jakub Jelinek <jakub@redhat.com>
2399 PR tree-optimization/33458
2400 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
2401 !is_gimple_val PHI argument, gimplify it and insert it on edge.
2403 PR tree-optimization/33993
2404 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
2405 rather than build_constructor_from_list if all list values are
2407 (get_initial_def_for_induction): Use build_vector instead of
2408 build_constructor_from_list.
2410 2007-11-05 Mark Mitchell <mark@codesourcery.com>
2413 * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
2414 (DECL_FINI_PRIORITY): Likewise.
2415 * tree.c (decl_init_priority_lookup): Remove assert.
2416 (decl_fini_priority_insert): Likewise.
2417 * cgraphunit.c (static_ctors): Make it a VEC.
2418 (static_dtors): Likewise.
2419 (record_cdtor_fn): Adjust accordingly.
2420 (build_cdtor): Generate multiple functions for each initialization
2422 (compare_ctor): New function.
2423 (compare_dtor): Likewise.
2424 (cgraph_build_cdtor_fns): Sort the functions by priority before
2425 calling build_cdtor.
2426 (cgraph_build_static_cdtor): Put the priority in the function's name.
2428 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
2431 * common.opt: Add shared and pie.
2433 2007-11-05 Bob Wilson <bob.wilson@acm.org>
2435 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
2436 replace references to virtual_stack_vars_rtx in goto_handler.
2438 2007-11-05 Paul Brook <paul@codesourcery.com>
2440 * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
2441 * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
2442 (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call
2443 arm_lang_output_object_attributes_hook.
2444 * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
2445 (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
2446 * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
2448 * config/arm/t-arm.c (arm.o): New rule.
2449 * config/arm/arm-c.c: New file.
2451 2007-11-05 Nick Clifton <nickc@redhat.com>
2452 Sebastian Pop <sebastian.pop@amd.com>
2454 PR tree-optimization/32540
2455 PR tree-optimization/33922
2456 * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
2457 * tree-ssa-pre.c: Include params.h.
2458 (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
2459 to limit the maximum length of the PA set for a given block.
2460 * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
2461 * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
2463 2007-11-05 Nathan Sidwell <nathan@codesourcery.com>
2465 * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
2466 __fixunssfDI): Make return type unsigned.
2467 * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
2468 __fixunssfDI): Make return type unsigned.
2470 2007-11-05 Jakub Jelinek <jakub@redhat.com>
2472 PR tree-optimization/33856
2473 * tree-data-ref.c (get_references_in_stmt): Don't add
2474 REFERENCE_CLASS_P trees to references vector if get_base_address
2475 returns NULL on them.
2477 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
2479 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
2481 2007-11-04 Andrew Pinski <pinskia@gmail.com>
2484 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
2485 for TRUTH_NOT_EXPR to type.
2487 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
2489 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
2491 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2494 * dwarf2out.c (add_calling_convention_attribute): Change
2495 second argument. Set calling convention to DW_CC_program for
2496 Fortran main program.
2497 (gen_subprogram_die): Adjust to new prototype for
2498 add_calling_convention_attribute.
2500 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
2502 PR tree-optimization/33987
2503 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
2505 (vectorizable_reduction): Add type check.
2507 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2510 * c-parser.c (c_parser_statement_after_labels): Error if a
2511 declaration is parsed after a label.
2513 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
2516 * reorg.c (emit_delay_sequence): Do not clear the locator on
2517 the jump instruction.
2519 2007-11-03 Jakub Jelinek <jakub@redhat.com>
2522 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
2523 current sched region.
2525 2007-11-02 Jakub Jelinek <jakub@redhat.com>
2527 * config/ia64/ia64.c (struct reg_write_state): Change into
2528 unsigned short bitfields rather than unsigned int, decrease
2529 first_pred to just 10 bits.
2530 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
2531 into two char array.
2532 (rws_insn_set, rws_insn_test): New functions.
2533 (in_safe_group_barrier): New variable.
2534 (rws_update): Remove first argument, always set rws_sum array.
2535 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
2536 or update rws_sum if !in_safe_group_barrier, adjust rws_update args.
2537 (rtx_needs_barrier): Use rws_insn_test macro.
2538 (safe_group_barrier_needed): Don't save/restore rws_sum array,
2539 instead set/clear in_safe_group_barrier flag.
2541 2007-11-02 Bob Wilson <bob.wilson@acm.org>
2543 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
2544 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
2545 pointer or frame pointer.
2546 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
2547 (MUST_USE_SJLJ_EXCEPTIONS): Define.
2548 (DWARF2_UNWIND_INFO): Define.
2549 (INCOMING_RETURN_ADDR_RTX): Define.
2550 (DWARF_FRAME_RETURN_COLUMN): Define.
2552 2007-11-02 Tom Tromey <tromey@redhat.com>
2554 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
2557 2007-11-02 Diego Novillo <dnovillo@google.com>
2559 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
2560 argument from function pointer ANALYZE_EXPR. Update all users.
2561 * cgraph.c (debug_cgraph_node): New.
2562 (debug_cgraph): New.
2564 2007-11-02 Jakub Jelinek <jakub@redhat.com>
2566 PR rtl-optimization/33648
2567 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
2568 the newly created basic block.
2570 2007-11-01 Richard Guenther <rguenther@suse.de>
2572 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
2574 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
2576 PR rtl-optimization/33828
2577 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
2578 of VBEIN and VBEOUT.
2580 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2582 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
2583 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
2584 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
2586 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
2588 * gcc.c (getenv_spec_function): Escape the environment variable's
2591 2007-11-01 Janis Johnson <janis187@us.ibm.com>
2593 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
2594 show that CSE means common subexpression elimination. Change wording
2595 for -fsee and define LCM. Remove capitalization of optimizations
2596 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
2598 2007-11-01 Janis Johnson <janis187@us.ibm.com>
2601 * doc/sourcebuild.texi (Test Directives): Document that xfail
2602 has no effect for dg-do except when dg-do-what is "run".
2604 2007-11-01 Tom Tromey <tromey@redhat.com>
2606 * c-decl.c (grokdeclarator): Set decl source locations.
2607 * c-parser.c (c_parser_enum_specifier): Set location.
2608 (c_parser_struct_or_union_specifier): Likewise.
2610 2007-11-01 Tom Tromey <tromey@redhat.com>
2612 * print-tree.c (print_node): Print column number.
2614 2007-11-01 Jakub Jelinek <jakub@redhat.com>
2617 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2618 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
2619 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
2621 PR rtl-optimization/33673
2622 * gcse.c (cprop_jump): If a conditional jump has been optimized
2623 into unconditional jump, make the remaining normal edge fallthru
2624 and delete the jump insn.
2626 2007-11-01 Ben Elliston <bje@au.ibm.com>
2628 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
2629 (set_mem_attrs_from_reg): Likewise.
2631 2007-11-01 Michael Matz <matz@suse.de>
2633 PR tree-optimization/33961
2634 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
2635 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
2636 (add_or_mark_expr): New argument 'store', using it to search
2638 (nt_init_block): Adjust calls to add_or_mark_expr.
2640 2007-10-31 Jakub Jelinek <jakub@redhat.com>
2643 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
2644 for the first push_operand.
2646 2007-10-31 Revital Eres <eres@il.ibm.com>
2648 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
2649 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
2650 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
2651 movmisalignv2sf, vcondv2sf): New.
2652 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
2653 UNSPEC_EXTODD_V2SF): Define new constants.
2654 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
2655 paired_emit_vector_cond_expr): New.
2656 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
2657 * config/rs6000/rs6000.c (paired_expand_vector_move,
2658 paired_emit_vector_cond_expr, paired_emit_vector_compare):
2660 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
2662 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
2664 PR tree-optimization/32377
2665 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
2666 work also for unknown number of iterations.
2667 (analyze_subscript_affine_affine): Clean up. Don't fail when the
2668 number of iterations is not known.
2670 2007-10-31 Richard Guenther <rguenther@suse.de>
2673 * fold-const.c (extract_muldiv_1): Make sure to not introduce
2674 new undefined integer overflow.
2675 (fold_binary): Avoid useless conversion.
2677 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
2680 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.
2682 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
2684 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
2686 * config/s390/s390.c: (override_options): Replace
2687 -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp.
2688 * config/s390/s390.opt: Likewise.
2689 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
2692 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2694 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
2696 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2698 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
2699 optimization options.
2700 (Optimize Options): Add -fdce and -fdse to the list of optimizations
2701 enabled by -O. Document -fdce and -fdse.
2703 2007-10-30 Jakub Jelinek <jakub@redhat.com>
2706 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
2707 convert second operand of COMPOUND_EXPR to the original type of
2710 2007-10-30 Richard Guenther <rguenther@suse.de>
2712 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
2713 of loop adding SFTs as virtual operands.
2715 2007-10-30 Richard Guenther <rguenther@suse.de>
2717 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
2719 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
2721 PR tree-optimization/32893
2722 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
2723 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
2725 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
2727 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
2729 (sub_ddmmss): Likewise.
2730 (umul_ppmm): Likewise.
2731 (udiv_qrnnd): Likewise.
2733 2007-10-29 Janis Johnson <janis187@us.ibm.com>
2736 * doc/sourcebuild.texi (Test Directives): Document that dg-require
2737 directives must come before dg-additional-sources.
2739 2007-10-29 Jakub Jelinek <jakub@redhat.com>
2741 PR tree-optimization/33723
2742 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
2743 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
2745 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
2747 PR tree-optimization/33614
2748 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
2749 if they can't be reduced to VECTOR_CSTs and aren't legitimate
2750 initializer constants.
2752 2007-10-29 Richard Guenther <rguenther@suse.de>
2754 PR tree-optimization/33870
2755 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
2756 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
2759 2007-10-29 Richard Guenther <rguenther@suse.de>
2761 * passes.c (init_optimization_passes): Exchange store_copy_prop
2763 * tree-pass.h (pass_store_copy_prop): Remove.
2764 * tree-ssa-copy.c (do_store_copy_prop): Remove.
2765 (stmt_may_generate-copy): Do not handle store_copy_prop.
2766 (get_copy_of_val): Likewise.
2767 (set_copy_of_val): Likewise.
2768 (copy_prop_visit_assignment): Likewise.
2769 (copy_prop_visit_stmt): Likewise.
2770 (copy_prop_visit_phi_node): Likewise.
2771 (init_copy_prop): Likewise.
2772 (execute_copy_prop): Likewise.
2773 (do_copy_prop): Remove.
2774 (gate_store_copy_prop): Likewise.
2775 (store_copy_prop): Likewise.
2776 (pass_store_copy_prop): Likewise.
2777 (pass_copy_prop): Call execute_copy_prop.
2778 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
2779 * common.opt (ftree-store-copy-prop): Mark obsolete.
2780 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
2782 2007-10-29 Ian Lance Taylor <iant@google.com>
2784 * ifcvt.c (noce_can_store_speculate_p): New static function.
2785 (noce_process_if_block): Call it.
2786 (if_convert): Remove recompute_dominance parameter. Change all
2789 2007-10-29 Richard Guenther <rguenther@suse.de>
2791 * tree-flow-inline.h (get_subvar_at): Use binary search.
2792 (get_first_overlapping_subvar): New function to binary search
2793 for the first overlapping subvar.
2794 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
2795 just handle adding subvars for a pointed-to subvar. Optimize
2796 and use get_first_overlapping_subvar.
2797 (add_vars_for_bitmap): Fold into single caller.
2798 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
2799 and non pointed-to bits of add_vars_for_offset.
2801 2007-10-29 Revital Eres <eres@il.ibm.com>
2803 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
2805 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
2806 Zdenek Dvorak <ook@ucw.cz>
2809 reduction support for automatic parallelization.
2811 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
2813 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
2814 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
2815 and OMP_ATOMIC_STORE.
2816 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2817 * gimple-low.c (lower_stmt): Same.
2818 * gimplify.c (gimplify_expr): Same.
2819 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
2820 gimplify_omp_atomic_mutex): Remove.
2821 (gimplify_omp_atomic): Change it to simply gimplify the
2822 statement instead of expanding it.
2823 * omp-low.c: Add includes to optabs.h, cfgloop.h.
2824 (expand_omp_atomic, expand_omp_atomic_pipeline,
2825 goa_stabilize_expr, expand_omp_atomic_mutex,
2826 expand_omp_atomic_fetch_op): New functions to implement
2827 expansion of OMP_ATOMIC.
2828 (expand_omp, build_omp_regions_1): Add support for
2829 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
2830 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
2832 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
2834 * tree-parloops.c: add include to tree-vectorizer.h.
2835 (reduction_info): New structure for reduction.
2836 (reduction_list): New list to represent list of reductions per loop.
2837 (struct data_arg): New helper structure for reduction.
2838 (reduction_info_hash, reduction_info_eq, reduction_phi,
2839 initialize_reductions, create_call_for_reduction,
2840 create_phi_for_local_result, create_call_for_reduction_1,
2841 create_loads_for_reductions, create_final_loads_for_reduction):
2843 (loop_parallel_p): Identify reductions, add reduction_list parameter.
2844 (separate_decls_in_loop_name): Support reduction variables.
2845 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
2846 call create_loads_for_reduction for each reduction.
2847 (canonicalize_loop_ivs): Identify reductions, add reduction_list
2849 (transform_to_exit_first_loop): Add reduction support, add
2850 reduction_list parameter.
2851 (gen_parallel_loop): Add reduction_list parameter. Add call
2852 separate_decls_in_loop with
2853 the new argument. Traverse reductions and call
2854 initialize_reductions, create_call_for_reduction.
2855 (parallelize_loops): Create and delete the reduction list.
2856 (add_field_for_name): Change use of data parameter. Add fields for
2858 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
2859 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
2860 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2861 * tree-inline.c (estimate_num_insns_1): add cases for
2862 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2863 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2864 * tree-ssa-operands.c (get_addr_dereference_operands):
2865 New function. Subroutine of get_indirect_ref_operands.
2866 (get_indirect_ref_operands): Call get_addr_dereference_operands.
2867 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2870 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
2872 * config/cris/cris.c: Include df.h.
2873 (cris_address_cost): Add gcc_assert for canonicalization
2874 assumptions. For PLUS with MULT or register, correct
2875 test for register in other arm. Tweak comments.
2877 2007-10-28 Richard Guenther <rguenther@suse.de>
2879 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
2880 telling if the var is to be treated as points-to location.
2881 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
2882 (add_virtual_operand): Only recurse into MPTs if aliases
2885 2007-10-28 Richard Guenther <rguenther@suse.de>
2887 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
2888 (add_vars_for_bitmap): Do not recurse further. Only add vars
2889 for pointed-to SFTs.
2890 (add_virtual_operand): Re-instantiate loop to add operands for
2891 aliases. Recurse into MPTs.
2892 (get_indirect_ref_operands): If we fall back to use a pointers
2893 SMT, make sure to not prune based on the access offset and size.
2895 2007-10-28 Andrew Pinski <pinskia@gmail.com>
2898 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
2899 the eh information on the statement.
2901 2007-10-28 Richard Guenther <rguenther@suse.de>
2903 * tree-flow.h (subvar_t): Make it a VEC.
2904 (struct subvar): Remove.
2905 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
2906 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
2908 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2909 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
2910 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
2911 (set_initial_properties): Likewise.
2912 (setup_pointers_and_addressables): Likewise.
2913 (new_type_alias): Likewise.
2914 (create_overlap_variables_for): Likewise.
2915 * tree-dfa.c (dump_subvars_for): Likewise.
2916 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
2917 (get_expr_operands): Likewise.
2918 (add_to_addressable_set): Likewise.
2919 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
2921 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
2923 PR tree-optimization/33920
2924 * tree-if-conv.c (tree_if_conversion): Force predicate of single
2925 successor bb to true when predecessor bb has NULL predicate.
2926 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
2928 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
2930 * config/mips/mips.md: Add combiner patterns for DImode extensions
2931 of HImode and QImode truncations. Reformat HImode <- QImode pattern
2934 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
2937 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
2939 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
2941 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
2942 LIBCALL notes if they are about to be moved to the same insn.
2944 2007-10-27 Richard Guenther <rguenther@suse.de>
2946 PR tree-optimization/33870
2947 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
2948 duplication. Remove redundant call to access_can_touch_variable.
2949 (add_vars_for_bitmap): New helper for recursing over MPT contents.
2950 (add_virtual_operand): Use it.
2952 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2955 * pa.h (ASM_PN_FORMAT): Delete define.
2957 2007-10-26 Janis Johnson <janis187@us.ibm.com>
2959 * doc/invoke.texi (Option Summary, optimizations): Remove
2960 -fbounds-check. Add -fassociative-math, -freciprocal-math,
2961 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
2962 -fsplit-wide-types to match later entry. Break up a long line.
2963 (Option Summary, code gen options) Add -fno-stack-limit. Add
2964 missing @gol to the end of a line.
2965 (Optimization Options): Remove -fbounds-check, which is also
2966 documented under Code Generation Options. Remove =n from
2967 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
2968 to -fcprop-registers to match other options, and say when it is
2969 enabled rather than disabled. Remove extra index entry for
2970 -fno-cx-limited-range. Add index entries for -fstack-protector
2971 and -fstack-protector-all.
2972 (Code Gen Options): Add index entry for -ftls-model.
2974 2007-10-26 Anatoly Sokolov <aesok@post.ru>
2976 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
2977 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
2978 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
2979 expand_epilogue, output_movhi): Don't handle 'main' function.
2980 (avr_attribute_table): Add 'OS_task' function attribute.
2981 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
2983 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
2984 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
2986 * config/avr/avr.opt (minit-stack): Remove.
2988 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
2990 * tree-nested.c (get_trampoline_type): Fix thinko.
2992 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
2995 * tree.c (build_offset_type): Build canonical type based on the
2996 TYPE_MAIN_VARIANT of the base type.
2998 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
3000 * reorg.c (emit_delay_sequence): Move insn locator from the
3001 first insn to the sequence.
3003 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
3005 * ipa-pure-const.c (check_decl): Return immediately when
3006 pure_const_state has been set to IPA_NEITHER.
3008 2007-10-25 Ira Rosen <irar@il.ibm.com>
3010 PR tree-optimization/33833
3011 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
3012 and convert init to sizetype in inner_base construction.
3014 2007-10-25 Richard Guenther <rguenther@suse.de>
3016 * tree-flow.h (mem_sym_stats): Remove.
3017 (dump_mem_sym_stats_for_var): Declare.
3018 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
3019 (mem_sym_stats): Move ...
3020 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
3021 (mem_sym_score): Rename from ...
3022 (pscore): ... this. Remove.
3023 (dump_mem_sym_stats_for_var): New function. Dump the score, but
3024 not the frequencies.
3025 (compare_mp_info_entries): Make sort stable by disambiguating
3028 2007-10-25 Ira Rosen <irar@il.ibm.com>
3030 PR tree-optimization/33866
3031 * tree-vect-transform.c (vectorizable_store): Check operands of all
3032 the stmts in the group of strided accesses. Get def stmt type for each
3033 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
3035 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
3037 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
3038 (Yt): Rename register constraint to Y2.
3039 * config/i386/sse.md: Use renamed register constraints.
3040 * config/i386/mmx.md: Ditto.
3041 * config/i386/i386.md: Ditto.
3043 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
3045 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
3047 2007-10-24 Chao-ying Fu <fu@mips.com>
3049 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
3050 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
3052 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
3053 Olga Golovanevsky <olga@il.ibm.com>
3055 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
3056 the compiler that wr.wrap and wr.domain are initialized in
3059 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
3061 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
3062 to print gcov_type values.
3064 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
3066 * config/avr/avr.h: Do not include progmem_section definition when
3067 building with IN_TARGET_LIBS.
3069 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
3072 * config/mips/mips.c (mips_lo_sum_offset): New structure.
3073 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
3074 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
3075 (mips_orphaned_high_part_p: New functions.
3076 (mips_avoid_hazard): Don't check INSN_P here.
3077 (mips_avoid_hazards): Rename to...
3078 (mips_reorg_process_insns): ...this. Cope with
3079 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
3080 or turn them into nops.
3081 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
3082 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
3083 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
3084 (mips_override_options): Set flag_delayed_branch to 0.
3086 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
3088 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
3089 MIPS-specific implementation details.
3090 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
3091 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
3092 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
3093 for targets with movmemsi.
3094 (MOVE_BY_PIECES_P): Define.
3095 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
3096 (mips_block_move_loop): Add a bytes_per_iter argument.
3097 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
3098 Update call to mips_block_move_loop.
3100 2007-10-24 Michael Matz <matz@suse.de>
3103 * var-tracking.c (variable_union): Don't break after one loop
3104 iteration but only when a difference is found.
3105 (dump_variable): Also print DECL_UID.
3107 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
3109 * ipa-type-escape.h: Expose function
3110 is_array_access_through_pointer_and_index.
3112 (is_array_access_through_pointer_and_index):
3113 Add three new parameters. Add support of
3114 POINTER_PLUS_EXPR tree code.
3116 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
3118 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
3119 * tree-pass.h: Add pass_ipa_struct_reorg.
3120 * common.opt: Add ipa-struct-reorg flag.
3121 * Makefile.in: Add ipa-strcut-reorg.o compilation.
3122 * passes.c: Add pass pass_ipa_struct_reorg.
3123 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
3124 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
3126 2007-10-24 Ira Rosen <irar@il.ibm.com>
3128 PR tree-optimization/33804
3129 * tree-vect-transform.c (vectorizable_operation): Remove the
3130 checks that the vectorization is worthwhile from the transformation
3133 2007-10-24 Ira Rosen <irar@il.ibm.com>
3135 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
3136 vectype cannot be determined for the scalar type.
3137 (vect_analyze_slp_instance): Likewise.
3138 * tree-vect-transform.c (vect_model_reduction_cost): Change the
3139 return type to bool. Return false if vectype cannot be determined
3140 for the scalar type.
3141 (vect_get_constant_vectors): Return false if vectype cannot be
3142 determined for the scalar type.
3143 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
3144 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
3145 vectorizable_reduction): Likewise.
3147 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
3149 * config.gcc: For a FreeBSD target, parse the value of ${target}
3150 to determine the value of FBSD_MAJOR, instead of adding an
3151 explicit check for every possible FreeBSD major version.
3153 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
3155 PR rtl-optimization/33846
3156 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
3158 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
3160 PR tree-optimization/33860
3161 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
3162 interleaved accesses in case the dr is inside the inner-loop during
3163 outer-loop vectorization.
3165 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
3167 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
3168 Document MEM_POINTER. Replace mentions of "integrated"
3169 field with "return_val". Delete outdated stuff.
3171 2007-10-23 David Edelsohn <edelsohn@gnu.org>
3173 * config/rs6000/rs6000.c (rs6000_override_options): Set
3174 rs6000_altivec_abi on AIX.
3175 (conditional_register_usage): Set VR20:31 fixed on AIX.
3177 2007-10-23 Richard Guenther <rguenther@suse.de>
3179 * alias.c (get_alias_set): For INDIRECT_REFs, deal with
3182 2007-10-22 Seongbae Park <seongbae.park@gmail.com>
3183 David S. Miller <davem@davemloft.net>
3185 * df-scan.c (df_get_call_refs): Mark global registers as both a
3186 DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
3188 2007-10-22 Dorit Nuzman <dorit@il.ibm.com>
3190 PR tree-optimization/33834
3191 PR tree-optimization/33835
3192 * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
3193 stmts need to be checked for success seperately.
3194 * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
3195 Remove the check that stmt is not LIVE.
3196 (vectorizable_assignment, vectorizable_induction): Likewise.
3197 (vectorizable_operation, vectorizable_type_demotion): Likewise.
3198 (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
3200 (vectorizable_live_operation): Check that op is not NULL.
3202 2007-10-22 Janis Johnson <janis187@us.ibm.com>
3204 * doc/invoke.texi (Optimization Options): In the summary, show
3205 that the value for options -falign-jumps, -falign-labels,
3206 -falign-loops, -falign-functions, -fsched-stalled-insns, and
3207 -fsched-stalled-insns-dep is optional. In the summary, show that
3208 -fsched-stalled-insns takes an optional argument and that
3209 -fparallelize-loops takes an argument. Add opindex for several
3210 optimization options, and fix typos in the opindex commands for
3211 several others. In the descriptions for -fsched-stalled-insns
3212 and -fsched-stalled-insns-dep, show the options with and without
3215 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com>
3217 * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
3219 * config/avr/avr.h (LINK_SPEC): Likewise.
3220 (CRT_BINUTILS_SPECS): Likewsie.
3221 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3223 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3225 PR rtl-optimization/33644
3226 * cfgcleanup.c: Do not include dce.h.
3227 * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
3228 * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
3229 * dce.c (something_changed): Delete.
3230 (libcall_dead_p): New predicate.
3231 (delete_unmarked_insns): Use it to delete dead libcalls.
3232 Deal with REG_LIBCALL and REG_RETVAL notes.
3233 (prescan_libcall_for_dce): New function.
3234 (prescan_insns_for_dce): Use it to deal with libcalls.
3235 (mark_reg_dependencies): Do nothing special for libcalls.
3236 (dce_process_block): Likewise.
3237 (fast_dce): Delete unused local variable.
3238 (run_fast_dce): Do not return a value.
3239 * dce.h (struct df): Delete.
3240 (run_fast_dce): Adjust prototype.
3241 * optabs.c (libcall_id): Delete.
3242 (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
3243 (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
3244 * reload1.c (reload): Delete REG_LIBCALL_ID case.
3245 * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
3246 * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
3247 notes instead of REG_LIBCALL_ID notes.
3248 * reg-notes.def (LIBCALL_ID): Delete.
3249 * Makefile.in (see.o): Add dce.h dependency.
3250 (cfgcleanup.o): Remove dce.h dependency.
3252 2007-10-22 Michael Matz <matz@suse.de>
3254 PR tree-optimization/33855
3255 * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
3258 2007-10-22 Ira Rosen <irar@il.ibm.com>
3260 PR tree-optimization/33854
3261 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
3262 FLOAT_EXPR to the list of promotion operations.
3264 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
3268 * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
3269 (print_reg): Print register prefix only with AT&T asm syntax.
3270 Support pc_rtx for RIP register.
3271 (print_operand_address): Use print_reg()'s pc_rtx support for RIP
3272 relative addressing. Always print segment register prefix with AT&T
3273 asm syntax and never with Intel asm syntax.
3274 (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands.
3275 Fix prefix for 16-byte XFmode operands.
3276 (output_addr_const_extra): Support Intel asm syntax.
3277 (x86_file_start): Don't use register prefix with Intel asm syntax.
3278 * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
3279 ("return_internal_long"): Fix Intel asm syntax output.
3280 ("set_got_rex64"): Support Intel asm syntax.
3281 ("set_rip_rex64"): Likewise.
3282 ("set_got_offset_rex64"): Likewise.
3283 ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
3285 ("*tls_global_dynamic_64"): Likewise.
3286 ("*tls_local_dynamic_base_64"): Likewise.
3287 ("*load_tp_si")("*load_tp_di"): Likewise.
3288 ("*add_tp_si")("*add_tp_di"): Likewise.
3289 ("*tls_dynamic_lea_64"): Likewise.
3290 ("*sibcall_value_1_rex64_v"): Likewise.
3291 ("stack_tls_protect_set_si"): Likewise.
3292 ("stack_tls_protect_set_di"): Likewise.
3293 ("stack_tls_protect_test_si"): Likewise.
3294 ("stack_tls_protect_test_di"): Likewise.
3295 * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
3297 ("*movv2sf_internal_rex64"): Likewise.
3298 * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
3299 (__get_cpuid_max): Likewise.
3301 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3303 * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
3304 the STRICT_P argument type "bool" rather than "int".
3305 (mips_legitimate_address_p): Likewise.
3306 (fp_register_operand, lo_operand): Delete.
3307 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
3308 (mips_emit_scc): Rename to...
3309 (mips_expand_scc): ...this.
3310 (gen_conditional_branch): Rename to...
3311 (mips_expand_conditional_branch): ...this.
3312 (gen_conditional_move): Rename to...
3313 (mips_expand_conditional_move): ...this.
3314 (mips_gen_conditional_trap): Rename to...
3315 (mips_expand_conditional_trap): ...this and take an rtx code instead
3316 of an operands array.
3317 (mips_expand_call): Give the SIBCALL_P argument type "bool"
3319 (mips_emit_fcc_reload): Rename to...
3320 (mips_expand_fcc_reload): ...this.
3321 (init_cumulative_args): Rename to...
3322 (mips_init_cumulative_args): ...this and remove the libname argument.
3323 (function_arg_advance): Rename to...
3324 (mips_function_arg_advance): ...this.
3325 (function_arg): Rename to...
3326 (mips_function_arg): ...this and use "rtx" instead of
3328 (function_arg_boundary): Rename to...
3329 (mips_function_arg_boundary): ...this.
3330 (mips_expand_unaligned_load): Rename to...
3331 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
3332 and BITPOS arguments type "HOST_WIDE_INT".
3333 (mips_expand_unaligned_store): Rename to...
3334 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
3335 and BITPOS arguments type "HOST_WIDE_INT".
3336 (override_options): Rename to...
3337 (mips_override_options): ...this.
3338 (print_operand): Rename to...
3339 (mips_print_operand): ...this.
3340 (print_operand_address): Rename to...
3341 (mips_print_operand_address): ...this.
3342 (mips_output_ascii): Remove the PREFIX argument.
3343 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
3345 (mips_can_use_return_insn): Return a "bool" rather than an "int".
3346 (mips_function_value): Remove the FUNC argument. Use "rtx" instead
3347 of "struct rtx_def *".
3348 (mips_secondary_reload_class): Give the IN_P argument type "bool"
3350 (build_mips16_call_stub): Delete.
3351 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
3352 (mips_use_ins_ext_p): Give the second and third arguments type
3353 "HOST_WIDE_INT" rather than "rtx".
3354 * config/mips/mips.h: Update after the above changes. Tweak comments
3356 (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
3357 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3358 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
3359 element type from "char" to "bool".
3360 (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
3361 (mips_cpu_info_table): Delete.
3362 * config/mips/mips.md: Update after the above changes. Tweak some
3364 * config/mips/mips-ps-3d.md: Likewise.
3365 * config/mips/mips.c: Tweak comments and formatting.
3366 Use NULL-like macros rather than 0 in various places.
3367 (mips_section_threshold): Rename to...
3368 (mips_small_data_threshold): ...this and give it an unsigned type.
3369 (num_source_filenames): Remove explicit initialization.
3370 (sdb_label_count): Likewise.
3371 (sym_lineno): Delete.
3372 (set_noat): Make static.
3373 (mips_branch_likely): Likewise, and give it type "bool".
3374 (mips_isa_info): Rename to...
3375 (mips_isa_option_info): ...this.
3376 (mips_flag_delayed_branch): Rename to...
3377 (mips_base_delayed_branch): ...this.
3378 (mips_split_addresses): Delete.
3379 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
3380 element type from "char" to "bool".
3381 (mips_regno_to_class): Add an explicit array size.
3382 (mips16_flipper): Change from type "int" to type "bool".
3383 (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
3384 (mips_tls_operand_p): Rename to...
3385 (mips_tls_symbol_p): ...this.
3386 (mips_global_symbol_p): Remove redundant "const".
3387 (mips_offset_within_alignment_p): Simplify.
3388 (mips_regno_mode_ok_for_base_p): Change the name of the last argument
3389 to STRICT_P and give it type bool.
3390 (mips_valid_base_register_p): Likewise.
3391 (mips_classify_address): Likewise.
3392 (mips_legitimate_address_p): Likewise.
3393 (mips16_unextended_reference_p): Take the offset as an
3394 "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify.
3395 (mips_const_insns): Use IN_RANGE.
3396 (mips_force_temporary): Remove an unnecessary copy_rtx.
3397 (mips16_gp_pseudo_reg): Simplify.
3398 (mips_split_symbol): Remove an unnecessary copy_rtx.
3399 (mips_legitimize_tls_address): Only create registers if we need them.
3400 (mips_legitimize_address): Use mips_split_plus.
3401 (mips_move_integer): Swap DEST and TEMP arguments. Rename local
3402 variable COST to NUM_OPS.
3403 (mips_legitimize_move): Use gen_lowpart.
3404 (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
3405 (m16_check_op): Use IN_RANGE.
3406 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
3407 (mips_split_doubleword_move): Pass booleans to mips_subword.
3408 (mips_output_move): Store the mode in a local variable.
3409 Explicitly assert that this function does not deal with
3410 MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of
3411 cases more consistent.
3412 (mips_relational_operand_ok_p): Rename to...
3413 (mips_int_order_operand_ok_p): ...this.
3414 (mips_canonicalize_comparison): Rename to...
3415 (mips_canonicalize_int_order_test): ...this.
3416 (mips_emit_int_relational): Rename to...
3417 (mips_emit_int_order_test): ...this. Store the mode in a local
3419 (mips_reverse_fp_cond_p): Rename to...
3420 (mips_reversed_fp_cond): ...this.
3421 (mips_emit_compare): Make the order of the statements more consistent.
3422 (mips_emit_scc): Rename to...
3423 (mips_expand_scc): ...this.
3424 (gen_conditional_branch): Rename to...
3425 (mips_expand_conditional_branch): ...this.
3426 (gen_conditional_move): Rename to...
3427 (mips_expand_conditional_move): ...this. Build the condition
3428 separately from the main pattern.
3429 (mips_gen_conditional_trap): Rename to...
3430 (mips_expand_conditional_trap): ...this and take an rtx code instead
3431 of an operands array. Simplify.
3432 (init_cumulative_args): Rename to...
3433 (mips_init_cumulative_args): ...this. Use memset rather than a
3434 copy from a zeroed static. Use prototype_p and stdarg_p.
3435 (mips_arg_info): Rename to...
3436 (mips_get_arg_info): ...this and put the INFO argument first.
3437 (function_arg): Rename to...
3438 (mips_function_arg): ...this and use "rtx" instead of
3439 "struct rtx_def *". Only split structures into chunks if
3440 TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
3441 a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a
3442 comparison with REAL_TYPE. Rename local variable REG to REGNO
3443 and make it unsigned.
3444 (function_arg_advance): Rename to...
3445 (mips_function_arg_advance): ...this.
3446 (function_arg_boundary): Rename to...
3447 (mips_function_arg_boundary): ...this.
3448 (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
3450 (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
3451 comparison with REAL_TYPE.
3452 (mips_function_value): Remove the FUNC argument. Rename local
3453 variable UNSIGNEDP to UNSIGNED_P.
3454 (mips_return_in_memory): Use IN_RANGE.
3455 (mips_setup_incoming_varargs): Pass a boolean rather than an int
3456 to FUNCTION_ARG_ADVANCE.
3457 (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
3458 to INDIRECT_P. Remove a redundant mips_abi check. Only calculate
3459 SIZE and RSIZE if needed.
3460 (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
3462 (build_mips16_function_stub): Rename to...
3463 (mips16_build_function_stub): ...this.
3464 (build_mips16_call_stub): Rename to...
3465 (mips16_build_call_stub): ...this. Make static, and return a
3466 "bool" rather than an "int". Rename the ARG_SIZE argument to
3467 ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give
3468 it type "bool". Use "jr" rather than "j". Use XNEW. Simplify.
3469 (mips_load_call_address): Give the SIBCALL_P argument type "bool"
3471 (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs
3472 are not sibling ones.
3473 (mips_emit_fcc_reload): Rename to...
3474 (mips_expand_fcc_reload): ...this.
3475 (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
3477 (mips_expand_unaligned_load): Rename to...
3478 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
3479 and BITPOS arguments type "HOST_WIDE_INT". Remove redundant
3481 (mips_expand_unaligned_store): Rename to...
3482 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
3483 and BITPOS arguments type "HOST_WIDE_INT".
3484 (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
3485 and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
3487 (mips_init_split_addresses): Replace with...
3488 (mips_split_addresses_p): ...this new function.
3489 (mips_init_relocs): Check mips_split_addresses_p () rather than
3490 mips_split_addresses. Always initialize mips_split_p with booleans.
3491 (print_operand_reloc): Rename to...
3492 (mips_print_operand_reloc): ...this. Use a gcc_assert rather than
3494 (print_operand): Rename to...
3495 (mips_print_operand): ...this.
3496 (print_operand_address): Rename to...
3497 (mips_print_operand_address): ...this. Use GP_REG_FIRST.
3498 (mips_in_small_data_p): Simplify.
3499 (mips_output_ascii): Remove the PREFIX argument and "register"
3500 keywords. Use the STRING parameter directly and cast to
3502 (mips16e_collect_argument_save_p): Use IN_RANGE.
3503 (mips_function_has_gp_insn): Simplify.
3504 (mips_set_return_address): Use BITSET_P.
3505 (mips_restore_gp): Use a separate statement to pick the base
3507 (mips_output_function_prologue): Use a local FRAME variable.
3508 (mips_save_reg): Pass booleans to mips_subword.
3509 (mips_expand_prologue): Use a local FRAME variable. Use
3510 cprestore_size to detect when .cprestore is needed.
3511 (mips_restore_reg): Use GP_REG_FIRST.
3512 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
3513 rather than "int". Use local FRAME and REGNO variables.
3514 (mips_can_use_return_insn): Return a "bool" rather than an "int".
3515 (mips_secondary_reload_class): Give the IN_P argument type "bool"
3517 (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
3518 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
3519 (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
3520 (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
3521 (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
3522 (builtin_description): Rename to...
3523 (mips_builtin_description): ...this.
3524 (mips_bdesc): Rename to...
3525 (mips_ps_bdesc): ...this.
3526 (sb1_bdesc): Rename to...
3527 (mips_sb1_bdesc): ...this.
3528 (dsp_bdesc): Rename to...
3529 (mips_dsp_bdesc): ...this.
3530 (dsp_32only_bdesc): Rename to...
3531 (mips_dsp_32only_bdesc): ...this.
3532 (bdesc_map): Rename to...
3533 (mips_bdesc_map): ...this.
3534 (bdesc_arrays): Rename to...
3535 (mips_bdesc_arrays): ...this.
3536 (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
3537 Tweak error message.
3538 (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
3539 Rename local variables I and J to OPNO and ARGNO respectively.
3540 Assert that the number of arguments is no more than the number of
3542 (mips_expand_builtin_compare): Use an array of arguments rather
3543 than an array of operands. Assert that the number of operands is
3545 (add_constant): Rename to...
3546 (mips16_add_constant): ...this. Use XNEW.
3547 (dump_constants_1): Rename to...
3548 (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P.
3549 (dump_constants): Rename to...
3550 (mips16_emit_constants): ...this.
3551 (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
3552 (mips_set_mips16_mode): Don't call mips_init_split_addresses.
3553 Assign mips16_p to was_mips16_p.
3554 (mips_parse_cpu): Tweak warning message.
3555 (override_options): Rename to...
3556 (mips_override_options): ...this. Move the mips_cost initialization
3557 out of the "shared with GAS" block. Quote option names in error
3559 (mips_conditional_register_usage): Make local variable REGNO unsigned.
3560 (mips_order_regs_for_local_alloc): Remove register keyword.
3562 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3564 * system.h (IN_RANGE): Cast each argument individually.
3566 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3568 * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
3569 MIPS16 code unless using o32 or o64.
3571 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3573 * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
3574 for modes smaller than 4 bytes.
3575 * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
3578 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3580 * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
3581 * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
3582 (ASM_OUTPUT_ALIGNED_BSS): Delete.
3583 * config/mips/mips.c (mips_output_aligned_bss): Delete.
3585 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3587 * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
3588 sibling calls to "mips16" functions if the function satisfies
3589 const_call_insn_operand.
3591 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3593 * config/mips/mips.c (mips_va_start): Fix types in calls
3596 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3598 * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
3601 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3603 * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
3604 * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
3605 instead of checking mips_isa.
3607 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3609 * doc/invoke.texi (-mpaired-single): Don't say that the option
3610 requires 64-bit code.
3611 * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
3612 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
3613 (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for
3614 V2SF if ISA_MIPS32R2.
3615 (MODES_TIEABLE_P): Use mips_modes_tieable_p.
3616 * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
3617 to ISA_HAS_NMADD_NMSUB.
3618 (mips_split_doubleword_move): Handle V2SF.
3619 (mips_modes_tieable_p): New function.
3620 (override_options): Report a warning rather than an error when
3621 -mpaired-single is used on ISAs that don't support it; use
3622 ISA_HAS_PAIRED_SINGLE to check that case.
3623 * config/mips/mips.md (MOVE64): New mode iterator. Replace DI
3624 and DF move splitters with a single MOVE64 splitter, thereby adding
3625 a V2SF splitter too.
3626 (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
3627 Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator.
3628 (HALFMODE): Add V2SF.
3629 (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
3630 (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
3631 (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
3632 (movv2sf_hardfloat_32bit): New pattern.
3633 (load_low<mode>, load_high<mode>, store_word<mode>): Remove
3634 TARGET_DOUBLE_FLOAT conditions.
3636 2007-10-20 Jakub Jelinek <jakub@redhat.com>
3638 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
3639 saved CR2 offset to low 32 bits of regs->ccr rather than the whole
3640 64-bit register in 64-bit libgcc.
3642 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com>
3644 * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
3645 * config/avr/avr.h (LINK_SPEC): Likewise.
3646 (CRT_BINUTILS_SPECS): Likewsie.
3647 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3649 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3651 * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
3652 and -Wfatal-errors together.
3654 2007-10-20 Alan Modra <amodra@bigpond.net.au>
3657 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
3658 change for vrsave, ie restore after frame pop.
3660 2007-10-19 David S. Miller <davem@davemloft.net>
3662 * config/sparc/niagara2.md: Fix copyright notice.
3664 2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
3666 PR tree-optimization/23820
3667 PR tree-optimization/24309
3668 PR tree-optimization/33766
3669 * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
3670 * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
3671 * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
3672 * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
3673 * tree-loop-linear.c (perfect_loop_nest_depth): New.
3674 (linear_transform_loops): Use perfect_loop_nest_depth.
3675 * lambda-code.c (perfect_nest_p): Outer loops in perfect nests
3676 should have a single condition: their exit.
3678 2007-10-19 Richard Guenther <rguenther@suse.de>
3682 * stor-layout.c (layout_type): Assert that aggregates do not
3683 have their alias sets set.
3684 * alias.c (get_alias_set): Return alias set zero for incomplete
3685 types, return the alias set of the element for incomplete array
3686 types, but do not remember these.
3688 2007-10-19 Richard Guenther <rguenther@suse.de>
3691 2007-10-19 Richard Guenther <rguenther@suse.de>
3694 * tree.c (build_array_type): Do not re-layout unbound array
3697 2007-10-19 Richard Guenther <rguenther@suse.de>
3700 * tree.c (build_array_type): Do not re-layout unbound array types.
3702 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3704 * config/mips/mips.c (mips_canonicalize_comparison): Check
3705 mips_relational_operand_ok_p before trying to rewrite the test.
3706 Only calculate PLUS_ONE if needed.
3707 (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
3710 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3712 * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
3715 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3717 * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
3718 the call uses the incoming value of $2.
3720 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3722 * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
3723 rather then gen_rtx_MEM.
3724 (mips_setup_incoming_varargs): Use gen_frame_mem rather than
3726 (mips_set_return_address): Likewise.
3727 (mips_restore_gp): Likewise.
3729 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3731 * config/mips/mips.c (gpr_mode): Delete.
3732 (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
3733 instead of gpr_mode.
3734 (mips_for_each_saved_reg): Likewise.
3735 (mips_expand_prologue, mips_expand_epilogue): Likewise.
3736 (override_options): Don't initialize gpr_mode.
3737 * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
3739 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3741 * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
3743 (mips_class_max_nregs): Calculate the smallest consituent register
3744 size and use that to determine an upper bound on the number of
3747 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3749 * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
3751 (mips_expand_epilogue): ...here.
3752 (mips_mdebug_abi_name): New function, split out from...
3753 (mips_file_start): ...here.
3754 (mips_hard_regno_mode_ok_p): New function, split out from...
3755 (override_options): ...here.
3756 (mips_expand_builtin_1): New function, split out from...
3757 (mips_expand_buitin): ...here. Abort if we don't recognize
3760 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3762 * config/mips/mips.c (build_mips16_function_stub): Load the
3763 target address into $1 before transfering the arguments.
3764 Don't use ".set noreorder".
3765 (build_mips16_call_stub): Likewise.
3767 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3769 * config/mips/mips.c (mips_output_32bit_xfer): New function.
3770 (mips_output_64bit_xfer): Likewise.
3771 (mips16_fp_args): Rename to...
3772 (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
3773 with a DIRECTION argument. Use mips_output_32bit_xfer and
3774 mips_output_64bit_xfer.
3775 (build_mips16_function_stub): Update accordingly.
3776 (mips16_fpret_double): Delete.
3777 (build_mips16_call_stub): Update after above changes.
3778 Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead
3779 of mips16_fpret_double. Use GP_REG_RETURN.
3781 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3783 * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
3784 use asm_out_file instead.
3785 (build_mips16_function_stub): Likewise.
3786 (build_mips16_call_stub, mips_output_function_prologue): Update
3789 2007-10-18 David S. Miller <davem@davemloft.net>
3791 Add Niagara-2 support.
3792 * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
3793 * config.gcc: Add niagara2 to cpu and tune lists for sparc.
3794 * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
3795 (include): Add inclusion of niagara2.md
3796 * config/sparc/sparc.c (niagara2_costs): New.
3797 (sparc_override_options): Add niagara2 entry to cpu_default[]
3798 and cpu_table[]. Set align_functions to 32 on Niagara2. Use
3799 niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for
3800 PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
3801 (sparc_initialize_trampoline): Handle niagara2 like niagara.
3802 (sparc64_initialize_trampoline): Likewise.
3803 (sparc_use_sched_lookahead): Likewise.
3804 (sparc_issue_rate): Likewise.
3805 * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
3807 * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
3808 ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
3809 TARGET_CPU_niagara2.
3810 (PROCESSOR_NIAGARA2): New.
3811 (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
3812 (BRANCH_COST): Likewise.
3813 * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
3814 * config/sparc/sol2.h: Likewise.
3815 * config/sparc/niagara2.md: New file.
3817 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3819 * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
3821 (mips_compute_frame_info): Remove associated code.
3822 (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
3824 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3826 * config/mips/mips-protos.h (compute_frame_size): Delete.
3827 * config/mips/mips.h: Update comments.
3828 * config/mips/mips.c (mips_frame_info): Remove initialized.
3829 (compute_frame_size): Rename to...
3830 (mips_compute_frame_info): ...this and make static. Remove the
3831 SIZE argument and return no value. Remove the setting of initialized.
3832 Update rest of file accordingly.
3833 (mips_set_return_address): Don't call compute_frame_size.
3834 (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
3835 Don't call compute_frame_size.
3837 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3839 * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
3840 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
3841 mips_hard_frame_pointer_required.
3842 (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
3843 large MIPS16 frames.
3844 * config/mips/mips.c (mips_frame_pointer_required): New function.
3846 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3848 * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
3849 and hard_frame_pointer_offset.
3850 (mips_debugger_offset): Use hard_frame_pointer_offset.
3851 (mips16e_collect_argument_save_p): Likewise.
3852 (compute_frame_size): Initialize arg_pointer_offset and
3853 hard_frame_pointer_offset.
3854 (mips_initial_elimination_offset): Use them.
3855 (mips_output_function_prologue): Use hard_frame_pointer_offset.
3856 (mips_expand_prologue, mips_expand_epilogue): Likewise.
3858 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3860 * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
3862 * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
3863 "unsigned int" rather than "int" and put them with the other
3864 register-related fields. Put expanded comments above fields
3865 rather than to their right.
3866 (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
3867 with a NUM_REGS_PTR argument.
3868 (mips16e_save_restore_pattern_p): Update accordingly.
3869 (compute_frame_size): Clarify frame diagram. Rewrite.
3871 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3873 * config/mips/mips-ftypes.def: New file.
3874 * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
3875 (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
3876 (mips_function_type): Redefine using mips-ftypes.def.
3877 (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
3878 (mips_builtin_vector_type): New function.
3879 (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
3880 (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
3881 (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
3882 (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
3884 (mips_build_function_type): New function.
3885 (mips_init_builtins): Use it to create types lazily.
3887 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3889 * config/mips/mips.h (set_volatile): Delete.
3890 * config/mips/mips.c (set_volatile): Delete.
3891 (mips_print_operand_punctuation): New function, split out from
3892 print_operand. Remove '%{', '%}', '%~', '%&' and '%!'.
3893 Use the same character ordering in the code and the comments.
3894 Use a recursive call to handle '*'. Abort on unknown characters.
3895 (mips_init_print_operand_punct): New function, split out from
3897 (mips_print_int_branch_condition): New function, split out from
3898 print_operand. Use GET_RTX_NAME. Use output_operand_lossage
3899 to report unexpected codes.
3900 (mips_print_float_branch_condition): New function, split out from
3901 print_operand. Use output_operand_lossage to report unexpected codes.
3902 (print_operand): Rework to use a case statement. Use the
3903 same letter ordering in the code and the comments. Use
3904 output_operand_lossage to report unexpected codes and
3905 reverse_condition to handle inverted branch c