1 2008-12-20 Eric Botcazou <ebotcazou@adacore.com>
4 * configure.ac (gcc_cv_as_cfi_advance_working): Fall back to 'no'
5 if readelf is nowhere to be found.
6 * configure: Regenerate.
8 2008-12-19 Andrew Haley <aph@redhat.com>
10 * builtins.c, tree-ssa-loop-ivopts.c, fixed-value.c:
13 2008-12-19 Richard Earnshaw <rearnsha@arm.com>
16 * arm/t-linux (LIB1ASMFUNCS): Add _arm_addsubdf3 and _arm_addsubsf3.
17 * arm/lib1funcs.asm (clzsi2): Use RET macro for return instruction.
19 2008-12-19 Richard Earnshaw <rearnsha@arm.com>
22 * arm.c (load_multiple_sequence): Initialize ORDER array.
23 (store_multiple_sequence): Likewise.
24 (output_move_double): Make reg0 unsigned.
25 (arm_output_epilogue): Make amount unsigned.
26 (arm_expand_prologue): Move declaration of dwarf before block
29 2008-12-19 Steve Ellcey <sje@cup.hp.com>
31 * df-scan.c ( df_hard_reg_init): Move declaration of i.
33 2008-12-19 Jakub Jelinek <jakub@redhat.com>
36 * config.host: For powerpc*-*-linux* host with 32-bit GCC,
37 use rs6000/x-linux-relax snippet if ld is new enough,
38 otherwise use rs6000/x-linux-O1.
39 * config/rs6000/x-linux-relax: New file.
40 * config/x-cflags-O1: New file.
42 2008-12-18 Joseph Myers <joseph@codesourcery.com>
44 * config/rs6000/rs6000.c (rs6000_generate_compare): Condition
45 choice of e500 comparison instructions on flag_finite_math_only &&
46 !flag_trapping_math, not flag_unsafe_math_optimizations.
47 * config/rs6000/rs6000.md (abstf2): Condition choice of e500
48 instructions on flag_finite_math_only && !flag_trapping_math, not
49 flag_unsafe_math_optimizations.
50 (bltgt, sltgt): Disable for TARGET_HARD_FLOAT && !TARGET_FPRS.
51 * config/rs6000/spe.md (cmpsfeq_gpr, tstsfeq_gpr, cmpsfgt_gpr,
52 tstsfgt_gpr, cmpsflt_gpr, tstsflt_gpr, cmpdfeq_gpr, tstdfeq_gpr,
53 cmpdfgt_gpr, tstdfgt_gpr, cmpdflt_gpr, tstdflt_gpr, cmptfeq_gpr,
54 tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
55 Condition choice of comparison instructions on
56 flag_finite_math_only && !flag_trapping_math, not
57 flag_unsafe_math_optimizations.
59 2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
61 * configure: Regenerate.
63 2008-12-18 Jan Hubicka <jh@suse.cz>
64 Kai Tietz <kai.tietz@onevision.com>
66 * df-scan.c (persistent_obstack, df_invalidated_by_call): Remove.
67 (df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename
68 df_invalidated_by_call to invalidated_by_call_regset.
69 * df.h (df_invalidated_by_call): Remove.
70 * regclass.c (regs_invalidated_by_call_regset, persistent_obstack): New
72 (init_reg_sets_1): Initialize regs_invalidated_by_call_regset.
73 (globalize_reg): Likewise.
74 * df-problems.c (df_rd_local_compute, df_lr_confluence_n,
75 df_byte_lr_alloc): Rename df_invalidated_by_call to
76 invalidated_by_call_regset.
77 * basic-block.h (regs_invalidated_by_call_regset): Declare.
79 2008-12-18 Jan Hubicka <jh@suse.cz>
80 Kai Tietz <kai.tietz@onevision.com>
82 * ira-cost.c (copy_cost): Lazilly initialize move_cost if needed.
84 2008-12-18 Jan Hubicka <jh@suse.cz>
85 Kai Tietz <kai.tietz@onevision.com>
87 * i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current function
89 * i386.c (ix86_call_abi_override): Do not trigger target re-init and
90 do not try to modify call used regs.
91 (ix86_maybe_switch_abi): New function.
92 (TARGET_EXPAND_TO_RTL_HOOK): New macro.
94 2008-12-18 Kenneth Zadeck <zadeck@naturalbridge.com>
96 PR rtl-optimization/37922
97 * dse.c (bb_info): Added regs_live field.
98 (look_for_hardregs): New function.
99 (replace_read): Added regs_live parameter and code to check that
100 shift sequence does not clobber live hardregs.
101 (check_mem_read_rtx): Added parameter to replace_read.
102 (dse_step1): Added regs_live bitmap and initialize it.
103 (rest_of_handle_dse): Added DF_NOTES problem and earlier call to
105 * df-problems.c Renamed to
106 df_simulate_initialize_backwards.
107 (df_simulate_one_insn): Renamed to
108 df_simulate_one_insn_backwards.
109 (df_simulate_artificial_refs_at_top): Renamed to
110 df_simulate_finalize_backwards.
111 (df_simulate_initialized_forwards,
112 df_simulate_one_insn_forwards,
113 df_simulate_finalize_backwards): New functions.
114 * df.h (df_simulate_artificial_refs_at_end): Renamed to
115 df_simulate_initialize_backwards.
116 (df_simulate_one_insn): Renamed to
117 df_simulate_one_insn_backwards.
118 (df_simulate_artificial_refs_at_top): Renamed to
119 df_simulate_finalize_backwards.
120 (df_simulate_initialized_forwards,
121 df_simulate_one_insn_forwards,
122 df_simulate_finalize_backwards): New functions.
123 * ra-conflict.c (global_conflicts): Renamed
124 df_simulate_artificial_refs_at_end to
125 df_simulate_initialize_backwards.
126 * sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to
127 df_simulate_one_insn_backwards.
128 * ifcvt.c (dead_or_predicable): Renamed
129 df_simulate_artificial_refs_at_end to
130 df_simulate_initialize_backwards. Renamed df_simulate_one_insn to
131 df_simulate_one_insn_backwards.
132 * recog.c (peephole2_optimize): Ditto.
133 * rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto.
135 2008-12-18 Jakub Jelinek <jakub@redhat.com>
138 * tree-ssa-reassoc.c (remove_visited_stmt_chain): New function.
139 (rewrite_expr_tree): Add moved argument, move stmts together if
140 needed. Call remove_visited_stmt_chain.
141 (linearize_expr_tree): Don't move stmts here.
142 (reassociate_bb): Call remove_visited_stmt_chain if num ops is 1.
143 Adjust rewrite_expr_tree caller.
146 * tree-ssa.c (useless_type_conversion_p_1): Return
147 false if inner_type is incomplete and outer_type is complete.
149 2008-12-17 Sebastian Pop <sebastian.pop@amd.com>
151 * doc/install.texi (Prerequisites): Document PPL and CLooG-PPL
152 dependences and the configure options.
153 (Configuration): Document --with-cloog, --with-ppl, --with-cloog-lib,
154 --with-ppl-lib, --with-cloog-incude, --with-ppl-include.
156 2008-12-17 H.J. Lu <hongjiu.lu@intel.com>
159 * calls.c (expand_call): Check outgoing_reg_parm_stack_space
160 only if REG_PARM_STACK_SPACE is defined.
162 2008-12-17 Jan Hubicka <jh@suse.cz>
163 Kai Tietz <kai.tietz@onevision.com>
165 * calls.c (expand_call): Do not sibcall if
166 outgoing_reg_parm_stack_space does not match.
168 2008-12-16 Anatoly Sokolov <aesok@post.ru>
170 * config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
171 atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
173 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
174 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
176 2008-12-16 Hariharan Sandanagobalane <hariharan@picochip.com>
179 * config/picochip/picochip.opt (mae): Squeezed the comments onto one
182 2008-12-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
184 * configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up
186 * configure: Regenerate.
188 2008-12-16 Richard Earnshaw <rearnsha@arm.com>
191 * arm.c (arm_legitimate_index): Only accept addresses that are in
193 * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
194 * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
196 (extendqisi2): Likewise.
197 (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
198 predicate for operand1.
200 2008-12-15 Adam Nemet <anemet@caviumnetworks.com>
202 * config/mips/mips.c (mips_output_conditional_branch): Assert that
203 openrands[1] is a CODE_LABEL.
205 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
207 * config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to
208 the result of mips_prepare_builtin_target.
210 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
212 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls
213 if TARGET_ABICALLS is true.
215 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
217 * config/mips/mips.md (move_doubleword_fpr<mode>): Use
218 TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case.
220 2008-12-15 Hariharan Sandanagobalane <hariharan@picochip.com>
222 * config/picochip/picochip.c (picochip_override_options): Disable CFI
223 asm and change the signature of brev and byteSwap functions to use
225 * config/picochip/picochip.md (commsTestPort): This is a complex
226 instruction and should not be vliwed. Dont set insn type.
228 2008-12-15 Wolfgang Gellerich <gellerich@de.ibm.com>
229 * config/s390/s390.c (s390_swap_cmp): New function.
230 (s390_non_addr_reg_read_p): New function.
231 (s390_z10_optimize_cmp): New function.
232 (s390_reorg): Added call to s390_optimize_cmp.
233 * config/s390/s390.md (nop1): New insn.
235 2008-12-12 Rainer Emrich <r.emrich@de.tecosim.com>
238 * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path
239 for the milli.a library.
241 2008-12-12 Andrew Pinski <andrew_pinskia@playstation.sony.com>
242 Peter Bergner <bergner@vnet.ibm.com>
245 * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
246 TOC into the call pattern.
247 (call_indirect_aix64): Likewise.
248 (call_value_indirect_aix32): Likewise.
249 (call_value_indirect_aix64): Likewise.
250 (call_indirect_nonlocal_aix32_internal): New insn and split patterns
251 to split off the load of the TOC.
252 (call_indirect_nonlocal_aix32): Enable only after reload.
253 (call_indirect_nonlocal_aix64_internal): New insn and split patterns
254 to split off the load of the TOC.
255 (call_indirect_nonlocal_aix64): Enable only after reload.
256 (call_value_indirect_nonlocal_aix32_internal): New insn and split
257 patterns to split off the load of the TOC.
258 (call_value_indirect_nonlocal_aix32): Enable only after reload.
259 (call_value_indirect_nonlocal_aix64_internal): New insn and split
260 patterns to split off the load of the TOC.
261 (call_value_indirect_nonlocal_aix64): Enable only after reload.
263 2008-12-12 Andreas Schwab <schwab@suse.de>
266 2008-12-12 Andreas Schwab <schwab@suse.de>
267 * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
270 2008-12-12 Zdenek Dvorak <ook@ucw.cz>
272 PR tree-optimization/32044
273 * tree-scalar-evolution.h (expression_expensive_p): Declare.
274 * tree-scalar-evolution.c (expression_expensive_p): New function.
275 (scev_const_prop): Avoid introducing expensive expressions.
276 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto.
278 2008-12-12 Sebastian Pop <sebastian.pop@amd.com>
281 * graphite.c (nb_reductions_in_loop): Use simple_iv.
283 2008-12-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
285 * config/i386/x86intrin.h: New header file to support all x86
287 * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h
289 2008-12-12 H.J. Lu <hongjiu.lu@intel.com>
292 * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
295 2008-12-12 Andreas Schwab <schwab@suse.de>
297 * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
300 2008-12-12 Uros Bizjak <ubizjak@gmail.com>
302 * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
303 Use Pmode for scratch reg.
304 (*mb_internal): Use (match_dup 0) for unspec operand.
306 2008-12-12 Alexandre Oliva <aoliva@redhat.com>
308 * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
309 floor_log2 of zero. Negate widened zero.
311 2008-12-12 Ben Elliston <bje@au.ibm.com>
313 * config/fp-bit.c (nan): Rename from this ...
314 (makenan): ... to this.
316 2008-12-11 Adam Nemet <anemet@caviumnetworks.com>
318 * config/mips/mips.md (*branch_bit<bbv><mode>,
319 *branch_bit<bbv><mode>_inverted): Renumber operands so that the
320 label becomes operands[1].
322 2008-12-11 Harsha Jagasia <harsha.jagasia@amd.com>
324 PR tree-optimization/38446
325 * graphite.c (register_bb_in_sese): New.
326 (bb_in_sese_p): Check if bb belongs to sese region by explicitly
327 looking at the bbs in the region.
328 * graphite.h (sese): Add region_basic_blocks pointer set to
329 structure and initialize at the time of defining new scop.
331 2008-12-11 Tobias Grosser <grosser@fim.uni-passau.de>
333 * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
334 (find_params_in_bb): Do not free data refs.
335 (free_graphite_bb): Add FIXME on disabled free_data_refs.
337 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
339 * graphite.c (struct ivtype_map_elt): New.
340 (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
341 new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
342 gcc_type_for_cloog_iv): New.
343 (loop_iv_stack_patch_for_consts): Use the type of the induction
344 variable from the original loop, except for the automatically
345 generated loops, i.e., in the case of a strip-mined loop, in
346 which case there is no original loop: in that case just use
348 (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
349 (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
350 (clast_name_to_gcc): Accept params to be NULL.
351 (clast_to_gcc_expression): Take an extra parameter for the type.
352 Convert to that type all the expressions built by this function.
353 (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
354 (graphite_translate_clast_equation): Compute the type of the
355 clast_equation before translating its LHS and RHS.
356 (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
357 (graphite_create_new_loop): Compute the type of the induction
358 variable before translating the lower and upper bounds and before
359 creating the induction variable.
360 (rename_variables_from_edge, rename_phis_end_scop): New.
361 (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
362 (sese_add_exit_phis_edge): Do not use integer_zero_node.
363 (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
364 compute_cloog_iv_types): New.
365 (gloog): Call compute_cloog_iv_types before starting the
366 translation of the clast.
368 * graphite.h (struct graphite_bb): New field cloog_iv_types.
369 (GBB_CLOOG_IV_TYPES): New.
370 (debug_ivtype_map): Declared.
371 (oldiv_for_loop): New.
373 2008-12-10 Tobias Grosser <grosser@fim.uni-passau.de>
376 * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
377 (param_index): Assert if parameter is not know after parameter
379 (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
380 (find_scop_parameters): Mark, that we have finished parameter
382 (graphite_transform_loops): Move condition detection before parameter
384 * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
386 2008-12-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
389 * emutls.c (__emutls_get_address): Make sure offset is really zero
390 before initializing the object's offset.
392 2008-12-11 Jakub Jelinek <jakub@redhat.com>
395 * gimplify.c (gimplify_init_constructor): Don't force constructor
396 into memory if there is just one nonzero element.
398 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
400 Fix testsuite/gfortran.dg/graphite/id-4.f90.
401 * graphite.c (scan_tree_for_params): Do not compute the multiplicand
404 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
406 * graphite.c (build_scops_1): Initialize open_scop.exit
409 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
410 Jan Sjodin <jan.sjodin@amd.com>
411 Harsha Jagasia <harsha.jagasia@amd.com>
423 * tree-phinodes.c (remove_phi_nodes): New, extracted from...
424 * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
426 * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
427 * Makefile.in (graphite.o): Depend on value-prof.h.
428 (graphite.o-warn): Removed -Wno-error.
429 * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
430 to be a NULL pointer. Call update_stmt. Return the newly created
431 cannonical induction variable.
433 * graphite.h (debug_rename_map): Declared. Fix some comments.
435 * graphite.c: Reimplement the code generation from graphite to gimple.
436 Include value-prof.h.
437 (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
438 (get_old_iv_from_ssa_name): Removed.
439 (graphite_stmt_p): New.
440 (new_graphite_bb): Test for useful statements before building a
441 graphite statement for the basic block.
442 (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
443 in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason.
444 (recompute_all_dominators, graphite_verify,
445 nb_reductions_in_loop, graphite_loop_normal_form): New.
446 (scop_record_loop): Call graphite_loop_normal_form.
447 (build_scop_loop_nests): Iterate over all the blocks of the
448 function instead of relying on the incomplete information from
449 SCOP_BBS. Return the success of the operation.
450 (find_params_in_bb): Use the data from GBB_DATA_REFS.
451 (add_bb_domains): Removed.
452 (build_loop_iteration_domains): Don't call add_bb_domains.
453 Add the iteration domain only to the basic blocks that have been
454 translated to graphite.
455 (build_scop_conditions_1): Add constraints only if the basic
456 block have been translated to graphite.
457 (build_scop_data_accesses): Completely disabled until data
458 dependence is correctly implemented.
459 (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
460 (remove_all_edges_1, remove_all_edges): Removed.
461 (get_new_name_from_old_name): New.
462 (graphite_rename_variables_in_stmt): Renamed.
463 rename_variables_in_stmt. Call get_new_name_from_old_name.
464 Use replace_exp and update_stmt.
465 (is_old_iv): Renamed is_iv.
466 (expand_scalar_variables_stmt): Extra parameter for renaming map.
467 Use replace_exp and update_stmt.
468 (expand_scalar_variables_expr): Same. Use the map to get the
469 new names for the renaming of induction variables and for the
470 renaming of variables after a basic block has been copied.
471 (expand_scalar_variables): Same.
472 (graphite_rename_variables): Renamed rename_variables.
473 (move_phi_nodes): Removed.
474 (get_false_edge_from_guard_bb): New.
475 (build_iv_mapping): Do not insert the induction variable of a
476 loop in the renaming iv map if the basic block does not belong
478 (register_old_new_names, graphite_copy_stmts_from_block,
479 copy_bb_and_scalar_dependences): New.
480 (translate_clast): Heavily reimplemented: copy basic blocks,
481 do not move them. Finally, in call cleanup_tree_cfg in gloog.
482 At each translation step call graphite_verify ensuring the
483 consistency of the SSA, loops and dominators information.
484 (collect_virtual_phis, find_vdef_for_var_in_bb,
485 find_vdef_for_var_1, find_vdef_for_var,
486 patch_phis_for_virtual_defs): Removed huge hack.
487 (mark_old_loops, remove_dead_loops, skip_phi_defs,
488 collect_scop_exit_phi_args, patch_scop_exit_phi_args,
489 gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed.
490 (remove_sese_region, ifsese, if_region_entry, if_region_exit,
491 if_region_get_condition_block, if_region_set_false_region,
492 create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
493 sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
494 sese_add_exit_phis_edge, sese_add_exit_phis_var,
495 rewrite_into_sese_closed_ssa): New.
496 (gloog): Remove dead code. Early return if code cannot be
497 generated. Call cleanup_tree_cfg once the scop has been code
499 (graphite_trans_scop_block, graphite_trans_loop_block): Do not
500 block loops with less than two loops.
501 (graphite_apply_transformations): Remove the call to
502 scop_remove_ignoreable_gbbs.
503 (limit_scops): When build_scop_loop_nests fails, continue on next
504 scop. Fix open_scop.entry.
505 (graphite_transform_loops): Call recompute_all_dominators: force the
506 recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
507 Call initialize_original_copy_tables and free_original_copy_tables
508 to be able to copy basic blocks during code generation.
509 When build_scop_loop_nests fails, continue on next scop.
510 (value_clast): New union.
511 (clast_to_gcc_expression): Fix type cast warning.
513 2008-12-10 Richard Guenther <rguenther@suse.de>
515 PR tree-optimization/36792
516 * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
519 2008-12-10 Daniel Berlin <dberlin@dberlin.org>
521 PR tree-optimization/36792
522 * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.
524 2008-12-10 Alexandre Oliva <aoliva@redhat.com>
527 * dwarf2out.c (saved_do_cfi_asm): New.
528 (dwarf2out_do_frame): Take it into account.
529 (dwarf2out_d_cfi_asm): Likewise. Set it when appropriate.
531 2008-12-10 Alexandre Oliva <aoliva@redhat.com>
534 * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
535 variables initialized from SRAed bit fields.
537 2008-12-10 Martin Guy <martinwguy@yahoo.it>
540 * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
541 result will be in an FPU register.
543 2008-12-10 Eric Botcazou <ebotcazou@adacore.com>
547 * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
548 on the associated SYMBOL_REF_DECL node, if any.
550 2008-12-09 David Daney <ddaney@caviumnetworks.com>
552 * config/mips/sync.md (sync_<optab>_12): Replace
553 MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
554 (sync_old_<optab>_12): Remove third paramater to
555 MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
556 with MIPS_SYNC_OLD_OP_12_AND.
557 (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
558 with MIPS_SYNC_NEW_OP_12_AND.
559 (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
560 MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
561 (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
562 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
563 MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
564 (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
565 MIPS_SYNC_NEW_OP_12_XOR.
566 * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
567 MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
568 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
569 MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
570 MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
571 to implement new __sync_nand semantics.
572 (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
573 remove third parameter.
574 (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
575 MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
576 (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
577 (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
578 (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
579 (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
580 (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
581 (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
583 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
585 * graphite.c (graphite_transform_loops): Always call find_transform ()
586 in ENABLE_CHECKING. So we test these code paths, even if we do not
589 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
591 * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
593 2008-12-09 Jakub Jelinek <jakub@redhat.com>
596 * function.h (struct function): Add always_inline_functions_inlined.
597 * ipa-inline.c (cgraph_early_inlining): Set it to true.
598 * tree-optimize.c (execute_fixup_cfg): Likewise.
599 * builtins.c (avoid_folding_inline_builtin): New function.
600 (fold_call_expr): Don't optimize always_inline builtins before
602 (fold_call_stmt): Likewise.
603 (fold_builtin_call_array): Likewise. Don't call
604 fold_builtin_varargs for BUILT_IN_MD builtins.
606 PR tree-optimization/37416
607 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
609 2008-12-09 Janis Johnson <janis187@us.ibm.com>
611 * doc/sourcebuild.texi (Test Directives): Fix formatting.
613 2008-12-09 Vladimir Makarov <vmakarov@redhat.com>
615 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
617 * doc/invoke.texi (-fira-region): Describe new option.
618 (-fira-algorithm): Change the values.
620 * ira-conflicts.c (build_conflict_bit_table,
621 build_allocno_conflicts): Use ira_reg_classes_intersect_p.
622 (ira_build_conflicts): Use flag flag_ira_region instead of
623 flag_ira_algorithm. Prohibit usage of callee-saved likely spilled
624 base registers for allocnos crossing calls.
626 * flags.h (enum ira_algorithm): Redefine.
627 (enum ira_region): New.
628 (flag_ira_region): New.
630 * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
631 instead of flag_ira_algorithm.
633 * toplev.c (flag_ira_algorithm): Change the initial value.
634 (flag_ira_region): New.
636 * ira-int.h (ira_reg_classes_intersect_p,
637 ira_reg_class_super_classes): New.
639 * ira-color.c (update_copy_costs): Use
640 ira_reg_classes_intersect_p. Use right class to find hard reg index.
641 (update_conflict_hard_regno_costs): Ditto. Add a new parameter.
642 (assign_hard_reg): Ditto. Pass additional argument to
643 update_conflict_hard_regno_costs. Do not uncoalesce for priority
645 (allocno_priorities, setup_allocno_priorities,
646 allocno_priority_compare_func): Move before color_allocnos.
647 (color_allocnos): Add priority coloring. Use flag flag_ira_region
648 instead of flag_ira_algorithm.
649 (move_spill_restore): Check classes of the same reg allocno from
651 (update_curr_costs): Use ira_reg_classes_intersect_p.
652 (ira_reassign_conflict_allocnos): Ditto.
654 * opts.c (decode_options): Always set up flag_ira. Set up
655 flag_ira_algorithm. Warn CB can not be used for architecture.
656 (common_handle_option): Modify code for -fira-algorithm. Add code
657 to process -fira-region.
659 * ira-lives.c (update_allocno_pressure_excess_length): Process
661 (set_allocno_live, clear_allocno_live, mark_reg_live,
662 mark_reg_dead, process_bb_node_lives): Ditto.
664 * ira-emit.c (ira_emit): Fix insn codes.
666 * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
667 instead of flag_ira_algorithm.
668 (allocno_range_compare_func): Ignore classes for priority coloring.
669 (setup_min_max_conflict_allocno_ids): Ditto.
670 (ira_flattening): Use ira_reg_classes_intersect_p.
672 * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT.
674 * common.opt (fira-algorithm): Modify.
677 * ira.c (setup_class_hard_regs): Initialize.
678 (setup_cover_and_important_classes): Modify code setting class
679 related info for priority coloring.
680 (setup_class_translate): Ditto.
681 (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
682 (setup_reg_class_intersect_union): Rename to
683 setup_reg_class_relations. Add code for setting up new variables.
684 (find_reg_class_closure): Do not check targetm.ira_cover_classes.
685 (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
687 * ira-costs.c (common_classes): New.
688 (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm.
689 (find_allocno_class_costs): Ditto. Use common_classes. Translate
691 (ira_costs): Allocate/deallocate common_classes.
693 * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
694 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
697 * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
698 smallest_mode_for_size.
700 2008-12-10 Ben Elliston <bje@au.ibm.com>
702 * config/rs6000/linux-unwind.h (get_regs): Constify casts.
704 2008-12-09 Jan Hubicka <jh@suse.cz>
706 * predict.c (estimate_bb_frequencies): Fix test if profile is present.
708 2008-12-09 Jakub Jelinek <jakub@redhat.com>
710 PR tree-optimization/35468
711 * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
714 2008-12-09 Richard Guenther <rguenther@suse.de>
716 PR tree-optimization/38445
717 * tree-ssa-structalias.c (emit_pointer_definition): Only visit
719 (emit_alias_warning): Adjust.
721 2008-12-09 Andrew Haley <aph@redhat.com>
723 * fixed-value.c (do_fixed_add): Add comment.
724 * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
725 * builtins.c (fold_builtin_sqrt): Likewise.
727 2008-12-09 Kai Tietz <kai.tietz@onevision.com>
730 * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
732 * calls.c (nitialize_argument_information): Add fntype argument
733 and use it for calls.promote_function_args.
734 (expand_call): Pass fntype to aggregate_value_p if no fndecl
735 available and pass additional fntype to
736 initialize_argument_information.
737 * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
738 to get function abi type.
739 (init_cumulative_args): Use for abi kind detection fntype, when no
742 2008-12-09 Andreas Krebbel <krebbel1@de.ibm.com>
744 * config/s390/s390.md (movti, movdi_64, movdi_31,
745 *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
746 *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
748 (Integer->BLKmode splitter): Removed.
750 2008-12-08 Uros Bizjak <ubizjak@gmail.com>
752 * config/alpha/alpha.c (alpha_set_memflags): Process memory
753 references in full insn sequence.
755 2008-12-09 Jason Merrill <jason@redhat.com>
757 * gimplify.c (gimplify_init_constructor): Revert to using < rather
758 than <= for sparseness test.
761 * gimplify.c (gimplify_init_constructor): Don't write out a static
762 copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
765 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
768 Fix testsuite/gfortran.dg/graphite/id-3.f90.
769 * graphite.c (scopdet_basic_block_info): Fix bug that found some
770 regions more than once.
772 2008-12-09 Ben Elliston <bje@au.ibm.com>
774 * emutls.c (__emutls_get_address): Prototype.
775 (__emutls_register_common): Likewise.
777 * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
779 2008-12-09 Ben Elliston <bje@au.ibm.com>
781 * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
783 2008-12-08 Steve Ellcey <sje@cup.hp.com>
785 * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
786 (nonlocal_goto_receiver): New instruction.
788 2008-12-08 Jakub Jelinek <jakub@redhat.com>
791 * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
794 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
795 VIEW_CONVERT_EXPR the same as CASE_CONVERT.
797 2008-12-08 Richard Henderson <rth@redhat.com>
800 * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
801 (SET_TYPE_MODE): New.
802 * c-decl.c (parser_xref_tag): Use it.
803 (finish_enum): Likewise.
804 * tree.c (build_pointer_type_for_mode): Likewise.
805 (build_reference_type_for_mode, build_index_type): Likewise.
806 (build_range_type, make_vector_type): Likewise.
807 (build_common_tree_nodes_2): Likewise.
808 * stor-layout.c (compute_record_mode): Likewise.
809 (finalize_type_size, layout_type, make_fract_type): Likewise.
810 (make_accum_type, initialize_sizetypes): Likewise.
811 (vector_type_mode): New.
812 * function.c (allocate_struct_function): Call
813 invoke_set_current_function_hook before querying anything else.
815 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
817 2008-12-08 Luis Machado <luisgpm@br.ibm.com>
819 * alias.c (find_base_term): Synch LO_SUM handling with what
820 find_base_value does.
822 2008-12-08 Andrew Haley <aph@redhat.com>
823 Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
825 * gimple.h (gimple_build_try): Fix declaration.
827 * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
828 * fixed-value.c (do_fixed_add): Likewise.
829 * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
831 2008-12-08 Jakub Jelinek <jakub@redhat.com>
834 * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
835 on parallel and task contexts.
837 2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
839 * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
841 2008-12-07 Richard Guenther <rguenther@suse.de>
843 PR tree-optimization/38405
844 * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
845 not sign-extend truth values.
847 2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
849 * tree-sra.c (scalarize_use): Create another temporary with the proper
850 type for signed types in the use_all && !is_output bitfield case.
852 2008-12-06 Steven Bosscher <steven@gcc.gnu.org>
854 PR rtl-optimization/36365
855 * df-core.c (df_worklist_dataflow_overeager): Remove.
856 (df_worklist_dataflow): Don't call it, use double-queue only.
857 * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
859 2008-12-06 Jakub Jelinek <jakub@redhat.com>
862 * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
863 gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
865 2008-12-07 Ben Elliston <bje@au.ibm.com>
867 * gthr-single.h (__gthread_once): Adjust prototype to match all
868 other gthreads models.
870 2008-12-06 Jakub Jelinek <jakub@redhat.com>
872 * config/i386/i386.c (override_options): Use CPU_AMDFAM10
873 instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
876 * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
877 operands to mult_type if it isn't narrower than op0's type.
879 2008-12-06 Jan Hubicka <jh@suse.cz>
880 Jakub Jelinek <jakub@redhat.com>
882 PR tree-optimization/38074
883 * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
885 * predict.c (combine_predictions_for_bb): Ignore predictor predicting
886 in both dirrection for first match heuristics.
887 (tree_bb_level_predictions): Disable noreturn heuristic when there
888 is no returning path.
890 2008-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
892 PR rtl-optimization/38272
893 * reload1.c (choose_reload_regs): Keep reload_spill_index correct
896 2008-12-05 Jakub Jelinek <jakub@redhat.com>
899 * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
900 (pp_c_expression): Likewise.
902 2008-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
905 * c-parser.c (struct c_token): Make pragma_kind 8 bits.
907 2008-12-05 Jakub Jelinek <jakub@redhat.com>
910 * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
911 arguments to HOST_WIDE_INT. If type has different signedness
912 than unsignedp or different precision from bitsize, create
913 the right type for BIT_FIELD_REF and cast to type.
914 (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
917 2008-03-05 Richard Guenther <rguenther@suse.de>
919 * fold-const.c (fold_truthop): Remove code generating
920 BIT_FIELD_REFs of structure bases.
921 (fold_binary): Likewise.
922 (make_bit_field_ref): Remove.
923 (optimize_bit_field_compare): Remove.
924 (all_ones_mask_p): Remove.
926 2008-12-05 Jakub Jelinek <jakub@redhat.com>
928 * tree-sra.c (sra_explode_bitfield_assignment): Always
929 call unsigned_type_for, if the precision is higher than
930 needed, call build_nonstandard_integer_type.
933 * function.c (assign_parm_find_stack_rtl): If promoted_mode
934 is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
938 * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
939 only if internal_arg_pointer is a non-virtual pseudo.
941 2008-12-05 Joseph Myers <joseph@codesourcery.com>
943 * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
944 TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
945 * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
947 2008-12-05 Jakub Jelinek <jakub@redhat.com>
949 PR tree-optimization/37716
950 * gimplify.c (gimplify_expr): Allow COND_EXPR if
951 gimplify_ctxp->allow_rhs_cond_expr.
953 2008-12-05 Uros Bizjak <ubizjak@gmail.com>
955 * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
956 VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
958 (alpha_emit_conditional_branch): Do not generate direct branch
959 for UNORDERED comparisons.
961 2008-12-05 Andreas Schwab <schwab@suse.de>
963 * config/rs6000/linux-unwind.h (frob_update_context): Check for
966 2008-12-05 Jakub Jelinek <jakub@redhat.com>
969 * fold-const.c (fold_checksum_tree): Change buf type to union
972 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
975 * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
977 (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
979 2008-12-05 Ben Elliston <bje@au.ibm.com>
981 * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
983 (c_parser_initelt): Initialise des_loc and ellipsis_loc.
985 2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
986 Gary Funck <gary@intrepid.com>
988 * cse.c (lookup_as_function): Delete mode frobbing code.
989 (equiv_constant): Re-implement it there for SUBREGs.
991 2008-12-04 Richard Guenther <rguenther@suse.de>
994 * Makefile.in (tree-ssa-alias-warnings.o): Remove.
995 (tree-ssa-structalias.o): Remove errors.h dependency.
996 (tree-ssa-reassoc.o): Likewise.
997 * tree-ssa-reassoc.c: Do not include errors.h.
998 * tree-ssa-alias-warnings.c: Remove.
999 * tree-ssa-alias.c (compute_may_aliases): Remove call to
1000 strict_aliasing_warning_backend.
1001 * tree-ssa-structalias.c (emit_pointer_definition): New function.
1002 (emit_alias_warning): Likewise.
1003 (set_uids_in_ptset): Warn for clear cases of type-punning.
1004 * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
1007 2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
1009 * cse.c (equiv_constant): Fix pasto.
1011 2008-12-04 Nick Clifton <nickc@redhat.com>
1013 * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
1014 * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
1015 formatting of quotes.
1017 2008-12-04 Jakub Jelinek <jakub@redhat.com>
1020 * fold-const.c (fold_checksum_tree): Allow modification of
1023 2008-12-03 Jakub Jelinek <jakub@redhat.com>
1026 * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
1027 have the right number of arguments.
1029 2008-12-03 Richard Guenther <rguenther@suse.de>
1032 * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
1035 2008-12-03 Tomas Bily <tbily@suse.cz>
1038 * tree-loop-distribution.c (build_size_arg): New function.
1039 (generate_memset_zero): Checks if dr_analyze_innermost succeed.
1040 Reorganized generating of stmts.
1041 * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
1042 * tree-data-ref.c (dr_analyze_innermost): Returns bool.
1043 Indicate if analysis succeed.
1044 * tree-data-ref.h (dr_analyze_innermost): Returns bool.
1045 * tree-predcom.c (valid_initializer_p, find_looparound_phi):
1046 Uses new definition of dr_analyze_innermost.
1048 2008-12-03 Ben Elliston <bje@au.ibm.com>
1050 * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
1052 2008-12-03 Jakub Jelinek <jakub@redhat.com>
1054 PR tree-optimization/37716
1055 * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
1056 all the needed operations as trees and gimplify_assign it to dst.
1059 * configure.ac (gcc_cv_readelf): Look for readelf.
1060 (gcc_cv_as_cfi_advance_working): Check for working
1061 cfi advances with code alignment factor > 1.
1062 (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
1063 don't work properly.
1064 * configure: Regenerated.
1066 2008-12-03 Eric Botcazou <ebotcazou@adacore.com>
1067 Jakub Jelinek <jakub@redhat.com>
1068 Andrew Pinski <andrew_pinski@playstation.sony.com>
1070 PR rtl-optimization/38281
1071 * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
1072 set it to NULL_RTX afterwards.
1074 * emit-rtl.c (set_insn_deleted): Fix formatting.
1076 2008-12-02 Richard Sandiford <rdsandiford@googlemail.com>
1078 * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
1080 * config/mips/mips.md (IMOVE32): New mode iterator.
1081 (movsi): Generalize with IMOVE32.
1082 (*movsi_internal): Likewise.
1083 (*mov<mode>_mips16): Likewise.
1086 2008-12-02 Nathan Sidwell <nathan@codesourcery.com>
1087 Maxim Kuvyrkov <maxim@codesourcery.com>
1089 * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
1090 PC-relative addressing when compiling for uclinux PIC.
1091 (__cmpdf_internal, __cmpsf_internal): Hide.
1092 (__cmpdf, __cmpsf): Use PIC call sequence.
1094 2008-12-02 Andreas Tobler <a.tobler@schweiz.org>
1095 Jack Howarth <howarth@bromo.med.uc.edu>
1097 * config/i386/t-darwin64: Add m32 multilib support.
1099 2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
1101 * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
1103 2008-12-02 Jakub Jelinek <jakub@redhat.com>
1106 * builtins.c (fold_builtin_memory_op): Convert len to sizetype
1107 before using it in POINTER_PLUS_EXPR.
1109 2008-12-02 Richard Guenther <rguenther@suse.de>
1111 PR tree-optimization/38359
1112 * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
1115 2008-12-02 Martin Jambor <mjambor@suse.cz>
1118 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
1120 (forward_propagate_addr_into_variable_array_index): Check that the
1121 offset is not computed from a MULT_EXPR, use is_gimple_assign rather
1122 than the gimple code directly.
1124 2008-12-02 Ben Elliston <bje@au.ibm.com>
1126 * config/spu/float_disf.c (__floatdisf): Prototype.
1127 * config/spu/float_unsdisf.c (__float_undisf): Likewise.
1128 * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
1129 * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
1131 2008-12-02 DJ Delorie <dj@redhat.com>
1133 * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
1134 (DWARF_CIE_DATA_ALIGNMENT): Define.
1136 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
1137 Invert add/sub for INCOMING_FRAME_SP_OFFSET.
1138 (xstormy16_expand_prologue): Likewise.
1139 (xstormy16_expand_builtin_va_start): Likewise.
1140 (xstormy16_gimplify_va_arg_expr): Likewise.
1142 2008-12-02 Jakub Jelinek <jakub@redhat.com>
1145 * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
1146 potentially returned from folding memcpy.
1147 (expand_builtin_stpcpy_args): Similarly for folding strcpy.
1148 (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
1150 2008-12-02 Danny Smith <dannysmith@users.sourceforge.net>
1153 * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
1154 decoration of function RTL names here on Ada language.
1156 2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
1158 PR rtl-optimization/38280
1159 * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
1160 ira_rebuild_regno_allocno_list): New functions.
1161 (regno_allocnos): New static variable.
1162 (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
1163 Call ira_rebuild_regno_allocno_list.
1165 2008-12-01 David Daney <ddaney@caviumnetworks.com>
1166 Adam Nemet <anemet@caviumnetworks.com>
1168 * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
1169 LINUX_DRIVER_SELF_SPECS.
1171 2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
1173 PR rtl-optimization/37514
1174 * reload1.c (reload_as_needed): Invalidate reg_last_reload
1175 from previous insns.
1177 2008-12-01 Jakub Jelinek <jakub@redhat.com>
1180 * c-omp.c (c_finish_omp_for): Only transform pointer
1181 ++ or -- into MODIFY_EXPR if second argument is non-NULL.
1183 PR rtl-optimization/38245
1184 * tree-vrp.c (abs_extent_range): New function.
1185 (extract_range_from_binary_expr): Compute range
1186 for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
1187 or includes zero or if vr1 is VR_RANGE and op0 has some
1190 2008-12-01 Uros Bizjak <ubizjak@gmail.com>
1193 * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
1194 case by calculating ~(new_reg & val) instead of (~new_reg & val).
1195 * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
1196 to (not:I48MODE (and:I48MODE (...))).
1197 (sync_old_nand<mode>): Ditto.
1198 (sync_new_nand<mode>): Ditto.
1200 2008-12-01 Nick Clifton <nickc@redhat.com>
1202 * config/stormy16/stormy16.md (CARRY_REG): New constant.
1203 Replace uses of the "y" register class with direct references to
1204 the CARRY_REG register.
1205 * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
1206 register with clobbers of the carry register.
1207 (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
1208 (xstormy16_split_cbranch): Remove redundant carry parameter.
1209 (xstormy16_expand_arith): Likewise.
1210 * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
1211 (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1212 REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
1213 (CARRY_REGNUM): Define.
1214 * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
1216 (xstormy16_expand_arith): Likewise.
1218 2008-12-01 Chen Liqin <liqin.chen@sunplusct.com>
1220 * config/score/score.h (IRA_COVER_CLASSES): Define.
1222 2008-11-30 Eric Botcazou <ebotcazou@adacore.com>
1225 * config/sparc/sparc.md (divsi3 expander): Remove constraints.
1226 (divsi3_sp32): Add new alternative with 'K' for operand #2.
1227 (cmp_sdiv_cc_set): Factor common string.
1228 (udivsi3_sp32): Add new alternative with 'K' for operand #2.
1230 (cmp_udiv_cc_set): Factor common string.
1232 2008-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1235 * varasm.c (emutls_finish): Fix common registration.
1237 2008-11-29 Jakub Jelinek <jakub@redhat.com>
1240 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
1242 2008-11-29 David Edelsohn <edelsohn@gnu.org>
1244 * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
1245 operand wrapped in NOT. Emit NAND as (ior (not X) (not Y)).
1246 (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
1247 * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
1248 Call rs6000_emit_sync with CODE=NOT and unmodified operands.
1249 Ignore sub-word case for now.
1250 (sync_nand<mode>_internal): Represent NAND in RTL.
1251 (sync_old_nand<mode): Same.
1252 (sync_old_name<mode>_internal): Same.
1253 (sync_new_nand<mode>): Same.
1254 (sync_new_nand<mode>_internal): Same.
1255 (sync_boolcshort_internal): Expect NAND.
1257 2008-11-28 Richard Guenther <rguenther@suse.de>
1259 PR tree-optimization/37955
1260 PR tree-optimization/37742
1261 * tree-vect-transform.c (vectorizable_store): Remove assert for
1263 (vectorizable_load): Likewise.
1265 2008-11-27 Richard Guenther <rguenther@suse.de>
1267 * tree-ssa-structalias.c (intra_create_variable_infos): Make
1268 a constraint for the static chain parameter.
1270 2008-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
1272 * config/bfin/bfin.opt (micplb): New option.
1273 * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
1274 * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
1275 ENABLE_WA_INDIRECT_CALLS): New macros.
1276 * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
1278 (indirect_call_p): New function.
1279 (workaround_speculation): Handle anomaly 05-00-0426 when
1280 ENABLE_WA_INDIRECT_CALLS is true.
1281 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1282 __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
1283 * doc/invoke.texi (Blackfin Options): Document -micplb.
1285 2008-11-26 DJ Delorie <dj@redhat.com>
1287 * config/m32c/mov.md ("extendhipsi2"): New.
1289 * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
1291 * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
1292 * config/m32c/mov.md (zero_extendqihi2): Likewise.
1294 2008-11-26 Adam Nemet <anemet@caviumnetworks.com>
1296 * config/mips/mips.md (clear_hazard): Rename to
1297 clear_hazard_<mode>. Use mode-specific addition.
1298 (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
1299 or gen_clear_hazard_di depending on the size of Pmode.
1301 2008-11-26 DJ Delorie <dj@redhat.com>
1303 * configure.ac: Test m32c-elf-gas for .loc.
1304 * configure: Likewise.
1306 2008-11-26 Janis Johnson <janis187@us.ibm.com>
1309 * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
1312 2008-11-26 Uros Bizjak <ubizjak@gmail.com>
1314 * config/i386/sync.md (memory_barrier_nosse): Disable also for
1315 TARGET_64BIT. Remove special asm template for TARGET_64BIT case.
1316 (memory_barrier): Do not generate memory_barrier_nosse instruction
1318 * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
1320 2008-11-26 Fredrik Unger <fred@tree.se>
1322 * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
1323 function name from __floatundisf.
1324 * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
1327 2008-11-25 Daniel Berlin <dberlin@dberlin.org>
1328 Richard Guenther <rguenther@suse.de>
1330 PR tree-optimization/37869
1331 * tree-ssa-structalias.c (struct constraint_graph): Remove
1332 pt_used and number_incoming members.
1333 (build_pred_graph): Do not allocate them.
1334 (condense_visit): Do not use them.
1335 (label_visit): Likewise.
1336 (free_var_substitution_info): Do not free them.
1338 2008-11-25 Vladimir Makarov <vmakarov@redhat.com>
1340 * doc/invoke.texi (ira-max-loops-num): Change semantics.
1342 * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
1344 * ira-color.c (allocno_spill_priority): New function.
1345 (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
1346 Print more info about the spilled allocno.
1347 (push_allocnos_to_stack): Use allocno_spill_priority. Add more
1348 checks on bad spill.
1350 * ira-build.c (loop_node_to_be_removed_p): Remove.
1351 (loop_compare_func, mark_loops_for_removal): New functions.
1352 (remove_uneccesary_loop_nodes_from_loop_t): Use member
1354 (remove_unnecessary_allocnos): Call mark_loops_for_removal.
1356 * ira.c (ira): Don't change flag_ira_algorithm.
1358 * params.def (ira-max-loops-num): Change the value.
1360 2008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com>
1362 * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
1363 Disable unsupported alternative for ColdFire,
1364 add new alternative that ColdFire can handle.
1366 2008-11-25 Eric Botcazou <ebotcazou@adacore.com>
1368 * regrename.c (merge_overlapping_regs): Add registers artificially
1369 defined at the top of the basic block to the set of live ones just
1370 before the first insn.
1372 2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
1373 Joey Ye <joey.ye@intel.com>
1376 * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
1377 false if we need to align the outgoing stack.
1378 (ix86_update_stack_boundary): Check parm_stack_boundary.
1380 2008-11-25 Richard Guenther <rguenther@suse.de>
1384 * tree-ssa-alias.c (struct alias_info): Remove written_vars.
1385 Remove dereferenced_ptrs_store and dereferenced_ptrs_load
1386 in favor of dereferenced_ptrs.
1387 (init_alias_info): Adjust.
1388 (delete_alias_info): Likewise.
1389 (compute_flow_insensitive_aliasing): Properly
1390 include all aliased variables.
1391 (update_alias_info_1): Use dereferenced_ptrs.
1392 (setup_pointers_and_addressables): Likewise.
1393 (get_smt_for): Honor ref-all pointers and pointers with known alias
1395 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
1397 2008-11-25 Uros Bizjak <ubizjak@gmail.com>
1400 * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
1401 (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
1403 2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
1405 * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
1407 2008-11-24 Richard Sandiford <rdsandiford@googlemail.com>
1409 * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
1411 2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
1414 * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
1415 (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
1417 2008-11-24 Uros Bizjak <ubizjak@gmail.com>
1419 * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
1420 UNSPECV_CMPXCHG_[12].
1421 * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
1422 UNSPECV_CMPXCHG_[12].
1425 * config/i386/sync.md (memory_barrier): New expander.
1427 2008-11-24 Jakub Jelinek <jakub@redhat.com>
1430 * dse.c (find_shift_sequence): Optimize extraction from a constant.
1432 2008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1434 * pa.c (function_arg): Revert 2008-10-26 change.
1436 2008-11-23 Helge Deller <deller@gmx.de>
1438 * pa/linux-atomic.c (EBUSY): Define if not _LP64.
1439 (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
1440 succeeded and lws_ret is not equal to oldval.
1442 2008-11-23 Kaz Kojima <kkojima@gcc.gnu.org>
1444 * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
1446 2008-11-22 Andreas Schwab <schwab@suse.de>
1448 * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
1451 2008-11-22 Adam Nemet <anemet@caviumnetworks.com>
1453 * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
1454 Use constant 1 as the operand.
1455 * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
1456 Rename gen_rdhwr to gen_rdhwr_synci_step_si or
1457 gen_rdhwr_synci_step_di depending on the size of Pmode.
1459 2008-11-22 Uros Bizjak <ubizjak@gmail.com>
1462 * config/i386/i386.md (SWI248): New mode iterator.
1463 (SWI32): Remove mode iterator.
1464 (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
1465 popcounthi2 insn patterns. Macroize pattern using SWI248 mode
1466 iterator. Generate popcnt mnemonic without mode extensions
1467 for Darwin x86 targets.
1468 (*popcount<mode>2_cmp): Ditto.
1469 (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
1470 extensions for Darwin x86 targets.
1472 2008-11-22 Eric Botcazou <ebotcazou@adacore.com>
1474 * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
1475 only if HAVE_AS_SPARC_UA_PCREL is defined.
1477 2008-11-22 Richard Sandiford <rdsandiford@googlemail.com>
1479 * ira-costs.c (find_allocno_class_costs): Work out the maximum
1480 allocno_costs value of the classees with the lowest total_costs
1481 value. Use this to set ALLOCNO_COVER_CLASS_COST here...
1482 (setup_allocno_cover_class_and_costs): ...rather than here.
1483 Use the ALLOCNO_COVER_CLASS_COST for all registers in the
1486 2008-11-22 Jakub Jelinek <jakub@redhat.com>
1489 * builtins.c (expand_builtin_apply_args): Emit sequence before
1490 parm_birth_insn instead of after entry_of_function's first insn.
1493 * function.c (assign_parm_remove_parallels): Pass
1494 data->passed_type as third argument to emit_group_store.
1497 * final.c (mark_symbol_refs_as_used): New function.
1498 * output.h (mark_symbol_refs_as_used): New prototype.
1499 * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
1500 (s390_output_pool_entry): Use mark_symbol_refs_as_used.
1501 * config/arm/arm.md (consttable_4): Likewise.
1504 * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
1506 2008-11-21 Jakub Jelinek <jakub@redhat.com>
1509 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
1510 propagate x = &a into *x = b if conversion from b to a's type is
1513 2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
1515 * caller-save.c (insert_one_insn): Take into account REG_INC notes
1516 for the liveness computation of the new insn.
1518 2008-11-21 DJ Delorie <dj@redhat.com>
1520 * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
1521 Moves to/from below100 space (W) can only use r0-r7.
1523 2008-11-21 Paolo Carlini <paolo.carlini@oracle.com>
1526 * doc/invoke.texi (Optimization Options): Fix typo.
1528 2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
1529 Xuepeng Guo <xuepeng.guo@intel.com>
1531 * config.gcc (extra_headers): For x86 and x86-64, remove
1532 gmmintrin.h, add immintrin.h and avxintrin.h.
1534 * config/i386/gmmintrin.h: Renamed to ...
1535 * config/i386/avxintrin.h: This. Issue an error if
1536 _IMMINTRIN_H_INCLUDED is undedined.
1538 * config/i386/immintrin.h: New.
1540 2008-11-21 Jakub Jelinek <jakub@redhat.com>
1543 * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
1544 mode of PLUS, not mode of the eliminated register.
1546 2008-11-21 Uros Bizjak <ubizjak@gmail.com>
1548 * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
1549 * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
1550 (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
1551 (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
1552 (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
1553 (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
1554 (*nand<mode>3): Rename to *andnot<mode>3.
1555 (*nandtf3): rename to *andnottf3.
1556 * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
1557 Use CODE_FOR_mmx_andnotv2si3.
1558 [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
1559 [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
1560 [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
1561 [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
1562 [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
1564 2008-11-21 Uros Bizjak <ubizjak@gmail.com>
1567 * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
1568 case by calculating ~(new_reg & val) instead of (~new_reg & val).
1569 * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
1570 to (not:IMODE (and:IMODE (...))).
1571 (sync_old_nand<mode>): Ditto.
1572 (sync_new_nand<mode>): Ditto.
1574 2008-11-20 Joseph Myers <joseph@codesourcery.com>
1576 * config/arm/thumb2.md (thumb2_casesi_internal,
1577 thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
1579 2008-11-20 Andreas Krebbel <krebbel1@de.ibm.com>
1581 * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
1582 nand to the changed 4.4 semantic.
1584 2008-11-20 Jakub Jelinek <jakub@redhat.com>
1587 * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
1588 (fold_builtin_memory_op): Handle even the case where just one
1589 of src and dest is an address of a var decl component, using
1590 TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant
1591 and readonly_data_expr src check.
1592 * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
1595 PR rtl-optimization/36998
1596 * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
1597 arguments. Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
1598 (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
1599 stack_adjust_offset callers.
1600 (dwarf2out_stack_adjust): Likewise. Handle insns in annulled
1602 (compute_barrier_args_size): Handle insns in annulled branches
1605 2008-11-20 Uros Bizjak <ubizjak@gmail.com>
1608 * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
1609 Handle cases when integer argument crosses argument register boundary.
1611 2008-11-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1614 * config.gcc (i[34567]86-*-solaris2*): Don't include
1615 i386/t-crtstuff here.
1616 Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
1617 * config/i386/t-sol2: Move to libgcc/config/i386.
1619 2008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
1622 * tlink.c: Include "libiberty.h".
1623 (initial_cwd): Change type into char *.
1624 (tlink_init): Call getpwd instead of getcwd.
1626 2008-11-19 Zdenek Dvorak <ook@ucw.cz>
1628 PR rtl-optimization/32283
1629 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
1630 of the induction variable to decide whether it may wrap.
1631 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
1632 initialization of the bound before the loop.
1633 * simplify-rtx.c (simplify_binary_operation_1): Add two
1634 simplifications regarding AND.
1635 (simplify_plus_minus): Only fail if no simplification is possible.
1636 * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
1638 2008-11-20 Jakub Jelinek <jakub@redhat.com>
1641 * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
1642 checking until GIMPLE lowering.
1643 * gimple-low.c (check_call_args): New function.
1644 (lower_stmt) <case GIMPLE_CALL>: Call it.
1646 2008-11-19 Adam Nemet <anemet@caviumnetworks.com>
1648 * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
1649 with the same type as the first operand of the AND expression.
1651 2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
1654 * ira-int.h (struct ira_loop_tree_node): New member
1655 entered_from_non_parent_p.
1657 * ira-color.c (print_loop_title): Print loop bbs.
1659 * ira-emit.c (entered_from_non_parent_p,
1660 setup_entered_from_non_parent_p): New functions.
1661 (not_modified_p): Rename to store_can_be_removed_p. Check there
1663 (generate_edge_moves): Use store_can_be_removed_p instead of
1665 (ira_emit): Call setup_entered_from_non_parent_p.
1667 * ira-build.c (copy_info_to_removed_store_destinations):
1668 Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
1669 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
1670 (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
1671 update all accumulated attributes.
1673 2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
1676 * ira-int.h (ira_copy_allocno_live_range_list,
1677 ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
1678 ira_finish_allocno_live_range_list): New prototypes.
1679 (ira_allocno_live_ranges_intersect_p,
1680 ira_pseudo_live_ranges_intersect_p): Remove.
1682 * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
1683 ira_pseudo_live_ranges_intersect_p): Rename to
1684 allocnos_have_intersected_live_ranges_p and
1685 pseudos_have_intersected_live_ranges_p. Move them from here to ...
1687 * ira-color.c: ... here
1688 (coalesced_allocno_conflict_p): Use
1689 allocnos_have_intersected_live_ranges_p.
1690 (coalesced_allocnos_living_at_program_points,
1691 coalesced_allocnos_live_at_points_p,
1692 set_coalesced_allocnos_live_points): Remove.
1693 (slot_coalesced_allocnos_live_ranges,
1694 slot_coalesced_allocno_live_ranges_intersect_p,
1695 setup_slot_coalesced_allocno_live_ranges): New.
1696 (coalesce_spill_slots): Use ranges of coalesced allocnos.
1697 (ira_sort_regnos_for_alter_reg): Use
1698 allocnos_have_intersected_live_ranges_p.
1699 (ira_reuse_stack_slot): Use
1700 pseudos_have_intersected_live_ranges_p.
1702 * global.c (pseudo_for_reload_consideration_p): Check
1703 flag_ira_share_spill_slots too.
1705 * ira-build.c (copy_allocno_live_range_list): Rename to
1706 ira_copy_allocno_live_range_list. Make it external.
1707 (merge_ranges): Rename to ira_merge_allocno_live_ranges. Make it
1709 (ira_allocno_live_ranges_intersect_p): New.
1710 (ira_finish_allocno_live_range_list): New.
1711 (finish_allocno): Use it.
1712 (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
1713 (copy_info_to_removed_store_destinations): Ditto. Use
1714 ira_copy_allocno_live_range_list.
1715 (ira_flattening): Use ira_merge_allocno_live_ranges.
1717 * ira.c (too_high_register_pressure_p): New function.
1718 (ira): Switch off sharing spill slots if the pressure is too high.
1720 2008-11-19 Richard Guenther <rguenther@suse.de>
1722 * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
1723 non-sizetype offsets if their precision matches that of the pointer.
1724 * expr.c (expand_expr_real_1): Always sign-extend the offset
1725 operand of a POINTER_PLUS_EXPR.
1727 2008-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1729 * config.gcc: Unobsolete mips-sgi-irix[56]*.
1730 (mips-sgi-irix[56]*): No need to use fixproto.
1732 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
1733 Paul Brook <paul@codesourcery.com>
1735 * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
1738 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
1740 * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
1742 2008-11-19 Razya Ladelsky <razya@il.ibm.com>
1745 * tree-parloops.c (loop_parallel_p): NULL vect_dump.
1746 (separate_decls_in_region): Create shared struct even when there
1747 are only reductions.
1749 2008-11-19 Hariharan Sandanagobalane <hariharan@picochip.com>
1751 * config/picochip/picochip.c (headers): Remove an unnecessary
1754 2008-11-19 Andrew Stubbs <ams@codesourcery.com>
1757 * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
1758 * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
1760 * config/m68k/m68k.md: Adjust all conditional branches that use the
1761 carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
1763 2008-11-18 Uros Bizjak <ubizjak@gmail.com>
1766 * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
1767 is a register or zero operand in the correct mode before generating
1768 mtch1 insn or a register operand in the correct mode before generating
1770 (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
1772 2008-11-18 Adam Nemet <anemet@caviumnetworks.com>
1774 * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
1775 (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
1776 mipsisa*-*-elf*. Handle mipsisa64r2*.
1777 * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
1778 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1780 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
1781 * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1783 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. Add mips64r2/mips16.
1784 Fix mips16 if mips64 or mips64r2 are multilib defaults.
1785 * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1788 2008-11-18 Jakub Jelinek <jakub@redhat.com>
1791 * config/i386/i386.md (allocate_stack_worker_32,
1792 allocate_stack_worker_64): Don't use match_dup between input and
1794 (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
1795 * config/i386/i386.c (ix86_expand_prologue): Likewise.
1797 2008-11-18 Kai Tietz <kai.tietz@onevision.com>
1799 * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
1800 is forced when trying to do a symbol link for it.
1802 2008-11-17 Adam Nemet <anemet@caviumnetworks.com>
1804 * expmed.c (extract_bit_field_1): Also use a temporary and
1805 convert_extracted_bit_field when the conversion from ext_mode to
1806 the target mode requires explicit truncation.
1808 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
1810 * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
1812 * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
1813 registers when not optimizing.
1815 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
1817 * config/mips/mips.md (*mul_acc_si): Remove middle alternative
1818 and its associated define_split. Expose the all-d alternative
1819 to the register allocator, but mark it with "?". Mark the first
1820 alternative with "*?*?".
1821 (*mul_sub_si): Likewise.
1822 (*mul_acc_si_r3900): New pattern.
1824 2008-11-17 Jakub Jelinek <jakub@redhat.com>
1827 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
1828 propagating x = &a into *x = b, add a cast if not useless
1829 type conversion or don't optimize if another stmt would be
1832 2008-11-17 Uros Bizjak <ubizjak@gmail.com>
1835 * optabs.c (expand_sync_operation): Properly handle NAND case
1836 by calculating ~(t1 & val) instead of (~t1 & val).
1837 * builtins.c (expand_builtin_sync_operation): Warn for changed
1838 semantics in NAND builtins.
1839 * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand.
1841 * doc/invoke.texi (Warning options): Add Wsync-nand.
1842 * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
1843 __sync_fetch_and_nand builtin operation in the example. Add a note
1844 about changed semantics in GCC 4.4.
1845 [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
1846 operation in the example. Add a note about changed semantics in
1849 2008-11-16 Jan Hubicka <jh@suse.cz>
1851 * cgraph.c (cgraph_function_body_availability): Fix test of externally
1854 2008-11-16 Joshua Kinard <kumba@gentoo.org>
1856 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
1859 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
1862 * config/mips/mips.c (mips_cfun_call_saved_reg_p)
1863 (mips_cfun_might_clobber_call_saved_reg_p): New functions,
1865 (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP
1866 rather than call_really_used_regs when handling $gp.
1868 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
1871 * config/mips/mips.c (machine_function): Update the comment
1872 above global_pointer.
1873 (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
1874 that a function doesn't need a global pointer.
1875 (mips_current_loadgp_style): Update accordingly.
1876 (mips_restore_gp): Likewise.
1877 (mips_output_cplocal): Likewise.
1878 (mips_expand_prologue): Likewise.
1880 2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
1882 * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
1883 parameter. Use DImode for computing the number of registers.
1884 (function_arg): Adjust for above change.
1885 (function_value): Likewise.
1887 2008-11-15 Zdenek Dvorak <ook@ucw.cz>
1889 PR tree-optimization/37950
1890 * tree-flow-inline.h (memory_partition): Return NULL when aliases were
1891 not computed for the current function.
1893 2008-11-15 Jakub Jelinek <jakub@redhat.com>
1896 * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
1897 gpr and other COMPONENT_REFs.
1899 2008-11-15 Richard Guenther <rguenther@suse.de>
1901 PR tree-optimization/38051
1902 * tree-ssa-alias.c (update_alias_info_1): Manually find
1905 2008-11-15 Joshua Kinard <kumba@gentoo.org>
1907 * doc/invoke.texi (-mfix-r10000): Document.
1908 * config/mips/mips.opt (mfix-r10000): New option.
1909 * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
1910 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
1911 (MIPS_COMPARE_AND_SWAP_12): Likewise.
1912 (MIPS_SYNC_OP): Likewise.
1913 (MIPS_SYNC_OP_12): Likewise.
1914 (MIPS_SYNC_OLD_OP_12): Likewise.
1915 (MIPS_SYNC_NEW_OP_12): Likewise.
1916 (MIPS_SYNC_OLD_OP): Likewise.
1917 (MIPS_SYNC_NAND): Likewise.
1918 (MIPS_SYNC_OLD_NAND): Likewise.
1919 (MIPS_SYNC_EXCHANGE): Likewise.
1920 (MIPS_SYNC_EXCHANGE_12): Likewise.
1921 (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
1923 (MIPS_SYNC_NEW_NAND): Likewise.
1924 * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
1925 (mips_init_print_operand_punct): Treat '~' as a punctuation character.
1926 (mips_output_sync_loop): New function.
1927 (mips_override_options): Make -march=r10000 imply -mfix-r10000.
1928 Make -mfix-r10000 require branch-likely instructions.
1929 * config/mips/sync.md (sync_compare_and_swap<mode>): Use
1930 mips_output_sync_loop.
1931 (compare_and_swap_12): Likewise.
1932 (sync_add<mode>): Likewise.
1933 (sync_<optab>_12): Likewise.
1934 (sync_old_<optab>_12): Likewise.
1935 (sync_new_<optab>_12): Likewise.
1936 (sync_nand_12): Likewise.
1937 (sync_old_nand_12): Likewise.
1938 (sync_new_nand_12): Likewise.
1939 (sync_sub<mode>): Likewise.
1940 (sync_old_add<mode>): Likewise.
1941 (sync_old_sub<mode>): Likewise.
1942 (sync_new_add<mode>): Likewise.
1943 (sync_new_sub<mode>): Likewise.
1944 (sync_<optab><mode>): Likewise.
1945 (sync_old_<optab><mode>): Likewise.
1946 (sync_new_<optab><mode>): Likewise.
1947 (sync_nand<mode>): Likewise.
1948 (sync_old_nand<mode>): Likewise.
1949 (sync_new_nand<mode>): Likewise.
1950 (sync_lock_test_and_set<mode>): Likewise.
1951 (test_and_set_12): Likewise.
1953 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
1955 * gcc.c (cc1_options): Fix comment.
1957 2008-11-15 Jakub Jelinek <jakub@redhat.com>
1960 * c-typeck.c (build_unary_op): Don't call get_unwidened. Use
1961 argtype instead of result_type.
1963 2008-11-14 Adam Nemet <anemet@caviumnetworks.com>
1965 * ira-int.h (struct ira_loop_tree_node): Improve comments for
1966 subloop_next/next and subloops/childen fields.
1968 2008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1970 * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
1971 (STANDARD_INCLUDE_DIR): Redefine to "/include".
1972 (LOCAL_INCLUDE_DIR): Undefine.
1973 * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
1975 2008-11-14 Vladimir Makarov <vmakarov@redhat.com>
1977 PR rtl-optimization/37397
1978 * ira-int.h (struct ira_allocno): New member bad_spill_p.
1979 (ALLOCNO_BAD_SPILL_P): New macro.
1981 * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
1983 * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
1984 (create_cap_allocno, propagate_allocno_info,
1985 remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
1986 (update_bad_spill_attribute): New function.
1987 (ira_build): Call it.
1989 * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
1991 2008-11-14 Jakub Jelinek <jakub@redhat.com>
1993 PR tree-optimization/38104
1994 * gimplify.c (gimple_regimplify_operands): Add referenced vars
1995 before calling mark_symbols_for_renaming, not after it.
1997 2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
1999 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
2000 (OVERRIDE_OPTIONS): Likewise.
2002 2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
2003 Andrew Stubbs <ams@codesourcery.com>
2004 Gunnar Von Boehn <gunnar@genesi-usa.com>
2007 * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
2008 the shorter LEA insn over ADD.L where possible.
2010 2008-11-14 Thomas Schwinge <tschwinge@gnu.org>
2012 * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
2013 systems, which are assumend to always provide SSP-support in glibc.
2014 Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
2016 * configure: Regenerate.
2018 2008-11-14 Jakub Jelinek <jakub@redhat.com>
2021 * function.c (gimplify_parameters): For callee copies parameters,
2022 move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
2024 2008-11-13 Thomas Schwinge <tschwinge@gnu.org>
2027 * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
2028 x86 parts into the `i[34567]86-*-linux*' and parts that are
2029 independent of the processor architecture into the `*-*-linux*' cases.
2030 (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
2031 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
2032 (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
2033 [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
2034 * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
2035 (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
2036 (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
2038 2008-11-13 Ruan Beihong <ruanbeihong@gmail.com>
2040 * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
2041 * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
2042 (ls2_idiv): Likewise idiv3.
2043 (ls2_prefetch): New reservation.
2044 * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
2045 * config/mips/mips.md (type): Add imul3nc and idiv3.
2046 (length): Handle idiv3.
2047 (any_mod): New code_iterator.
2048 (u): Handle MOD and UMOD.
2049 (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
2050 (prefetch): Handle TARGET_LOONGSON_2EF.
2052 2008-11-13 Jakub Jelinek <jakub@redhat.com>
2055 * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
2056 (prune_unused_types_walk): Call it for non-perennial local classes.
2057 Set die_mark to 2 if recursing on children. If die_mark is 1 on
2058 entry, just set it to 2 and recurse on children, don't walk attributes
2061 2008-11-13 Martin Michlmayr <tbm@cyrius.com>
2063 * c-common.c (warn_about_parentheses): Add missing whitespace
2066 2008-11-13 Paul Brook <paul@codesourcery.com>
2068 * doc/invoke.texi: Document --fix-cortex-m3.
2069 * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
2070 Cortex-M3 cpu is selected.
2071 (output_move_double): Avoid overlapping base register and first
2072 destination register when fix_cm3_ldrd.
2073 * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
2075 2008-11-13 Jakub Jelinek <jakub@redhat.com>
2078 * gimple.h (gimple_range_check_failed): Remove prototype.
2079 * gimple.c (gimple_check_failed): Don't check GCC_VERSION
2081 (gimple_range_check_failed): Removed.
2083 2008-11-13 Andrew Haley <aph@redhat.com>
2086 * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
2089 2008-11-12 Jakub Jelinek <jakub@redhat.com>
2093 2007-05-07 Mike Stump <mrs@apple.com>
2094 * doc/invoke.texi (Warning Options): Document that -Wempty-body
2095 also checks for and while statements in C++.
2097 2008-11-12 Dodji Seketeli <dodji@redhat.com>
2100 * cgraph.h: New abstract_and_needed member to struct cgraph_node.
2101 * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
2102 - which clones are reachable - as "abstract and needed".
2103 * cgraph.c (cgraph_release_function_body): If a node is
2104 "abstract and needed", do not release its DECL_INITIAL() content
2105 that will be needed to emit debug info.
2107 2008-11-12 Steve Ellcey <sje@cup.hp.com>
2110 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
2111 to set HAVE_GETIPINFO.
2112 * aclocal.m4: Include ../config/unwind_ipinfo.m4.
2113 * configure: Regenerate.
2114 * config.in: Regenerate.
2116 2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
2119 * gcc/config.gcc: Use darwin9.h on darwin10 as well.
2121 2008-11-12 Jakub Jelinek <jakub@redhat.com>
2124 2008-10-21 Jakub Jelinek <jakub@redhat.com>
2125 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2127 2008-11-12 Jason Merrill <jason@redhat.com>
2130 * c-common.c (c_common_signed_or_unsigned_type): Remove C++
2133 2008-11-12 Anatoly Sokolov <aesok@post.ru>
2135 * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
2136 atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
2138 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2139 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2141 2008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2143 * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
2144 packed-stack special handling.
2145 (FRAME_ADDR_RTX): Add definition.
2147 2008-11-12 Jakub Jelinek <jakub@redhat.com>
2150 * fold-const.c (native_encode_string): New function.
2151 (native_encode_expr): Use it for STRING_CST.
2153 2008-11-12 DJ Delorie <dj@redhat.com>
2155 * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
2156 insns if the intermediate value will be used later.
2158 2008-11-12 Andreas Schwab <schwab@suse.de>
2160 * config/m68k/m68k.c (print_operand): Mask off extra extension
2161 bits when writing out the representation of real values.
2163 2008-11-12 Ira Rosen <irar@il.ibm.com>
2165 PR tree-optimization/38079
2166 * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
2169 2008-11-12 Jakub Jelinek <jakub@redhat.com>
2172 * c-pretty-print.c (pp_c_complex_expr): New function.
2173 (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
2176 * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
2177 than INNER and INNER is a constant, forcibly align INNER as much
2180 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
2182 * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
2184 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
2186 PR rtl-optimization/37363
2187 * simplify-rtx.c (simplify_plus_minus): Don't create
2188 (const (minus ...)) expresisons.
2190 2008-11-11 Eric Botcazou <ebotcazou@adacore.com>
2192 * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
2195 2008-11-10 Catherine Moore <clm@codesourcery.com>
2197 * config.gcc (mips64vrel-*-elf*): Include the tm_file
2199 * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
2200 (BASE_DRIVER_SELF_SPECS): Remove.
2201 (DRIVER_SELF_SPECS): New definition.
2202 * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
2203 BASE_DRIVER_SELF_SPECS.
2204 * config/mips/sde.h: Likewise.
2205 * config/mips/iris6.h: Likewise.
2206 * config/mips/vr.h: Likewise.
2207 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
2209 2008-11-10 Vladimir Makarov <vmakarov@redhat.com>
2211 PR rtl-optimizations/37948
2212 * ira-int.h (struct ira_allocno_copy): New member constraint_p.
2213 (ira_create_copy, ira_add_allocno_copy): New parameter.
2215 * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it
2216 to ira_add_allocno_copy.
2217 (process_reg_shuffles, add_insn_allocno_copies): Pass a new
2218 parameter to process_regs_for_copy.
2219 (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
2220 Fix typo in passing second allocno to ira_add_allocno_copy.
2222 * ira-color.c (update_conflict_hard_regno_costs): Use head of
2223 coalesced allocnos list.
2224 (assign_hard_reg): Ditto. Check that assigned allocnos are not in
2226 (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
2227 (add_ira_allocno_to_ordered_bucket): Rename to
2228 add_allocno_to_ordered_bucket.
2229 (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use
2230 head of coalesced allocnos list.
2231 (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
2232 Check that it is aready calculated.
2233 (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
2234 (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
2236 (coalesce_allocnos): Do extended coalescing too.
2238 * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
2239 parameter to ira_add_allocno_copy.
2241 * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
2243 (print_copy): Print copy origination too.
2245 * ira-costs.c (scan_one_insn): Use alloc_pref for load from
2248 2008-11-10 Kaz Kojima <kkojima@gcc.gnu.org>
2250 PR rtl-optimization/37514
2251 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
2252 flag_ira_share_spill_slots to 2 if it's already non-zero.
2253 (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
2254 flag_ira_share_spill_slots is 2.
2256 2008-11-10 Kevin Buettner <kevinb@redhat.com>
2258 * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
2259 (prologue_enter_32): Set FB to SP - 4.
2261 2008-11-10 DJ Delorie <dj@redhat.com>
2263 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
2264 constraint for single-bit-clear in lower byte of HI constant, vs
2265 Imb which just ignores the upper byte.
2266 * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
2267 * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
2268 (iorhi3_16): Check for single bit set, not single bit clear.
2270 2008-11-10 Janis Johnson <janis187@us.ibm.com>
2272 * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
2274 * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
2276 2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
2278 * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
2279 values living in memory and use more precise alignment information.
2281 2008-11-10 Jakub Jelinek <jakub@redhat.com>
2284 * tree-mudflap.c (mf_build_check_statement_for): Split then_block
2285 after __mf_check call if the call must end a bb.
2287 2008-11-10 Ralph Loader <suckfish@ihug.co.nz>
2291 * combine.c (force_to_mode): Do not process vector types.
2293 * rtlanal.c (nonzero_bits1): Do not process vector types.
2294 (num_sign_bit_copies1): Likewise.
2296 2008-11-09 Thomas Schwinge <tschwinge@gnu.org>
2298 * config/i386/gnu.h: Add copyright and licensing header.
2299 * config/gnu.h: Likewise.
2301 2008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
2303 * fwprop.c (fwprop_done): Call df_remove_problem.
2305 2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
2308 * tree-scalar-evolution.c (instantiate_scev_1): Return
2309 chrec_dont_know for VL_EXP_CLASS_P.
2311 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
2313 * reg-stack.c (reg_to_stack): Add missing braces in memset
2316 2008-11-06 Andrew Stubbs <ams@codesourcery.com>
2318 * config/arm/bpabi.h (PROFILE_HOOK): New undef.
2319 (NO_PROFILE_COUNTERS): New define.
2321 2008-11-06 David Edelsohn <edelsohn@gnu.org>
2324 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
2326 2008-11-06 Kazu Hirata <kazu@codesourcery.com>
2329 * config/sparc/constraints.md (D): New.
2330 * config/sparc/predicates.md (const_double_or_vector_operand): New.
2331 * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
2333 * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
2334 Use the 'D' constraint in addition to 'F' in some alternatives.
2335 (DF splitter): Generalize for V64mode.
2336 * doc/md.texi (SPARC): Document the 'D' constraint.
2338 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
2340 * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
2342 2008-11-06 Ben Elliston <bje@au.ibm.com>
2344 * gcc.c: Remove ancient comment about a bug in Sun cc.
2346 2008-11-05 Janis Johnson <janis187@us.ibm.com>
2348 * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
2350 2008-11-06 Ben Elliston <bje@au.ibm.com>
2352 * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
2354 2008-11-06 Ben Elliston <bje@au.ibm.com>
2356 * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
2359 2008-11-05 Hans-Peter Nilsson <hp@axis.com>
2362 * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
2365 2008-11-05 Martin Jambor <mjambor@suse.cz>
2368 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
2369 pointer arithmetics into array_ref if the array is accessed
2370 through an indirect_ref.
2372 2008-11-05 Richard Guenther <rguenther@suse.de>
2375 * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
2376 qualified pointer conversion before stripping qualifiers.
2377 * gimplify.c (create_tmp_from_val): Use correctly qualified type.
2378 * tree-flow.h (may_propagate_address_into_dereference): Declare.
2379 * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
2382 * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
2383 properly canonicalize binary ops.
2384 (forward_propagate_addr_expr_1): Use
2385 may_propagate_address_into_dereference.
2387 2008-11-05 Uros Bizjak <ubizjak@gmail.com>
2390 * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
2391 Initialize uninitialized input registers with a NaN.
2393 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
2397 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
2399 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
2403 * graphite.c (scopdet_basic_block_info): Fix loops with multiple
2404 exits and conditions.
2405 * testsuite/gcc.dg/graphite/pr37943.c: New.
2407 2008-11-04 Jakub Jelinek <jakub@redhat.com>
2408 Andrew Pinski <andrew_pinski@playstation.sony.com>
2411 * c-common.c (warn_for_sign_compare): For complex result_type
2412 use component's type.
2414 2008-11-04 Jakub Jelinek <jakuB@redhat.com>
2416 * print-tree.c (print_node): Use code instead of TREE_CODE (node).
2418 * print-tree.c (print_node): Don't print DECL_INITIAL
2422 * c-common.c (parse_optimize_options): Save and restore
2423 flag_strict_aliasing around decode_options call.
2425 2008-11-04 Uros Bizjak <ubizjak@gmail.com>
2427 * config/i386/driver-i386.c (enum vendor_signatures): New enum.
2428 (host_detect_local_cpu): Use it instead of casted strings to
2429 compare vendor signatures.
2431 2008-11-03 Mikael Pettersson <mikpe@it.uu.se>
2434 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
2435 or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
2437 2008-11-03 Catherine Moore <clm@codesourcery.com>
2439 * config/mips.c (mips_conditional_register_usage): Handle the
2440 DSP control register.
2441 * doc/extend.texi: Document the DSP control register.
2443 2008-11-03 Steve Ellcey <sje@cup.hp.com>
2444 Jakub Jelinek <jakub@redhat.com>
2446 * omp-low.c (expand_omp_for_generic): If iter_type has different
2447 precision than type and type is a pointer type, cast n1 and n2
2448 first to an integer type with the same precision as pointers
2449 and only afterwards to iter_type.
2451 2008-11-03 Richard Sandiford <rdsandiford@googlemail.com>
2453 * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
2454 (UNSPEC_GOTSYM_OFF): New unspec.
2455 (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
2456 (pic_add_dot_plus_eight): Likewise.
2457 (tls_load_dot_plus_eight): Likewise. Update peephole2.
2458 * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
2459 UNSPEC_PIC_BASE operands.
2460 * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
2461 (arm_output_addr_const_extra): Handle it.
2463 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
2465 * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
2466 integer class to full integer class if the offset is not word-aligned.
2468 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2471 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2473 (doloop_optimize): Update call to doloop_modify.
2475 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
2477 * tree-sra.c (bitfield_overlaps_p): Fix oversight.
2479 2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2482 * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
2483 gcc_cv_as_cfi_directive.
2484 (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
2485 merging read-only and read-write sections or assembler emits
2486 read-write .eh_frame sections.
2487 * configure: Regenerate.
2489 2008-11-03 Nathan Froyd <froydnj@codesourcery.com>
2492 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2494 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2496 (rs6000_emit_prologue): Invert logic.
2497 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2498 (reg:P 11) instead of match_operand.
2499 (*save_fpregs_<mode>): Likewise.
2500 (*restore_gpregs_<mode>): Likewise.
2501 (*return_and_restore_gpregs_<mode>): Likewise.
2502 (*return_and_restore_fpregs_<mode>): Likewise.
2503 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2504 (reg:P 11) insted of match_operand.
2505 (*restore_gpregs_spe): Likewise.
2506 (*return_and_restore_gpregs_spe): Likewise.
2508 2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
2510 PR tree-optimization/37684
2511 * gcc.dg/graphite/pr37684.c: New.
2512 * graphite.c (exclude_component_ref): New.
2513 (is_simple_operand): Call exclude_component_ref.
2515 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
2517 PR tree-optimization/36908
2518 * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
2519 * tree-loop-distribution.c (number_of_rw_in_rdg): New.
2520 (number_of_rw_in_partition): New.
2521 (partition_contains_all_rw): New.
2522 (ldist_gen): Do not distribute when one of the partitions
2523 contains all the memory operations.
2525 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
2527 * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
2528 EDGE_IRREDUCIBLE_LOOP.
2530 2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
2532 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
2533 where we have one entry point in the loop which isn't the head.
2535 2008-11-03 Richard Guenther <rguenther@suse.de>
2538 * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
2540 2008-11-03 Jakub Jelinek <jakub@redhat.com>
2543 * passes.c (execute_one_pass): Don't look at cfun->curr_properties
2544 for ipa and simple ipa passes.
2546 2008-11-02 Richard Guenther <rguenther@suse.de>
2548 PR tree-optimization/37542
2549 * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
2550 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
2551 (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
2552 (vn_nary_op_insert_stmt): Likewise.
2553 (visit_use): Likewise.
2555 2008-11-02 Anatoly Sokolov <aesok@post.ru>
2557 * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
2559 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
2560 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
2561 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
2562 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
2563 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
2564 peephole2's): Replace unspec with rotate.
2565 * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
2567 2008-11-02 Richard Guenther <rguenther@suse.de>
2569 PR tree-optimization/37991
2570 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
2571 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
2572 (set_ssa_val_to): Print if the value changed.
2573 (simplify_binary_expression): Strip useless conversions.
2575 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
2578 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
2581 2008-11-01 Richard Guenther <rguenther@suse.de>
2584 * builtins.c (fold_builtin_strspn): Return a size_t.
2585 (fold_builtin_strcspn): Likewise.
2587 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2589 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
2590 attribute for struct return convention.
2592 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2594 * config/rs6000/crtsavres.asm: Really, really delete.
2596 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2598 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2600 (rs6000_emit_prologue): Invert logic.
2601 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2602 (reg:P 11) instead of match_operand.
2603 (*save_fpregs_<mode>): Likewise.
2604 (*restore_gpregs_<mode>): Likewise.
2605 (*return_and_restore_gpregs_<mode>): Likewise.
2606 (*return_and_restore_fpregs_<mode>): Likewise.
2607 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2608 (reg:P 11) insted of match_operand.
2609 (*restore_gpregs_spe): Likewise.
2610 (*return_and_restore_gpregs_spe): Likewise.
2612 2008-10-28 Luis Machado <luisgpm@br.ibm.com>
2614 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
2615 list of word switches that take args.
2617 2008-10-30 Jakub Jelinek <jakub@redhat.com>
2619 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
2620 (s390_output_pool_entry): Call it through for_each_rtx.
2623 * expr.c (store_constructor): For vectors, if target is a MEM, use
2624 target's MEM_ALIAS_SET instead of elttype alias set.
2626 2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
2629 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
2632 2008-10-29 David Edelsohn <edelsohn@gnu.org>
2635 * config/rs6000/predicates.md (word_offset_memref_operand):
2636 Restructure code and look inside auto-inc/dec addresses.
2638 2008-10-29 Steve Ellcey <sje@cup.hp.com>
2641 * libgcov.c ( __gcov_indirect_call_profiler): Check
2642 TARGET_VTABLE_USES_DESCRIPTORS.
2644 2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
2646 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
2647 (INITIAL_FRAME_POINTER_OFFSET): Remove.
2648 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
2649 offset if eliminating soft frame pointer.
2650 * config/spu/spu.md (stack_protect_set, stack_protect_test)
2651 (stack_protect_test_si): Add initial machine description
2652 for Stack Smashing Protector
2654 2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2657 * c-common.c (min_precision): Move to...
2658 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
2659 * tree.h (tree_int_cst_min_precision): Declare.
2660 * c-common.h (min_precision): Delete declaration.
2661 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
2662 multiplication of non-negative integer constants.
2663 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
2664 tree_int_cst_min_precision.
2665 (finish_enum): Likewise.
2667 2008-10-29 Joseph Myers <joseph@codesourcery.com>
2670 * convert.c (convert_to_real): Do not optimize conversions of
2671 binary arithmetic operations between binary and decimal
2672 floating-point types. Consider mode of target type in determining
2673 decimal type for arithmetic. Unless
2674 flag_unsafe_math_optimizations, do not optimize binary conversions
2675 where this may change rounding behavior.
2676 * real.c (real_can_shorten_arithmetic): New.
2677 * real.h (real_can_shorten_arithmetic): Declare.
2679 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
2681 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
2682 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
2683 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
2685 (must_save_p): For some workarounds, interrupts need to clobber a
2687 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
2688 and LC1 for WA_05000257.
2689 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
2690 WA_05000283 and WA_05000315.
2691 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
2692 (movbi): Add alternative to set CC to 1; improve code for setting
2694 (dummy_load): New pattern.
2696 2008-10-29 Jakub Jelinek <jakub@redhat.com>
2699 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
2700 BLKmode for non-memory, convert using a wider MODE_INT mode
2704 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
2705 that haven't been removed yet.
2707 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
2709 * config/bfin/bfin.c (struct machine_function): New member
2710 has_loopreg_clobber.
2711 (bfin_expand_movmem): Set it when generating memcpy insns.
2712 (n_regs_saved_by_prologue, expand_prologue_reg_save,
2713 expand_epilogue_reg_restore): If we have hardware loops,
2714 memcpy insns (indicated by has_loopreg_clobber) or function
2715 calls, we need to save the loop registers.
2717 2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
2719 * config/i386/i386.c (core2_cost): Fix typos in comments.
2721 2008-10-28 Jakub Jelinek <jakub@redhat.com>
2724 * combine.c (make_compound_operation): Don't call make_extraction with
2725 non-positive length.
2726 (simplify_shift_const_1): Canonicalize count even if complement_p.
2728 2008-10-28 Joseph Myers <joseph@codesourcery.com>
2730 * convert.c (strip_float_extensions): Do not remove or introduce
2731 conversions between binary and decimal floating-point types.
2733 2008-10-28 Jakub Jelinek <jakub@redhat.com>
2736 * fold-const.c (distribute_bit_expr): Convert common, left and
2737 right arguments to type.
2739 2008-10-28 Nick Clifton <nickc@redhat.com>
2741 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
2742 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
2743 call_really_used_regs array rather than the call_used_regs array.
2744 (mn10300_get_live_callee_saved_regs, expand_prologue,
2745 expand_epilogue, output_tst): Likewise.
2747 2008-10-27 Jakub Jelinek <jakub@redhat.com>
2750 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
2751 (df_get_entry_block_def_set): Neither here.
2752 (df_get_regular_block_artificial_uses): Add EH_USES registers.
2754 PR tree-optimization/37879
2755 * predict.c (tree_estimate_probability): Check if last_stmt is
2756 non-NULL before dereferencing it.
2758 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2760 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
2761 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
2762 (ira_fast_allocation): Remove the prototype.
2764 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
2765 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
2766 (color_pass): Modify the updated costs.
2767 (ira_color): Rename to color. Make it static.
2768 (ira_fast_allocation): Rename to fast_allocation. Make it static.
2769 (ira_color): New function.
2771 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
2774 * ira-lives.c (last_call_num, allocno_saved_at_call): New
2776 (set_allocno_live, clear_allocno_live, mark_ref_live,
2777 mark_ref_dead): Invalidate corresponding element of
2778 allocno_saved_at_call.
2779 (process_bb_node_lives): Increment last_call_num. Setup
2780 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
2781 allocno was already saved.
2782 (ira_create_allocno_live_ranges): Initiate last_call_num and
2783 allocno_saved_at_call.
2785 * ira-build.c (ira_create_allocno): Initiate
2786 ALLOCNO_UPDATED_COVER_CLASS_COST.
2787 (create_cap_allocno, propagate_allocno_info,
2788 remove_unnecessary_allocnos): Remove setting updated costs.
2789 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
2791 * ira.c (ira): Don't call ira_fast_allocation.
2793 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
2796 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2799 * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
2801 * ira-int.h (ira_hard_regno_cover_class): New.
2803 * ira-lives.c (mark_reg_live, mark_reg_dead,
2804 process_bb_node_lives): Use ira_hard_regno_cover_class.
2806 * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
2807 (setup_hard_regno_cover_class): New function.
2808 (ira_init): Call setup_hard_regno_cover_class.
2810 * ira-costs.c (cost_class_nums): Add comment.
2811 (find_allocno_class_costs): Initiate cost_class_nums.
2812 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
2814 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2817 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
2818 Rename to copy_info_to_removed_store_destinations. Propagate
2819 conflict hard regs and register stack attribute.
2821 2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2824 * pa.c (function_arg_padding): Pad complex and vector types
2825 upward in 64-bit runtime.
2826 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
2828 2008-10-26 Matthias Klose <doko@ubuntu.com>
2830 * doc/install.texi: Document requirements on antlr.
2832 2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
2834 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
2837 2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
2840 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
2841 is defined, use it to modify the constant offset.
2843 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
2845 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
2846 and short arguments to the correct location as mandated by the ABI.
2848 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
2850 PR rtl-optimization/37769
2851 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
2853 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
2855 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
2856 unwind-dw2-Os-4-200.o.
2858 2008-10-24 Joseph Myers <joseph@codesourcery.com>
2860 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
2861 (convert_for_assignment): Remove ic_argpass_nonproto cases.
2863 2008-10-24 Jakub Jelinek <jakub@redhat.com>
2865 PR tree-optimization/36038
2866 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
2867 add sizetype IV with initial value zero instead of pointer type.
2869 2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
2872 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
2873 around bit operation.
2874 * profile.c (is_edge_inconsistent): Likewise.
2875 * fold-const.c (truth_value_p): Move from here...
2876 * tree.h (truth_value_p): ... to here.
2877 * c-tree.h (c_expr): Update description of original_code.
2878 * c-typeck.c (parser_build_unary_op): Set original_code.
2879 (parser_build_binary_op): Update call to warn_about_parentheses.
2880 * c-common.c (warn_about_parentheses): Take two additional
2881 arguments of the operands. Use a switch. Quote operators
2882 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
2883 Add warning about !x | y and !x & y.
2884 * c-common.h (warn_about_parentheses): Update declaration.
2886 2008-10-24 Jakub Jelinek <jakub@redhat.com>
2888 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
2889 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
2890 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
2892 (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
2893 (check-%): For test targets listed in lang_checks_parallelized
2894 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
2895 run the testing in multiple make goals, possibly parallel, and
2896 afterwards run dg-extract-results.sh to merge the sum and log files.
2898 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
2900 * config/mips/mips.c (mips_canonicalize_move_class): New function.
2901 (mips_move_to_gpr_cost): Likewise.
2902 (mips_move_from_gpr_cost): Likewise.
2903 (mips_register_move_cost): Make more fine-grained.
2905 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
2907 * graphite.c (graphite_apply_transformations): Check for
2908 -fgraphite-identity.
2909 * toplev.c (process_options): Add graphite_identity.
2910 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
2912 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
2914 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
2915 mulhisihl and mulhisihh builtins.
2917 From Jie Zhang <jie.zhang@analog.com>
2918 * config/bfin/bfin.md (composev2hi): Put operands into vector
2921 2008-10-22 Chao-ying Fu <fu@mips.com>
2923 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
2925 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
2927 From Mike Frysinger <michael.frysinger@analog.com>
2928 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
2929 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
2930 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
2931 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
2932 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
2933 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
2934 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
2935 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
2936 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
2937 __ADSPBF51x__ for all of them.
2938 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
2939 -mcpu bf512, bf514, bf516, and bf518.
2940 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2941 bf512-none, bf514-none, bf516-none, and bf518-none.
2942 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2943 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2944 * doc/invoke.texi (Blackfin Options): Document that
2945 -mcpu now accepts bf512, bf514, bf516, and bf518.
2947 2008-10-22 Jakub Jelinek <jakub@redhat.com>
2950 * fold-const.c (build_range_type): For 1 .. signed_max
2951 range call build_nonstandard_inter_type if signed_type_for
2952 returned a type with bigger precision.
2954 2008-10-22 Richard Guenther <rguenther@suse.de>
2956 * tree.def (COMPLEX_TYPE): Constrain element type.
2957 * tree.c (build_complex_type): Assert that.
2958 * tree-ssa-structalias.c (could_have_pointers): Complex types
2959 cannot have pointers.
2961 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
2964 * c-typeck.c (convert_for_assignment): Do not give declaration's
2965 location for builtins. Spell out which type was expected and which
2968 2008-10-22 Nick Clifton <nickc@redhat.com>
2970 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
2971 the fdpic register to be a target when running in fdpic mode.
2973 2008-10-22 Rafael Espindola <espindola@google.com>
2975 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
2976 newly created statements.
2978 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
2981 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
2982 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
2983 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
2985 2008-10-22 Jakub Jelinek <jakub@redhat.com>
2988 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
2989 Adjust -mcmodel=medium description for 2005-07-31 changes.
2991 2008-10-22 Jan Hubicka <jh@suse.cz>
2992 Jakub Jelinek <jakub@redhat.com>
2995 * doc/invoke.texi: Remove references to obsoleted -d dumps.
2997 2008-10-21 Richard Henderson <rth@redhat.com>
3000 * emit-rtl.c (get_spill_slot_decl): Export.
3001 * emit-rtl.h (get_spill_slot_decl): Declare.
3002 * var-tracking.c (vt_add_function_parameters): Relax assertion
3003 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
3005 2008-10-21 Bob Wilson <bob.wilson@acm.org>
3007 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
3008 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
3011 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
3014 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
3015 processed by get_maxval_strlen.
3017 2008-10-21 David Edelsohn <edelsohn@gnu.org>
3020 * tree.c (get_file_function_name): Copy first_global_object_name.
3021 Centralize call to clean_symbol_name.
3023 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
3025 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
3026 * config/svr4.h (SVR4_ASM_SPEC): New.
3027 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
3028 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
3030 * doc/invoke.texi (Option Summary): Add -T to linker options.
3031 (Link Options): Document -T.
3033 2008-10-21 Jakub Jelinek <jakub@redhat.com>
3035 * tree-inline.c (tree_inlinable_function_p): Remove tuples
3038 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
3041 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
3043 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
3045 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
3048 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
3050 * doc/install.texi: Fix typos in previous patch.
3052 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
3054 * doc/install.texi: Document in-tree building of gcc and mpfr.
3056 2008-10-19 Richard Guenther <rguenther@suse.de>
3058 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
3060 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3063 * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
3064 (build_enumerator): Convert enumerators that fit in integer to
3067 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
3069 * config/i386/i386.md (unnamed peephole2): Do not force memory
3070 operands of arith or logical instructions into registers for
3071 non-TARGET_READ_MODIFY targets.
3073 (ffs_cmove): Change operand 0 predicate to register_operand.
3074 Change operand 1 predicate to nonimmediate_operand.
3076 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
3078 2008-10-18 Richard Guenther <rguenther@suse.de>
3080 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
3081 VIEW_CONVERT_EXPR case against invalid gimple.
3083 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
3085 * c-parser.c (c_parser_binary_expression): Silence the
3086 uninitialized variable warning emitted for binary_loc.
3088 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
3090 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
3093 2008-10-16 Joseph Myers <joseph@codesourcery.com>
3096 * c-typeck.c (build_unary_op): Use omit_one_operand for
3097 IMAGPART_EXPR of real argument.
3099 2008-10-16 Jakub Jelinek <jakub@redhat.com>
3101 PR tree-optimization/37664
3102 * fold-const.c (fold_binary): When optimizing comparison with
3103 highest or lowest type's value, don't consider TREE_OVERFLOW.
3105 2008-10-16 David Edelsohn <edelsohn@gnu.org>
3108 * Makefile.in (coverage.o): Depend on $(TM_P_H).
3109 * coverage.c: Include tm_p.h.
3110 * config/rs6000/x-aix (jc1): Override LDFLAGS.
3111 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
3112 dollar signs from PREFIX.
3113 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
3114 instead of manual strip_name_encoding.
3116 2008-10-16 Richard Guenther <rguenther@suse.de>
3119 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
3120 volatile qualified functions or methods as relevant.
3122 2008-10-16 Jakub Jelinek <jakub@redhat.com>
3124 PR tree-optimization/37525
3125 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
3126 sizetype unsigned constants, both in the case of C and bounds.
3128 2008-10-15 Jan Hubicka <jh@suse.cz>
3130 * ira-emit.c (change_regs): Return false when replacing reg by itself.
3132 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
3135 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
3136 HARD_REGNO_CALL_PART_CLOBBERED.
3138 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
3141 * ira-lives.c (mark_early_clobbers): Remove.
3142 (make_pseudo_conflict, check_and_make_def_use_conflicts,
3143 check_and_make_def_conflicts,
3144 make_early_clobber_and_input_conflicts,
3145 mark_hard_reg_early_clobbers): New functions.
3146 (process_bb_node_lives): Call
3147 make_early_clobber_and_input_conflicts and
3148 mark_hard_reg_early_clobbers. Make hard register inputs live again.
3150 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
3151 early clobbers of pseudo-registers.
3153 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
3156 * ira-build.c (ira_flattening): Recalculate
3157 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
3158 from the scratch instead of the propagation.
3160 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
3162 * doc/rtl.texi (const_double): Remove the "addr" operand.
3163 Describe CONST_DOUBLE_* macros under const_double rather
3165 (const_fixed): Fix the operand description.
3166 (const): Add an @findex directive.
3167 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
3168 after the constant rtl table.
3169 (fix): Combine floating-point and fixed-point descriptions.
3171 * sched-deps.c (sched_analyze_2): Remove reference to
3174 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
3176 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
3178 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
3179 for UNSPEC_GOTSYM_OFFs.
3180 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
3181 (add_GOT_to_pic_reg): Use it.
3182 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
3184 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
3185 Harsha Jagasia <harsha.jagasia@amd.com>
3187 PR tree-optimization/37485
3188 * graphite.c (gmp_cst_to_tree): Moved.
3189 (iv_stack_entry_is_constant): New.
3190 (iv_stack_entry_is_iv): New.
3191 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
3192 (loop_iv_stack_insert_constant): New.
3193 (loop_iv_stack_pop): Use new datatpype.
3194 (loop_iv_stack_get_iv): Same.
3195 (loop_iv_stack_get_iv_from_name): Same.
3196 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
3197 (loop_iv_stack_patch_for_consts): New.
3198 (loop_iv_stack_remove_constants): New.
3199 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
3200 (translate_clast): Call loop_iv_stack_patch_for_consts and
3201 loop_iv_stack_remove_constants.
3202 (gloog): Use new datatype. Redirect construction edge to end
3203 block to avoid accidental deletion.
3204 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
3206 (union iv_stack_entry_data): New. Data in iv stack entry.
3207 (struct iv_stack_entry): New. Datatype for iv stack entries.
3209 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3211 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
3212 * graphite.c (free_scop): Same.
3213 (build_scops): Same.
3214 (free_scattering): New.
3215 (build_cloog_prog): Call free_scattering.
3216 (patch_phis_for_virtual_defs): Fix memleak.
3217 (graphite_trans_bb_strip_mine): Same.
3218 (limit_scops): Same.
3220 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3221 Harsha Jagasia <harsha.jagasia@amd.com>
3223 PR tree-optimization/37828
3224 * graphite.c (graphite_trans_loop_block): Do not loop block
3225 single nested loops.
3227 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3229 PR tree-optimization/37686
3230 * tree-loop-linear.c (linear_transform_loops): Build a
3231 loop nest vector. Pass it to lambda_compute_access_matrices.
3232 * tree-data-ref.h (struct access_matrix): Store the loop nest
3233 relative to which it encodes the information.
3234 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
3235 (am_vector_index_for_loop): Reimplemented: iterate over the
3236 loop nest for finding the loop index in the access matrix.
3237 (lambda_compute_access_matrices): Update declaration.
3238 * lambda-code.c (build_access_matrix): Pass the loop nest and
3240 (lambda_compute_access_matrices): Same.
3242 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
3244 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
3245 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
3246 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
3247 already implies hard float. Also fix several insn condition
3248 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
3250 2008-10-15 David Edelsohn <edelsohn@gnu.org>
3253 Based on patches by Laurent Vivier.
3254 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
3255 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
3256 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
3257 dollar sign to underscore.
3258 (ASM_OUTPUT_EXTERNAL): Same.
3259 (ASM_OUTPUT_LABELREF): New.
3260 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
3262 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
3263 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
3264 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
3265 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
3267 2008-10-15 Jakub Jelinek <jakub@redhat.com>
3269 PR tree-optimization/36881
3270 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
3271 that each value doesn't need runtime relocations, for !flag_pic
3272 check that each value is just a valid initializer constant.
3274 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
3276 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
3277 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
3278 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
3279 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
3281 (REG_CLASS_NAMES): Update accordingly.
3282 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
3283 rather than an unpredictable descriptive string.
3284 * config/mips/mips.c (mips_register_move_cost): Remove comment.
3285 (mips_register_move_cost): Check for specific COP*_REGS classes,
3286 instead of ALL_COP_AND_GR_REGS.
3287 (mips_ira_cover_classes): New function.
3288 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
3289 (TARGET_IRA_COVER_CLASSES): Define.
3291 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
3294 * tree.c (build_type_attribute_qual_variant): Hash on the
3295 unqualified type, and don't overwrite an existing
3296 (type_hash_eq): Make the TYPE_NAME of the types significant, to
3297 allow distinguishing between wchar_t and its underlying type. This
3298 also means that we'll retain a little more typedef information.
3300 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
3301 Dmitry Melnik <dm@ispras.ru>
3302 Dmitry Zhurikhin <zhur@ispras.ru>
3303 Alexander Monakov <amonakov@ispras.ru>
3304 Maxim Kuvyrkov <maxim@codesourcery.com>
3306 * target.h (struct gcc_target): Update prototypes of needs_block_p
3308 * haifa-sched.c (create_check_block_twin): Update calls to the above.
3309 * sel-sched.c (create_speculation_check): Likewise.
3310 * doc/tm.texi: Provide documentation for new target hooks.
3312 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
3313 (ia64_gen_spec_insn): Removed.
3314 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
3315 ia64_gen_spec_check): New static functions.
3316 (ia64_alloc_sched_context, ia64_init_sched_context,
3317 ia64_set_sched_context, ia64_clear_sched_context,
3318 ia64_free_sched_context, ia64_get_insn_spec_ds,
3319 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
3320 (ia64_needs_block_p): Change prototype.
3321 (ia64_gen_check): Rename to ia64_gen_spec_check.
3322 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
3323 into declaration, add special memory dependencies handling.
3324 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
3325 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3326 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3327 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
3328 Define new target hooks.
3329 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3330 (ia64_optimization_options): Turn on selective scheduling with -O3,
3331 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
3332 default with selective scheduling.
3333 (ia64_override_options): Initialize align_loops and align_functions
3334 to 32 and 64, respectively. Set global selective scheduling flags
3335 according to target-dependent flags.
3336 (rtx_needs_barrier): Support UNSPEC_LDS_A.
3337 (group_barrier_needed): Use new mstop-bit-before-check flag.
3339 (dfa_state_size): Make global.
3340 (spec_check_no, max_uid): Remove.
3341 (mem_ops_in_group, current_cycle): New variables.
3342 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3343 Initialize new variables.
3344 (is_load_p, record_memory_reference): New functions.
3345 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
3347 (ia64_variable_issue): Change use of current_sched_info to
3348 sched_deps_info. Update comment. Note if a load or a store is issued.
3349 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
3350 advance if maximal number of loads or stores was issued on current
3352 (scheduled_good_insn): New static helper function.
3353 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
3354 a group barrier is needed. Fix vertical spacing. Guard the code
3355 doing state transition with last_scheduled_insn check.
3356 Mark that a stop bit should be before current insn if there was a
3357 cycle advance. Update current_cycle and mem_ops_in_group.
3358 (ia64_h_i_d_extended): Change use of current_sched_info to
3359 sched_deps_info. Reallocate stops_p by larger chunks.
3360 (struct _ia64_sched_context): New structure.
3361 (ia64_sched_context_t): New typedef.
3362 (ia64_alloc_sched_context, ia64_init_sched_context,
3363 ia64_set_sched_context, ia64_clear_sched_context,
3364 ia64_free_sched_context): New static functions.
3365 (gen_func_t): New typedef.
3366 (get_spec_load_gen_function): New function.
3367 (SPEC_GEN_EXTEND_OFFSET): Declare.
3368 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3369 (get_mode_no_for_insn): Change the condition that prevents use of
3370 special hardware registers so it can now handle pseudos.
3371 (get_spec_unspec_code): New function.
3372 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
3373 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
3374 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
3375 during selective scheduling.
3376 (ia64_speculate_insn): Use ds_get_speculation_types when
3377 determining whether we need to change the pattern.
3378 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
3379 (ia64_spec_check_src_p): Support new speculation/check codes.
3380 (struct bundle_state): New field.
3381 (issue_nops_and_insn): Initialize it.
3382 (insert_bundle_state): Minimize mid-bundle stop bits.
3383 (important_for_bundling_p): New function.
3384 (get_next_important_insn): Use important_for_bundling_p.
3385 (bundling): When shifting TImode from unimportant insns, ignore
3386 also group barriers. Assert that best state is found before
3387 the backward bundling pass. Print number of mid-bundle stop bits.
3388 Minimize mid-bundle stop bits. Check correct calculation of
3389 mid-bundle stop bits.
3390 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
3391 (final_emit_insn_group_barriers): Emit stop bits before insns starting
3393 (sel2_run): New variable.
3394 (ia64_reorg): When flag_selective_scheduling2 is set, run the
3395 selective scheduling pass instead of schedule_ebbs.
3397 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
3398 (UNSPEC_LDS_A): New UNSPEC.
3399 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
3400 movti_internal, movsf_internal, movdf_internal,
3401 movxf_internal): Make visible. Add speculable* attributes.
3402 (output_c_nc): New mode attribute.
3403 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3404 mov<mode>_nc, zero_extend<mode>di2_nc,
3405 advanced_load_check_nc_<mode>): New insns.
3406 (zero_extend*): Add speculable* attributes.
3408 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
3409 (msched-stop-bits-after-every-cycle): Likewise.
3410 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
3412 (msched-spec-verbose): Remove.
3413 (msched-prefer-non-data-spec-insns,
3414 msched-prefer-non-control-spec-insns,
3415 msched-count-spec-in-critical-path,
3416 msel-sched-dont-check-control-spec): Use Target Report Var
3417 instead of Common Report Var.
3419 * config/ia64/itanium2.md: Remove incorrect bypass.
3421 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
3423 2008-10-14 Jakub Jelinek <jakub@redhat.com>
3426 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3427 and -fhelp=separate.
3429 2008-10-14 Ben Elliston <bje@au.ibm.com>
3431 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
3433 2008-10-13 Joseph Myers <joseph@codesourcery.com>
3435 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
3438 2008-10-13 Matthias Klose <doko@ubuntu.com>
3440 * config/pa/linux-atomic.c: Work around missing header file
3441 for hppa64-linux-gnu targets.
3443 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
3444 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
3445 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3446 Grace Cao <grace_cao@playstation.sony.com>
3448 * doc/invoke.texi (-mgen-cell-microcode): Document.
3449 (-mwarn-cell-microcode): Document.
3450 * cfglayout.c (locator_location): Export.
3451 * rtl.h (locator_location): Define prototype.
3452 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
3454 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
3455 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
3456 (mwarn-cell-microcode): New option.
3457 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
3458 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
3459 cell and not already set.
3460 Turn off string instructions if not generating cell microcode.
3461 (rs6000_final_prescan_insn): New function that warns about microcoded
3463 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
3464 * config/rs6000/rs6000.md
3465 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3466 the instruction would have been microcoded on the Cell. Set
3467 cell_micro to always on unnamed patterns for the string instructions.
3468 (cell_micro): Update definition, remove load/store conditional
3470 (sign_extend:DI): Define new pattern for non microcoded version.
3471 (sign_extend:SI): Likewise.
3472 (compare (div:P)): Set cell_micro to not.
3473 (andsi3): Define as an expand.
3474 (andsi3_mc): New pattern.
3475 (andsi3_nomc): New pattern.
3476 (andsi3_internal0_nomc): New pattern.
3477 (andsi3_internal2): Rename to ...
3478 (andsi3_internal2_mc): this and enable iff generating microcode.
3479 (andsi3_internal3): Rename to ...
3480 (andsi3_internal3_mc): this and enable iff generating microcode.
3481 (andsi3_internal4): Enable iif generating microcode.
3482 (andsi3_internal5): Rename to ..
3483 (andsi3_internal5_mc): this and enable iff generating microcode.