1 2008-01-08 Uros Bizjak <ubizjak@gmail.com>
6 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
7 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10 2008-01-08 Jan Sjodin <jan.sjodin@amd.com>
12 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
13 for vectorization tuned.
15 2008-01-08 Richard Guenther <rguenther@suse.de>
17 PR tree-optimization/34683
18 * tree-ssa-operands.c (operand_build_cmp): Export.
19 * tree-ssa-operands.h (operand_build_cmp): Declare.
20 * tree-vn.c (vuses_compare): Remove.
21 (sort_vuses): Use operand_build_cmp.
22 (sort_vuses_heap): Likewise.
23 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
24 to re-use old VEC if available. Do not sort already sorted VUSEs.
25 (vdefs_to_vec): Do not sort already sorted VDEFs.
27 2008-01-08 Jakub Jelinek <jakub@redhat.com>
30 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
32 2008-01-08 Uros Bizjak <ubizjak@gmail.com>
35 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
36 limitations of reciprocal sequences on x86 targets.
38 2008-01-08 Richard Guenther <rguenther@suse.de>
40 PR tree-optimization/34683
41 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
43 2008-01-07 Jakub Jelinek <jakub@redhat.com>
46 * config/darwin.c (darwin_mergeable_string_section): Don't use
47 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
49 2008-01-07 Uros Bizjak <ubizjak@gmail.com>
52 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
53 negxf2. Macroize expander using X87MODEF mode iterator. Change
54 predicates of op0 and op1 to register_operand.
55 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
56 expander using X87MODEF mode iterator. Change predicates of
57 op0 and op1 to register_operand.
58 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
59 corresponding patterns and macroize using MODEF macro. Change
60 predicates of op0 and op1 to register_operand and remove
61 "m" constraint. Disparage "r" alternative with "!".
62 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
63 macroize using X87MODEF macro. Change predicates of op0 and op1
64 to register_operand and remove "m" constraint. Disparage "r"
66 (absneg splitter with memory operands): Remove.
67 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
68 patterns and macroize using X87MODEF mode iterator.
69 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
70 Change predicate of op1 to register_operand.
71 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
74 2008-01-07 Nathan Froyd <froydnj@codesourcery.com>
76 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
78 2008-01-07 Richard Guenther <rguenther@suse.de>
80 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
83 2008-01-07 Richard Guenther <rguenther@suse.de>
85 PR tree-optimization/34683
86 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
87 VOPs of the needed size to save memory. Use VEC_quick_push
89 (vdefs_to_vec): Likewise.
91 2008-01-07 Sa Liu <saliu@de.ibm.com>
93 * config/spu/spu.md (divdf3): Genetate inline code for double
94 division. The implementation doesn't handle INF or NAN, therefore it
95 only applies when -ffinite-math-only is given.
97 2008-01-06 Paolo Carlini <pcarlini@suse.de>
100 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
101 * doc/cpp.texi ([Common Predefined Macros]): Document.
103 2008-01-06 Uros Bizjak <ubizjak@gmail.com>
105 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
106 order to use commutative addition instead of subtraction.
108 2008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
109 Mircea Namolaru <namolaru@il.ibm.com>
110 Vladimir Yanovsky <yanov@il.ibm.com>
111 Revital Eres <eres@il.ibm.com>
113 PR tree-optimization/34263
114 * tree-outof-ssa.c (process_single_block_loop_latch,
115 contains_tree_r): New functions.
116 (analyze_edges_for_bb): Call process_single_block_loop_latch
117 function to empty single-basic-block latch block if possible.
119 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
121 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
123 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
125 2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
127 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
129 2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
131 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
133 2008-01-05 Jakub Jelinek <jakub@redhat.com>
135 PR tree-optimization/34618
136 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
139 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
142 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
143 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
144 Update copyright year.
146 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
147 Update copyright year.
148 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
151 2008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
153 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
154 edge does not point to current bb before changing need_assert.
156 2008-01-04 Richard Guenther <rguenther@suse.de>
159 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
160 for verifying purposes if they are is_gimple_min_invariant.
162 2008-01-04 Aldy Hernandez <aldyh@redhat.com>
164 PR tree-optimization/34448
165 PR tree-optimization/34465
166 * gimplify.c (gimplify_init_constructor): Add new parameter
167 notify_temp_creation. Use it.
168 (gimplify_modify_expr_rhs): Take volatiles into account when
169 optimizing constructors.
170 Do not optimize constructors if gimplify_init_constructor will dump to
172 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
173 * gcc.c-torture/compile/pr34448.c: New.
175 2008-01-04 Jakub Jelinek <jakub@redhat.com>
177 PR gcov-profile/34609
178 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
179 return_slot if result is TREE_ADDRESSABLE.
181 2008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
183 * config/mips/mips.md (sqrt_condition): Tweak comment.
184 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
186 2008-01-03 Tom Tromey <tromey@redhat.com>
189 * c-common.c (c_type_hash): Handle VLAs.
191 2008-01-03 Jan Hubicka <jh@suse.cz>
193 PR tree-optimization/31081
194 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
195 0 when inlining and not inlining to first basic block.
196 (remap_decl): When var is initialized to 0, don't set default_def.
197 (expand_call_inline): Set entry_bb.
198 * tree-inline.h (copy_body_data): Add entry_bb.
200 2008-01-03 Jakub Jelinek <jakub@redhat.com>
203 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
206 PR tree-optimization/29484
207 * tree-inline.c (inline_forbidden_p_2): New function.
208 (inline_forbidden_p): Disallow inlining if some static var
209 has an address of a local LABEL_DECL in its initializer.
210 * doc/extend.texi (Labels as Values): Document &&foo behaviour
213 2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
215 PR tree-optimization/34635
216 * tree-data-ref.c (add_other_self_distances): Make sure that the
217 evolution step is constant.
219 2008-01-03 Jakub Jelinek <jakub@redhat.com>
222 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
224 2008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
226 * tree-sra.c (scalarize_init): Insert the generate_element_init
227 statements after the generate_element_zero statements.
229 2008-01-02 Richard Guenther <rguenther@suse.de>
233 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
234 for very large number of operands instead of ICEing.
236 2008-01-02 Arthur Norman <acn1@cam.ac.uk>
239 * gcc/config/i386/i386.c (ix86_expand_prologue): Save red-zone
242 2008-01-01 Douglas Gregor <doug.gregor@gmail.com>
244 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
247 2008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
250 * tree-mudflap.c (mx_register_decls): Guard warning by
251 !DECL_ARTIFICIAL check.
253 2008-01-01 Jakub Jelinek <jakub@redhat.com>
255 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
256 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
257 sse5_perm<mode>): Fix constraints.
259 2007-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
262 * collect2.c (SHLIB_SUFFIX): Define if not defined.
263 (write_c_file_stat): Use SHLIB_SUFFIX.
264 * som.h (SHLIB_SUFFIX): Define.
265 * doc/tm.texi (SHLIB_SUFFIX): Document.
267 2007-12-29 Uros Bizjak <ubizjak@gmail.com>
269 * config/i386/sse.md ("*divv4sf3"): Rename to "sse_divv4sf3".
270 ("*sse_rsqrtv4sf2"): Export.
271 ("*sse_sqrtv4sf2"): Ditto.
272 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_RSQRTPS_NR,
273 IX86_BUILTIN_SQRTPS_NR]: New constants.
274 (struct builtin_description) [IX86_BUILTIN_DIVPS]: Use
275 CODE_FOR_sse_divv4sf3.
276 [IX86_BUILTIN_SQRTPS]: Use CODE_FOR_sse_sqrtv4sf2.
277 [IX86_BUILTIN_SQRTPS_NR]: New.
278 [IX86_BUILTIN_RSQRTPS_NR]: Ditto.
279 (ix86_init_mmx_sse_builtins): Initialize __builtin_ia32_rsqrtps_nr and
280 __builtin_ia32_sqrtps_nr.
281 (ix86_builtin_vectorized_function): Convert BUILT_IN_SQRTF to
282 IX86_BUILTIN_SQRTPS_NR.
283 (ix86_builtin_reciprocal): Convert IX86_BUILTIN_SQRTPS_NR to
284 IX86_BUILTIN_RSQRTPS_NR.
286 2007-12-27 Brian Dessent <brian@dessent.net>
288 * doc/invoke.texi (Optimize Options): Add missing opindex for
289 -fno-toplevel-reorder.
291 2007-12-27 Dorit Nuzman <dorit@il.ibm.com>
293 PR tree-optimization/34591
294 * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip
295 stmts (including reduction stmts) that are not live.
297 2007-12-27 Jakub Jelinek <jakub@redhat.com>
300 * config/arm/arm.c (arm_setup_incoming_varargs): If last named
301 argument needs double word alignment and cum->nregs is odd, account
302 for the inserted padding.
305 * tree-mudflap.c (mf_make_builtin): Make decl artificial
306 and don't emit debug info for it.
308 2007-12-26 Anatoly Sokolov <aesok@post.ru>
310 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82
311 and AT90USB162 devices from 'avr5' to 'avr35' architecture.
312 (ASM_SPEC): Add 'avr35' architecture.
313 * config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162
314 devices from 'avr5' to 'avr35' architecture.
315 (avr_arch_types): Add "avr23" entries.
316 (avr_arch): Add 'ARCH_AVR35'.
317 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'.
318 (MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5'
319 to 'avr35' architecture.
321 2007-12-22 David Daney <ddaney@avtrex.com>
323 * doc/install.texi (disable-libgcj-bc): Document new option.
325 2007-12-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
327 * config/pa/pa.c (hppa_legitimize_address): Use INT14_OK_STRICT in
331 * pa.c (legitimize_pic_address): Emit insn to load function label
334 2007-12-21 Andrew Pinski <pinskia@gmail.com>
335 Rask Ingemann Lambertsen <rask@sygehus.dk>
338 * config/mcore/mcore.c (mcore_function_value): Call promote_mode
339 instead of PROMOTE_MODE.
341 2007-12-21 Sebastian Pop <sebastian.pop@amd.com>
343 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix typo.
345 2007-12-21 Sebastian Pop <sebastian.pop@amd.com>
347 * tree-data-ref.c (signed_type_for_types): New.
348 (affine_fn_op): Use signed_type_for_types and signed_type_for instead
349 of long_integer_type_node.
350 (analyze_ziv_subscript): Same.
351 (analyze_siv_subscript_cst_affine): Same.
352 (analyze_miv_subscript): Same.
353 (omega_setup_subscript): Same.
355 2007-12-21 Richard Sandiford <rsandifo@nildram.co.uk>
357 * config/mips/mips.c (mips_emit_loadgp): Replace gen_* calls with
358 separate gen_*_si and gen_*_di calls. Pass pic_offset_table_rtx
359 as the first argument.
360 * config/mips/mips.md (loadgp_newabi, loadgp_absolute)
361 (loadgp_rtp): Rename to...
362 (loadgp_newabi_<mode>, loadgp_absolute<mode>, loadgp_rtp<mode>):
363 ...these. Add modes to all operands. Add the target register
364 as an operand. Combine loadgp_rtp<mode> with its splitter.
366 2007-12-20 Bob Wilson <bob.wilson@acm.org>
368 * config/xtensa/xtensa.md (fix_return_addr): Remove.
369 * config/xtensa/xtensa-protos.h (xtensa_initialize_trampoline): New.
370 (xtensa_trampoline_template): New.
371 * config/xtensa/xtensa.c (MIN_FRAME_SIZE): Moved here from xtensa.h.
372 (xtensa_return_addr): Expand to standard Xtensa insns instead of
373 fix_return_addr. Get high bits from a local label.
374 (xtensa_trampoline_template): New function with code moved from
375 TRAMPOLINE_TEMPLATE in xtensa.h. Use L32R instead of CALL0 except
376 when using CONST16 or absolute-mode literals.
377 (xtensa_initialize_trampoline): New function with code moved from
378 INITIALIZE_TRAMPOLINE in xtensa.h. Use different offsets depending
379 on which trampoline version is used.
380 * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Add comment.
381 * config/xtensa/xtensa.h (TARGET_ABSOLUTE_LITERALS): Define.
382 (MIN_FRAME_SIZE): Moved to xtensa.c.
383 (TRAMPOLINE_TEMPLATE): Use xtensa_trampoline_template.
384 (TRAMPOLINE_SIZE): Two versions of the trampoline have different sizes.
385 (INITIALIZE_TRAMPOLINE): Use xtensa_initialize_trampoline.
386 * config/xtensa/ieee754-df.S (XCHAL_NO_MUL): Define.
387 (__muldf3): Use CALL12 instead of CALL0 to invoke .Lmul_mulsi3
388 helper when not using the CALL0 ABI. Change .Lmul_mulsi3 to match.
389 * config/xtensa/lib1funcs.asm (__umulsidi3): Likewise.
390 * config/xtensa/ieee754-sf.S (__mulsf3): Likewise.
392 2007-12-20 Jakub Jelinek <jakub@redhat.com>
395 * tree-ssa-dse.c (dse_optimize_stmt): Don't eliminate store if
396 USE_STMT not only stores into the same object as STMT, but might
399 2007-12-19 Sebastian Pop <sebastian.pop@amd.com>
401 PR tree-optimization/34413
402 * tree-data-ref.c (affine_fn_op, analyze_ziv_subscript,
403 analyze_siv_subscript_cst_affine, analyze_miv_subscript,
404 omega_setup_subscript): Use long_integer_type_node instead of
407 2007-12-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
410 * pa.c (legitimize_pic_address): Force function labels into memory.
412 2007-12-19 Zdenek Dvorak <ook@ucw.cz>
414 * omp-low.c (build_omp_regions_1): Recognition of combined parallels
416 (expand_omp): ... here.
418 2007-12-19 Zdenek Dvorak <ook@ucw.cz>
420 PR tree-optimization/34355
421 * tree-parloops.c (take_address_of): Handle expresions
422 instead of just variables.
423 (eliminate_local_variables_1): Force whole invariant
426 2007-12-19 Alexander Monakov <amonakov@ispras.ru>
427 Revital Eres <eres@il.ibm.com>
429 * modulo-sched.c (generate_reg_moves): Insert the reg-moves
430 right before the notes which precedes the insn, if they exists.
431 (loop_canon_p): Add dump info.
432 (sms_schedule): Likewise.
434 2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk>
436 * tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter.
437 * emit-rtl.c (set_decl_incoming_rtl): Likewise. Don't set the
438 rtl's register attributes when the parameter is true.
439 * function.c (assign_parms_unsplit_complex, assign_parms)
440 (expand_function_start): Update calls to set_decl_incoming_rtl.
442 2007-12-19 Richard Sandiford <rsandifo@nildram.co.uk>
444 * rtl.def (SUBREG): Update comments.
445 * rtl.h (reg_attrs): Be explicit about the type of offset used.
446 (set_reg_attrs_from_mem): Rename to...
447 (set_reg_attrs_from_value): ...this.
448 (adjust_reg_mode, byte_lowpart_offset): Declare.
449 * emit-rtl.c (byte_lowpart_offset): New function.
450 (update_reg_offset): Remove special offset handling for big-endian
452 (gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the
453 offset parameter is added to REG_OFFSET.
454 (adjust_reg_mode): New function.
455 (set_reg_attrs_for_mem): Rename to...
456 (set_reg_attrs_for_value): ...this and generalize to all values.
457 If the register is a lowpart of the value, adjust the offset
459 (set_reg_attrs_for_parm): Update after the above renaming.
460 (set_reg_attrs_for_decl_rtl): New function, split out from
461 set_decl_incoming_rtl. Set the offset of plain REGs to the
462 offset of the REG's mode from the decl's. Assert that all
463 subregs are lowparts and handle their inner registers in the
464 same way as plain REGs.
465 (set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl.
466 (subreg_lowpart_offset): Explicitly say that the returned offset
468 * combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode
470 * final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset.
471 * config/ia64/ia64.c (ia64_expand_load_address): Likewise.
472 * regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value.
473 * reload.c (find_reloads_subreg_address): Call set_mem_offset
474 when offseting a MEM.
475 * var-tracking.c (offset_valid_for_tracked_p): Delete.
476 (mode_for_reg_attrs): Replace with...
477 (track_loc_p): ...this new function. Return the mode and offset
478 to the caller, checking that the latter is valid. If the rtx is
479 a paradoxical lowpart of the decl, use the decl's mode instead.
480 Do the same when storing to a register that contains the entire decl.
481 (var_lowpart): Use byte_lowpart_offset rather than
482 subreg_lowpart_offset when adjusting the offset attribute.
483 (count_uses, add_uses, add_stores): Use track_reg_p instead of
484 REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p,
485 offset_valid_for_tracked_p and mode_for_reg_attrs. Generate
486 lowparts for MEMs as well as REGs.
487 (vt_add_function_parameters): When obtaining the information from
488 the decl_rtl, adjust the offset to match incoming. Use track_loc_p
491 2007-12-18 Sebastian Pop <sebastian.pop@amd.com>
493 PR tree-optimization/34123
494 * lambda-code.c (can_duplicate_iv): New.
495 (cannot_convert_modify_to_perfect_nest): New.
496 (cannot_convert_bb_to_perfect_nest): New.
497 (can_convert_to_perfect_nest): Split up.
499 2007-12-18 David Daney <ddaney@avtrex.com>
501 * config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation
502 instead of .set push and .set pop.
504 2007-12-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
507 * config/bfin/bfin.c (bfin_adjust_cost): Dig into PARALLELs to find
510 2007-12-18 Razya Ladelsky <razya@il.ibm.com>
512 * tree-parloops.c (reduiction_info): Change documentation of
513 reduction_initial field.
514 (initialize_reductions): Remove creation of reduction_initial variable.
515 (create_loads_for_reductions): don't join reduction_initial to
518 2007-12-18 Kaz Kylheku <kaz@zeugmasystems.com>
520 PR rtl-optimization/34456
521 * resource.c (mark_set_resources): Use regs_invalidated_by_call
522 rather than call_used_regs and global_regs.
524 2007-12-18 Jakub Jelinek <jakub@redhat.com>
526 PR rtl-optimization/34490
527 * simplify-rtx.c (simplify_const_relational_operation): If !sign,
528 don't reduce mmin/mmax using num_sign_bit_copies.
530 2007-12-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
532 * doc/install.texi: Change recommended MPFR from 2.2.1 > 2.3.0.
534 2007-12-17 Andreas Schwab <schwab@suse.de>
536 * doc/invoke.texi (Warning Options): Use @itemx.
538 2007-12-17 Dorit Nuzman <dorit@il.ibm.com>
540 * tree-vectorizer.h (verbosity_levels): Add new verbosity level
542 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Change
543 verbosity level to REPORT_COST.
544 (vect_model_reduction_cost): Likewise.
545 (vect_model_induction_cost): Likewise.
546 (vect_model_simple_cost): likewise.
547 (vect_model_store_cost): likewise.
548 (vect_model_load_cost): likewise.
549 (conservative_cost_threshold): Likewise. Remove print.
551 2007-12-17 Rask Ingemann Lambertsen <rask@sygehus.dk>
553 * doc/tm.texi (TARGET_SECONDARY_RELOAD): Fix typos.
555 2007-12-17 Jakub Jelinek <jakub@redhat.com>
558 * c-parser.c (c_parser_omp_all_clauses): Accept optional comma
561 2007-12-17 Dorit Nuzman <dorit@il.ibm.com>
563 PR tree-optimization/34445
564 * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip
565 stmts (including live stmts) that are not relevant.
567 2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu>
570 * config/i386/t-crtpc: Add $(MULTILIB_CFLAGS).
571 * config/i386/t-crtfm: Likewise.
573 2007-12-17 Uros Bizjak <ubizjak@gmail.com>
575 * config/i386/i386.h (WIDEST_HARDWARE_FP_SIZE): Define.
577 2007-12-16 Uros Bizjak <ubizjak@gmail.com>
579 * tree-vect-transform.c (conservative_cost_threshold): Add missing
580 space to "not vectorized" message.
582 2007-12-16 Richard Sandiford <rsandifo@nildram.co.uk>
584 PR rtl-optimization/34415
585 * df.h (DF_LR_IN, DF_LR_OUT): Update comments.
586 * resource.c (mark_target_live_regs): Use DF_LR_IN rather than
587 df_get_live_in. Don't handle pseudos.
589 2007-12-16 Jakub Jelinek <jakub@redhat.com>
592 * c-decl.c (merge_decls): Copy RTL from olddecl to newdecl.
593 * config/pa/pa.c (pa_encode_section_info): If !first, preserve
594 SYMBOL_FLAG_REFERENCED flag.
596 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
598 * tree.c (type_hash_add): Fix whitespace.
600 2007-12-15 Hans-Peter Nilsson <hp@axis.com>
602 Add CRIS v32 support. Fix -mcc-init.
603 * config.gcc: Make crisv32-* have cpu_type cris. Handle
604 crisv32-*-elf and crisv32-*-none like cris-*-elf and cris-*-none
605 but without multilibs and with target_cpu_default=32.
606 (crisv32-*-linux*): Handle as cris-*-linux*. Set
607 target_cpu_default to 32 and 10 accordingly.
608 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Remove unused macro.
609 (cris_movem_load_rest_p, cris_store_multiple_op_p): Remove FIXME.
610 Change regno_dir and regno only if !TARGET_V32.
611 (cris_conditional_register_usage): If TARGET_V32, set
612 reg_alloc_order as per REG_ALLOC_ORDER_V32 and make
613 CRIS_ACR_REGNUM non-fixed.
614 (cris_print_base): Add gcc_assert for post_inc on CRIS_ACR_REGNUM.
615 (cris_print_operand) <case 'Z', case 'u'>: New cases.
616 <case REG of case 'H'>: Allow for CRIS_SRP_REGNUM.
617 (cris_reload_address_legitimized): Always return false for TARGET_V32.
618 (cris_register_move_cost): New function, guts from
619 REGISTER_MOVE_COST adjusted for CRIS v32.
620 (cris_normal_notice_update_cc): New function split out from...
621 (cris_notice_update_cc): Set cc_status.flags CC_REVERSED for
622 TARGET_CCINIT. Call cris_normal_notice_update_cc for CC_REV,
623 CC_NOOV32 and CC_NORMAL, but set cc_status.flags CC_NO_OVERFLOW
624 for CC_NOOV32 and TARGET_V32.
625 (cris_simple_epilogue): Always return false for TARGET_V32 if
626 cris_return_address_on_stack yields true.
627 (cris_cc0_user_requires_cmp): New function.
628 (cris_valid_pic_const): Add argument ANY_OPERAND. All callers
629 changed. Handle CRIS_UNSPEC_PLT_PCREL and CRIS_UNSPEC_PCREL.
630 (cris_asm_output_case_end): New function, guts from
631 ASM_OUTPUT_CASE_END adjusted for CRIS v32.
632 (cris_override_options): Adjust for CRIS v32. Mask out
633 TARGET_SIDE_EFFECT_PREFIXES and TARGET_MUL_BUG if v32.
634 (cris_asm_output_mi_thunk, cris_expand_epilogue)
635 (cris_gen_movem_load, cris_emit_movem_store)
636 (cris_expand_pic_call_address, cris_asm_output_symbol_ref)
637 (cris_asm_output_label_ref, cris_output_addr_const_extra): Adjust
639 (cris_split_movdx): Copy re-used MEM.
640 * config/cris/t-elfmulti: Add multilib v32 for -march=v32.
641 * config/cris/predicates.md
642 ("cris_general_operand_or_pic_source"): New predicate.
643 ("cris_general_operand_or_plt_symbol"): Replace by...
644 ("cris_nonmemory_operand_or_callable_symbol"): New predicate.
645 * config/cris/linux.h: Sanity-check TARGET_CPU_DEFAULT for
646 presence and contents.
647 (CRIS_SUBTARGET_DEFAULT_ARCH): New macro, MASK_AVOID_GOTPLT for
649 (CRIS_CPP_SUBTARGET_SPEC, CRIS_CC1_SUBTARGET_SPEC,
650 CRIS_ASM_SUBTARGET_SPEC): Adjust for different TARGET_CPU_DEFAULT.
651 (CRIS_SUBTARGET_DEFAULT): Add CRIS_SUBTARGET_DEFAULT_ARCH.
652 * config/cris/cris.h: Sanity-check TARGET_CPU_DEFAULT for contents.
653 (CRIS_DEFAULT_TUNE, CRIS_ARCH_CPP_DEFAULT)
654 (CRIS_DEFAULT_ASM_ARCH_OPTION): New macros.
655 (CRIS_CC1_SUBTARGET_SPEC): Change default tuning to use
657 (CRIS_CPP_SUBTARGET_SPEC): Ditto. Add CRIS_ARCH_CPP_DEFAULT.
658 (ASM_SPEC): Add sanity-check erroring out when both -march= and
659 -mcpu= are specified. Pass on either as --march=v32.
660 (CRIS_ASM_SUBTARGET_SPEC): When neither -march= or -mcpu= are
661 specified, pass on CRIS_DEFAULT_ASM_ARCH_OPTION.
662 (CRIS_CPU_V32): New macro.
663 [!TARGET_CPU_DEFAULT]: Default-define as CRIS_CPU_BASE.
664 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]: Move default
665 TARGET_DEFAULT definition after new TARGET_CPU_DEFAULT definition.
666 Define v32-adjusted TARGET_DEFAULT.
667 (CRIS_DEFAULT_CPU_VERSION): Change to TARGET_CPU_DEFAULT from
669 (TARGET_V32): New macro.
670 (REG_ALLOC_ORDER_V32): New macro.
671 (HARD_REGNO_MODE_OK): Do not allow larger-than-register-size modes
672 into CRIS_ACR_REGNUM.
673 (enum reg_class): New classes ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS
674 and SPEC_GENNONACR_REGS.
675 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Adjust for new classes.
676 (REGNO_REG_CLASS): Give ACR_REGS for CRIS_ACR_REGNUM.
677 (MODE_CODE_BASE_REG_CLASS): Define, give for OCODE POST_INC
678 GENNONACR_REGS, BASE_REG_CLASS otherwise.
679 (REG_CLASS_FROM_LETTER): 'a' is for ACR_REGS.
680 (REGNO_MODE_CODE_OK_FOR_BASE_P): Define, refusing OCODE POST_INC
682 (PREFERRED_RELOAD_CLASS): Keep ACR_REGS as preferred.
683 (HARD_REGNO_RENAME_OK): Refuse CRIS_ACR_REGNUM as TO.
684 (EXTRA_CONSTRAINT): New constraint 'U'.
685 (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE)
686 (ASM_OUTPUT_ADDR_DIFF_ELT): Adjust for CRIS v32.
687 (BASE_OR_AUTOINCR_P): Refuse POST_INC for CRIS_ACR_REGNUM.
688 (SIMPLE_ADDRESS_P): Remove.
689 (GO_IF_LEGITIMATE_ADDRESS): Use BASE_OR_AUTOINCR_P, not redundant
690 SIMPLE_ADDRESS_P. Make one chained if-else, finishing as
691 non-match after BASE_OR_AUTOINCR_P for TARGET_V32.
692 (REGISTER_MOVE_COST): Just call the new function
693 cris_register_move_cost.
694 (enum cris_pic_symbol_type): Rename cris_gotrel_symbol to
695 cris_rel_symbol. All users changed.
696 (REGISTER_NAMES): Replace "pc" with "acr".
697 (ADDITIONAL_REGISTER_NAMES): Add "pc" for 15.
698 (ASM_OUTPUT_REG_PUSH): Change to v32-compatible sequence.
699 (ASM_OUTPUT_REG_POP): Change to v32-compatible syntax.
700 (ASM_OUTPUT_CASE_END): Just call the new function
701 cris_asm_output_case_end.
702 * gcc/config/cris/cris.md: Group related constants together, with
704 (CRIS_UNSPEC_PLT_GOTREL, CRIS_UNSPEC_PLT_PCREL, CRIS_UNSPEC_PCREL)
705 (CRIS_UNSPEC_CASESI): New constants.
706 (CRIS_UNSPEC_PLT): Remove constant.
707 (CRIS_ACR_REGNUM): New constant.
708 ("slottable"): New attr alternatives "has_return_slot" and
710 ("cc"): New attr alternatives "noov32" and "rev".
711 ((eq_attr "slottable" "has_call_slot"))
712 ((eq_attr "slottable" "has_return_slot")): New define_delays.
713 ("movdi", "movsi"): Adjust operands for CRIS v32.
714 ("tstdi", "cmpdi", "adddi3", "subdi3", "uminsi3")
715 ("indirect_jump"): Ditto. Make define_expand.
716 ("*tstdi_non_v32", "*tstdi_v32", "*tst<mode>_cmp")
717 ("*tst<mode>_non_cmp", "*cmpdi_non_v32", "*cmpdi_v32")
718 ("*movdi_v32", "*adddi3_non_v32", "*adddi3_v32")
719 ("*addsi3_non_v32", "*addsi3_v32", "*addhi3_non_v32")
720 ("*addhi3_v32", "*addqi3_non_v32", "*addqi3_v32")
721 ("*subdi3_non_v32", "*subdi3_v32", "*subsi3_non_v32")
722 ("*subsi3_v32", "*sub<mode>3_nonv32", "*sub<mode>3_v32")
723 ("*andqi3_non_v32", "*andqi3_v32", "*iorsi3_non_v32")
724 ("*iorsi3_v32", "*iorhi3_non_v32", "*iorhi3_v32")
725 ("*iorqi3_non_v32", "*iorqi3_v32", "*uminsi3_non_v32")
726 ("*uminsi3_v32", "*indirect_jump_non_v32", "*indirect_jump_v32")
727 ("*expanded_call_v32", "*expanded_call_value_v32"): New patterns,
728 for the corresponding standard name.
729 ("tst<mode>"): Limit to BW and make define_expand.
730 ("tstsi"): Make separate insn, adjusting for CRIS v32.
731 ("*cmp_swapext<mode>"): Adjust for v32. Specify "rev" for attr "cc".
732 ("cmpsi", "cmp<mode>"): Remove special cases for zero. Specify
734 ("*btst"): Don't match for TARGET_CCINIT. Replace test of
735 register with compatible "cmpq 0". Specify attr "cc".
736 ("*movdi_insn_non_v32"): New pattern, replacing "*movdi_insn" and
738 (define_split for DI move): Match CRIS v32 only.
739 ("*movsi_got_load", "*movsi_internal", "*addi"): Adjust for CRIS v32.
740 ("load_multiple", "store_multiple", "*addsbw_v32", "*addubw_v32")
741 ("*adds<mode>_v32", "*addu<mode>_v32", "*bound<mode>_v32")
742 ("*casesi_jump_v32", "*expanded_andsi_v32", "*expanded_andhi_v32")
743 ("*extop<mode>si_v32", "*extopqihi_v32", "*andhi_lowpart_v32")
744 ("*andqi_lowpart_v32", "cris_casesi_v32"): New patterns.
745 ("add<mode>3"): Make addsi3, addhi3 and addqi3 define_expand.
746 ("sub<mode>3"): Ditto subsi3, subhi3 and subqi3.
747 ("ior<mode>3"): Ditto iorsi3, iorhi3 and iorqi3.
748 ("*extopqihi_non_v32"): Replace "*extopqihi".
749 ("*extop<mode>si_non_v32"): Replace "*extop<mode>si".
750 ("*addxqihi_swap_non_v32"): Rename from "*extopqihi_swap", make
752 ("*extop<mode>si_swap_non_v32"): Ditto "*extop<mode>si_swap".
753 ("*expanded_andsi_non_v32"): Ditto "*expanded_andsi".
754 ("*expanded_andhi_non_v32"): Ditto "*expanded_andhi".
755 ("*andhi_lowpart_non_v32"): Ditto "*andhi_lowpart".
756 ("*andqi_lowpart_non_v32"): Ditto "*andqi_lowpart".
757 ("*expanded_call_non_v32"): Ditto "*expanded_call". Change from
758 "cris_general_operand_or_plt_symbol" to "general_operand".
759 ("*expanded_call_value_non_v32") Ditto "*expanded_call_value".
760 ("*casesi_adds_w", "mstep_shift", "mstep_mul")
761 ("*expanded_call_side", "*expanded_call_value_side")
762 (op-extend-split, op-extend-split-rx=rz, op-extend-split-swapped)
763 (op-extend-split-swapped-rx=rz, op-extend, op-split-rx=rz)
764 (op-split-swapped, op-split-swapped-rx=rz): Make non-v32 only.
765 ("dstep_mul", "xorsi3", "one_cmplsi2", "<shlr>si3")
766 ("*expanded_<shlr><mode>", "*<shlr><mode>_lowpart", "ashl<mode>3")
767 ("*ashl<mode>_lowpart", "abssi2", "clzsi2", "bswapsi2")
768 ("cris_swap_bits"): Specify "noov32" for attr "cc".
769 ("<su>mulsi3_highpart"): Ditto. Correct operand 0 to register_operand.
770 ("andqi3"): Make define_expand.
771 ("*return_expanded"): For attr "slottable", change from "has_slot"
772 to "has_return_slot".
773 ("cris_casesi_non_v32"): New pattern, old contents of "casesi".
774 ("casesi"): Divert into "cris_casesi_v32" and "cris_casesi_non_v32".
775 (moversideqi, movemsideqi, mover2side): Require
776 TARGET_SIDE_EFFECT_PREFIXES.
777 (gotplt-to-plt, gotplt-to-plt-side): Change from CRIS_UNSPEC_PLT
778 to CRIS_UNSPEC_PLT_GOTREL.
779 * config/cris/cris-protos.h (cris_register_move_cost)
780 (cris_cc0_user_requires_cmp, cris_asm_output_case_end): Declare.
782 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
785 * dwarf2out.c (dwarf_tag_name): Synchronize with dwarf2.h.
786 (is_type_die): Cover interface types.
787 (class_or_namespace_scope_p): Cover interface and class types.
788 (record_type_tag): New.
789 (gen_inlined_structure_type_die): Use it.
790 (gen_struct_or_union_type_die): Likewise.
791 (prune_unused_types_walk): Cover interface types.
792 * langhooks.h (classify_record): New enum.
793 (classify_record): New member in struct langhooks_for_types.
794 * langhooks-def.h (LANG_HOOKS_CLASSIFY_RECORD): New.
795 (LANGHOOKS_FOR_TYPES_INITIALIZER): Adjust.
797 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
799 * dwarf2out.c (reference_to_unused): Don't emit strings in
800 initializers just because of debug information.
801 * tree.h (TREE_ASM_WRITTEN): Document use for STRING_CSTs.
803 2007-12-15 Sebastian Pop <sebastian.pop@amd.com>
805 * tree-scalar-evolution.c (number_of_iterations_for_all_loops): Replace
806 print_loop_ir with print_loops.
807 * tree-flow.h (dot_cfg, debug_loops, debug_loop, debug_loop_num,
808 print_loops, print_loops_bb): Declare.
809 * tree-cfg.c (print_loops_bb): New.
810 (print_loop): Print header, latch, bounds, estimation of iterations.
811 (print_loop_and_siblings): New.
812 (print_loop_ir): Renamed print_loops.
813 (debug_loop_ir): Renamed debug_loops.
814 (debug_loop, debug_loop_num): New.
816 2007-12-15 Bernhard Fischer <aldot@gcc.gnu.org>
818 * tree-flow-inline.h.c (next_readonly_imm_use): Fix typo in comment.
820 2007-12-15 Bernhard Fischer <aldot@gcc.gnu.org>
822 * toplev.c (process_options): Fix typo in warning.
824 2007-12-14 Jakub Jelinek <jakub@redhat.com>
827 * config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU
828 DImode comparisons against constant with all 1's in the lower word.
830 2007-12-14 Uros Bizjak <ubizjak@gmail.com>
832 * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand
833 constraint for operand 2. Use nonimm_not_xmm0_operand constraint
834 for operand 4. Update arguments in the call to
835 gen_sse4_2_pcmpestr_cconly.
836 (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn
837 template accordingly.
838 (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2.
839 Use nonimm_not_xmm0_operand constraint for operand 3. Update
840 arguments in the call to gen_sse4_2_pcmpistr_cconly.
841 (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn
842 template accordingly.
844 2007-12-14 Richard Guenther <rguenther@suse.de>
847 * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add
848 parameter to say whether to unlink immediate uses.
849 * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not
850 mark the artificial stmt as modified. Unlink immediate uses
852 * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller.
853 * tree-ssa-pre.c (insert_fake_stores): Likewise.
855 2007-12-13 Eric Botcazou <ebotcazou@libertysurf.fr>
858 * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
859 * tree-complex.c (init_dont_simulate_again): Return true if there are
860 uninitialized loads generated by gimplify_modify_expr_complex_part.
861 * tree-gimple.c (is_gimple_reg_type): Return false for complex types
863 * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
864 (warn_uninit): ...here. Use ssa_undefined_value_p.
865 * tree-ssa-pre.c (is_undefined_value): Delete.
866 (phi_translate_1): Use ssa_undefined_value_p.
867 (add_to_exp_gen): Likewise.
868 (make_values_for_stmt): Likewise.
869 * tree-flow.h (ssa_undefined_value_p): Declare.
871 2007-12-13 Andrew Pinski <pinskia@gmail.com>
872 David Daney <ddaney@avtrex.com>
875 * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING
878 2007-12-13 Jakub Jelinek <jakub@redhat.com>
880 PR rtl-optimization/32636
881 * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx
882 regno in entry_block_defs even if HAVE_prologue && epilogue_completed.
884 2007-12-13 Uros Bizjak <ubizjak@gmail.com>
885 Richard Guenther <rguenther@suse.de>
888 * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16,
889 _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16,
890 _mm_shuffle_epi32): Cast non-constant input values to either __m64,
891 __m128, __m128i or __m128d in a macro version of the intrinsic.
892 Cast constant input values to int.
893 * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto.
894 * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16,
895 _mm_roti_epi32, _mm_roti_epi64): Ditto.
896 * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd,
897 _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8,
898 _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32,
899 _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri,
900 _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro,
901 _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro,
902 _mm_cmpestrs, _mm_cmpestrz): Ditto.
903 * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto.
904 * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw,
905 _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto.
906 * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd,
907 _mm_round_ps, _mm_round_ss): Ditto.
909 2007-12-13 Richard Guenther <rguenther@suse.de>
911 PR tree-optimization/34450
912 * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param.
913 * invoke.texi (sccvn-max-scc-size): Document.
914 * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency.
915 * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false
917 * tree-ssa-sccvn.c (params.h): Include.
918 (DFS): Return true if all went well, return false as soon as
919 a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE.
920 (run_scc_vn): Return true if all went well, return false if
921 we aborted during DFS.
922 * tree-ssa-pre.c (execute_pre): Check if SCCVN finished
923 successfully, otherwise bail out.
925 2007-12-13 Olga Golovanevsky <olga@il.ibm.com>
927 * ipa-struct-reorg.c (is_candidate): Print information to dump
928 file when the type is initialized.
929 (get_stmt_accesses): Likewise when a structure has bitfields
930 or field access is too complicate.
931 (safe_cond_expr_check): Likewise for unsafe condition expressions.
932 (exclude_cold_structs): Likewise for cold structures.
933 (collect_structures): Suppress redundant print when there are
934 no structures to transform.
935 (do_reorg): Print to dump file a number of structures that
937 (dump_new_types): Print a number of new types to replace
938 an original structure type.
940 2007-12-13 Olga Golovanevsky <olga@il.ibm.com>
942 * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg
943 option and struct-reorg-cold-struct-ratio parameter.
945 2007-12-13 Torbjorn Granlund <tege@swox.com>
947 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for
948 ZERO_EXTEND when computing costs for widening multiplication.
950 2007-12-13 Richard Earnshaw <rearnsha@arm.com>
953 * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
954 exit when using hard FPA.
955 * config/arm/ieee754-df.S (floatdidf): Likewise.
957 2007-12-12 Jakub Jelinek <jakub@redhat.com>
960 * doc/install.texi: Document that for MinGW only runtime 3.12 and
963 2007-12-12 David Edelsohn <edelsohn@gnu.org>
965 * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE.
967 2007-12-12 Aldy Hernandez <aldyh@redhat.com>
969 PR tree-optimization/32901
970 * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we
971 are assigning from a constant constructor.
972 Fix wrapping in function comment.
974 2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com>
976 * config/s390/s390.c (s390_O_constraint_str): Limit the range
977 for 'On' to -4G+1..-1.
978 * config/s390/constraints.md: Adjust comment accordingly.
980 2007-12-11 Nathan Sidwell <nathan@codesourcery.com>
982 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx
985 2007-12-11 Kai Tietz <kai.tietz@onevision.com>
987 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit
988 target same as 32-bit.
990 2007-12-10 Jakub Jelinek <jakub@redhat.com>
992 PR tree-optimization/34371
993 * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged
995 (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field.
996 * tree-vectorizer.c (set_prologue_iterations,
997 slpeel_tree_peel_loop_to_edge): Call unshare_expr on
998 LOOP_VINFO_NITERS_UNCHANGED before using it.
1000 2007-12-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1003 * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large.
1004 (ix86_expand_setmem): Likewise.
1006 2007-12-10 Kenneth Zadeck <zadeck@naturalbridge.com>
1008 PR rtl-optimization/34302
1009 * auto-inc-dec.c (attempt_change): Change place where move is
1012 2007-12-10 Jakub Jelinek <jakub@redhat.com>
1014 * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For
1015 Fortran multi-dimensional arrays use DW_AT_ordering
1018 2007-12-10 Paolo Bonzini <bonzini@gnu.org>
1021 * config/i386/i386.c (override_options): Enable -fvect-cost-model.
1023 2007-12-10 Uros Bizjak <ubizjak@gmail.com>
1025 * config/i386/i386.c (ix86_function_regparm): Do not check global_regs
1026 array, registers that are members of global_regs are also members of
1027 fixed_regs array. Use REGPARM_MAX to check that no regparm hard
1028 register is taken by a fixed register variable. Check up to and
1029 including DI_REG when adjusting regparm value due to fixed regs usage.
1030 (rep_prefix_usable): Check fixed_regs array, not global_regs array for
1031 available hard registers.
1032 (ix86_expand_strlen): Ditto.
1033 * config/i386/i386.md (strmov): Ditto.
1036 2007-12-10 Kaz Kojima <kkojima@gcc.gnu.org>
1038 * genopinit.c: Include tm_p.h in generated file.
1040 * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
1041 to extract the integer from operands[2].
1042 (vec_setv2di_internal): Likewise.
1044 * config/arm/arm.c (arm_size_return_regs): Make return type unsigned.
1045 (arm_init_neon_builtins): Move code after declarations.
1047 2007-12-10 Hans-Peter Nilsson <hp@axis.com>
1049 * reload.c (find_reloads_address_1): To properly mark as an
1050 autoincdec, pass X for non-NULL OUT in call to push_reload for
1051 autoincdec which can't be trivially used as an address.
1053 2007-12-10 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
1054 Hans-Peter Nilsson <hp@axis.com>
1056 * caller-save.c (insert_one_insn): If inserting before a call_insn
1057 then the registers containing the arguments of the call are
1058 live_throughout in the new insn.
1060 2007-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1064 * pa.md: Consolidate HImode and QImode move patterns into one pattern
1065 each, eliminating floating-point alternatives.
1066 * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
1068 * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
1069 * pa.c (pa_secondary_reload): Use an intermediate general register
1070 for copies to/from floating-point register classes. Simplify code
1071 SHIFT_REGS class. Provide additional comments.
1072 (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
1073 * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
1074 (SECONDARY_MEMORY_NEEDED): Delete define.
1075 (INT14_OK_STRICT): Define.
1076 (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
1078 (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
1079 (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
1081 (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
1082 Align DImode offsets when generating 64-bit code.
1083 * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
1084 (CANNOT_CHANGE_MODE_CLASS): Define.
1085 * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
1086 (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.
1088 2007-12-09 Jakub Jelinek <jakub@redhat.com>
1091 * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define.
1092 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
1093 * langhooks.h (struct array_descr_info): Forward declaration.
1094 (struct lang_hooks_for_types): Add get_array_descr_info field.
1095 * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New.
1096 (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2
1098 * dwarf2out.h (struct array_descr_info): New type.
1099 * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to
1100 DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size.
1101 (descr_info_loc, add_descr_info_field, gen_descr_array_type_die):
1103 (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info
1104 and gen_descr_array_type_die.
1106 2007-12-08 Richard Guenther <rguenther@suse.de>
1108 PR tree-optimization/34391
1109 * tree-vect-transform.c (vect_setup_realignment): Mark new
1110 symbols for renaming.
1112 2007-12-07 Bob Wilson <bob.wilson@acm.org>
1114 * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1115 (ASM_OUTPUT_DWARF_PCREL): Define.
1117 2007-12-07 Richard Guenther <rguenther@suse.de>
1120 * opts.c (common_handle_option): Handle OPT_fforce_addr.
1122 2007-12-07 Aldy Hernandez <aldyh@redhat.com>
1124 * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win.
1125 (LEGITIMIZE_RELOAD_ADDRESS): Same.
1127 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
1130 * doc/install.texi: Explain how to check for a clean environment when
1133 2007-12-07 Richard Guenther <rguenther@suse.de>
1135 * tree-profile.c (gcov_type_tmp_var): New global variable.
1136 (tree_gen_edge_profiler): Use a single shared variable decl per
1137 function for edge counter incrementing.
1138 (tree_profiling): Re-set the shared variable.
1140 2007-12-06 Bob Wilson <bob.wilson@acm.org>
1142 * config/xtensa/xtensa.c (xtensa_va_start): Add prototype.
1144 2007-12-06 Tom Tromey <tromey@redhat.com>
1147 * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache.
1149 2007-12-06 Richard Sandiford <rsandifo@nildram.co.uk>
1151 * config/mips/mips.c (mips_function_ok_for_sibcall): Check
1152 targetm.binds_local_p as well as DECL_EXTERNAL.
1154 2007-12-06 Harsha Jagasia <harsha.jagasia@amd.com>
1156 * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
1157 (set_prologue_iterations): New. Set the prologue iterations to total
1158 number of scalar iterations if the cost model check indicates that
1159 scalar code should be generated.
1160 (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for
1161 generating the cost condition for epilog. Call
1162 set_prologue_iterations to generate cost condition for prolog.
1163 (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
1164 * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
1165 (slpeel_tree_peel_loop_to_edge): Update declaration.
1166 (set_prologue_iterations): New declaration.
1167 * tree-vect-analyze.c (vect_analyze_loop_form): Update
1168 LOOP_VINFO_NITERS_UNCHANGED.
1169 * tree-vect-transform.c
1170 (vect_estimate_min_profitable_iters): Add new parameter and
1171 code to check if run time cost model test is needed.
1172 Remove code that adds builtin vectorization cost to scalar
1173 outside cost for the run time cost model test. If run time
1174 cost model test is needed add the appropriate guard cost to
1175 the scalar outside cost. The guard cost depends on whether
1176 the guard is generated at versioning or at prolog generation
1177 or at epilog generation. Change cost model equation to include
1178 scalar outside cost.
1179 (conservative_cost_threshold): New. Return the less conservative
1180 profitability threshold between the cost model threshold and the
1181 user defined vectorization threshold.
1182 (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
1183 (vect_do_peeling_for_alignment): Same.
1184 (vect_loop_versioning): Same.
1185 (vect_create_cond_for_align_checks): ANDs the cost model condition
1186 with the alignment condition.
1187 (vect_transform_loop): Call loop versioning only when there is a
1188 misalignment or an aliasing problem.
1190 2007-12-06 Jakub Jelinek <jakub@redhat.com>
1193 * tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
1194 (execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
1195 BUILT_IN_VA_COPY and BUILT_IN_VA_END.
1197 * target.h (struct ggc_target): Add expand_builtin_va_start hook.
1198 * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
1199 (TARGET_INITIALIZER): Add it.
1200 * builtins.c (expand_builtin_va_start): Use
1201 targetm.expand_builtin_va_start hook instead of
1202 EXPAND_BUILTIN_VA_START macro.
1203 * alpha/alpha.c (alpha_va_start): Made static.
1204 (override_options): Clear targetm.expand_builtin_va_start if
1206 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1207 * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
1208 * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
1209 * alpha/alpha-protos.h (alpha_va_start): Remove prototype.
1210 * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
1211 * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
1212 (xtensa_va_start): Made static.
1213 * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
1214 * pa/pa-protos.h (hppa_va_start): Remove prototype.
1215 * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
1216 * pa/pa.c (hppa_va_start): Made static, add prototype.
1217 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1218 * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
1219 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1220 * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
1221 * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
1222 * i386/i386.c (override_options): Clear
1223 targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
1224 (ix86_va_start): Made static.
1225 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1226 * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
1227 * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
1228 * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
1229 * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
1230 * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
1231 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1232 * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
1233 * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
1234 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1235 (rs6000_override_options): Clear targetm.expand_builtin_va_start if
1236 DEFAULT_ABI != ABI_V4.
1237 * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
1238 * spu/spu.c (spu_va_start): Made static, add prototype.
1239 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1240 * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
1241 * spu/spu-protos.h spu_va_start): Remove prototype.
1242 * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
1243 * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
1245 * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static.
1246 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1247 * s390/s390-protos.h (s390_va_start): Remove prototype.
1248 * s390/s390.c (s390_va_start): Made static.
1249 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1250 * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
1251 * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
1252 * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
1253 * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
1254 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1255 * arc/arc.c (arc_va_start): Made static, add prototype.
1256 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1257 * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
1258 * arc/arc-protos.h (arc_va_start): Remove prototype.
1259 * mt/mt-protos.h (mt_va_start): Remove prototype.
1260 * sparc/sparc.c (sparc_va_start): Made static, add prototype.
1261 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1262 * sparc/sparc-protos.h (sparc_va_start): Remove prototype.
1263 * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
1264 * sh/sh.c (sh_va_start): Made static, add prototype.
1265 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1266 * sh/sh-protos.h (sh_va_start): Remove prototype.
1267 * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
1268 * mips/mips-protos.h (mips_va_start): Remove prototype.
1269 * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
1270 * mips/mips.c (mips_va_start): Made static.
1271 (TARGET_EXPAND_BUILTIN_VA_START): Define.
1273 2007-12-06 Uros Bizjak <ubizjak@gmail.com>
1275 * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
1276 "flag_tree_parallelize_loops > 1".
1278 2007-12-06 Zdenek Dvorak <ook@ucw.cz>
1279 Dorit Nuzman <dorit@il.ibm.com>
1280 Jakub Jelinek <jakub@redhat.com>
1282 PR tree-optimization/34005
1283 * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
1284 * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
1285 (gimplify_pure_cond_expr): New function.
1286 (generic_expr_could_trap_p): New function.
1287 (gimplify_cond_expr): Call gimplify_pure_cond_expr.
1288 (force_gimple_operand): Initialize new field allow_rhs_cond_expr.
1290 2007-12-06 Andreas Krebbel <krebbel1@de.ibm.com>
1292 * config/s390/s390.c (s390_emit_stack_tie): New function.
1293 (s390_emit_prologue): Emit a stack tie when writing to the
1295 * config/s390/s390.md ("stack_tie"): New insn definition.
1297 2007-12-06 Ben Elliston <bje@au.ibm.com>
1300 * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.
1302 2007-12-05 Jakub Jelinek <jakub@redhat.com>
1305 * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
1306 number of bits set in C1 if a mode mask for some mode can be used
1309 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
1311 * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
1314 2007-12-05 Richard Guenther <rguenther@suse.de>
1316 PR tree-optimization/34138
1317 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1318 Do not forward propagate addresses if that changes volatileness of
1319 the pointed-to type.
1321 2007-12-05 Uros Bizjak <ubizjak@gmail.com>
1324 * config/i386/i386.c (ix86_function_regparm): Also check for fixed
1325 registers when checking that regparm registers are available.
1326 Lower regparm value due to fixed registers usage in addition to
1329 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
1331 * sparseset.c: Include config.h and system.h before sparseset.h.
1332 * sparseset.h: Remove inclusion of system.h.
1334 2007-12-05 Jakub Jelinek <jakub@redhat.com>
1335 Richard Sandiford <rsandifo@nildram.co.uk>
1337 * optabs.c (init_insn_codes): New function.
1338 (new_optab): Delete.
1339 (init_optab, init_optabv): Don't call new_optab.
1340 (init_convert_optab): Don't clear the insn codes.
1341 (init_optabs): Call init_insn_codes.
1343 2007-12-04 Jakub Jelinek <jakub@redhat.com>
1345 * omp-low.c (optimize_omp_library_calls): New function.
1346 (expand_omp_parallel): Call it if optimizing.
1349 * stmt.c (expand_stack_restore): Call expand_normal on var to get
1350 rtx for it instead of assuming it will be a VAR_DECL.
1352 2007-12-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1354 * c-parser (c_parser_statement_after_labels): Move error from here...
1355 (c_parser_label): ... to here. Check that the declaration is not
1356 actually just another label.
1358 2007-12-04 Richard Guenther <rguenther@suse.de>
1362 * tree-ssa-operands.c (get_addr_dereference_operands): If we
1363 fall back to using the SMTs aliases, make sure to add virtual
1364 operands for the SMT itself.
1365 (create_ssa_artificial_load_stmt): Fix typo. Make sure to also
1366 clear the loaded and stored symbols bitmaps.
1368 2007-12-04 Ben Elliston <bje@au.ibm.com>
1370 * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
1372 2007-12-04 Ben Elliston <bje@au.ibm.com>
1374 * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
1376 2007-12-03 Steven Bosscher <stevenb.gcc@gmail.com>
1379 * doc/invoke.texi: Remove -fforce-addr documentation.
1380 * expr.c (emit_move_insn): Remove use of flag_force_addr.
1381 (expand_expr_real_1): Same.
1382 (do_tablejump): Same.
1383 Call memory_address instead of memory_address_noforce.
1384 * expr.h (memory_address_noforce): Remove prototype.
1385 * explow.c (memory_address): Remove support for flag_force_addr.
1386 (validize_mem): Same.
1387 (memory_address_noforce): Remove.
1388 * common.opt: Add dummy documentation for -fforce-addr.
1389 * combine.c (can_combine_p): Remove -fforce-addr comment.
1390 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
1392 * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
1393 relating to memory_address_noforce.
1394 * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
1395 * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
1397 2007-12-03 Jakub Jelinek <jakub@redhat.com>
1399 * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
1400 with !ctx->is_nested.
1401 (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
1402 even if !ctx->is_nested.
1403 (lower_copyprivate_clauses, lower_send_clauses,
1404 lower_send_shared_vars): Call lookup_decl_in_outer_ctx
1408 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
1409 (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
1410 and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
1411 (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
1412 (X & C2) << C1 into (X << C1) & (C2 << C1) and
1413 (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
1416 PR tree-optimization/33453
1417 * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
1418 for pointer addition.
1419 * tree-parloops.c (canonicalize_loop_ivs): Likewise.
1420 (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
1423 2007-12-03 Bernd Schmidt <bernd.schmidt@analog.com>
1425 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
1428 2007-12-03 Razya Ladelsky <razya@il.ibm.com>
1430 * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
1432 2007-12-03 Jakub Jelinek <jakub@redhat.com>
1435 * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
1436 * common.opt (ftree-store-copy-prop): Use the same help text as for
1439 2007-12-02 Ayal Zaks <zaks@il.ibm.com>
1440 Revital Eres <eres@il.ibm.com>
1442 * modulo-sched.c (calculate_must_precede_follow,
1443 try_scheduling_node_in_cycle): New functions.
1444 (sms_schedule_by_order): Call the new functions.
1445 (ps_insn_find_column): Use must_follow and must_precede only if
1447 (ps_insn_advance_column): Likewise.
1449 2007-12-02 Ayal Zaks <zaks@il.ibm.com>
1450 Revital Eres <eres@il.ibm.com>
1452 * modulo-sched.c (get_sched_window): Fix the direction of the
1453 scheduling window and add dump info.
1455 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
1457 * config/sh/sh.md (cmpgeusi_t): Fix condition.
1459 2007-11-30 Jan Hubicka <jh@suse.cz>
1461 * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.
1463 2007-11-30 Seongbae Park <seongbae.park@gmail.com>
1465 PR rtl-optimization/34171
1466 * cfgrtl.c (update_bb_for_insn_chain): New function,
1467 refactored from update_bb_for_insn.
1468 (update_bb_for_insn): Call update_bb_for_insn.
1469 (rtl_merge_blocks, try_redirect_by_replacing_jump):
1470 Replace a loop with update_bb_for_insn_chain call.
1471 (cfg_layout_merge_blocks): Add a call to
1472 update_bb_for_insn_chain. Replace the for loop
1473 with a call to update_bb_for_insn_chain.
1475 2007-11-30 Ben Elliston <bje@au.ibm.com>
1477 * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.
1479 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
1481 PR tree-optimization/34244
1482 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1483 (record_numbers_of_iterations): New function.
1484 (execute_vrp): Cache the numbers of iterations of loops.
1485 * tree-scalar-evolution.c (scev_reset_except_niters): New function.
1486 (scev_reset): Use scev_reset_except_niters.
1487 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1489 2007-11-29 Jan Hubicka <jh@suse.cz>
1490 Jakub Jelinek <jakub@redhat.com>
1492 PR tree-optimization/33434
1493 * tree-inline.c (setup_one_parameter): If the value passed to
1494 a parameter is never used, don't set it up.
1496 2007-11-29 Jakub Jelinek <jakub@redhat.com>
1499 * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
1500 * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.
1502 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
1504 * Makefile.in: Use separate vpath lines for each path.
1506 2007-11-29 Ben Elliston <bje@au.ibm.com>
1508 * SERVICE: Update URL.
1510 2007-11-28 Jakub Jelinek <jakub@redhat.com>
1512 PR tree-optimization/34140
1513 * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
1514 loop->header has virtual phi nodes.
1516 2007-11-28 Richard Sandiford <rsandifo@nildram.co.uk>
1519 * builtins.c (expand_builtin_nonlocal_goto): Also emit a use
1520 of GP register, if valid and fixed.
1523 2007-06-21 David Daney <ddaney@avtrex.com>
1526 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
1527 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
1528 (exception_receiver): Renamed to ...
1529 (nonlocal_goto_receiver): ... this.
1531 2007-11-27 H.J. Lu <hongjiu.lu@intel.com>
1532 Joey Ye <joey.ye@intel.com>
1535 * config/i386/i386.c (function_arg_32): Don't pass aggregate
1536 arguments in ECX/EDX for fastcall.
1538 2007-11-28 Rask Ingemann Lambertsen <rask@sygehus.dk>
1540 * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
1542 * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
1543 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
1545 2007-11-28 Ben Elliston <bje@au.ibm.com>
1547 * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
1548 (maix32): Add Negative(maix64).
1550 2007-11-27 Jakub Jelinek <jakub@redhat.com>
1552 PR tree-optimization/34016
1553 * tree-ssa-loop.c (pass_linear_transform): Add
1554 TODO_update_ssa_only_virtuals to todo_flags_finish.
1556 2007-11-27 Eric B. Weddington <eric.weddington@atmel.com>
1558 * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
1559 * config/avr/avr.h (LINK_SPEC): Likewise.
1560 (CRT_BINUTILS_SPECS): Likewsie.
1561 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1563 2007-11-27 Jakub Jelinek <jakub@redhat.com>
1566 * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
1567 MEM_SIZE is set on all MEMs.
1569 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
1571 * config/s390/s390.opt (mhard-float): Add the option to be
1572 overridden. That was missing in my last patch.
1574 2007-11-27 Richard Guenther <rguenther@suse.de>
1576 PR tree-optimization/34241
1577 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
1578 to only delete real conversion chains.
1580 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
1582 * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
1583 mhard-float, mlong-double-64, mlong-double-128): Add the
1584 option to be overridden.
1586 2007-11-27 Richard Guenther <rguenther@suse.de>
1588 * builtins.c (fold_builtin_1): Verify the argument types
1589 of BUILT_IN_ISNORMAL.
1590 (fold_builtin_n): Verify the number of arguments to variadic
1593 2007-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
1595 * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
1596 * doc/invoke.texi (Blackfin Options): Document the effects.
1598 2007-11-27 Ben Elliston <bje@au.ibm.com>
1600 * config/rs6000/sysv4.opt (m32): Add Negative(m64).
1601 (m64): Add Negative(m32).
1602 * config/rs6000/darwin.opt (m32): Add Negative(m64).
1603 (m64): Add Negative(m32).
1605 2007-11-26 Eric Botcazou <ebotcazou@adacore.com>
1607 * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
1609 2007-11-26 Michael Meissner <michael.meissner@amd.com>
1612 * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
1613 constant, avoid calling emit_cmp_and_jump_insns. Use counter_mode
1614 to get the mode for loading a pseudo register with a count rather
1615 than duplicating code.
1617 2007-11-25 Eric B. Weddington <eric.weddington@atmel.com>
1619 * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
1620 * config/avr/avr.h (LINK_SPEC): Likewise.
1621 (CRT_BINUTILS_SPECS): Likewsie.
1622 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1624 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1626 * c-common.c (conversion_warning): Use get_unwidened instead of
1629 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1632 * c-parser.c (struct c_parser): New bit in_if_block.
1633 (c_parser_compound_statement_nostart): Handle unexpected 'else'
1635 (c_parser_statement_after_labels): Set in_if_block to false while
1637 (c_parser_if_body): Don't call c_parser_statement_after_labels if
1638 a semicolon is found, just consume it. Don't call
1639 c_parser_statement_after_labels if an open brace is found, call
1640 c_parser_compound_statement instead.
1641 (c_parser_else_body): New.
1642 (c_parser_if_statement): Set in_if_block to true when parsing the
1643 body of the 'if' statement. Use c_parser_else_body.
1645 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
1648 * c-decl.c (store_parm_decls): Pass 'false' for the new
1649 allocate_struct_function parameter.
1650 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1651 * tree-parloops.c (create_loop_fn): Likewise.
1652 * function.c (push_function_context_to, push_struct_function,
1653 init_function_start): Likewise.
1654 (allocate_struct_function): Add boolean parameter.
1655 * tree.h (allocate_struct_function): Add boolean parameter.
1656 * function.h (struct function): Move returns_struct and
1657 returns_pcc_struct to the end of the structure definiton.
1659 2007-11-26 Uros Bizjak <ubizjak@gmail.com>
1662 * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
1663 virtual registers are already instantiated.
1664 (truncxf<mode>2): Ditto.
1665 (floatsi<mode>2): Ditto.
1666 (floatdisf2): Ditto.
1667 (floatdidf2): Ditto.
1669 2007-11-26 Rask Ingemann Lambertsen <rask@sygehus.dk>
1672 * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
1673 the address before it is clobbered.
1675 2007-11-26 Nick Clifton <nickc@redhat.com>
1677 * config/mn10300/mn10300.md: (call_internal): Remove mode on
1678 operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
1679 (call_value_internal): Remove mode on operands 0 and 1 in order to
1680 match UNPSEC'ed calls generated in PIC mode.
1681 (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
1684 2007-11-26 Richard Guenther <rguenther@suse.de>
1687 * builtins.c (expand_builtin_pow): Use expand_expr to expand
1688 the result of build_call_expr.
1690 2007-11-26 Steven Bosscher <stevenb.gcc@gmail.com>
1691 Revital Eres <eres@il.ibm.com>
1694 * bb-reorder.c (insert_section_boundary_note): Clear
1695 BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.
1697 2007-11-26 Richard Sandiford <rsandifo@nildram.co.uk>
1699 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.
1701 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1703 * dwarf2asm.c (splay_tree_compare_strings): New function.
1704 (dw2_force_const_mem): Use it.
1706 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1708 * tree.c (type_hash_add): Don't violate strict aliasing rules.
1710 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1713 * c-typeck.c (tagged_types_tu_compatible_p): Enable exact
1714 matches between anonymous union fields.
1716 2007-11-26 Alexandre Oliva <aoliva@redhat.com>, Jan Hubicka <jh@suse.cz>
1718 * tree-ssa-live.c (remove_unused_scope_block_p): Drop
1719 declarations and blocks only after inlining. Check that
1720 non-empty blocks are not dropped.
1721 * tree-inline.c (expand_call_inline): Check that functions are
1722 not inlined too late.
1724 2007-11-26 Ben Elliston <bje@au.ibm.com>
1726 * unwind-dw2-fde.c: Fix comment typo.
1727 * unwind-generic.h: Likewise, fix comment typos.
1729 2007-11-25 Richard Sandiford <rsandifo@nildram.co.uk>
1731 * tree-sra.c (scalarize_use): Adjust the vpos argument to
1732 sra_explode_bitfield_assignment in cases where the type is
1733 wider than the bitfield.
1735 2007-11-25 Richard Guenther <rguenther@suse.de>
1737 * tree.h (struct tree_block): Move locus member next to flags.
1738 * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
1739 (SCOPE_LIST_CONCAT): Likewise.
1740 (pop_scope): Likewise.
1741 * function.c (instantiate_decls_1): Likewise.
1742 (setjmp_vars_warning): Likewise.
1743 * emit-rtl.c (set_used_decls): Likewise.
1744 * tree-inline.c (add_lexical_block): Likewise.
1746 2007-11-24 Hans-Peter Nilsson <hp@axis.com>
1748 * rtlanal.c (label_is_jump_target_p): Return true for a matching
1750 * reorg.c (fill_slots_from_thread): Correct last change to use
1751 NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and
1752 decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
1753 * jump.c (mark_jump_label_1): Add comment for last change
1754 regarding JUMP_LABEL setting.
1755 * gcse.c (add_label_notes): Remove conditional that the label is
1756 mentioned in insn before adding regnote.
1757 * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
1758 single_set insn only feeding a label to a jump through a
1759 register that dies there.
1761 2007-11-23 Dirk Mueller <dmueller@suse.de>
1762 Richard Guenther <rguenther@suse.de>
1765 * tree-vrp.c (check_array_ref): Move check for valid location..
1766 (check_array_bounds) here. Use EXPR_HAS_LOCATION().
1768 2007-11-23 Hans-Peter Nilsson <hp@axis.com>
1770 * reload.c (find_reloads_address_1) <autoincdec cases>:
1771 Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code.
1773 2007-11-23 Richard Guenther <rguenther@suse.de>
1774 Michael Matz <matz@suse.de>
1776 PR tree-optimization/34176
1777 * alloc-pool.h (empty_alloc_pool): Declare.
1778 * alloc-pool.c (empty_alloc_pool): New function.
1779 * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
1780 valid table if a lookup from the optimistic table failed.
1781 (vn_unary_op_lookup): Likewise.
1782 (vn_binary_op_lookup): Likewise.
1783 (vn_phi_lookup): Likewise.
1784 (process_scc): Clear optimistic tables before every iteration.
1786 2007-11-23 Richard Guenther <rguenther@suse.de>
1788 * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
1789 (merge_alias_info): Do verification only if checking is
1790 enabled. Merge flow-sensitive alias information in simple cases.
1791 * tree-ssa-operands.c (get_addr_dereference_operands): Also
1792 complain about missing NMTs.
1794 2007-11-23 Jakub Jelinek <jakub@redhat.com>
1797 * c-common.c (conversion_warning): For INTEGER_TYPE to
1798 INTEGER_TYPE conversions call get_narrower on expr to avoid
1799 spurious warnings from binop shortening or when the implicit
1800 conversion can't change the value.
1802 2007-11-22 Joseph Myers <joseph@codesourcery.com>
1805 * c-decl.c (set_array_declarator_inner): Don't give error for
1806 static or type qualifiers in abstract declarator. Remove
1807 abstract_p parameter.
1808 * c-tree.h (set_array_declarator_inner): Update prototype.
1809 * c-parser.c (c_parser_direct_declarator_inner): Update call to
1810 set_array_declarator_inner.
1811 * doc/standards.texi: Update for C99 TC3.
1813 2007-11-22 Hans-Peter Nilsson <hp@bitrange.com>
1815 * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
1816 line in my edit of the last change.
1818 2007-11-22 Jakub Jelinek <jakub@redhat.com>
1821 * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
1822 and TREE_READONLY on the fn decl rather than passing a chain
1825 2007-11-22 Kaz Kojima <kkojima@gcc.gnu.org>
1827 * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.
1829 2007-11-22 Uros Bizjak <ubizjak@gmail.com>
1831 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
1832 of ix86_arch and ix86_tune into a switch statement.
1833 (enum processor_type): Default PROCESSOR_I386 to 0.
1834 * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
1835 of "ix86_tune == PROCESSOR_K6".
1836 (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
1839 2007-11-22 Tom Tromey <tromey@redhat.com>
1841 * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
1842 avoid writing into string allocated by ggc_alloc_string.
1844 2007-11-21 Kaz Kojima <kkojima@gcc.gnu.org>
1847 * config/sh/sh.md (binary_sf_op): Remove.
1848 (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
1849 * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
1850 and gen_binary_sf_op1.
1852 2007-11-21 Hans-Peter Nilsson <hp@axis.com>
1854 * regclass.c (init_reg_autoinc): Fix typo preventing test of
1855 secondary output reload when setting forbidden_inc_dec_class.
1857 2007-11-21 Richard Guenther <rguenther@suse.de>
1859 PR tree-optimization/34148
1860 * tree-ssa-structalias.c (create_variable_info_for): Do not use
1861 field-sensitive PTA for single-element structures.
1862 * tree-ssa-alias.c (create_overlap_variables_for): Do not create
1863 SFTs for single-element structures.
1865 2007-11-20 Richard Guenther <rguenther@suse.de>
1868 * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
1869 of the signed INT_CST_LT.
1870 * stmt.c (expand_case): Likewise.
1871 (estimate_case_costs): Likewise.
1873 2007-11-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
1875 * read-rtl.c (fatal_expected_char): Print EOF as text rather that
1876 its binary representation.
1878 2007-11-20 Richard Guenther <rguenther@suse.de>
1880 * tree-ssa-operands.c (add_virtual_operand): Consistently prune
1883 2007-11-20 Thiemo Seufer <ths@mips.com>
1885 * config/mips/mips.c (mips_file_start): Add support for
1886 flagging 32-bit code with -mfp64 floating-point.
1888 2007-11-20 Jakub Jelinek <jakub@redhat.com>
1891 * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
1892 (c_gimplify_expr): Use it.
1894 2007-11-20 Ben Elliston <bje@au.ibm.com>
1896 * config/spu/spu_mfcio.h: Fix typo.
1898 2007-11-20 Ben Elliston <bje@au.ibm.com>
1900 * unwind.inc: Comment that unwind-sjlj.c includes this file.
1902 2007-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1903 Ben Elliston <bje@au.ibm.com>
1905 * config/spu/mfc_tag_release.c: New file.
1906 * config/spu/mfc_multi_tag_release.c: Likewise.
1907 * config/spu/mfc_multi_tag_reserve.c: Likewise.
1908 * config/spu/mfc_tag_release.c: Likewise.
1909 * config/spu/mfc_tag_reserve.c: Likewise.
1910 * config/spu/mfc_tag_table.c: Likewise.
1911 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
1912 (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
1913 * config/spu/spu_mfcio.h: Avoid <stdint.h>.
1914 (uint64_t): Typedef if __IN_LIBGCC2 is defined.
1915 (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
1916 (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
1917 mfc_multi_tag_release): Likewise.
1918 (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
1919 __mfc_multi_tag_release): Declare.
1921 2007-11-19 Jason Merrill <jason@redhat.com>
1923 PR debug/28834, debug/29436, c/32326
1924 * tree.c (build_type_attribute_qual_variant): Refuse to make
1925 a distinct copy of a struct/enum type. Use build_distinct_type_copy.
1926 * doc/extend.texi (Type Attributes): Don't encourage people to add
1927 attributes to struct/enum types in a typedef. Fix
1928 transparent_union example.
1930 * tree-inline.c (remap_type_1): Remove code that's redundant with
1932 (build_duplicate_type): Set id.copy_decl.
1933 * c-common.c (handle_transparent_union_attribute): Simplify logic.
1935 2007-11-19 Peter Bergner <bergner@vnet.ibm.com>
1937 * config/rs6000/rs6000.c (invalid_e500_subreg,
1938 rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
1939 rs6000_legitimize_address, rs6000_legitimize_reload_address,
1940 rs6000_legitimate_address, function_arg_advance,
1941 spe_build_register_parallel, rs6000_spe_function_arg,
1942 rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
1943 emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
1944 rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
1945 TDmode similarly to DFmode and TFmode.
1946 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1947 DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
1949 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
1951 * stor-layout.c (lang_adjust_rli): Delete.
1952 (set_lang_adjust_rli): Likewise.
1953 (layout_type): Do not call lang_adjust_rli hook.
1954 * tree.h (set_lang_adjust_rli): Delete.
1956 2007-11-19 Bernd Schmidt <bernd.schmidt@analog.com>
1958 * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
1959 n_dregs_to_save and n_pregs_to_save.
1960 (n_pregs_to_save, n_dregs_to_save): Use it. New argument CONSECUTIVE;
1961 all callers changed.
1962 (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
1963 able to save single D/P registers that aren't saved by the push/pop
1966 2007-11-19 Richard Guenther <rguenther@suse.de>
1968 PR tree-optimization/34099
1969 * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
1970 MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
1971 if only one operand is undefined.
1973 2007-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>
1975 PR tree-optimization/34036
1976 * opts.c (set_fast_math_flags): Do not set flags in common
1977 with set_unsafe_math_optimizations_flags, invoke it directly.
1978 (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
1979 and flag_signed_zeros.
1980 * toplev.c (process_options): Force flag_associative_math to 0 and
1981 warn, if it is set and either flag_trapping_math or flag_signed_zeros
1983 * doc/invoke.texi (Optimize Options): Document the new behavior
1984 of -funsafe-math-optimizations, that -fassociative-math requires
1985 both -fno-signed-zeros and -fno-trapping-math and make it clear
1986 that -fno-trapping-math requires -fno-signaling-nans. Refactor
1987 documentation of -ffast-math.
1989 2007-11-18 Jakub Jelinek <jakub@redhat.com>
1991 PR rtl-optimization/34132
1992 * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
1996 * optabs.h (optab_table): Change type to struct optab from optab.
1997 (convert_optab_table): Similarly.
1998 Adjust all _optab macros to expand to addresses of optab_table
1999 resp. convert_optab_table elements rather than the values of the
2001 * optabs.c (optab_table): Change typype to struct optab from optab.
2002 If compiled by recent GCC, initialize all the insn_code fields in
2003 the array using designated range initializers.
2004 (convert_optab_table): Similarly.
2005 (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
2006 set_conv_libfunc): Into libfunc_entry's optab field store index within
2007 optab_table resp. convert_optab_table array instead of difference
2008 between two separately malloced addresses.
2009 (new_optab): Add op argument, don't return anything. Initialize
2010 just the insn_code field in handlers array and only when needed.
2011 (init_optab, init_optabv): Add op argument, don't return anything.
2012 Adjust new_optab caller.
2013 (new_convert_optab): Removed.
2014 (init_convert_optab): Add op argument, don't return anything, don't
2015 call new_convert_optab. If needed, initialize insn_code field in
2017 (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
2019 (debug_optab_libfuncs): Adjust uses of optab_table and
2020 convert_optab_table arrays.
2022 2007-11-18 Richard Guenther <rguenther@suse.de>
2024 PR tree-optimization/34127
2025 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2026 Make code match up the comments, require compatibility of the
2029 2007-11-17 Richard Guenther <rguenther@suse.de>
2032 * fold-const.c (extract_muldiv_1): Do not move negative
2033 constants inside ABS_EXPR.
2035 2007-11-16 Ian Lance Taylor <iant@google.com>
2037 * collect2.c (dump_file): If a demangled symbol is followed by a
2038 space, make sure we output at least one space.
2040 2007-11-16 Richard Guenther <rguenther@suse.de>
2043 * fold-const.c (fold_binary): Use correct types for folding
2044 1 << X & Y to Y >> X & 1.
2046 2007-11-16 Richard Guenther <rguenther@suse.de>
2048 PR tree-optimization/33870
2049 * tree.h (struct tree_memory_tag): Add base_for_components flag.
2050 (struct tree_struct_field_tag): Remove nesting_level field.
2051 (SFT_NESTING_LEVEL): Remove.
2052 (SFT_BASE_FOR_COMPONENTS_P): Add.
2053 * tree-flow.h (struct fieldoff): Remove nesting_level field. Add
2054 base_for_components flag.
2055 (push_fields_onto_fieldstack): Remove nesting_level parameter.
2056 * tree-ssa-alias.c (create_sft): Likewise. Add base_for_components
2058 (create_overlap_variables_for): Deal with it.
2059 * tree-dfa.c (dump_subvars_for): Likewise.
2060 (dump_variable): Likewise.
2061 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
2062 Set base_for_components for first elements of sub-structures.
2063 (create_variable_info_for): Handle base_for_components.
2064 (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
2065 pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
2066 * tree-ssa-operands.c (ref_nesting_level): Remove.
2067 (add_vars_for_offset): Remove full_ref parameter, always add
2068 the offset of the pointed-to SFT.
2069 (add_virtual_operand): Adjust for changed signature of
2070 add_vars_for_offset.
2072 2007-11-16 Sa Liu <saliu@de.ibm.com>
2074 * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined
2075 floatunssidf2 and floatunsdidf2.
2077 2007-11-16 Richard Guenther <rguenther@suse.de>
2079 PR tree-optimization/34113
2080 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2081 Use correct conversion direction for checking type compatibility.
2083 2007-11-16 Richard Guenther <rguenther@suse.de>
2085 PR tree-optimization/34099
2086 * tree-ssa-ccp.c (likely_value): Use a whitelist for operators
2087 that produce UNDEFINED result if at least one of its operands
2088 is UNDEFINED. By default the result is only UNDEFINED if all
2089 operands are UNDEFINED.
2091 2007-11-16 Jakub Jelinek <jakub@redhat.com>
2094 * gcc.c (init_spec): Don't initialize asm_debug here...
2095 (main): ... but here.
2097 2007-11-07 Tom Tromey <tromey@redhat.com>
2099 * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'.
2100 * tree-parloops.c (create_loop_fn): Use set_cfun.
2101 * gengtype.c (open_base_files): Emit #undef cfun.
2102 * ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
2103 * function.h (cfun): New define.
2104 * function.c: Undefine cfun.
2106 2007-11-07 Eric B. Weddington <eweddington@cso.atmel.com>
2108 * config/avr/avr.c (avr_mcu_types): Add attiny88.
2109 * config/avr/avr.h (LINK_SPEC): Likewise.
2110 (CRT_BINUTILS_SPECS): Likewsie.
2111 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2113 2007-11-15 Jakub Jelinek <jakub@redhat.com>
2116 * tree-ssa-ccp.c (optimize_stack_restore): New function.
2117 (execute_fold_all_builtins): Call optimize_stack_restore for
2118 BUILT_IN_STACK_RESTORE.
2120 2007-11-15 Paolo Bonzini <bonzini@gnu.org>
2122 * fwprop.c (try_fwprop_subst): Skip profitability check for forward
2123 propagation into an address; that's done in should_replace_address.
2125 2007-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2127 * config/spu/spu-protos.h (legitimate_const): Remove prototype.
2128 * config/spu/spu.c (legitimate_const): Remove.
2129 (classify_immediate): Inline call to legitimate_const.
2130 (spu_legitimate_address): Likewise. Allow SYMBOL_REF + CONST_INT
2131 for any constant, not just -512 .. 511.
2133 2007-11-15 Sa Liu <saliu@de.ibm.com>
2135 * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
2136 condition from HONOR_NANS test.
2137 * config/spu/spu.md (ceq_df): Always generate comparison code
2138 inline, including checks for NaNs and infinities.
2140 (cgt_v2df): Likewise.
2141 (cmpdf): Make this expander unconditional.
2143 2007-11-15 Richard Guenther <rguenther@suse.de>
2145 * tree-ssa-alias.c (create_overlap_variables_for): Make sure
2146 to only create SFTs if we also create variable infos for PTA.
2147 * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs.
2149 2007-11-15 Richard Guenther <rguenther@suse.de>
2151 * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
2152 type for TBAA pruning.
2153 (find_what_p_points_to): Call set_uids_in_ptset with the original
2154 pointer, not the decl of the solution we collapsed to.
2156 2007-11-14 David Daney <ddaney@avtrex.com>
2158 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
2161 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
2164 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
2165 for registers in BR_REGS class.
2167 2007-11-14 Jakub Jelinek <jakub@redhat.com>
2170 * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
2171 init_ssa_operands has not been called for cfun.
2173 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
2175 PR tree-optimization/34046
2176 * cfg.c (update_bb_profile_for_threading): Avoid the division for the
2177 scaling if the old probability is greater than the new base.
2179 2007-11-14 Sebastian Pop <sebastian.pop@amd.com>
2181 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
2182 unused edges after loop duplication.
2184 2007-11-14 Uros Bizjak <ubizjak@gmail.com>
2186 * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
2187 (enum target_cpu_default): ... this enum.
2188 (TARGET_CPU_DEFAULT_NAMES): Remove macro. Move initializer to ...
2189 * config/i386/i386.c (override_options): ... here.
2190 * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
2191 TARGET_CPU_DEFAULT_i486.
2193 2007-11-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
2195 * global.c (rest_of_handle_global_alloc): Fix comment typos.
2196 * config/sh/sh.c (sh_rtx_costs): Likewise.
2197 * ChangeLog: Likewise.
2199 2007-11-13 Sebastian Pop <sebastian.pop@amd.com>
2201 * tree-chrec.h (build_polynomial_chrec): RHS of a chrec
2202 should not be of pointer type.
2204 2007-11-13 Michael Meissner <michael.meissner@amd.com>
2206 * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line.
2208 2007-11-13 Sterling Augustine <sterling@tensilica.com>
2209 Bob Wilson <bob.wilson@acm.org>
2211 * config/xtensa/unwind-dw2-xtensa.c: New.
2212 * config/xtensa/unwind-dw2-xtensa.h: New.
2213 * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
2214 (DWARF2_UNWIND_INFO): Remove.
2215 (DWARF_FRAME_REGISTERS): Define.
2216 (EH_RETURN_DATA_REGNO): Define.
2217 * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
2219 * config/xtensa/t-xtensa (LIB2ADDEH): Define.
2221 2007-11-13 Jakub Jelinek <jakub@redhat.com>
2223 * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
2224 -fsched-stalled-insns.
2226 PR tree-optimization/34063
2227 * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
2228 as first chrec_fold_plus operand rather than second.
2230 2007-11-13 Diego Novillo <dnovillo@google.com>
2232 PR tree-optimization/33870
2233 * tree.h (strcut tree_memory_tag): Add field unpartitionable.
2234 Remove field in_nested_struct.
2235 (struct tree_struct_field_tag): Add field nesting_level.
2236 (sft_in_nested_struct): Remove.
2237 (sft_nesting_level): Define.
2238 (sft_unpartitionable_p): Define.
2239 * tree-ssa-alias.c (mem_sym_score): If mp->var is not
2240 partitionable, return long_max.
2241 (compute_memory_partitions): Do not partition sfts marked
2243 (create_sft): Add argument nesting_level. Set
2244 sft_nesting_level with it. Update all users.
2245 (create_overlap_variables_for): Show nesting level.
2246 * tree-dfa.c (dump_subvars_for): Likewise.
2247 (dump_variable): Likewise. Show whether the sft is
2248 partitionable or not.
2249 * tree-flow.h (struct fieldoff): Remove field in_nested_struct.
2250 Add field nesting_level.
2251 * tree-ssa-structalias.c (struct variable_info): Remove
2252 field in_nested_struct.
2253 (push_fields_onto_fieldstack): Add argument nesting_level.
2254 Update all users. Update documentation. Update pair->nesting_level
2255 with nesting_level. Make recursive calls with nesting_level + 1.
2256 (set_uids_in_ptset): If an sft is added to the points-to set,
2257 mark it as unpartitionable.
2258 * tree-ssa-operands.c (ref_nesting_level): New.
2259 (add_vars_for_offset): Call it. Add argument full_ref. Update
2260 callers. If var is inside a nested structure and the nesting level
2261 of full_ref is lower than the nesting level of var,
2262 adjust offset by the offset of var.
2264 2007-11-13 Victor Kaplansky <victork@il.ibm.com>
2266 PR tree-optimization/32582
2267 * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
2269 2007-11-12 Danny Smith <dannysmith@users.sourceforge.net>
2271 * doc/extend.texi (dllimport): Document that pointers to dllimport'd
2272 functions can be used as constant.
2274 2007-11-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2276 PR rtl-optimization/34035
2277 * cse.c (cse_cfg_altered): New global variable.
2278 (cse_jumps_altered): Make boolean.
2279 (recorded_label_ref): Likewise.
2280 (cse_insn): Adjust for above changes.
2281 (cse_extended_basic_block): Likewise. Set cse_cfg_altered
2282 if dead edges have been purged.
2283 (cse_main): Change return value specification and adjust code.
2284 (rest_of_handle_cse): Adjust for above change.
2285 (rest_of_handle_cse2): Likewise.
2286 * gcse.c (rest_of_handle_gcse): Likewise.
2288 2007-11-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2289 Michael Meissner <michael.meissner@amd.com>
2291 * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
2292 get the appropriate suffix for the coms* instruction.
2293 (sse5_pcmov_<mode>): Restrict operands of pcmov
2294 for scalar case to be only xmm registers and not memory.
2296 * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
2297 constraints to follow the mnemonics for the pcmov instruction
2299 2007-11-12 Richard Sandiford <rsandifo@nildram.co.uk>
2302 * config/mips/mips.c (mips_return_fpr_single): New function.
2303 (mips_function_value): Use it when returning single-field
2305 (mips_expand_call): Handle the PARALLELs created by
2306 mips_return_fpr_single.
2308 2007-11-12 Richard Guenther <rguenther@suse.de>
2311 * fold-const.c (fold_binary): If testing for non-negative
2312 operands with tree_expr_nonnegative_warnv_p make sure to
2313 use op0 which has all (sign) conversions retained.
2315 2007-11-12 Richard Guenther <rguenther@suse.de>
2318 * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
2319 (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
2321 2007-11-12 Ira Rosen <irar@il.ibm.com>
2323 PR tree-optimization/33953
2324 * tree-vect-transform.c (vectorizable_operation): In case of SLP,
2325 allocate vec_oprnds1 according to the number of created vector
2326 statements. In case of shift with scalar argument, store scalar
2327 operand for every vector statement to be created for the SLP node.
2330 2007-11-10 Steven Bosscher <stevenb.gcc@gmail.com>
2332 * gcse.c (CUID_INSN): Remove.
2334 (alloc_gcse_mem): Don't allocate cuid_insn.
2335 (free_gcse_mem): Don't free cuid_insn.
2337 2007-11-10 Jakub Jelinek <jakub@redhat.com>
2340 * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
2344 * tree-inline.h (copy_body_data): Add regimplify field.
2345 * tree-inline.c (copy_body_r): Set id->regimplify to true
2346 if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
2348 (copy_bb): Clear id->regimplify before walk_tree, if it is
2349 set afterwards, regimplify the whole statement.
2351 PR tree-optimization/33680
2352 * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
2353 if the added cast involves variable length types.
2355 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
2356 Maxim Kuvyrkov <maxim@codesourcery.com>
2358 * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
2359 instead of TRUE_BARRIER for jumps. Add register dependencies
2360 even when reg_pending_barrier is set.
2362 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
2364 * haifa-sched.c (haifa_classify_insn): Rename to ...
2365 (haifa_classify_rtx): ... this. Improve handling of COND_EXECs,
2366 handle PARALLELs by recursing. Use it ...
2367 (haifa_classify_insn): ... here. Reimplement.
2369 2007-11-09 Richard Guenther <rguenther@suse.de>
2371 * bitmap.h (bitmap_single_bit_set_p): Declare.
2372 * bitmap.c (bitmap_single_bit_set_p): New function.
2373 * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
2374 (maybe_create_global_var): Use bitmap_empty_p.
2376 2007-11-09 Paolo Bonzini <bonzini@gnu.org>
2377 Jakub Jelinek <jakub@redhat.com>
2379 PR rtl-optimization/34012
2380 * fwprop.c (try_fwprop_subst): Do not replace if the new
2381 SET_SRC has a higher cost than the old one.
2383 2007-11-09 Eric Botcazou <ebotcazou@libertysurf.fr>
2385 PR rtl-optimization/33732
2386 * reload.c (push_reload): Check that the REG_DEAD note was referring
2387 to a hardreg or to a pseudo that has been assigned exactly one hardreg
2388 before considering it in order to select the reload register.
2389 (combine_reloads): Likewise.
2390 (find_dummy_reload): Likewise.
2392 2007-11-09 Richard Guenther <rguenther@suse.de>
2394 * tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD.
2395 (struct ptr_info_def): Likewise.
2396 (enum escape_type): Also use bit zero.
2398 2007-11-09 Richard Guenther <rguenther@suse.de>
2400 PR tree-optimization/33604
2401 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2402 Disregard changes in CV qualifiers of pointed to types for
2403 forward propagating ADDR_EXPRs.
2404 * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
2407 2007-11-09 Richard Sandiford <rsandifo@nildram.co.uk>
2409 * dse.c (find_shift_sequence): Always choose an integer mode for
2411 (replace_read): Require both the read and store mode to be
2412 integer ones. Remove a then-redundant FLOAT_P check.
2414 2007-11-08 Richard Guenther <rguenther@suse.de>
2416 * tree-dfa.c (remove_referenced_var): If removing a
2417 variable which has subvars, also remove those from
2418 the referenced vars. Do not create a variable annotation.
2420 2007-11-08 Bob Wilson <bob.wilson@acm.org>
2422 * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
2423 argument for gen_entry calls.
2424 * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
2425 (entry): Use the new attribute value. Remove unused first operand.
2427 2007-11-08 Tom Tromey <tromey@redhat.com>
2429 * c-parser.c (c_parser_translation_unit): Use location in error.
2430 (c_parser_external_declaration): Likewise.
2431 (c_parser_declaration_or_fndef): Likewise.
2432 (c_parser_enum_specifier): Likewise.
2433 (c_parser_struct_or_union_specifier): Likewise.
2434 (c_parser_struct_declaration): Likewise.
2435 (c_parser_typeof_specifier): Likewise.
2436 (c_parser_parms_list_declarator): Likewise.
2437 (c_parser_asm_string_literal): Likewise.
2438 (c_parser_braced_init): Likewise.
2439 (c_parser_initelt): Likewise.
2440 (c_parser_compound_statement_nostart): Likewise.
2441 (c_parser_statement_after_labels): Likewise.
2442 (c_parser_do_statement): Likewise.
2443 (c_parser_asm_statement): Likewise.
2444 (c_parser_conditional_expression): Likewise.
2445 (c_parser_unary_expression): Likewise.
2446 (c_parser_sizeof_expression): Likewise.
2447 (c_parser_postfix_expression): Likewise.
2448 (c_parser_postfix_expression_after_paren_type): Likewise.
2449 (c_parser_objc_class_instance_variables): Likewise.
2450 (c_parser_objc_method_definition): Likewise.
2451 (c_parser_objc_methodprotolist): Likewise.
2452 (c_parser_pragma): Likewise.
2453 (c_parser_omp_clause_num_threads): Likewise.
2454 (c_parser_omp_clause_schedule): Likewise.
2455 (c_parser_omp_all_clauses): Likewise.
2456 (c_parser_omp_sections_scope): Likewise.
2457 (c_parser_label): Use location of label, not colon.
2459 2007-11-08 Danny Smith <dannysmith@users.sourceforge.net>
2462 * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
2465 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2468 * ipa-pure-const.c (static_execute): Added code to keep recursive
2469 functions from being marked as pure or const.
2470 * ipa-utils.c (searchc): Fixed comment.
2472 2007-11-08 Tom Tromey <tromey@redhat.com>
2474 * common.opt (fshow-column): Default to 0.
2475 * configure: Rebuilt.
2476 * configure.ac (--enable-mapped-location): Default to 'yes'.
2478 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2480 * common.opt: Add pointer to doc/options.texi.
2481 * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
2482 -fipa-reference): Add or correct doc. Sorted options list for -Os
2485 2007-11-07 Bernhard Fischer <aldot@gcc.gnu.org>
2488 * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
2489 * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
2490 TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS.
2491 (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
2492 (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
2493 * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
2494 to TARGET_BIG_ENDIAN_DEFAULT.
2495 (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
2496 * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
2497 to TARGET_BIG_ENDIAN_DEFAULT.
2499 2007-11-07 Diego Novillo <dnovillo@google.com>
2501 * tree.h (struct tree_struct_field_tag): Move field
2502 in_nested_struct ...
2503 (struct tree_memory_tag): ... here.
2505 2007-11-07 Diego Novillo <dnovillo@google.com>
2508 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
2509 (SFT_IN_NESTED_STRUCT): Define.
2510 * tree-dfa.c (dump_subvars_for): Show offset of each sub-var.
2511 * tree-flow.h (struct fieldoff): Add field in_nested_struct.
2512 * tree-ssa-structalias.c (struct variable_info): Likewise.
2513 (push_fields_onto_fieldstack): If OFFSET is positive,
2514 set in_nested_struct.
2515 (create_variable_info_for): Copy setting of
2516 in_nested_struct from the field offset object.
2517 (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
2518 variable info object.
2519 * tree-ssa-operands.c (add_vars_for_offset): If VAR
2520 belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR).
2522 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2524 PR rtl-optimization/33737
2525 * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
2526 target block after computing the probabilities of outgoing edges.
2527 Cap the frequency to BB_FREQ_MAX.
2528 * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
2529 frequency of the basic block if it has been reused.
2531 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2533 PR rtl-optimization/33822
2534 * rtl.h (REG_OFFSET): Fix comment.
2535 * var-tracking.c (INT_MEM_OFFSET): New macro.
2536 (var_mem_set): Use it.
2537 (var_mem_delete_and_set): Likewise.
2538 (var_mem_delete): Likewise.
2539 (same_variable_part_p): Likewise.
2540 (vt_get_decl_and_offset): Likewise.
2541 (offset_valid_for_tracked_p): New predicate.
2542 (count_uses): Do not track locations with invalid offsets.
2543 (add_uses): Likewise.
2544 (add_stores): Likewise.
2546 2007-11-07 Tom Tromey <tromey@redhat.com>
2548 * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
2549 (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
2551 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru>
2552 Andrey Belevantsev <abel@ispras.ru>
2554 * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
2555 generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
2556 (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
2557 Save calculated max_asap in it.
2558 (sms_schedule): Calculate maxii using max_asap.
2560 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com>
2562 * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
2563 with -mhard-dfp/-mno-hard-dfp.
2565 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com>
2566 Jakub Jelinek <jakub@redhat.com>
2569 * haifa-sched.c (check_sched_flags): Remove.
2570 (sched_init): Don't call it.
2572 2007-11-06 Diego Novillo <dnovillo@google.com>
2574 * tree-flow.h (struct fieldoff): Reformat comment. Document fields.
2575 * tree-ssa-operands.c: Tidy top-level comments.
2576 (add_vop): Likewise.
2577 (add_vars_for_offset): Tidy parameter formatting..
2578 (get_addr_dereference_operands): Likewise.
2579 (get_indirect_ref_operands): Likewise.
2580 (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
2581 <OMP_ATOMIC_STORE>: Likewise.
2583 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk>
2586 * config/i386/driver-i386.c: Test for __GNUC__ instead of
2587 GCC_VERSION which is always defined.
2589 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2592 * reload1.c (find_reloads): Also check in_reg when handling a
2593 simple move with an input reload and a destination of a hard register.
2595 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
2597 * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
2598 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
2599 TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
2600 TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2601 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
2602 (m68k_sched_attr_type2): New function.
2603 (sched_adjust_cost_state): New static variable.
2604 (m68k_sched_adjust_cost): New static function implementing
2606 (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
2607 New static variables.
2608 (m68k_sched_variable_issue): New static function implementing
2610 (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
2611 (sched_dump_split_class): New static function.
2612 (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
2614 (sched_dump_dfa_class, m68k_sched_dump): New static function.
2615 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2616 m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
2617 m68k_sched_dfa_post_advance_cycle): New static functions implementing
2620 * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
2621 (CPU_UNITS_QUERY): Define.
2623 * config/m68k/cf.md: New file.
2624 * config/m68k/m68.md (cf.md): New include.
2626 2007-11-06 Tom Tromey <tromey@redhat.com>
2630 * function.c (saved_in_system_header): New global.
2631 (push_cfun): Save in_system_header.
2632 (pop_cfun): Restore in_system_header.
2633 (push_struct_function): Save in_system_header.
2635 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
2639 * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
2640 (complete_array_type): Set canonical type appropriately.
2641 * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
2642 C and C++ front ends now have different versions of this function,
2643 because the C++ version needs to maintain canonical types here.
2645 2007-11-04 Razya Ladelsky <razya@il.ibm.com>
2647 * tree-parloops.c (reduction_info): Remove reduction_init field.
2648 (initialize_reductions): Remove creation of the reduction_init variable.
2649 (struct data_arg): Remove.
2650 (add_field_for_reduction, create_stores_for_reduction): New functions.
2651 (add_field_for_name): Remove reduction handling.
2652 (separate_decls_in_loop): Call add_field_for_reduction,
2653 create_stores_for_reduction.
2655 2007-11-06 Jakub Jelinek <jakub@redhat.com>
2657 PR tree-optimization/33458
2658 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
2659 !is_gimple_val PHI argument, gimplify it and insert it on edge.
2661 PR tree-optimization/33993
2662 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
2663 rather than build_constructor_from_list if all list values are
2665 (get_initial_def_for_induction): Use build_vector instead of
2666 build_constructor_from_list.
2668 2007-11-05 Mark Mitchell <mark@codesourcery.com>
2671 * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
2672 (DECL_FINI_PRIORITY): Likewise.
2673 * tree.c (decl_init_priority_lookup): Remove assert.
2674 (decl_fini_priority_insert): Likewise.
2675 * cgraphunit.c (static_ctors): Make it a VEC.
2676 (static_dtors): Likewise.
2677 (record_cdtor_fn): Adjust accordingly.
2678 (build_cdtor): Generate multiple functions for each initialization
2680 (compare_ctor): New function.
2681 (compare_dtor): Likewise.
2682 (cgraph_build_cdtor_fns): Sort the functions by priority before
2683 calling build_cdtor.
2684 (cgraph_build_static_cdtor): Put the priority in the function's name.
2686 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
2689 * common.opt: Add shared and pie.
2691 2007-11-05 Bob Wilson <bob.wilson@acm.org>
2693 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
2694 replace references to virtual_stack_vars_rtx in goto_handler.
2696 2007-11-05 Paul Brook <paul@codesourcery.com>
2698 * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
2699 * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
2700 (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call
2701 arm_lang_output_object_attributes_hook.
2702 * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
2703 (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
2704 * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
2706 * config/arm/t-arm.c (arm.o): New rule.
2707 * config/arm/arm-c.c: New file.
2709 2007-11-05 Nick Clifton <nickc@redhat.com>
2710 Sebastian Pop <sebastian.pop@amd.com>
2712 PR tree-optimization/32540
2713 PR tree-optimization/33922
2714 * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
2715 * tree-ssa-pre.c: Include params.h.
2716 (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
2717 to limit the maximum length of the PA set for a given block.
2718 * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
2719 * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
2721 2007-11-05 Nathan Sidwell <nathan@codesourcery.com>
2723 * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
2724 __fixunssfDI): Make return type unsigned.
2725 * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
2726 __fixunssfDI): Make return type unsigned.
2728 2007-11-05 Jakub Jelinek <jakub@redhat.com>
2730 PR tree-optimization/33856
2731 * tree-data-ref.c (get_references_in_stmt): Don't add
2732 REFERENCE_CLASS_P trees to references vector if get_base_address
2733 returns NULL on them.
2735 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
2737 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
2739 2007-11-04 Andrew Pinski <pinskia@gmail.com>
2742 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
2743 for TRUTH_NOT_EXPR to type.
2745 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
2747 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
2749 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2752 * dwarf2out.c (add_calling_convention_attribute): Change
2753 second argument. Set calling convention to DW_CC_program for
2754 Fortran main program.
2755 (gen_subprogram_die): Adjust to new prototype for
2756 add_calling_convention_attribute.
2758 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
2760 PR tree-optimization/33987
2761 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
2763 (vectorizable_reduction): Add type check.
2765 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2768 * c-parser.c (c_parser_statement_after_labels): Error if a
2769 declaration is parsed after a label.
2771 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
2774 * reorg.c (emit_delay_sequence): Do not clear the locator on
2775 the jump instruction.
2777 2007-11-03 Jakub Jelinek <jakub@redhat.com>
2780 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
2781 current sched region.
2783 2007-11-02 Jakub Jelinek <jakub@redhat.com>
2785 * config/ia64/ia64.c (struct reg_write_state): Change into
2786 unsigned short bitfields rather than unsigned int, decrease
2787 first_pred to just 10 bits.
2788 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
2789 into two char array.
2790 (rws_insn_set, rws_insn_test): New functions.
2791 (in_safe_group_barrier): New variable.
2792 (rws_update): Remove first argument, always set rws_sum array.
2793 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
2794 or update rws_sum if !in_safe_group_barrier, adjust rws_update args.
2795 (rtx_needs_barrier): Use rws_insn_test macro.
2796 (safe_group_barrier_needed): Don't save/restore rws_sum array,
2797 instead set/clear in_safe_group_barrier flag.
2799 2007-11-02 Bob Wilson <bob.wilson@acm.org>
2801 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
2802 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
2803 pointer or frame pointer.
2804 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
2805 (MUST_USE_SJLJ_EXCEPTIONS): Define.
2806 (DWARF2_UNWIND_INFO): Define.
2807 (INCOMING_RETURN_ADDR_RTX): Define.
2808 (DWARF_FRAME_RETURN_COLUMN): Define.
2810 2007-11-02 Tom Tromey <tromey@redhat.com>
2812 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
2815 2007-11-02 Diego Novillo <dnovillo@google.com>
2817 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
2818 argument from function pointer ANALYZE_EXPR. Update all users.
2819 * cgraph.c (debug_cgraph_node): New.
2820 (debug_cgraph): New.
2822 2007-11-02 Jakub Jelinek <jakub@redhat.com>
2824 PR rtl-optimization/33648
2825 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
2826 the newly created basic block.
2828 2007-11-01 Richard Guenther <rguenther@suse.de>
2830 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
2832 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
2834 PR rtl-optimization/33828
2835 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
2836 of VBEIN and VBEOUT.
2838 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2840 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
2841 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
2842 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
2844 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
2846 * gcc.c (getenv_spec_function): Escape the environment variable's
2849 2007-11-01 Janis Johnson <janis187@us.ibm.com>
2851 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
2852 show that CSE means common subexpression elimination. Change wording
2853 for -fsee and define LCM. Remove capitalization of optimizations
2854 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
2856 2007-11-01 Janis Johnson <janis187@us.ibm.com>
2859 * doc/sourcebuild.texi (Test Directives): Document that xfail
2860 has no effect for dg-do except when dg-do-what is "run".
2862 2007-11-01 Tom Tromey <tromey@redhat.com>
2864 * c-decl.c (grokdeclarator): Set decl source locations.
2865 * c-parser.c (c_parser_enum_specifier): Set location.
2866 (c_parser_struct_or_union_specifier): Likewise.
2868 2007-11-01 Tom Tromey <tromey@redhat.com>
2870 * print-tree.c (print_node): Print column number.
2872 2007-11-01 Jakub Jelinek <jakub@redhat.com>
2875 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2876 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
2877 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
2879 PR rtl-optimization/33673
2880 * gcse.c (cprop_jump): If a conditional jump has been optimized
2881 into unconditional jump, make the remaining normal edge fallthru
2882 and delete the jump insn.
2884 2007-11-01 Ben Elliston <bje@au.ibm.com>
2886 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
2887 (set_mem_attrs_from_reg): Likewise.
2889 2007-11-01 Michael Matz <matz@suse.de>
2891 PR tree-optimization/33961
2892 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
2893 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
2894 (add_or_mark_expr): New argument 'store', using it to search
2896 (nt_init_block): Adjust calls to add_or_mark_expr.
2898 2007-10-31 Jakub Jelinek <jakub@redhat.com>
2901 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
2902 for the first push_operand.
2904 2007-10-31 Revital Eres <eres@il.ibm.com>
2906 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
2907 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
2908 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
2909 movmisalignv2sf, vcondv2sf): New.
2910 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
2911 UNSPEC_EXTODD_V2SF): Define new constants.
2912 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
2913 paired_emit_vector_cond_expr): New.
2914 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
2915 * config/rs6000/rs6000.c (paired_expand_vector_move,
2916 paired_emit_vector_cond_expr, paired_emit_vector_compare):
2918 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
2920 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
2922 PR tree-optimization/32377
2923 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
2924 work also for unknown number of iterations.
2925 (analyze_subscript_affine_affine): Clean up. Don't fail when the
2926 number of iterations is not known.
2928 2007-10-31 Richard Guenther <rguenther@suse.de>
2931 * fold-const.c (extract_muldiv_1): Make sure to not introduce
2932 new undefined integer overflow.
2933 (fold_binary): Avoid useless conversion.
2935 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
2938 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.
2940 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
2942 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
2944 * config/s390/s390.c: (override_options): Replace
2945 -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp.
2946 * config/s390/s390.opt: Likewise.
2947 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
2950 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2952 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
2954 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2956 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
2957 optimization options.
2958 (Optimize Options): Add -fdce and -fdse to the list of optimizations
2959 enabled by -O. Document -fdce and -fdse.
2961 2007-10-30 Jakub Jelinek <jakub@redhat.com>
2964 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
2965 convert second operand of COMPOUND_EXPR to the original type of
2968 2007-10-30 Richard Guenther <rguenther@suse.de>
2970 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
2971 of loop adding SFTs as virtual operands.
2973 2007-10-30 Richard Guenther <rguenther@suse.de>
2975 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
2977 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
2979 PR tree-optimization/32893
2980 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
2981 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
2983 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
2985 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
2987 (sub_ddmmss): Likewise.
2988 (umul_ppmm): Likewise.
2989 (udiv_qrnnd): Likewise.
2991 2007-10-29 Janis Johnson <janis187@us.ibm.com>
2994 * doc/sourcebuild.texi (Test Directives): Document that dg-require
2995 directives must come before dg-additional-sources.
2997 2007-10-29 Jakub Jelinek <jakub@redhat.com>
2999 PR tree-optimization/33723
3000 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
3001 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
3003 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
3005 PR tree-optimization/33614
3006 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
3007 if they can't be reduced to VECTOR_CSTs and aren't legitimate
3008 initializer constants.
3010 2007-10-29 Richard Guenther <rguenther@suse.de>
3012 PR tree-optimization/33870
3013 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
3014 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
3017 2007-10-29 Richard Guenther <rguenther@suse.de>
3019 * passes.c (init_optimization_passes): Exchange store_copy_prop
3021 * tree-pass.h (pass_store_copy_prop): Remove.
3022 * tree-ssa-copy.c (do_store_copy_prop): Remove.
3023 (stmt_may_generate-copy): Do not handle store_copy_prop.
3024 (get_copy_of_val): Likewise.
3025 (set_copy_of_val): Likewise.
3026 (copy_prop_visit_assignment): Likewise.
3027 (copy_prop_visit_stmt): Likewise.
3028 (copy_prop_visit_phi_node): Likewise.
3029 (init_copy_prop): Likewise.
3030 (execute_copy_prop): Likewise.
3031 (do_copy_prop): Remove.
3032 (gate_store_copy_prop): Likewise.
3033 (store_copy_prop): Likewise.
3034 (pass_store_copy_prop): Likewise.
3035 (pass_copy_prop): Call execute_copy_prop.
3036 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
3037 * common.opt (ftree-store-copy-prop): Mark obsolete.
3038 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
3040 2007-10-29 Ian Lance Taylor <iant@google.com>
3042 * ifcvt.c (noce_can_store_speculate_p): New static function.
3043 (noce_process_if_block): Call it.
3044 (if_convert): Remove recompute_dominance parameter. Change all
3047 2007-10-29 Richard Guenther <rguenther@suse.de>
3049 * tree-flow-inline.h (get_subvar_at): Use binary search.
3050 (get_first_overlapping_subvar): New function to binary search
3051 for the first overlapping subvar.
3052 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
3053 just handle adding subvars for a pointed-to subvar. Optimize
3054 and use get_first_overlapping_subvar.
3055 (add_vars_for_bitmap): Fold into single caller.
3056 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
3057 and non pointed-to bits of add_vars_for_offset.
3059 2007-10-29 Revital Eres <eres@il.ibm.com>
3061 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
3063 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
3064 Zdenek Dvorak <ook@ucw.cz>
3067 reduction support for automatic parallelization.
3069 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
3071 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
3072 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
3073 and OMP_ATOMIC_STORE.
3074 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
3075 * gimple-low.c (lower_stmt): Same.
3076 * gimplify.c (gimplify_expr): Same.
3077 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
3078 gimplify_omp_atomic_mutex): Remove.
3079 (gimplify_omp_atomic): Change it to simply gimplify the
3080 statement instead of expanding it.
3081 * omp-low.c: Add includes to optabs.h, cfgloop.h.
3082 (expand_omp_atomic, expand_omp_atomic_pipeline,
3083 goa_stabilize_expr, expand_omp_atomic_mutex,
3084 expand_omp_atomic_fetch_op): New functions to implement
3085 expansion of OMP_ATOMIC.
3086 (expand_omp, build_omp_regions_1): Add support for
3087 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
3088 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
3090 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
3092 * tree-parloops.c: add include to tree-vectorizer.h.
3093 (reduction_info): New structure for reduction.
3094 (reduction_list): New list to represent list of reductions per loop.
3095 (struct data_arg): New helper structure for reduction.
3096 (reduction_info_hash, reduction_info_eq, reduction_phi,
3097 initialize_reductions, create_call_for_reduction,
3098 create_phi_for_local_result, create_call_for_reduction_1,
3099 create_loads_for_reductions, create_final_loads_for_reduction):
3101 (loop_parallel_p): Identify reductions, add reduction_list parameter.
3102 (separate_decls_in_loop_name): Support reduction variables.
3103 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
3104 call create_loads_for_reduction for each reduction.
3105 (canonicalize_loop_ivs): Identify reductions, add reduction_list
3107 (transform_to_exit_first_loop): Add reduction support, add
3108 reduction_list parameter.
3109 (gen_parallel_loop): Add reduction_list parameter. Add call
3110 separate_decls_in_loop with
3111 the new argument. Traverse reductions and call
3112 initialize_reductions, create_call_for_reduction.
3113 (parallelize_loops): Create and delete the reduction list.
3114 (add_field_for_name): Change use of data parameter. Add fields for
3116 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
3117 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
3118 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
3119 * tree-inline.c (estimate_num_insns_1): add cases for
3120 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
3121 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
3122 * tree-ssa-operands.c (get_addr_dereference_operands):
3123 New function. Subroutine of get_indirect_ref_operands.
3124 (get_indirect_ref_operands): Call get_addr_dereference_operands.
3125 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
3128 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
3130 * config/cris/cris.c: Include df.h.
3131 (cris_address_cost): Add gcc_assert for canonicalization
3132 assumptions. For PLUS with MULT or register, correct
3133 test for register in other arm. Tweak comments.
3135 2007-10-28 Richard Guenther <rguenther@suse.de>
3137 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
3138 telling if the var is to be treated as points-to location.
3139 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
3140 (add_virtual_operand): Only recurse into MPTs if aliases
3143 2007-10-28 Richard Guenther <rguenther@suse.de>
3145 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
3146 (add_vars_for_bitmap): Do not recurse further. Only add vars
3147 for pointed-to SFTs.
3148 (add_virtual_operand): Re-instantiate loop to add operands for
3149 aliases. Recurse into MPTs.
3150 (get_indirect_ref_operands): If we fall back to use a pointers
3151 SMT, make sure to not prune based on the access offset and size.
3153 2007-10-28 Andrew Pinski <pinskia@gmail.com>
3156 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
3157 the eh information on the statement.
3159 2007-10-28 Richard Guenther <rguenther@suse.de>
3161 * tree-flow.h (subvar_t): Make it a VEC.
3162 (struct subvar): Remove.
3163 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
3164 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
3166 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3167 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
3168 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
3169 (set_initial_properties): Likewise.
3170 (setup_pointers_and_addressables): Likewise.
3171 (new_type_alias): Likewise.
3172 (create_overlap_variables_for): Likewise.
3173 * tree-dfa.c (dump_subvars_for): Likewise.
3174 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
3175 (get_expr_operands): Likewise.
3176 (add_to_addressable_set): Likewise.
3177 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
3179 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
3181 PR tree-optimization/33920
3182 * tree-if-conv.c (tree_if_conversion): Force predicate of single
3183 successor bb to true when predecessor bb has NULL predicate.
3184 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
3186 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
3188 * config/mips/mips.md: Add combiner patterns for DImode extensions
3189 of HImode and QImode truncations. Reformat HImode <- QImode pattern
3192 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
3195 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
3197 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
3199 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
3200 LIBCALL notes if they are about to be moved to the same insn.
3202 2007-10-27 Richard Guenther <rguenther@suse.de>
3204 PR tree-optimization/33870
3205 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
3206 duplication. Remove redundant call to access_can_touch_variable.
3207 (add_vars_for_bitmap): New helper for recursing over MPT contents.
3208 (add_virtual_operand): Use it.
3210 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3213 * pa.h (ASM_PN_FORMAT): Delete define.
3215 2007-10-26 Janis Johnson <janis187@us.ibm.com>
3217 * doc/invoke.texi (Option Summary, optimizations): Remove
3218 -fbounds-check. Add -fassociative-math, -freciprocal-math,
3219 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
3220 -fsplit-wide-types to match later entry. Break up a long line.
3221 (Option Summary, code gen options) Add -fno-stack-limit. Add
3222 missing @gol to the end of a line.
3223 (Optimization Options): Remove -fbounds-check, which is also
3224 documented under Code Generation Options. Remove =n from
3225 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
3226 to -fcprop-registers to match other options, and say when it is
3227 enabled rather than disabled. Remove extra index entry for
3228 -fno-cx-limited-range. Add index entries for -fstack-protector
3229 and -fstack-protector-all.
3230 (Code Gen Options): Add index entry for -ftls-model.
3232 2007-10-26 Anatoly Sokolov <aesok@post.ru>
3234 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
3235 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
3236 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
3237 expand_epilogue, output_movhi): Don't handle 'main' function.
3238 (avr_attribute_table): Add 'OS_task' function attribute.
3239 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
3241 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
3242 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
3244 * config/avr/avr.opt (minit-stack): Remove.
3246 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
3248 * tree-nested.c (get_trampoline_type): Fix thinko.
3250 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
3253 * tree.c (build_offset_type): Build canonical type based on the
3254 TYPE_MAIN_VARIANT of the base type.
3256 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
3258 * reorg.c (emit_delay_sequence): Move insn locator from the
3259 first insn to the sequence.
3261 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
3263 * ipa-pure-const.c (check_decl): Return immediately when
3264 pure_const_state has been set to IPA_NEITHER.
3266 2007-10-25 Ira Rosen <irar@il.ibm.com>
3268 PR tree-optimization/33833
3269 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
3270 and convert init to sizetype in inner_base construction.
3272 2007-10-25 Richard Guenther <rguenther@suse.de>
3274 * tree-flow.h (mem_sym_stats): Remove.
3275 (dump_mem_sym_stats_for_var): Declare.
3276 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
3277 (mem_sym_stats): Move ...
3278 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
3279 (mem_sym_score): Rename from ...
3280 (pscore): ... this. Remove.
3281 (dump_mem_sym_stats_for_var): New function. Dump the score, but
3282 not the frequencies.
3283 (compare_mp_info_entries): Make sort stable by disambiguating
3286 2007-10-25 Ira Rosen <irar@il.ibm.com>
3288 PR tree-optimization/33866
3289 * tree-vect-transform.c (vectorizable_store): Check operands of all
3290 the stmts in the group of strided accesses. Get def stmt type for each
3291 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
3293 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
3295 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
3296 (Yt): Rename register constraint to Y2.
3297 * config/i386/sse.md: Use renamed register constraints.
3298 * config/i386/mmx.md: Ditto.
3299 * config/i386/i386.md: Ditto.
3301 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
3303 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
3305 2007-10-24 Chao-ying Fu <fu@mips.com>
3307 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
3308 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
3310 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
3311 Olga Golovanevsky <olga@il.ibm.com>
3313 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
3314 the compiler that wr.wrap and wr.domain are initialized in
3317 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
3319 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
3320 to print gcov_type values.
3322 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
3324 * config/avr/avr.h: Do not include progmem_section definition when
3325 building with IN_TARGET_LIBS.
3327 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
3330 * config/mips/mips.c (mips_lo_sum_offset): New structure.
3331 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
3332 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
3333 (mips_orphaned_high_part_p: New functions.
3334 (mips_avoid_hazard): Don't check INSN_P here.
3335 (mips_avoid_hazards): Rename to...
3336 (mips_reorg_process_insns): ...this. Cope with
3337 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
3338 or turn them into nops.
3339 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
3340 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
3341 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
3342 (mips_override_options): Set flag_delayed_branch to 0.
3344 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
3346 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
3347 MIPS-specific implementation details.
3348 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
3349 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
3350 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
3351 for targets with movmemsi.
3352 (MOVE_BY_PIECES_P): Define.
3353 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
3354 (mips_block_move_loop): Add a bytes_per_iter argument.
3355 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
3356 Update call to mips_block_move_loop.
3358 2007-10-24 Michael Matz <matz@suse.de>
3361 * var-tracking.c (variable_union): Don't break after one loop
3362 iteration but only when a difference is found.
3363 (dump_variable): Also print DECL_UID.
3365 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
3367 * ipa-type-escape.h: Expose function
3368 is_array_access_through_pointer_and_index.
3370 (is_array_access_through_pointer_and_index):
3371 Add three new parameters. Add support of
3372 POINTER_PLUS_EXPR tree code.
3374 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
3376 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
3377 * tree-pass.h: Add pass_ipa_struct_reorg.
3378 * common.opt: Add ipa-struct-reorg flag.
3379 * Makefile.in: Add ipa-strcut-reorg.o compilation.
3380 * passes.c: Add pass pass_ipa_struct_reorg.
3381 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
3382 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
3384 2007-10-24 Ira Rosen <irar@il.ibm.com>
3386 PR tree-optimization/33804
3387 * tree-vect-transform.c (vectorizable_operation): Remove the
3388 checks that the vectorization is worthwhile from the transformation
3391 2007-10-24 Ira Rosen <irar@il.ibm.com>
3393 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
3394 vectype cannot be determined for the scalar type.
3395 (vect_analyze_slp_instance): Likewise.
3396 * tree-vect-transform.c (vect_model_reduction_cost): Change the
3397 return type to bool. Return false if vectype cannot be determined
3398 for the scalar type.
3399 (vect_get_constant_vectors): Return false if vectype cannot be
3400 determined for the scalar type.
3401 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
3402 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
3403 vectorizable_reduction): Likewise.
3405 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
3407 * config.gcc: For a FreeBSD target, parse the value of ${target}
3408 to determine the value of FBSD_MAJOR, instead of adding an
3409 explicit check for every possible FreeBSD major version.
3411 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
3413 PR rtl-optimization/33846
3414 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
3416 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
3418 PR tree-optimization/33860
3419 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
3420 interleaved accesses in case the dr is inside the inner-loop during
3421 outer-loop vectorization.
3423 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
3425 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
3426 Document MEM_POINTER. Replace mentions of "integrated"
3427 field with "return_val". Delete outdated stuff.
3429 2007-10-23 David Edelsohn <edelsohn@gnu.org>
3431 * config/rs6000/rs6000.c (rs6000_override_options): Set
3432 rs6000_altivec_abi on AIX.
3433 (conditional_register_usage): Set VR20:31 fixed on AIX.
3435 2007-10-23 Richard Guenther <rguenther@suse.de>
3437 * alias.c (get_alias_set): For INDIRECT_REFs, deal with