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 * reload.c (find_reloads): Also check in_reg when handling a
2335 simple move with an input reload and a destination of a hard
2338 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
2340 * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
2341 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
2342 TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
2343 TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2344 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
2345 (m68k_sched_attr_type2): New function.
2346 (sched_adjust_cost_state): New static variable.
2347 (m68k_sched_adjust_cost): New static function implementing
2349 (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
2350 New static variables.
2351 (m68k_sched_variable_issue): New static function implementing
2353 (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
2354 (sched_dump_split_class): New static function.
2355 (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
2357 (sched_dump_dfa_class, m68k_sched_dump): New static function.
2358 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2359 m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
2360 m68k_sched_dfa_post_advance_cycle): New static functions implementing
2363 * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
2364 (CPU_UNITS_QUERY): Define.
2366 * config/m68k/cf.md: New file.
2367 * config/m68k/m68.md (cf.md): New include.
2369 2007-11-06 Tom Tromey <tromey@redhat.com>
2373 * function.c (saved_in_system_header): New global.
2374 (push_cfun): Save in_system_header.
2375 (pop_cfun): Restore in_system_header.
2376 (push_struct_function): Save in_system_header.
2378 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
2382 * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
2383 (complete_array_type): Set canonical type appropriately.
2384 * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
2385 C and C++ front ends now have different versions of this function,
2386 because the C++ version needs to maintain canonical types here.
2388 2007-11-04 Razya Ladelsky <razya@il.ibm.com>
2390 * tree-parloops.c (reduction_info): Remove reduction_init field.
2391 (initialize_reductions): Remove creation of the reduction_init variable.
2392 (struct data_arg): Remove.
2393 (add_field_for_reduction, create_stores_for_reduction): New functions.
2394 (add_field_for_name): Remove reduction handling.
2395 (separate_decls_in_loop): Call add_field_for_reduction,
2396 create_stores_for_reduction.
2398 2007-11-06 Jakub Jelinek <jakub@redhat.com>
2400 PR tree-optimization/33458
2401 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
2402 !is_gimple_val PHI argument, gimplify it and insert it on edge.
2404 PR tree-optimization/33993
2405 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
2406 rather than build_constructor_from_list if all list values are
2408 (get_initial_def_for_induction): Use build_vector instead of
2409 build_constructor_from_list.
2411 2007-11-05 Mark Mitchell <mark@codesourcery.com>
2414 * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
2415 (DECL_FINI_PRIORITY): Likewise.
2416 * tree.c (decl_init_priority_lookup): Remove assert.
2417 (decl_fini_priority_insert): Likewise.
2418 * cgraphunit.c (static_ctors): Make it a VEC.
2419 (static_dtors): Likewise.
2420 (record_cdtor_fn): Adjust accordingly.
2421 (build_cdtor): Generate multiple functions for each initialization
2423 (compare_ctor): New function.
2424 (compare_dtor): Likewise.
2425 (cgraph_build_cdtor_fns): Sort the functions by priority before
2426 calling build_cdtor.
2427 (cgraph_build_static_cdtor): Put the priority in the function's name.
2429 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
2432 * common.opt: Add shared and pie.
2434 2007-11-05 Bob Wilson <bob.wilson@acm.org>
2436 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
2437 replace references to virtual_stack_vars_rtx in goto_handler.
2439 2007-11-05 Paul Brook <paul@codesourcery.com>
2441 * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
2442 * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
2443 (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call
2444 arm_lang_output_object_attributes_hook.
2445 * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
2446 (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
2447 * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
2449 * config/arm/t-arm.c (arm.o): New rule.
2450 * config/arm/arm-c.c: New file.
2452 2007-11-05 Nick Clifton <nickc@redhat.com>
2453 Sebastian Pop <sebastian.pop@amd.com>
2455 PR tree-optimization/32540
2456 PR tree-optimization/33922
2457 * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
2458 * tree-ssa-pre.c: Include params.h.
2459 (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
2460 to limit the maximum length of the PA set for a given block.
2461 * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
2462 * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
2464 2007-11-05 Nathan Sidwell <nathan@codesourcery.com>
2466 * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
2467 __fixunssfDI): Make return type unsigned.
2468 * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
2469 __fixunssfDI): Make return type unsigned.
2471 2007-11-05 Jakub Jelinek <jakub@redhat.com>
2473 PR tree-optimization/33856
2474 * tree-data-ref.c (get_references_in_stmt): Don't add
2475 REFERENCE_CLASS_P trees to references vector if get_base_address
2476 returns NULL on them.
2478 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
2480 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
2482 2007-11-04 Andrew Pinski <pinskia@gmail.com>
2485 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
2486 for TRUTH_NOT_EXPR to type.
2488 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
2490 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
2492 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2495 * dwarf2out.c (add_calling_convention_attribute): Change
2496 second argument. Set calling convention to DW_CC_program for
2497 Fortran main program.
2498 (gen_subprogram_die): Adjust to new prototype for
2499 add_calling_convention_attribute.
2501 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
2503 PR tree-optimization/33987
2504 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
2506 (vectorizable_reduction): Add type check.
2508 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2511 * c-parser.c (c_parser_statement_after_labels): Error if a
2512 declaration is parsed after a label.
2514 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
2517 * reorg.c (emit_delay_sequence): Do not clear the locator on
2518 the jump instruction.
2520 2007-11-03 Jakub Jelinek <jakub@redhat.com>
2523 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
2524 current sched region.
2526 2007-11-02 Jakub Jelinek <jakub@redhat.com>
2528 * config/ia64/ia64.c (struct reg_write_state): Change into
2529 unsigned short bitfields rather than unsigned int, decrease
2530 first_pred to just 10 bits.
2531 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
2532 into two char array.
2533 (rws_insn_set, rws_insn_test): New functions.
2534 (in_safe_group_barrier): New variable.
2535 (rws_update): Remove first argument, always set rws_sum array.
2536 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
2537 or update rws_sum if !in_safe_group_barrier, adjust rws_update args.
2538 (rtx_needs_barrier): Use rws_insn_test macro.
2539 (safe_group_barrier_needed): Don't save/restore rws_sum array,
2540 instead set/clear in_safe_group_barrier flag.
2542 2007-11-02 Bob Wilson <bob.wilson@acm.org>
2544 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
2545 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
2546 pointer or frame pointer.
2547 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
2548 (MUST_USE_SJLJ_EXCEPTIONS): Define.
2549 (DWARF2_UNWIND_INFO): Define.
2550 (INCOMING_RETURN_ADDR_RTX): Define.
2551 (DWARF_FRAME_RETURN_COLUMN): Define.
2553 2007-11-02 Tom Tromey <tromey@redhat.com>
2555 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
2558 2007-11-02 Diego Novillo <dnovillo@google.com>
2560 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
2561 argument from function pointer ANALYZE_EXPR. Update all users.
2562 * cgraph.c (debug_cgraph_node): New.
2563 (debug_cgraph): New.
2565 2007-11-02 Jakub Jelinek <jakub@redhat.com>
2567 PR rtl-optimization/33648
2568 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
2569 the newly created basic block.
2571 2007-11-01 Richard Guenther <rguenther@suse.de>
2573 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
2575 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
2577 PR rtl-optimization/33828
2578 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
2579 of VBEIN and VBEOUT.
2581 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2583 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
2584 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
2585 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
2587 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
2589 * gcc.c (getenv_spec_function): Escape the environment variable's
2592 2007-11-01 Janis Johnson <janis187@us.ibm.com>
2594 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
2595 show that CSE means common subexpression elimination. Change wording
2596 for -fsee and define LCM. Remove capitalization of optimizations
2597 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
2599 2007-11-01 Janis Johnson <janis187@us.ibm.com>
2602 * doc/sourcebuild.texi (Test Directives): Document that xfail
2603 has no effect for dg-do except when dg-do-what is "run".
2605 2007-11-01 Tom Tromey <tromey@redhat.com>
2607 * c-decl.c (grokdeclarator): Set decl source locations.
2608 * c-parser.c (c_parser_enum_specifier): Set location.
2609 (c_parser_struct_or_union_specifier): Likewise.
2611 2007-11-01 Tom Tromey <tromey@redhat.com>
2613 * print-tree.c (print_node): Print column number.
2615 2007-11-01 Jakub Jelinek <jakub@redhat.com>
2618 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2619 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
2620 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
2622 PR rtl-optimization/33673
2623 * gcse.c (cprop_jump): If a conditional jump has been optimized
2624 into unconditional jump, make the remaining normal edge fallthru
2625 and delete the jump insn.
2627 2007-11-01 Ben Elliston <bje@au.ibm.com>
2629 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
2630 (set_mem_attrs_from_reg): Likewise.
2632 2007-11-01 Michael Matz <matz@suse.de>
2634 PR tree-optimization/33961
2635 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
2636 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
2637 (add_or_mark_expr): New argument 'store', using it to search
2639 (nt_init_block): Adjust calls to add_or_mark_expr.
2641 2007-10-31 Jakub Jelinek <jakub@redhat.com>
2644 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
2645 for the first push_operand.
2647 2007-10-31 Revital Eres <eres@il.ibm.com>
2649 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
2650 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
2651 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
2652 movmisalignv2sf, vcondv2sf): New.
2653 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
2654 UNSPEC_EXTODD_V2SF): Define new constants.
2655 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
2656 paired_emit_vector_cond_expr): New.
2657 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
2658 * config/rs6000/rs6000.c (paired_expand_vector_move,
2659 paired_emit_vector_cond_expr, paired_emit_vector_compare):
2661 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
2663 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
2665 PR tree-optimization/32377
2666 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
2667 work also for unknown number of iterations.
2668 (analyze_subscript_affine_affine): Clean up. Don't fail when the
2669 number of iterations is not known.
2671 2007-10-31 Richard Guenther <rguenther@suse.de>
2674 * fold-const.c (extract_muldiv_1): Make sure to not introduce
2675 new undefined integer overflow.
2676 (fold_binary): Avoid useless conversion.
2678 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
2681 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.
2683 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
2685 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
2687 * config/s390/s390.c: (override_options): Replace
2688 -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp.
2689 * config/s390/s390.opt: Likewise.
2690 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
2693 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2695 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
2697 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2699 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
2700 optimization options.
2701 (Optimize Options): Add -fdce and -fdse to the list of optimizations
2702 enabled by -O. Document -fdce and -fdse.
2704 2007-10-30 Jakub Jelinek <jakub@redhat.com>
2707 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
2708 convert second operand of COMPOUND_EXPR to the original type of
2711 2007-10-30 Richard Guenther <rguenther@suse.de>
2713 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
2714 of loop adding SFTs as virtual operands.
2716 2007-10-30 Richard Guenther <rguenther@suse.de>
2718 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
2720 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
2722 PR tree-optimization/32893
2723 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
2724 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
2726 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
2728 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
2730 (sub_ddmmss): Likewise.
2731 (umul_ppmm): Likewise.
2732 (udiv_qrnnd): Likewise.
2734 2007-10-29 Janis Johnson <janis187@us.ibm.com>
2737 * doc/sourcebuild.texi (Test Directives): Document that dg-require
2738 directives must come before dg-additional-sources.
2740 2007-10-29 Jakub Jelinek <jakub@redhat.com>
2742 PR tree-optimization/33723
2743 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
2744 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
2746 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
2748 PR tree-optimization/33614
2749 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
2750 if they can't be reduced to VECTOR_CSTs and aren't legitimate
2751 initializer constants.
2753 2007-10-29 Richard Guenther <rguenther@suse.de>
2755 PR tree-optimization/33870
2756 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
2757 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
2760 2007-10-29 Richard Guenther <rguenther@suse.de>
2762 * passes.c (init_optimization_passes): Exchange store_copy_prop
2764 * tree-pass.h (pass_store_copy_prop): Remove.
2765 * tree-ssa-copy.c (do_store_copy_prop): Remove.
2766 (stmt_may_generate-copy): Do not handle store_copy_prop.
2767 (get_copy_of_val): Likewise.
2768 (set_copy_of_val): Likewise.
2769 (copy_prop_visit_assignment): Likewise.
2770 (copy_prop_visit_stmt): Likewise.
2771 (copy_prop_visit_phi_node): Likewise.
2772 (init_copy_prop): Likewise.
2773 (execute_copy_prop): Likewise.
2774 (do_copy_prop): Remove.
2775 (gate_store_copy_prop): Likewise.
2776 (store_copy_prop): Likewise.
2777 (pass_store_copy_prop): Likewise.
2778 (pass_copy_prop): Call execute_copy_prop.
2779 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
2780 * common.opt (ftree-store-copy-prop): Mark obsolete.
2781 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
2783 2007-10-29 Ian Lance Taylor <iant@google.com>
2785 * ifcvt.c (noce_can_store_speculate_p): New static function.
2786 (noce_process_if_block): Call it.
2787 (if_convert): Remove recompute_dominance parameter. Change all
2790 2007-10-29 Richard Guenther <rguenther@suse.de>
2792 * tree-flow-inline.h (get_subvar_at): Use binary search.
2793 (get_first_overlapping_subvar): New function to binary search
2794 for the first overlapping subvar.
2795 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
2796 just handle adding subvars for a pointed-to subvar. Optimize
2797 and use get_first_overlapping_subvar.
2798 (add_vars_for_bitmap): Fold into single caller.
2799 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
2800 and non pointed-to bits of add_vars_for_offset.
2802 2007-10-29 Revital Eres <eres@il.ibm.com>
2804 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
2806 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
2807 Zdenek Dvorak <ook@ucw.cz>
2810 reduction support for automatic parallelization.
2812 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
2814 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
2815 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
2816 and OMP_ATOMIC_STORE.
2817 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2818 * gimple-low.c (lower_stmt): Same.
2819 * gimplify.c (gimplify_expr): Same.
2820 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
2821 gimplify_omp_atomic_mutex): Remove.
2822 (gimplify_omp_atomic): Change it to simply gimplify the
2823 statement instead of expanding it.
2824 * omp-low.c: Add includes to optabs.h, cfgloop.h.
2825 (expand_omp_atomic, expand_omp_atomic_pipeline,
2826 goa_stabilize_expr, expand_omp_atomic_mutex,
2827 expand_omp_atomic_fetch_op): New functions to implement
2828 expansion of OMP_ATOMIC.
2829 (expand_omp, build_omp_regions_1): Add support for
2830 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
2831 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
2833 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
2835 * tree-parloops.c: add include to tree-vectorizer.h.
2836 (reduction_info): New structure for reduction.
2837 (reduction_list): New list to represent list of reductions per loop.
2838 (struct data_arg): New helper structure for reduction.
2839 (reduction_info_hash, reduction_info_eq, reduction_phi,
2840 initialize_reductions, create_call_for_reduction,
2841 create_phi_for_local_result, create_call_for_reduction_1,
2842 create_loads_for_reductions, create_final_loads_for_reduction):
2844 (loop_parallel_p): Identify reductions, add reduction_list parameter.
2845 (separate_decls_in_loop_name): Support reduction variables.
2846 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
2847 call create_loads_for_reduction for each reduction.
2848 (canonicalize_loop_ivs): Identify reductions, add reduction_list
2850 (transform_to_exit_first_loop): Add reduction support, add
2851 reduction_list parameter.
2852 (gen_parallel_loop): Add reduction_list parameter. Add call
2853 separate_decls_in_loop with
2854 the new argument. Traverse reductions and call
2855 initialize_reductions, create_call_for_reduction.
2856 (parallelize_loops): Create and delete the reduction list.
2857 (add_field_for_name): Change use of data parameter. Add fields for
2859 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
2860 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
2861 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2862 * tree-inline.c (estimate_num_insns_1): add cases for
2863 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2864 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2865 * tree-ssa-operands.c (get_addr_dereference_operands):
2866 New function. Subroutine of get_indirect_ref_operands.
2867 (get_indirect_ref_operands): Call get_addr_dereference_operands.
2868 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2871 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
2873 * config/cris/cris.c: Include df.h.
2874 (cris_address_cost): Add gcc_assert for canonicalization
2875 assumptions. For PLUS with MULT or register, correct
2876 test for register in other arm. Tweak comments.
2878 2007-10-28 Richard Guenther <rguenther@suse.de>
2880 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
2881 telling if the var is to be treated as points-to location.
2882 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
2883 (add_virtual_operand): Only recurse into MPTs if aliases
2886 2007-10-28 Richard Guenther <rguenther@suse.de>
2888 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
2889 (add_vars_for_bitmap): Do not recurse further. Only add vars
2890 for pointed-to SFTs.
2891 (add_virtual_operand): Re-instantiate loop to add operands for
2892 aliases. Recurse into MPTs.
2893 (get_indirect_ref_operands): If we fall back to use a pointers
2894 SMT, make sure to not prune based on the access offset and size.
2896 2007-10-28 Andrew Pinski <pinskia@gmail.com>
2899 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
2900 the eh information on the statement.
2902 2007-10-28 Richard Guenther <rguenther@suse.de>
2904 * tree-flow.h (subvar_t): Make it a VEC.
2905 (struct subvar): Remove.
2906 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
2907 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
2909 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2910 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
2911 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
2912 (set_initial_properties): Likewise.
2913 (setup_pointers_and_addressables): Likewise.
2914 (new_type_alias): Likewise.
2915 (create_overlap_variables_for): Likewise.
2916 * tree-dfa.c (dump_subvars_for): Likewise.
2917 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
2918 (get_expr_operands): Likewise.
2919 (add_to_addressable_set): Likewise.
2920 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
2922 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
2924 PR tree-optimization/33920
2925 * tree-if-conv.c (tree_if_conversion): Force predicate of single
2926 successor bb to true when predecessor bb has NULL predicate.
2927 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
2929 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
2931 * config/mips/mips.md: Add combiner patterns for DImode extensions
2932 of HImode and QImode truncations. Reformat HImode <- QImode pattern
2935 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
2938 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
2940 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
2942 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
2943 LIBCALL notes if they are about to be moved to the same insn.
2945 2007-10-27 Richard Guenther <rguenther@suse.de>
2947 PR tree-optimization/33870
2948 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
2949 duplication. Remove redundant call to access_can_touch_variable.
2950 (add_vars_for_bitmap): New helper for recursing over MPT contents.
2951 (add_virtual_operand): Use it.
2953 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2956 * pa.h (ASM_PN_FORMAT): Delete define.
2958 2007-10-26 Janis Johnson <janis187@us.ibm.com>
2960 * doc/invoke.texi (Option Summary, optimizations): Remove
2961 -fbounds-check. Add -fassociative-math, -freciprocal-math,
2962 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
2963 -fsplit-wide-types to match later entry. Break up a long line.
2964 (Option Summary, code gen options) Add -fno-stack-limit. Add
2965 missing @gol to the end of a line.
2966 (Optimization Options): Remove -fbounds-check, which is also
2967 documented under Code Generation Options. Remove =n from
2968 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
2969 to -fcprop-registers to match other options, and say when it is
2970 enabled rather than disabled. Remove extra index entry for
2971 -fno-cx-limited-range. Add index entries for -fstack-protector
2972 and -fstack-protector-all.
2973 (Code Gen Options): Add index entry for -ftls-model.
2975 2007-10-26 Anatoly Sokolov <aesok@post.ru>
2977 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
2978 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
2979 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
2980 expand_epilogue, output_movhi): Don't handle 'main' function.
2981 (avr_attribute_table): Add 'OS_task' function attribute.
2982 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
2984 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
2985 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
2987 * config/avr/avr.opt (minit-stack): Remove.
2989 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
2991 * tree-nested.c (get_trampoline_type): Fix thinko.
2993 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
2996 * tree.c (build_offset_type): Build canonical type based on the
2997 TYPE_MAIN_VARIANT of the base type.
2999 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
3001 * reorg.c (emit_delay_sequence): Move insn locator from the
3002 first insn to the sequence.
3004 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
3006 * ipa-pure-const.c (check_decl): Return immediately when
3007 pure_const_state has been set to IPA_NEITHER.
3009 2007-10-25 Ira Rosen <irar@il.ibm.com>
3011 PR tree-optimization/33833
3012 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
3013 and convert init to sizetype in inner_base construction.
3015 2007-10-25 Richard Guenther <rguenther@suse.de>
3017 * tree-flow.h (mem_sym_stats): Remove.
3018 (dump_mem_sym_stats_for_var): Declare.
3019 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
3020 (mem_sym_stats): Move ...
3021 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
3022 (mem_sym_score): Rename from ...
3023 (pscore): ... this. Remove.
3024 (dump_mem_sym_stats_for_var): New function. Dump the score, but
3025 not the frequencies.
3026 (compare_mp_info_entries): Make sort stable by disambiguating
3029 2007-10-25 Ira Rosen <irar@il.ibm.com>
3031 PR tree-optimization/33866
3032 * tree-vect-transform.c (vectorizable_store): Check operands of all
3033 the stmts in the group of strided accesses. Get def stmt type for each
3034 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
3036 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
3038 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
3039 (Yt): Rename register constraint to Y2.
3040 * config/i386/sse.md: Use renamed register constraints.
3041 * config/i386/mmx.md: Ditto.
3042 * config/i386/i386.md: Ditto.
3044 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
3046 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
3048 2007-10-24 Chao-ying Fu <fu@mips.com>
3050 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
3051 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
3053 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
3054 Olga Golovanevsky <olga@il.ibm.com>
3056 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
3057 the compiler that wr.wrap and wr.domain are initialized in
3060 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
3062 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
3063 to print gcov_type values.
3065 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
3067 * config/avr/avr.h: Do not include progmem_section definition when
3068 building with IN_TARGET_LIBS.
3070 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
3073 * config/mips/mips.c (mips_lo_sum_offset): New structure.
3074 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
3075 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
3076 (mips_orphaned_high_part_p: New functions.
3077 (mips_avoid_hazard): Don't check INSN_P here.
3078 (mips_avoid_hazards): Rename to...
3079 (mips_reorg_process_insns): ...this. Cope with
3080 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
3081 or turn them into nops.
3082 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
3083 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
3084 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
3085 (mips_override_options): Set flag_delayed_branch to 0.
3087 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
3089 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
3090 MIPS-specific implementation details.
3091 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
3092 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
3093 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
3094 for targets with movmemsi.
3095 (MOVE_BY_PIECES_P): Define.
3096 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
3097 (mips_block_move_loop): Add a bytes_per_iter argument.
3098 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
3099 Update call to mips_block_move_loop.
3101 2007-10-24 Michael Matz <matz@suse.de>
3104 * var-tracking.c (variable_union): Don't break after one loop
3105 iteration but only when a difference is found.
3106 (dump_variable): Also print DECL_UID.
3108 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
3110 * ipa-type-escape.h: Expose function
3111 is_array_access_through_pointer_and_index.
3113 (is_array_access_through_pointer_and_index):
3114 Add three new parameters. Add support of
3115 POINTER_PLUS_EXPR tree code.
3117 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
3119 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
3120 * tree-pass.h: Add pass_ipa_struct_reorg.
3121 * common.opt: Add ipa-struct-reorg flag.
3122 * Makefile.in: Add ipa-strcut-reorg.o compilation.
3123 * passes.c: Add pass pass_ipa_struct_reorg.
3124 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
3125 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
3127 2007-10-24 Ira Rosen <irar@il.ibm.com>
3129 PR tree-optimization/33804
3130 * tree-vect-transform.c (vectorizable_operation): Remove the
3131 checks that the vectorization is worthwhile from the transformation
3134 2007-10-24 Ira Rosen <irar@il.ibm.com>
3136 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
3137 vectype cannot be determined for the scalar type.
3138 (vect_analyze_slp_instance): Likewise.
3139 * tree-vect-transform.c (vect_model_reduction_cost): Change the
3140 return type to bool. Return false if vectype cannot be determined
3141 for the scalar type.
3142 (vect_get_constant_vectors): Return false if vectype cannot be
3143 determined for the scalar type.
3144 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
3145 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
3146 vectorizable_reduction): Likewise.
3148 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
3150 * config.gcc: For a FreeBSD target, parse the value of ${target}
3151 to determine the value of FBSD_MAJOR, instead of adding an
3152 explicit check for every possible FreeBSD major version.
3154 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
3156 PR rtl-optimization/33846
3157 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
3159 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
3161 PR tree-optimization/33860
3162 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
3163 interleaved accesses in case the dr is inside the inner-loop during
3164 outer-loop vectorization.
3166 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
3168 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
3169 Document MEM_POINTER. Replace mentions of "integrated"
3170 field with "return_val". Delete outdated stuff.
3172 2007-10-23 David Edelsohn <edelsohn@gnu.org>
3174 * config/rs6000/rs6000.c (rs6000_override_options): Set
3175 rs6000_altivec_abi on AIX.
3176 (conditional_register_usage): Set VR20:31 fixed on AIX.
3178 2007-10-23 Richard Guenther <rguenther@suse.de>
3180 * alias.c (get_alias_set): For INDIRECT_REFs, deal with
3183 2007-10-22 Seongbae Park <seongbae.park@gmail.com>
3184 David S. Miller <davem@davemloft.net>
3186 * df-scan.c (df_get_call_refs): Mark global registers as both a
3187 DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
3189 2007-10-22 Dorit Nuzman <dorit@il.ibm.com>
3191 PR tree-optimization/33834
3192 PR tree-optimization/33835
3193 * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
3194 stmts need to be checked for success seperately.
3195 * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
3196 Remove the check that stmt is not LIVE.
3197 (vectorizable_assignment, vectorizable_induction): Likewise.
3198 (vectorizable_operation, vectorizable_type_demotion): Likewise.
3199 (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
3201 (vectorizable_live_operation): Check that op is not NULL.
3203 2007-10-22 Janis Johnson <janis187@us.ibm.com>
3205 * doc/invoke.texi (Optimization Options): In the summary, show
3206 that the value for options -falign-jumps, -falign-labels,
3207 -falign-loops, -falign-functions, -fsched-stalled-insns, and
3208 -fsched-stalled-insns-dep is optional. In the summary, show that
3209 -fsched-stalled-insns takes an optional argument and that
3210 -fparallelize-loops takes an argument. Add opindex for several
3211 optimization options, and fix typos in the opindex commands for
3212 several others. In the descriptions for -fsched-stalled-insns
3213 and -fsched-stalled-insns-dep, show the options with and without
3216 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com>
3218 * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
3220 * config/avr/avr.h (LINK_SPEC): Likewise.
3221 (CRT_BINUTILS_SPECS): Likewsie.
3222 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3224 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3226 PR rtl-optimization/33644
3227 * cfgcleanup.c: Do not include dce.h.
3228 * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
3229 * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
3230 * dce.c (something_changed): Delete.
3231 (libcall_dead_p): New predicate.
3232 (delete_unmarked_insns): Use it to delete dead libcalls.
3233 Deal with REG_LIBCALL and REG_RETVAL notes.
3234 (prescan_libcall_for_dce): New function.
3235 (prescan_insns_for_dce): Use it to deal with libcalls.
3236 (mark_reg_dependencies): Do nothing special for libcalls.
3237 (dce_process_block): Likewise.
3238 (fast_dce): Delete unused local variable.
3239 (run_fast_dce): Do not return a value.
3240 * dce.h (struct df): Delete.
3241 (run_fast_dce): Adjust prototype.
3242 * optabs.c (libcall_id): Delete.
3243 (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
3244 (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
3245 * reload1.c (reload): Delete REG_LIBCALL_ID case.
3246 * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
3247 * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
3248 notes instead of REG_LIBCALL_ID notes.
3249 * reg-notes.def (LIBCALL_ID): Delete.
3250 * Makefile.in (see.o): Add dce.h dependency.
3251 (cfgcleanup.o): Remove dce.h dependency.
3253 2007-10-22 Michael Matz <matz@suse.de>
3255 PR tree-optimization/33855
3256 * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
3259 2007-10-22 Ira Rosen <irar@il.ibm.com>
3261 PR tree-optimization/33854
3262 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
3263 FLOAT_EXPR to the list of promotion operations.
3265 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
3269 * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
3270 (print_reg): Print register prefix only with AT&T asm syntax.
3271 Support pc_rtx for RIP register.
3272 (print_operand_address): Use print_reg()'s pc_rtx support for RIP
3273 relative addressing. Always print segment register prefix with AT&T
3274 asm syntax and never with Intel asm syntax.
3275 (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands.
3276 Fix prefix for 16-byte XFmode operands.
3277 (output_addr_const_extra): Support Intel asm syntax.
3278 (x86_file_start): Don't use register prefix with Intel asm syntax.
3279 * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
3280 ("return_internal_long"): Fix Intel asm syntax output.
3281 ("set_got_rex64"): Support Intel asm syntax.
3282 ("set_rip_rex64"): Likewise.
3283 ("set_got_offset_rex64"): Likewise.
3284 ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
3286 ("*tls_global_dynamic_64"): Likewise.
3287 ("*tls_local_dynamic_base_64"): Likewise.
3288 ("*load_tp_si")("*load_tp_di"): Likewise.
3289 ("*add_tp_si")("*add_tp_di"): Likewise.
3290 ("*tls_dynamic_lea_64"): Likewise.
3291 ("*sibcall_value_1_rex64_v"): Likewise.
3292 ("stack_tls_protect_set_si"): Likewise.
3293 ("stack_tls_protect_set_di"): Likewise.
3294 ("stack_tls_protect_test_si"): Likewise.
3295 ("stack_tls_protect_test_di"): Likewise.
3296 * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
3298 ("*movv2sf_internal_rex64"): Likewise.
3299 * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
3300 (__get_cpuid_max): Likewise.
3302 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
3304 * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
3305 the STRICT_P argument type "bool" rather than "int".
3306 (mips_legitimate_address_p): Likewise.
3307 (fp_register_operand, lo_operand): Delete.
3308 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
3309 (mips_emit_scc): Rename to...
3310 (mips_expand_scc): ...this.
3311 (gen_conditional_branch): Rename to...
3312 (mips_expand_conditional_branch): ...this.
3313 (gen_conditional_move): Rename to...
3314 (mips_expand_conditional_move): ...this.
3315 (mips_gen_conditional_trap): Rename to...
3316 (mips_expand_conditional_trap): ...this and take an rtx code instead
3317 of an operands array.
3318 (mips_expand_call): Give the SIBCALL_P argument type "bool"
3320 (mips_emit_fcc_reload): Rename to...
3321 (mips_expand_fcc_reload): ...this.
3322 (init_cumulative_args): Rename to...
3323 (mips_init_cumulative_args): ...this and remove the libname argument.
3324 (function_arg_advance): Rename to...
3325 (mips_function_arg_advance): ...this.
3326 (function_arg): Rename to...
3327 (mips_function_arg): ...this and use "rtx" instead of
3329 (function_arg_boundary): Rename to...
3330 (mips_function_arg_boundary): ...this.
3331 (mips_expand_unaligned_load): Rename to...
3332 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
3333 and BITPOS arguments type "HOST_WIDE_INT".
3334 (mips_expand_unaligned_store): Rename to...
3335 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
3336 and BITPOS arguments type "HOST_WIDE_INT".
3337 (override_options): Rename to...
3338 (mips_override_options): ...this.
3339 (print_operand): Rename to...
3340 (mips_print_operand): ...this.
3341 (print_operand_address): Rename to...
3342 (mips_print_operand_address): ...this.
3343 (mips_output_ascii): Remove the PREFIX argument.
3344 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
3346 (mips_can_use_return_insn): Return a "bool" rather than an "int".
3347 (mips_function_value): Remove the FUNC argument. Use "rtx" instead
3348 of "struct rtx_def *".
3349 (mips_secondary_reload_class): Give the IN_P argument type "bool"
3351 (build_mips16_call_stub): Delete.
3352 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
3353 (mips_use_ins_ext_p): Give the second and third arguments type
3354 "HOST_WIDE_INT" rather than "rtx".
3355 * config/mips/mips.h: Update after the above changes. Tweak comments
3357 (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
3358 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3359 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
3360 element type from "char" to "bool".
3361 (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
3362 (mips_cpu_info_table): Delete.
3363 * config/mips/mips.md: Update after the above changes. Tweak some
3365 * config/mips/mips-ps-3d.md: Likewise.