1 2008-12-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3 * configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up
5 * configure: Regenerate.
7 2008-12-16 Richard Earnshaw <rearnsha@arm.com>
10 * arm.c (arm_legitimate_index): Only accept addresses that are in
12 * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
13 * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
15 (extendqisi2): Likewise.
16 (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
17 predicate for operand1.
19 2008-12-15 Adam Nemet <anemet@caviumnetworks.com>
21 * config/mips/mips.c (mips_output_conditional_branch): Assert that
22 openrands[1] is a CODE_LABEL.
24 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
26 * config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to
27 the result of mips_prepare_builtin_target.
29 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
31 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls
32 if TARGET_ABICALLS is true.
34 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
36 * config/mips/mips.md (move_doubleword_fpr<mode>): Use
37 TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case.
39 2008-12-15 Hariharan Sandanagobalane <hariharan@picochip.com>
41 * config/picochip/picochip.c (picochip_override_options): Disable CFI
42 asm and change the signature of brev and byteSwap functions to use
44 * config/picochip/picochip.md (commsTestPort): This is a complex
45 instruction and should not be vliwed. Dont set insn type.
47 2008-12-15 Wolfgang Gellerich <gellerich@de.ibm.com>
48 * config/s390/s390.c (s390_swap_cmp): New function.
49 (s390_non_addr_reg_read_p): New function.
50 (s390_z10_optimize_cmp): New function.
51 (s390_reorg): Added call to s390_optimize_cmp.
52 * config/s390/s390.md (nop1): New insn.
54 2008-12-12 Rainer Emrich <r.emrich@de.tecosim.com>
57 * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path
58 for the milli.a library.
60 2008-12-12 Andrew Pinski <andrew_pinskia@playstation.sony.com>
61 Peter Bergner <bergner@vnet.ibm.com>
64 * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
65 TOC into the call pattern.
66 (call_indirect_aix64): Likewise.
67 (call_value_indirect_aix32): Likewise.
68 (call_value_indirect_aix64): Likewise.
69 (call_indirect_nonlocal_aix32_internal): New insn and split patterns
70 to split off the load of the TOC.
71 (call_indirect_nonlocal_aix32): Enable only after reload.
72 (call_indirect_nonlocal_aix64_internal): New insn and split patterns
73 to split off the load of the TOC.
74 (call_indirect_nonlocal_aix64): Enable only after reload.
75 (call_value_indirect_nonlocal_aix32_internal): New insn and split
76 patterns to split off the load of the TOC.
77 (call_value_indirect_nonlocal_aix32): Enable only after reload.
78 (call_value_indirect_nonlocal_aix64_internal): New insn and split
79 patterns to split off the load of the TOC.
80 (call_value_indirect_nonlocal_aix64): Enable only after reload.
82 2008-12-12 Andreas Schwab <schwab@suse.de>
85 2008-12-12 Andreas Schwab <schwab@suse.de>
86 * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
89 2008-12-12 Zdenek Dvorak <ook@ucw.cz>
91 PR tree-optimization/32044
92 * tree-scalar-evolution.h (expression_expensive_p): Declare.
93 * tree-scalar-evolution.c (expression_expensive_p): New function.
94 (scev_const_prop): Avoid introducing expensive expressions.
95 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto.
97 2008-12-12 Sebastian Pop <sebastian.pop@amd.com>
100 * graphite.c (nb_reductions_in_loop): Use simple_iv.
102 2008-12-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
104 * config/i386/x86intrin.h: New header file to support all x86
106 * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h
108 2008-12-12 H.J. Lu <hongjiu.lu@intel.com>
111 * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
114 2008-12-12 Andreas Schwab <schwab@suse.de>
116 * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
119 2008-12-12 Uros Bizjak <ubizjak@gmail.com>
121 * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
122 Use Pmode for scratch reg.
123 (*mb_internal): Use (match_dup 0) for unspec operand.
125 2008-12-12 Alexandre Oliva <aoliva@redhat.com>
127 * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
128 floor_log2 of zero. Negate widened zero.
130 2008-12-12 Ben Elliston <bje@au.ibm.com>
132 * config/fp-bit.c (nan): Rename from this ...
133 (makenan): ... to this.
135 2008-12-11 Adam Nemet <anemet@caviumnetworks.com>
137 * config/mips/mips.md (*branch_bit<bbv><mode>,
138 *branch_bit<bbv><mode>_inverted): Renumber operands so that the
139 label becomes operands[1].
141 2008-12-11 Harsha Jagasia <harsha.jagasia@amd.com>
143 PR tree-optimization/38446
144 * graphite.c (register_bb_in_sese): New.
145 (bb_in_sese_p): Check if bb belongs to sese region by explicitly
146 looking at the bbs in the region.
147 * graphite.h (sese): Add region_basic_blocks pointer set to
148 structure and initialize at the time of defining new scop.
150 2008-12-11 Tobias Grosser <grosser@fim.uni-passau.de>
152 * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
153 (find_params_in_bb): Do not free data refs.
154 (free_graphite_bb): Add FIXME on disabled free_data_refs.
156 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
158 * graphite.c (struct ivtype_map_elt): New.
159 (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
160 new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
161 gcc_type_for_cloog_iv): New.
162 (loop_iv_stack_patch_for_consts): Use the type of the induction
163 variable from the original loop, except for the automatically
164 generated loops, i.e., in the case of a strip-mined loop, in
165 which case there is no original loop: in that case just use
167 (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
168 (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
169 (clast_name_to_gcc): Accept params to be NULL.
170 (clast_to_gcc_expression): Take an extra parameter for the type.
171 Convert to that type all the expressions built by this function.
172 (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
173 (graphite_translate_clast_equation): Compute the type of the
174 clast_equation before translating its LHS and RHS.
175 (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
176 (graphite_create_new_loop): Compute the type of the induction
177 variable before translating the lower and upper bounds and before
178 creating the induction variable.
179 (rename_variables_from_edge, rename_phis_end_scop): New.
180 (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
181 (sese_add_exit_phis_edge): Do not use integer_zero_node.
182 (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
183 compute_cloog_iv_types): New.
184 (gloog): Call compute_cloog_iv_types before starting the
185 translation of the clast.
187 * graphite.h (struct graphite_bb): New field cloog_iv_types.
188 (GBB_CLOOG_IV_TYPES): New.
189 (debug_ivtype_map): Declared.
190 (oldiv_for_loop): New.
192 2008-12-10 Tobias Grosser <grosser@fim.uni-passau.de>
195 * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
196 (param_index): Assert if parameter is not know after parameter
198 (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
199 (find_scop_parameters): Mark, that we have finished parameter
201 (graphite_transform_loops): Move condition detection before parameter
203 * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
205 2008-12-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
208 * emutls.c (__emutls_get_address): Make sure offset is really zero
209 before initializing the object's offset.
211 2008-12-11 Jakub Jelinek <jakub@redhat.com>
214 * gimplify.c (gimplify_init_constructor): Don't force constructor
215 into memory if there is just one nonzero element.
217 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
219 Fix testsuite/gfortran.dg/graphite/id-4.f90.
220 * graphite.c (scan_tree_for_params): Do not compute the multiplicand
223 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
225 * graphite.c (build_scops_1): Initialize open_scop.exit
228 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
229 Jan Sjodin <jan.sjodin@amd.com>
230 Harsha Jagasia <harsha.jagasia@amd.com>
242 * tree-phinodes.c (remove_phi_nodes): New, extracted from...
243 * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
245 * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
246 * Makefile.in (graphite.o): Depend on value-prof.h.
247 (graphite.o-warn): Removed -Wno-error.
248 * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
249 to be a NULL pointer. Call update_stmt. Return the newly created
250 cannonical induction variable.
252 * graphite.h (debug_rename_map): Declared. Fix some comments.
254 * graphite.c: Reimplement the code generation from graphite to gimple.
255 Include value-prof.h.
256 (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
257 (get_old_iv_from_ssa_name): Removed.
258 (graphite_stmt_p): New.
259 (new_graphite_bb): Test for useful statements before building a
260 graphite statement for the basic block.
261 (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
262 in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason.
263 (recompute_all_dominators, graphite_verify,
264 nb_reductions_in_loop, graphite_loop_normal_form): New.
265 (scop_record_loop): Call graphite_loop_normal_form.
266 (build_scop_loop_nests): Iterate over all the blocks of the
267 function instead of relying on the incomplete information from
268 SCOP_BBS. Return the success of the operation.
269 (find_params_in_bb): Use the data from GBB_DATA_REFS.
270 (add_bb_domains): Removed.
271 (build_loop_iteration_domains): Don't call add_bb_domains.
272 Add the iteration domain only to the basic blocks that have been
273 translated to graphite.
274 (build_scop_conditions_1): Add constraints only if the basic
275 block have been translated to graphite.
276 (build_scop_data_accesses): Completely disabled until data
277 dependence is correctly implemented.
278 (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
279 (remove_all_edges_1, remove_all_edges): Removed.
280 (get_new_name_from_old_name): New.
281 (graphite_rename_variables_in_stmt): Renamed.
282 rename_variables_in_stmt. Call get_new_name_from_old_name.
283 Use replace_exp and update_stmt.
284 (is_old_iv): Renamed is_iv.
285 (expand_scalar_variables_stmt): Extra parameter for renaming map.
286 Use replace_exp and update_stmt.
287 (expand_scalar_variables_expr): Same. Use the map to get the
288 new names for the renaming of induction variables and for the
289 renaming of variables after a basic block has been copied.
290 (expand_scalar_variables): Same.
291 (graphite_rename_variables): Renamed rename_variables.
292 (move_phi_nodes): Removed.
293 (get_false_edge_from_guard_bb): New.
294 (build_iv_mapping): Do not insert the induction variable of a
295 loop in the renaming iv map if the basic block does not belong
297 (register_old_new_names, graphite_copy_stmts_from_block,
298 copy_bb_and_scalar_dependences): New.
299 (translate_clast): Heavily reimplemented: copy basic blocks,
300 do not move them. Finally, in call cleanup_tree_cfg in gloog.
301 At each translation step call graphite_verify ensuring the
302 consistency of the SSA, loops and dominators information.
303 (collect_virtual_phis, find_vdef_for_var_in_bb,
304 find_vdef_for_var_1, find_vdef_for_var,
305 patch_phis_for_virtual_defs): Removed huge hack.
306 (mark_old_loops, remove_dead_loops, skip_phi_defs,
307 collect_scop_exit_phi_args, patch_scop_exit_phi_args,
308 gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed.
309 (remove_sese_region, ifsese, if_region_entry, if_region_exit,
310 if_region_get_condition_block, if_region_set_false_region,
311 create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
312 sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
313 sese_add_exit_phis_edge, sese_add_exit_phis_var,
314 rewrite_into_sese_closed_ssa): New.
315 (gloog): Remove dead code. Early return if code cannot be
316 generated. Call cleanup_tree_cfg once the scop has been code
318 (graphite_trans_scop_block, graphite_trans_loop_block): Do not
319 block loops with less than two loops.
320 (graphite_apply_transformations): Remove the call to
321 scop_remove_ignoreable_gbbs.
322 (limit_scops): When build_scop_loop_nests fails, continue on next
323 scop. Fix open_scop.entry.
324 (graphite_transform_loops): Call recompute_all_dominators: force the
325 recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
326 Call initialize_original_copy_tables and free_original_copy_tables
327 to be able to copy basic blocks during code generation.
328 When build_scop_loop_nests fails, continue on next scop.
329 (value_clast): New union.
330 (clast_to_gcc_expression): Fix type cast warning.
332 2008-12-10 Richard Guenther <rguenther@suse.de>
334 PR tree-optimization/36792
335 * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
338 2008-12-10 Daniel Berlin <dberlin@dberlin.org>
340 PR tree-optimization/36792
341 * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.
343 2008-12-10 Alexandre Oliva <aoliva@redhat.com>
346 * dwarf2out.c (saved_do_cfi_asm): New.
347 (dwarf2out_do_frame): Take it into account.
348 (dwarf2out_d_cfi_asm): Likewise. Set it when appropriate.
350 2008-12-10 Alexandre Oliva <aoliva@redhat.com>
353 * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
354 variables initialized from SRAed bit fields.
356 2008-12-10 Martin Guy <martinwguy@yahoo.it>
359 * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
360 result will be in an FPU register.
362 2008-12-10 Eric Botcazou <ebotcazou@adacore.com>
366 * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
367 on the associated SYMBOL_REF_DECL node, if any.
369 2008-12-09 David Daney <ddaney@caviumnetworks.com>
371 * config/mips/sync.md (sync_<optab>_12): Replace
372 MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
373 (sync_old_<optab>_12): Remove third paramater to
374 MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
375 with MIPS_SYNC_OLD_OP_12_AND.
376 (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
377 with MIPS_SYNC_NEW_OP_12_AND.
378 (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
379 MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
380 (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
381 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
382 MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
383 (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
384 MIPS_SYNC_NEW_OP_12_XOR.
385 * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
386 MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
387 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
388 MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
389 MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
390 to implement new __sync_nand semantics.
391 (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
392 remove third parameter.
393 (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
394 MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
395 (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
396 (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
397 (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
398 (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
399 (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
400 (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
402 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
404 * graphite.c (graphite_transform_loops): Always call find_transform ()
405 in ENABLE_CHECKING. So we test these code paths, even if we do not
408 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
410 * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
412 2008-12-09 Jakub Jelinek <jakub@redhat.com>
415 * function.h (struct function): Add always_inline_functions_inlined.
416 * ipa-inline.c (cgraph_early_inlining): Set it to true.
417 * tree-optimize.c (execute_fixup_cfg): Likewise.
418 * builtins.c (avoid_folding_inline_builtin): New function.
419 (fold_call_expr): Don't optimize always_inline builtins before
421 (fold_call_stmt): Likewise.
422 (fold_builtin_call_array): Likewise. Don't call
423 fold_builtin_varargs for BUILT_IN_MD builtins.
425 PR tree-optimization/37416
426 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
428 2008-12-09 Janis Johnson <janis187@us.ibm.com>
430 * doc/sourcebuild.texi (Test Directives): Fix formatting.
432 2008-12-09 Vladimir Makarov <vmakarov@redhat.com>
434 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
436 * doc/invoke.texi (-fira-region): Describe new option.
437 (-fira-algorithm): Change the values.
439 * ira-conflicts.c (build_conflict_bit_table,
440 build_allocno_conflicts): Use ira_reg_classes_intersect_p.
441 (ira_build_conflicts): Use flag flag_ira_region instead of
442 flag_ira_algorithm. Prohibit usage of callee-saved likely spilled
443 base registers for allocnos crossing calls.
445 * flags.h (enum ira_algorithm): Redefine.
446 (enum ira_region): New.
447 (flag_ira_region): New.
449 * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
450 instead of flag_ira_algorithm.
452 * toplev.c (flag_ira_algorithm): Change the initial value.
453 (flag_ira_region): New.
455 * ira-int.h (ira_reg_classes_intersect_p,
456 ira_reg_class_super_classes): New.
458 * ira-color.c (update_copy_costs): Use
459 ira_reg_classes_intersect_p. Use right class to find hard reg index.
460 (update_conflict_hard_regno_costs): Ditto. Add a new parameter.
461 (assign_hard_reg): Ditto. Pass additional argument to
462 update_conflict_hard_regno_costs. Do not uncoalesce for priority
464 (allocno_priorities, setup_allocno_priorities,
465 allocno_priority_compare_func): Move before color_allocnos.
466 (color_allocnos): Add priority coloring. Use flag flag_ira_region
467 instead of flag_ira_algorithm.
468 (move_spill_restore): Check classes of the same reg allocno from
470 (update_curr_costs): Use ira_reg_classes_intersect_p.
471 (ira_reassign_conflict_allocnos): Ditto.
473 * opts.c (decode_options): Always set up flag_ira. Set up
474 flag_ira_algorithm. Warn CB can not be used for architecture.
475 (common_handle_option): Modify code for -fira-algorithm. Add code
476 to process -fira-region.
478 * ira-lives.c (update_allocno_pressure_excess_length): Process
480 (set_allocno_live, clear_allocno_live, mark_reg_live,
481 mark_reg_dead, process_bb_node_lives): Ditto.
483 * ira-emit.c (ira_emit): Fix insn codes.
485 * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
486 instead of flag_ira_algorithm.
487 (allocno_range_compare_func): Ignore classes for priority coloring.
488 (setup_min_max_conflict_allocno_ids): Ditto.
489 (ira_flattening): Use ira_reg_classes_intersect_p.
491 * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT.
493 * common.opt (fira-algorithm): Modify.
496 * ira.c (setup_class_hard_regs): Initialize.
497 (setup_cover_and_important_classes): Modify code setting class
498 related info for priority coloring.
499 (setup_class_translate): Ditto.
500 (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
501 (setup_reg_class_intersect_union): Rename to
502 setup_reg_class_relations. Add code for setting up new variables.
503 (find_reg_class_closure): Do not check targetm.ira_cover_classes.
504 (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
506 * ira-costs.c (common_classes): New.
507 (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm.
508 (find_allocno_class_costs): Ditto. Use common_classes. Translate
510 (ira_costs): Allocate/deallocate common_classes.
512 * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
513 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
516 * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
517 smallest_mode_for_size.
519 2008-12-10 Ben Elliston <bje@au.ibm.com>
521 * config/rs6000/linux-unwind.h (get_regs): Constify casts.
523 2008-12-09 Jan Hubicka <jh@suse.cz>
525 * predict.c (estimate_bb_frequencies): Fix test if profile is present.
527 2008-12-09 Jakub Jelinek <jakub@redhat.com>
529 PR tree-optimization/35468
530 * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
533 2008-12-09 Richard Guenther <rguenther@suse.de>
535 PR tree-optimization/38445
536 * tree-ssa-structalias.c (emit_pointer_definition): Only visit
538 (emit_alias_warning): Adjust.
540 2008-12-09 Andrew Haley <aph@redhat.com>
542 * fixed-value.c (do_fixed_add): Add comment.
543 * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
544 * builtins.c (fold_builtin_sqrt): Likewise.
546 2008-12-09 Kai Tietz <kai.tietz@onevision.com>
549 * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
551 * calls.c (nitialize_argument_information): Add fntype argument
552 and use it for calls.promote_function_args.
553 (expand_call): Pass fntype to aggregate_value_p if no fndecl
554 available and pass additional fntype to
555 initialize_argument_information.
556 * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
557 to get function abi type.
558 (init_cumulative_args): Use for abi kind detection fntype, when no
561 2008-12-09 Andreas Krebbel <krebbel1@de.ibm.com>
563 * config/s390/s390.md (movti, movdi_64, movdi_31,
564 *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
565 *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
567 (Integer->BLKmode splitter): Removed.
569 2008-12-08 Uros Bizjak <ubizjak@gmail.com>
571 * config/alpha/alpha.c (alpha_set_memflags): Process memory
572 references in full insn sequence.
574 2008-12-09 Jason Merrill <jason@redhat.com>
576 * gimplify.c (gimplify_init_constructor): Revert to using < rather
577 than <= for sparseness test.
580 * gimplify.c (gimplify_init_constructor): Don't write out a static
581 copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
584 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
587 Fix testsuite/gfortran.dg/graphite/id-3.f90.
588 * graphite.c (scopdet_basic_block_info): Fix bug that found some
589 regions more than once.
591 2008-12-09 Ben Elliston <bje@au.ibm.com>
593 * emutls.c (__emutls_get_address): Prototype.
594 (__emutls_register_common): Likewise.
596 * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
598 2008-12-09 Ben Elliston <bje@au.ibm.com>
600 * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
602 2008-12-08 Steve Ellcey <sje@cup.hp.com>
604 * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
605 (nonlocal_goto_receiver): New instruction.
607 2008-12-08 Jakub Jelinek <jakub@redhat.com>
610 * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
613 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
614 VIEW_CONVERT_EXPR the same as CASE_CONVERT.
616 2008-12-08 Richard Henderson <rth@redhat.com>
619 * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
620 (SET_TYPE_MODE): New.
621 * c-decl.c (parser_xref_tag): Use it.
622 (finish_enum): Likewise.
623 * tree.c (build_pointer_type_for_mode): Likewise.
624 (build_reference_type_for_mode, build_index_type): Likewise.
625 (build_range_type, make_vector_type): Likewise.
626 (build_common_tree_nodes_2): Likewise.
627 * stor-layout.c (compute_record_mode): Likewise.
628 (finalize_type_size, layout_type, make_fract_type): Likewise.
629 (make_accum_type, initialize_sizetypes): Likewise.
630 (vector_type_mode): New.
631 * function.c (allocate_struct_function): Call
632 invoke_set_current_function_hook before querying anything else.
634 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
636 2008-12-08 Luis Machado <luisgpm@br.ibm.com>
638 * alias.c (find_base_term): Synch LO_SUM handling with what
639 find_base_value does.
641 2008-12-08 Andrew Haley <aph@redhat.com>
642 Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
644 * gimple.h (gimple_build_try): Fix declaration.
646 * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
647 * fixed-value.c (do_fixed_add): Likewise.
648 * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
650 2008-12-08 Jakub Jelinek <jakub@redhat.com>
653 * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
654 on parallel and task contexts.
656 2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
658 * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
660 2008-12-07 Richard Guenther <rguenther@suse.de>
662 PR tree-optimization/38405
663 * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
664 not sign-extend truth values.
666 2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
668 * tree-sra.c (scalarize_use): Create another temporary with the proper
669 type for signed types in the use_all && !is_output bitfield case.
671 2008-12-06 Steven Bosscher <steven@gcc.gnu.org>
673 PR rtl-optimization/36365
674 * df-core.c (df_worklist_dataflow_overeager): Remove.
675 (df_worklist_dataflow): Don't call it, use double-queue only.
676 * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
678 2008-12-06 Jakub Jelinek <jakub@redhat.com>
681 * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
682 gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
684 2008-12-07 Ben Elliston <bje@au.ibm.com>
686 * gthr-single.h (__gthread_once): Adjust prototype to match all
687 other gthreads models.
689 2008-12-06 Jakub Jelinek <jakub@redhat.com>
691 * config/i386/i386.c (override_options): Use CPU_AMDFAM10
692 instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
695 * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
696 operands to mult_type if it isn't narrower than op0's type.
698 2008-12-06 Jan Hubicka <jh@suse.cz>
699 Jakub Jelinek <jakub@redhat.com>
701 PR tree-optimization/38074
702 * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
704 * predict.c (combine_predictions_for_bb): Ignore predictor predicting
705 in both dirrection for first match heuristics.
706 (tree_bb_level_predictions): Disable noreturn heuristic when there
707 is no returning path.
709 2008-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
711 PR rtl-optimization/38272
712 * reload1.c (choose_reload_regs): Keep reload_spill_index correct
715 2008-12-05 Jakub Jelinek <jakub@redhat.com>
718 * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
719 (pp_c_expression): Likewise.
721 2008-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
724 * c-parser.c (struct c_token): Make pragma_kind 8 bits.
726 2008-12-05 Jakub Jelinek <jakub@redhat.com>
729 * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
730 arguments to HOST_WIDE_INT. If type has different signedness
731 than unsignedp or different precision from bitsize, create
732 the right type for BIT_FIELD_REF and cast to type.
733 (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
736 2008-03-05 Richard Guenther <rguenther@suse.de>
738 * fold-const.c (fold_truthop): Remove code generating
739 BIT_FIELD_REFs of structure bases.
740 (fold_binary): Likewise.
741 (make_bit_field_ref): Remove.
742 (optimize_bit_field_compare): Remove.
743 (all_ones_mask_p): Remove.
745 2008-12-05 Jakub Jelinek <jakub@redhat.com>
747 * tree-sra.c (sra_explode_bitfield_assignment): Always
748 call unsigned_type_for, if the precision is higher than
749 needed, call build_nonstandard_integer_type.
752 * function.c (assign_parm_find_stack_rtl): If promoted_mode
753 is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
757 * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
758 only if internal_arg_pointer is a non-virtual pseudo.
760 2008-12-05 Joseph Myers <joseph@codesourcery.com>
762 * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
763 TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
764 * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
766 2008-12-05 Jakub Jelinek <jakub@redhat.com>
768 PR tree-optimization/37716
769 * gimplify.c (gimplify_expr): Allow COND_EXPR if
770 gimplify_ctxp->allow_rhs_cond_expr.
772 2008-12-05 Uros Bizjak <ubizjak@gmail.com>
774 * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
775 VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
777 (alpha_emit_conditional_branch): Do not generate direct branch
778 for UNORDERED comparisons.
780 2008-12-05 Andreas Schwab <schwab@suse.de>
782 * config/rs6000/linux-unwind.h (frob_update_context): Check for
785 2008-12-05 Jakub Jelinek <jakub@redhat.com>
788 * fold-const.c (fold_checksum_tree): Change buf type to union
791 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
794 * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
796 (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
798 2008-12-05 Ben Elliston <bje@au.ibm.com>
800 * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
802 (c_parser_initelt): Initialise des_loc and ellipsis_loc.
804 2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
805 Gary Funck <gary@intrepid.com>
807 * cse.c (lookup_as_function): Delete mode frobbing code.
808 (equiv_constant): Re-implement it there for SUBREGs.
810 2008-12-04 Richard Guenther <rguenther@suse.de>
813 * Makefile.in (tree-ssa-alias-warnings.o): Remove.
814 (tree-ssa-structalias.o): Remove errors.h dependency.
815 (tree-ssa-reassoc.o): Likewise.
816 * tree-ssa-reassoc.c: Do not include errors.h.
817 * tree-ssa-alias-warnings.c: Remove.
818 * tree-ssa-alias.c (compute_may_aliases): Remove call to
819 strict_aliasing_warning_backend.
820 * tree-ssa-structalias.c (emit_pointer_definition): New function.
821 (emit_alias_warning): Likewise.
822 (set_uids_in_ptset): Warn for clear cases of type-punning.
823 * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
826 2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
828 * cse.c (equiv_constant): Fix pasto.
830 2008-12-04 Nick Clifton <nickc@redhat.com>
832 * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
833 * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
834 formatting of quotes.
836 2008-12-04 Jakub Jelinek <jakub@redhat.com>
839 * fold-const.c (fold_checksum_tree): Allow modification of
842 2008-12-03 Jakub Jelinek <jakub@redhat.com>
845 * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
846 have the right number of arguments.
848 2008-12-03 Richard Guenther <rguenther@suse.de>
851 * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
854 2008-12-03 Tomas Bily <tbily@suse.cz>
857 * tree-loop-distribution.c (build_size_arg): New function.
858 (generate_memset_zero): Checks if dr_analyze_innermost succeed.
859 Reorganized generating of stmts.
860 * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
861 * tree-data-ref.c (dr_analyze_innermost): Returns bool.
862 Indicate if analysis succeed.
863 * tree-data-ref.h (dr_analyze_innermost): Returns bool.
864 * tree-predcom.c (valid_initializer_p, find_looparound_phi):
865 Uses new definition of dr_analyze_innermost.
867 2008-12-03 Ben Elliston <bje@au.ibm.com>
869 * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
871 2008-12-03 Jakub Jelinek <jakub@redhat.com>
873 PR tree-optimization/37716
874 * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
875 all the needed operations as trees and gimplify_assign it to dst.
878 * configure.ac (gcc_cv_readelf): Look for readelf.
879 (gcc_cv_as_cfi_advance_working): Check for working
880 cfi advances with code alignment factor > 1.
881 (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
883 * configure: Regenerated.
885 2008-12-03 Eric Botcazou <ebotcazou@adacore.com>
886 Jakub Jelinek <jakub@redhat.com>
887 Andrew Pinski <andrew_pinski@playstation.sony.com>
889 PR rtl-optimization/38281
890 * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
891 set it to NULL_RTX afterwards.
893 * emit-rtl.c (set_insn_deleted): Fix formatting.
895 2008-12-02 Richard Sandiford <rdsandiford@googlemail.com>
897 * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
899 * config/mips/mips.md (IMOVE32): New mode iterator.
900 (movsi): Generalize with IMOVE32.
901 (*movsi_internal): Likewise.
902 (*mov<mode>_mips16): Likewise.
905 2008-12-02 Nathan Sidwell <nathan@codesourcery.com>
906 Maxim Kuvyrkov <maxim@codesourcery.com>
908 * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
909 PC-relative addressing when compiling for uclinux PIC.
910 (__cmpdf_internal, __cmpsf_internal): Hide.
911 (__cmpdf, __cmpsf): Use PIC call sequence.
913 2008-12-02 Andreas Tobler <a.tobler@schweiz.org>
914 Jack Howarth <howarth@bromo.med.uc.edu>
916 * config/i386/t-darwin64: Add m32 multilib support.
918 2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
920 * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
922 2008-12-02 Jakub Jelinek <jakub@redhat.com>
925 * builtins.c (fold_builtin_memory_op): Convert len to sizetype
926 before using it in POINTER_PLUS_EXPR.
928 2008-12-02 Richard Guenther <rguenther@suse.de>
930 PR tree-optimization/38359
931 * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
934 2008-12-02 Martin Jambor <mjambor@suse.cz>
937 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
939 (forward_propagate_addr_into_variable_array_index): Check that the
940 offset is not computed from a MULT_EXPR, use is_gimple_assign rather
941 than the gimple code directly.
943 2008-12-02 Ben Elliston <bje@au.ibm.com>
945 * config/spu/float_disf.c (__floatdisf): Prototype.
946 * config/spu/float_unsdisf.c (__float_undisf): Likewise.
947 * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
948 * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
950 2008-12-02 DJ Delorie <dj@redhat.com>
952 * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
953 (DWARF_CIE_DATA_ALIGNMENT): Define.
955 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
956 Invert add/sub for INCOMING_FRAME_SP_OFFSET.
957 (xstormy16_expand_prologue): Likewise.
958 (xstormy16_expand_builtin_va_start): Likewise.
959 (xstormy16_gimplify_va_arg_expr): Likewise.
961 2008-12-02 Jakub Jelinek <jakub@redhat.com>
964 * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
965 potentially returned from folding memcpy.
966 (expand_builtin_stpcpy_args): Similarly for folding strcpy.
967 (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
969 2008-12-02 Danny Smith <dannysmith@users.sourceforge.net>
972 * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
973 decoration of function RTL names here on Ada language.
975 2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
977 PR rtl-optimization/38280
978 * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
979 ira_rebuild_regno_allocno_list): New functions.
980 (regno_allocnos): New static variable.
981 (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
982 Call ira_rebuild_regno_allocno_list.
984 2008-12-01 David Daney <ddaney@caviumnetworks.com>
985 Adam Nemet <anemet@caviumnetworks.com>
987 * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
988 LINUX_DRIVER_SELF_SPECS.
990 2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
992 PR rtl-optimization/37514
993 * reload1.c (reload_as_needed): Invalidate reg_last_reload
996 2008-12-01 Jakub Jelinek <jakub@redhat.com>
999 * c-omp.c (c_finish_omp_for): Only transform pointer
1000 ++ or -- into MODIFY_EXPR if second argument is non-NULL.
1002 PR rtl-optimization/38245
1003 * tree-vrp.c (abs_extent_range): New function.
1004 (extract_range_from_binary_expr): Compute range
1005 for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
1006 or includes zero or if vr1 is VR_RANGE and op0 has some
1009 2008-12-01 Uros Bizjak <ubizjak@gmail.com>
1012 * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
1013 case by calculating ~(new_reg & val) instead of (~new_reg & val).
1014 * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
1015 to (not:I48MODE (and:I48MODE (...))).
1016 (sync_old_nand<mode>): Ditto.
1017 (sync_new_nand<mode>): Ditto.
1019 2008-12-01 Nick Clifton <nickc@redhat.com>
1021 * config/stormy16/stormy16.md (CARRY_REG): New constant.
1022 Replace uses of the "y" register class with direct references to
1023 the CARRY_REG register.
1024 * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
1025 register with clobbers of the carry register.
1026 (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
1027 (xstormy16_split_cbranch): Remove redundant carry parameter.
1028 (xstormy16_expand_arith): Likewise.
1029 * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
1030 (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1031 REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
1032 (CARRY_REGNUM): Define.
1033 * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
1035 (xstormy16_expand_arith): Likewise.
1037 2008-12-01 Chen Liqin <liqin.chen@sunplusct.com>
1039 * config/score/score.h (IRA_COVER_CLASSES): Define.
1041 2008-11-30 Eric Botcazou <ebotcazou@adacore.com>
1044 * config/sparc/sparc.md (divsi3 expander): Remove constraints.
1045 (divsi3_sp32): Add new alternative with 'K' for operand #2.
1046 (cmp_sdiv_cc_set): Factor common string.
1047 (udivsi3_sp32): Add new alternative with 'K' for operand #2.
1049 (cmp_udiv_cc_set): Factor common string.
1051 2008-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1054 * varasm.c (emutls_finish): Fix common registration.
1056 2008-11-29 Jakub Jelinek <jakub@redhat.com>
1059 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
1061 2008-11-29 David Edelsohn <edelsohn@gnu.org>
1063 * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
1064 operand wrapped in NOT. Emit NAND as (ior (not X) (not Y)).
1065 (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
1066 * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
1067 Call rs6000_emit_sync with CODE=NOT and unmodified operands.
1068 Ignore sub-word case for now.
1069 (sync_nand<mode>_internal): Represent NAND in RTL.
1070 (sync_old_nand<mode): Same.
1071 (sync_old_name<mode>_internal): Same.
1072 (sync_new_nand<mode>): Same.
1073 (sync_new_nand<mode>_internal): Same.
1074 (sync_boolcshort_internal): Expect NAND.
1076 2008-11-28 Richard Guenther <rguenther@suse.de>
1078 PR tree-optimization/37955
1079 PR tree-optimization/37742
1080 * tree-vect-transform.c (vectorizable_store): Remove assert for
1082 (vectorizable_load): Likewise.
1084 2008-11-27 Richard Guenther <rguenther@suse.de>
1086 * tree-ssa-structalias.c (intra_create_variable_infos): Make
1087 a constraint for the static chain parameter.
1089 2008-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
1091 * config/bfin/bfin.opt (micplb): New option.
1092 * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
1093 * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
1094 ENABLE_WA_INDIRECT_CALLS): New macros.
1095 * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
1097 (indirect_call_p): New function.
1098 (workaround_speculation): Handle anomaly 05-00-0426 when
1099 ENABLE_WA_INDIRECT_CALLS is true.
1100 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1101 __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
1102 * doc/invoke.texi (Blackfin Options): Document -micplb.
1104 2008-11-26 DJ Delorie <dj@redhat.com>
1106 * config/m32c/mov.md ("extendhipsi2"): New.
1108 * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
1110 * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
1111 * config/m32c/mov.md (zero_extendqihi2): Likewise.
1113 2008-11-26 Adam Nemet <anemet@caviumnetworks.com>
1115 * config/mips/mips.md (clear_hazard): Rename to
1116 clear_hazard_<mode>. Use mode-specific addition.
1117 (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
1118 or gen_clear_hazard_di depending on the size of Pmode.
1120 2008-11-26 DJ Delorie <dj@redhat.com>
1122 * configure.ac: Test m32c-elf-gas for .loc.
1123 * configure: Likewise.
1125 2008-11-26 Janis Johnson <janis187@us.ibm.com>
1128 * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
1131 2008-11-26 Uros Bizjak <ubizjak@gmail.com>
1133 * config/i386/sync.md (memory_barrier_nosse): Disable also for
1134 TARGET_64BIT. Remove special asm template for TARGET_64BIT case.
1135 (memory_barrier): Do not generate memory_barrier_nosse instruction
1137 * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
1139 2008-11-26 Fredrik Unger <fred@tree.se>
1141 * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
1142 function name from __floatundisf.
1143 * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
1146 2008-11-25 Daniel Berlin <dberlin@dberlin.org>
1147 Richard Guenther <rguenther@suse.de>
1149 PR tree-optimization/37869
1150 * tree-ssa-structalias.c (struct constraint_graph): Remove
1151 pt_used and number_incoming members.
1152 (build_pred_graph): Do not allocate them.
1153 (condense_visit): Do not use them.
1154 (label_visit): Likewise.
1155 (free_var_substitution_info): Do not free them.
1157 2008-11-25 Vladimir Makarov <vmakarov@redhat.com>
1159 * doc/invoke.texi (ira-max-loops-num): Change semantics.
1161 * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
1163 * ira-color.c (allocno_spill_priority): New function.
1164 (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
1165 Print more info about the spilled allocno.
1166 (push_allocnos_to_stack): Use allocno_spill_priority. Add more
1167 checks on bad spill.
1169 * ira-build.c (loop_node_to_be_removed_p): Remove.
1170 (loop_compare_func, mark_loops_for_removal): New functions.
1171 (remove_uneccesary_loop_nodes_from_loop_t): Use member
1173 (remove_unnecessary_allocnos): Call mark_loops_for_removal.
1175 * ira.c (ira): Don't change flag_ira_algorithm.
1177 * params.def (ira-max-loops-num): Change the value.
1179 2008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com>
1181 * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
1182 Disable unsupported alternative for ColdFire,
1183 add new alternative that ColdFire can handle.
1185 2008-11-25 Eric Botcazou <ebotcazou@adacore.com>
1187 * regrename.c (merge_overlapping_regs): Add registers artificially
1188 defined at the top of the basic block to the set of live ones just
1189 before the first insn.
1191 2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
1192 Joey Ye <joey.ye@intel.com>
1195 * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
1196 false if we need to align the outgoing stack.
1197 (ix86_update_stack_boundary): Check parm_stack_boundary.
1199 2008-11-25 Richard Guenther <rguenther@suse.de>
1203 * tree-ssa-alias.c (struct alias_info): Remove written_vars.
1204 Remove dereferenced_ptrs_store and dereferenced_ptrs_load
1205 in favor of dereferenced_ptrs.
1206 (init_alias_info): Adjust.
1207 (delete_alias_info): Likewise.
1208 (compute_flow_insensitive_aliasing): Properly
1209 include all aliased variables.
1210 (update_alias_info_1): Use dereferenced_ptrs.
1211 (setup_pointers_and_addressables): Likewise.
1212 (get_smt_for): Honor ref-all pointers and pointers with known alias
1214 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
1216 2008-11-25 Uros Bizjak <ubizjak@gmail.com>
1219 * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
1220 (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
1222 2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
1224 * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
1226 2008-11-24 Richard Sandiford <rdsandiford@googlemail.com>
1228 * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
1230 2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
1233 * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
1234 (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
1236 2008-11-24 Uros Bizjak <ubizjak@gmail.com>
1238 * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
1239 UNSPECV_CMPXCHG_[12].
1240 * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
1241 UNSPECV_CMPXCHG_[12].
1244 * config/i386/sync.md (memory_barrier): New expander.
1246 2008-11-24 Jakub Jelinek <jakub@redhat.com>
1249 * dse.c (find_shift_sequence): Optimize extraction from a constant.
1251 2008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1253 * pa.c (function_arg): Revert 2008-10-26 change.
1255 2008-11-23 Helge Deller <deller@gmx.de>
1257 * pa/linux-atomic.c (EBUSY): Define if not _LP64.
1258 (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
1259 succeeded and lws_ret is not equal to oldval.
1261 2008-11-23 Kaz Kojima <kkojima@gcc.gnu.org>
1263 * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
1265 2008-11-22 Andreas Schwab <schwab@suse.de>
1267 * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
1270 2008-11-22 Adam Nemet <anemet@caviumnetworks.com>
1272 * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
1273 Use constant 1 as the operand.
1274 * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
1275 Rename gen_rdhwr to gen_rdhwr_synci_step_si or
1276 gen_rdhwr_synci_step_di depending on the size of Pmode.
1278 2008-11-22 Uros Bizjak <ubizjak@gmail.com>
1281 * config/i386/i386.md (SWI248): New mode iterator.
1282 (SWI32): Remove mode iterator.
1283 (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
1284 popcounthi2 insn patterns. Macroize pattern using SWI248 mode
1285 iterator. Generate popcnt mnemonic without mode extensions
1286 for Darwin x86 targets.
1287 (*popcount<mode>2_cmp): Ditto.
1288 (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
1289 extensions for Darwin x86 targets.
1291 2008-11-22 Eric Botcazou <ebotcazou@adacore.com>
1293 * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
1294 only if HAVE_AS_SPARC_UA_PCREL is defined.
1296 2008-11-22 Richard Sandiford <rdsandiford@googlemail.com>
1298 * ira-costs.c (find_allocno_class_costs): Work out the maximum
1299 allocno_costs value of the classees with the lowest total_costs
1300 value. Use this to set ALLOCNO_COVER_CLASS_COST here...
1301 (setup_allocno_cover_class_and_costs): ...rather than here.
1302 Use the ALLOCNO_COVER_CLASS_COST for all registers in the
1305 2008-11-22 Jakub Jelinek <jakub@redhat.com>
1308 * builtins.c (expand_builtin_apply_args): Emit sequence before
1309 parm_birth_insn instead of after entry_of_function's first insn.
1312 * function.c (assign_parm_remove_parallels): Pass
1313 data->passed_type as third argument to emit_group_store.
1316 * final.c (mark_symbol_refs_as_used): New function.
1317 * output.h (mark_symbol_refs_as_used): New prototype.
1318 * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
1319 (s390_output_pool_entry): Use mark_symbol_refs_as_used.
1320 * config/arm/arm.md (consttable_4): Likewise.
1323 * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
1325 2008-11-21 Jakub Jelinek <jakub@redhat.com>
1328 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
1329 propagate x = &a into *x = b if conversion from b to a's type is
1332 2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
1334 * caller-save.c (insert_one_insn): Take into account REG_INC notes
1335 for the liveness computation of the new insn.
1337 2008-11-21 DJ Delorie <dj@redhat.com>
1339 * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
1340 Moves to/from below100 space (W) can only use r0-r7.
1342 2008-11-21 Paolo Carlini <paolo.carlini@oracle.com>
1345 * doc/invoke.texi (Optimization Options): Fix typo.
1347 2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
1348 Xuepeng Guo <xuepeng.guo@intel.com>
1350 * config.gcc (extra_headers): For x86 and x86-64, remove
1351 gmmintrin.h, add immintrin.h and avxintrin.h.
1353 * config/i386/gmmintrin.h: Renamed to ...
1354 * config/i386/avxintrin.h: This. Issue an error if
1355 _IMMINTRIN_H_INCLUDED is undedined.
1357 * config/i386/immintrin.h: New.
1359 2008-11-21 Jakub Jelinek <jakub@redhat.com>
1362 * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
1363 mode of PLUS, not mode of the eliminated register.
1365 2008-11-21 Uros Bizjak <ubizjak@gmail.com>
1367 * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
1368 * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
1369 (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
1370 (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
1371 (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
1372 (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
1373 (*nand<mode>3): Rename to *andnot<mode>3.
1374 (*nandtf3): rename to *andnottf3.
1375 * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
1376 Use CODE_FOR_mmx_andnotv2si3.
1377 [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
1378 [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
1379 [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
1380 [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
1381 [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
1383 2008-11-21 Uros Bizjak <ubizjak@gmail.com>
1386 * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
1387 case by calculating ~(new_reg & val) instead of (~new_reg & val).
1388 * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
1389 to (not:IMODE (and:IMODE (...))).
1390 (sync_old_nand<mode>): Ditto.
1391 (sync_new_nand<mode>): Ditto.
1393 2008-11-20 Joseph Myers <joseph@codesourcery.com>
1395 * config/arm/thumb2.md (thumb2_casesi_internal,
1396 thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
1398 2008-11-20 Andreas Krebbel <krebbel1@de.ibm.com>
1400 * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
1401 nand to the changed 4.4 semantic.
1403 2008-11-20 Jakub Jelinek <jakub@redhat.com>
1406 * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
1407 (fold_builtin_memory_op): Handle even the case where just one
1408 of src and dest is an address of a var decl component, using
1409 TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant
1410 and readonly_data_expr src check.
1411 * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
1414 PR rtl-optimization/36998
1415 * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
1416 arguments. Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
1417 (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
1418 stack_adjust_offset callers.
1419 (dwarf2out_stack_adjust): Likewise. Handle insns in annulled
1421 (compute_barrier_args_size): Handle insns in annulled branches
1424 2008-11-20 Uros Bizjak <ubizjak@gmail.com>
1427 * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
1428 Handle cases when integer argument crosses argument register boundary.
1430 2008-11-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1433 * config.gcc (i[34567]86-*-solaris2*): Don't include
1434 i386/t-crtstuff here.
1435 Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
1436 * config/i386/t-sol2: Move to libgcc/config/i386.
1438 2008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
1441 * tlink.c: Include "libiberty.h".
1442 (initial_cwd): Change type into char *.
1443 (tlink_init): Call getpwd instead of getcwd.
1445 2008-11-19 Zdenek Dvorak <ook@ucw.cz>
1447 PR rtl-optimization/32283
1448 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
1449 of the induction variable to decide whether it may wrap.
1450 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
1451 initialization of the bound before the loop.
1452 * simplify-rtx.c (simplify_binary_operation_1): Add two
1453 simplifications regarding AND.
1454 (simplify_plus_minus): Only fail if no simplification is possible.
1455 * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
1457 2008-11-20 Jakub Jelinek <jakub@redhat.com>
1460 * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
1461 checking until GIMPLE lowering.
1462 * gimple-low.c (check_call_args): New function.
1463 (lower_stmt) <case GIMPLE_CALL>: Call it.
1465 2008-11-19 Adam Nemet <anemet@caviumnetworks.com>
1467 * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
1468 with the same type as the first operand of the AND expression.
1470 2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
1473 * ira-int.h (struct ira_loop_tree_node): New member
1474 entered_from_non_parent_p.
1476 * ira-color.c (print_loop_title): Print loop bbs.
1478 * ira-emit.c (entered_from_non_parent_p,
1479 setup_entered_from_non_parent_p): New functions.
1480 (not_modified_p): Rename to store_can_be_removed_p. Check there
1482 (generate_edge_moves): Use store_can_be_removed_p instead of
1484 (ira_emit): Call setup_entered_from_non_parent_p.
1486 * ira-build.c (copy_info_to_removed_store_destinations):
1487 Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
1488 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
1489 (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
1490 update all accumulated attributes.
1492 2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
1495 * ira-int.h (ira_copy_allocno_live_range_list,
1496 ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
1497 ira_finish_allocno_live_range_list): New prototypes.
1498 (ira_allocno_live_ranges_intersect_p,
1499 ira_pseudo_live_ranges_intersect_p): Remove.
1501 * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
1502 ira_pseudo_live_ranges_intersect_p): Rename to
1503 allocnos_have_intersected_live_ranges_p and
1504 pseudos_have_intersected_live_ranges_p. Move them from here to ...
1506 * ira-color.c: ... here
1507 (coalesced_allocno_conflict_p): Use
1508 allocnos_have_intersected_live_ranges_p.
1509 (coalesced_allocnos_living_at_program_points,
1510 coalesced_allocnos_live_at_points_p,
1511 set_coalesced_allocnos_live_points): Remove.
1512 (slot_coalesced_allocnos_live_ranges,
1513 slot_coalesced_allocno_live_ranges_intersect_p,
1514 setup_slot_coalesced_allocno_live_ranges): New.
1515 (coalesce_spill_slots): Use ranges of coalesced allocnos.
1516 (ira_sort_regnos_for_alter_reg): Use
1517 allocnos_have_intersected_live_ranges_p.
1518 (ira_reuse_stack_slot): Use
1519 pseudos_have_intersected_live_ranges_p.
1521 * global.c (pseudo_for_reload_consideration_p): Check
1522 flag_ira_share_spill_slots too.
1524 * ira-build.c (copy_allocno_live_range_list): Rename to
1525 ira_copy_allocno_live_range_list. Make it external.
1526 (merge_ranges): Rename to ira_merge_allocno_live_ranges. Make it
1528 (ira_allocno_live_ranges_intersect_p): New.
1529 (ira_finish_allocno_live_range_list): New.
1530 (finish_allocno): Use it.
1531 (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
1532 (copy_info_to_removed_store_destinations): Ditto. Use
1533 ira_copy_allocno_live_range_list.
1534 (ira_flattening): Use ira_merge_allocno_live_ranges.
1536 * ira.c (too_high_register_pressure_p): New function.
1537 (ira): Switch off sharing spill slots if the pressure is too high.
1539 2008-11-19 Richard Guenther <rguenther@suse.de>
1541 * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
1542 non-sizetype offsets if their precision matches that of the pointer.
1543 * expr.c (expand_expr_real_1): Always sign-extend the offset
1544 operand of a POINTER_PLUS_EXPR.
1546 2008-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1548 * config.gcc: Unobsolete mips-sgi-irix[56]*.
1549 (mips-sgi-irix[56]*): No need to use fixproto.
1551 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
1552 Paul Brook <paul@codesourcery.com>
1554 * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
1557 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
1559 * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
1561 2008-11-19 Razya Ladelsky <razya@il.ibm.com>
1564 * tree-parloops.c (loop_parallel_p): NULL vect_dump.
1565 (separate_decls_in_region): Create shared struct even when there
1566 are only reductions.
1568 2008-11-19 Hariharan Sandanagobalane <hariharan@picochip.com>
1570 * config/picochip/picochip.c (headers): Remove an unnecessary
1573 2008-11-19 Andrew Stubbs <ams@codesourcery.com>
1576 * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
1577 * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
1579 * config/m68k/m68k.md: Adjust all conditional branches that use the
1580 carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
1582 2008-11-18 Uros Bizjak <ubizjak@gmail.com>
1585 * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
1586 is a register or zero operand in the correct mode before generating
1587 mtch1 insn or a register operand in the correct mode before generating
1589 (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
1591 2008-11-18 Adam Nemet <anemet@caviumnetworks.com>
1593 * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
1594 (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
1595 mipsisa*-*-elf*. Handle mipsisa64r2*.
1596 * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
1597 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1599 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
1600 * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1602 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. Add mips64r2/mips16.
1603 Fix mips16 if mips64 or mips64r2 are multilib defaults.
1604 * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1607 2008-11-18 Jakub Jelinek <jakub@redhat.com>
1610 * config/i386/i386.md (allocate_stack_worker_32,
1611 allocate_stack_worker_64): Don't use match_dup between input and
1613 (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
1614 * config/i386/i386.c (ix86_expand_prologue): Likewise.
1616 2008-11-18 Kai Tietz <kai.tietz@onevision.com>
1618 * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
1619 is forced when trying to do a symbol link for it.
1621 2008-11-17 Adam Nemet <anemet@caviumnetworks.com>
1623 * expmed.c (extract_bit_field_1): Also use a temporary and
1624 convert_extracted_bit_field when the conversion from ext_mode to
1625 the target mode requires explicit truncation.
1627 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
1629 * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
1631 * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
1632 registers when not optimizing.
1634 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
1636 * config/mips/mips.md (*mul_acc_si): Remove middle alternative
1637 and its associated define_split. Expose the all-d alternative
1638 to the register allocator, but mark it with "?". Mark the first
1639 alternative with "*?*?".
1640 (*mul_sub_si): Likewise.
1641 (*mul_acc_si_r3900): New pattern.
1643 2008-11-17 Jakub Jelinek <jakub@redhat.com>
1646 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
1647 propagating x = &a into *x = b, add a cast if not useless
1648 type conversion or don't optimize if another stmt would be
1651 2008-11-17 Uros Bizjak <ubizjak@gmail.com>
1654 * optabs.c (expand_sync_operation): Properly handle NAND case
1655 by calculating ~(t1 & val) instead of (~t1 & val).
1656 * builtins.c (expand_builtin_sync_operation): Warn for changed
1657 semantics in NAND builtins.
1658 * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand.
1660 * doc/invoke.texi (Warning options): Add Wsync-nand.
1661 * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
1662 __sync_fetch_and_nand builtin operation in the example. Add a note
1663 about changed semantics in GCC 4.4.
1664 [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
1665 operation in the example. Add a note about changed semantics in
1668 2008-11-16 Jan Hubicka <jh@suse.cz>
1670 * cgraph.c (cgraph_function_body_availability): Fix test of externally
1673 2008-11-16 Joshua Kinard <kumba@gentoo.org>
1675 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
1678 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
1681 * config/mips/mips.c (mips_cfun_call_saved_reg_p)
1682 (mips_cfun_might_clobber_call_saved_reg_p): New functions,
1684 (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP
1685 rather than call_really_used_regs when handling $gp.
1687 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
1690 * config/mips/mips.c (machine_function): Update the comment
1691 above global_pointer.
1692 (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
1693 that a function doesn't need a global pointer.
1694 (mips_current_loadgp_style): Update accordingly.
1695 (mips_restore_gp): Likewise.
1696 (mips_output_cplocal): Likewise.
1697 (mips_expand_prologue): Likewise.
1699 2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
1701 * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
1702 parameter. Use DImode for computing the number of registers.
1703 (function_arg): Adjust for above change.
1704 (function_value): Likewise.
1706 2008-11-15 Zdenek Dvorak <ook@ucw.cz>
1708 PR tree-optimization/37950
1709 * tree-flow-inline.h (memory_partition): Return NULL when aliases were
1710 not computed for the current function.
1712 2008-11-15 Jakub Jelinek <jakub@redhat.com>
1715 * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
1716 gpr and other COMPONENT_REFs.
1718 2008-11-15 Richard Guenther <rguenther@suse.de>
1720 PR tree-optimization/38051
1721 * tree-ssa-alias.c (update_alias_info_1): Manually find
1724 2008-11-15 Joshua Kinard <kumba@gentoo.org>
1726 * doc/invoke.texi (-mfix-r10000): Document.
1727 * config/mips/mips.opt (mfix-r10000): New option.
1728 * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
1729 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
1730 (MIPS_COMPARE_AND_SWAP_12): Likewise.
1731 (MIPS_SYNC_OP): Likewise.
1732 (MIPS_SYNC_OP_12): Likewise.
1733 (MIPS_SYNC_OLD_OP_12): Likewise.
1734 (MIPS_SYNC_NEW_OP_12): Likewise.
1735 (MIPS_SYNC_OLD_OP): Likewise.
1736 (MIPS_SYNC_NAND): Likewise.
1737 (MIPS_SYNC_OLD_NAND): Likewise.
1738 (MIPS_SYNC_EXCHANGE): Likewise.
1739 (MIPS_SYNC_EXCHANGE_12): Likewise.
1740 (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
1742 (MIPS_SYNC_NEW_NAND): Likewise.
1743 * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
1744 (mips_init_print_operand_punct): Treat '~' as a punctuation character.
1745 (mips_output_sync_loop): New function.
1746 (mips_override_options): Make -march=r10000 imply -mfix-r10000.
1747 Make -mfix-r10000 require branch-likely instructions.
1748 * config/mips/sync.md (sync_compare_and_swap<mode>): Use
1749 mips_output_sync_loop.
1750 (compare_and_swap_12): Likewise.
1751 (sync_add<mode>): Likewise.
1752 (sync_<optab>_12): Likewise.
1753 (sync_old_<optab>_12): Likewise.
1754 (sync_new_<optab>_12): Likewise.
1755 (sync_nand_12): Likewise.
1756 (sync_old_nand_12): Likewise.
1757 (sync_new_nand_12): Likewise.
1758 (sync_sub<mode>): Likewise.
1759 (sync_old_add<mode>): Likewise.
1760 (sync_old_sub<mode>): Likewise.
1761 (sync_new_add<mode>): Likewise.
1762 (sync_new_sub<mode>): Likewise.
1763 (sync_<optab><mode>): Likewise.
1764 (sync_old_<optab><mode>): Likewise.
1765 (sync_new_<optab><mode>): Likewise.
1766 (sync_nand<mode>): Likewise.
1767 (sync_old_nand<mode>): Likewise.
1768 (sync_new_nand<mode>): Likewise.
1769 (sync_lock_test_and_set<mode>): Likewise.
1770 (test_and_set_12): Likewise.
1772 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
1774 * gcc.c (cc1_options): Fix comment.
1776 2008-11-15 Jakub Jelinek <jakub@redhat.com>
1779 * c-typeck.c (build_unary_op): Don't call get_unwidened. Use
1780 argtype instead of result_type.
1782 2008-11-14 Adam Nemet <anemet@caviumnetworks.com>
1784 * ira-int.h (struct ira_loop_tree_node): Improve comments for
1785 subloop_next/next and subloops/childen fields.
1787 2008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1789 * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
1790 (STANDARD_INCLUDE_DIR): Redefine to "/include".
1791 (LOCAL_INCLUDE_DIR): Undefine.
1792 * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
1794 2008-11-14 Vladimir Makarov <vmakarov@redhat.com>
1796 PR rtl-optimization/37397
1797 * ira-int.h (struct ira_allocno): New member bad_spill_p.
1798 (ALLOCNO_BAD_SPILL_P): New macro.
1800 * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
1802 * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
1803 (create_cap_allocno, propagate_allocno_info,
1804 remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
1805 (update_bad_spill_attribute): New function.
1806 (ira_build): Call it.
1808 * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
1810 2008-11-14 Jakub Jelinek <jakub@redhat.com>
1812 PR tree-optimization/38104
1813 * gimplify.c (gimple_regimplify_operands): Add referenced vars
1814 before calling mark_symbols_for_renaming, not after it.
1816 2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
1818 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
1819 (OVERRIDE_OPTIONS): Likewise.
1821 2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
1822 Andrew Stubbs <ams@codesourcery.com>
1823 Gunnar Von Boehn <gunnar@genesi-usa.com>
1826 * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
1827 the shorter LEA insn over ADD.L where possible.
1829 2008-11-14 Thomas Schwinge <tschwinge@gnu.org>
1831 * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
1832 systems, which are assumend to always provide SSP-support in glibc.
1833 Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
1835 * configure: Regenerate.
1837 2008-11-14 Jakub Jelinek <jakub@redhat.com>
1840 * function.c (gimplify_parameters): For callee copies parameters,
1841 move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
1843 2008-11-13 Thomas Schwinge <tschwinge@gnu.org>
1846 * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
1847 x86 parts into the `i[34567]86-*-linux*' and parts that are
1848 independent of the processor architecture into the `*-*-linux*' cases.
1849 (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
1850 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
1851 (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
1852 [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
1853 * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
1854 (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
1855 (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
1857 2008-11-13 Ruan Beihong <ruanbeihong@gmail.com>
1859 * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
1860 * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
1861 (ls2_idiv): Likewise idiv3.
1862 (ls2_prefetch): New reservation.
1863 * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
1864 * config/mips/mips.md (type): Add imul3nc and idiv3.
1865 (length): Handle idiv3.
1866 (any_mod): New code_iterator.
1867 (u): Handle MOD and UMOD.
1868 (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
1869 (prefetch): Handle TARGET_LOONGSON_2EF.
1871 2008-11-13 Jakub Jelinek <jakub@redhat.com>
1874 * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
1875 (prune_unused_types_walk): Call it for non-perennial local classes.
1876 Set die_mark to 2 if recursing on children. If die_mark is 1 on
1877 entry, just set it to 2 and recurse on children, don't walk attributes
1880 2008-11-13 Martin Michlmayr <tbm@cyrius.com>
1882 * c-common.c (warn_about_parentheses): Add missing whitespace
1885 2008-11-13 Paul Brook <paul@codesourcery.com>
1887 * doc/invoke.texi: Document --fix-cortex-m3.
1888 * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
1889 Cortex-M3 cpu is selected.
1890 (output_move_double): Avoid overlapping base register and first
1891 destination register when fix_cm3_ldrd.
1892 * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
1894 2008-11-13 Jakub Jelinek <jakub@redhat.com>
1897 * gimple.h (gimple_range_check_failed): Remove prototype.
1898 * gimple.c (gimple_check_failed): Don't check GCC_VERSION
1900 (gimple_range_check_failed): Removed.
1902 2008-11-13 Andrew Haley <aph@redhat.com>
1905 * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
1908 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1912 2007-05-07 Mike Stump <mrs@apple.com>
1913 * doc/invoke.texi (Warning Options): Document that -Wempty-body
1914 also checks for and while statements in C++.
1916 2008-11-12 Dodji Seketeli <dodji@redhat.com>
1919 * cgraph.h: New abstract_and_needed member to struct cgraph_node.
1920 * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
1921 - which clones are reachable - as "abstract and needed".
1922 * cgraph.c (cgraph_release_function_body): If a node is
1923 "abstract and needed", do not release its DECL_INITIAL() content
1924 that will be needed to emit debug info.
1926 2008-11-12 Steve Ellcey <sje@cup.hp.com>
1929 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
1930 to set HAVE_GETIPINFO.
1931 * aclocal.m4: Include ../config/unwind_ipinfo.m4.
1932 * configure: Regenerate.
1933 * config.in: Regenerate.
1935 2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
1938 * gcc/config.gcc: Use darwin9.h on darwin10 as well.
1940 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1943 2008-10-21 Jakub Jelinek <jakub@redhat.com>
1944 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
1946 2008-11-12 Jason Merrill <jason@redhat.com>
1949 * c-common.c (c_common_signed_or_unsigned_type): Remove C++
1952 2008-11-12 Anatoly Sokolov <aesok@post.ru>
1954 * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
1955 atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
1957 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1958 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1960 2008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1962 * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
1963 packed-stack special handling.
1964 (FRAME_ADDR_RTX): Add definition.
1966 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1969 * fold-const.c (native_encode_string): New function.
1970 (native_encode_expr): Use it for STRING_CST.
1972 2008-11-12 DJ Delorie <dj@redhat.com>
1974 * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
1975 insns if the intermediate value will be used later.
1977 2008-11-12 Andreas Schwab <schwab@suse.de>
1979 * config/m68k/m68k.c (print_operand): Mask off extra extension
1980 bits when writing out the representation of real values.
1982 2008-11-12 Ira Rosen <irar@il.ibm.com>
1984 PR tree-optimization/38079
1985 * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
1988 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1991 * c-pretty-print.c (pp_c_complex_expr): New function.
1992 (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
1995 * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
1996 than INNER and INNER is a constant, forcibly align INNER as much
1999 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
2001 * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
2003 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
2005 PR rtl-optimization/37363
2006 * simplify-rtx.c (simplify_plus_minus): Don't create
2007 (const (minus ...)) expresisons.
2009 2008-11-11 Eric Botcazou <ebotcazou@adacore.com>
2011 * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
2014 2008-11-10 Catherine Moore <clm@codesourcery.com>
2016 * config.gcc (mips64vrel-*-elf*): Include the tm_file
2018 * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
2019 (BASE_DRIVER_SELF_SPECS): Remove.
2020 (DRIVER_SELF_SPECS): New definition.
2021 * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
2022 BASE_DRIVER_SELF_SPECS.
2023 * config/mips/sde.h: Likewise.
2024 * config/mips/iris6.h: Likewise.
2025 * config/mips/vr.h: Likewise.
2026 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
2028 2008-11-10 Vladimir Makarov <vmakarov@redhat.com>
2030 PR rtl-optimizations/37948
2031 * ira-int.h (struct ira_allocno_copy): New member constraint_p.
2032 (ira_create_copy, ira_add_allocno_copy): New parameter.
2034 * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it
2035 to ira_add_allocno_copy.
2036 (process_reg_shuffles, add_insn_allocno_copies): Pass a new
2037 parameter to process_regs_for_copy.
2038 (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
2039 Fix typo in passing second allocno to ira_add_allocno_copy.
2041 * ira-color.c (update_conflict_hard_regno_costs): Use head of
2042 coalesced allocnos list.
2043 (assign_hard_reg): Ditto. Check that assigned allocnos are not in
2045 (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
2046 (add_ira_allocno_to_ordered_bucket): Rename to
2047 add_allocno_to_ordered_bucket.
2048 (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use
2049 head of coalesced allocnos list.
2050 (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
2051 Check that it is aready calculated.
2052 (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
2053 (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
2055 (coalesce_allocnos): Do extended coalescing too.
2057 * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
2058 parameter to ira_add_allocno_copy.
2060 * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
2062 (print_copy): Print copy origination too.
2064 * ira-costs.c (scan_one_insn): Use alloc_pref for load from
2067 2008-11-10 Kaz Kojima <kkojima@gcc.gnu.org>
2069 PR rtl-optimization/37514
2070 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
2071 flag_ira_share_spill_slots to 2 if it's already non-zero.
2072 (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
2073 flag_ira_share_spill_slots is 2.
2075 2008-11-10 Kevin Buettner <kevinb@redhat.com>
2077 * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
2078 (prologue_enter_32): Set FB to SP - 4.
2080 2008-11-10 DJ Delorie <dj@redhat.com>
2082 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
2083 constraint for single-bit-clear in lower byte of HI constant, vs
2084 Imb which just ignores the upper byte.
2085 * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
2086 * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
2087 (iorhi3_16): Check for single bit set, not single bit clear.
2089 2008-11-10 Janis Johnson <janis187@us.ibm.com>
2091 * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
2093 * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
2095 2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
2097 * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
2098 values living in memory and use more precise alignment information.
2100 2008-11-10 Jakub Jelinek <jakub@redhat.com>
2103 * tree-mudflap.c (mf_build_check_statement_for): Split then_block
2104 after __mf_check call if the call must end a bb.
2106 2008-11-10 Ralph Loader <suckfish@ihug.co.nz>
2110 * combine.c (force_to_mode): Do not process vector types.
2112 * rtlanal.c (nonzero_bits1): Do not process vector types.
2113 (num_sign_bit_copies1): Likewise.
2115 2008-11-09 Thomas Schwinge <tschwinge@gnu.org>
2117 * config/i386/gnu.h: Add copyright and licensing header.
2118 * config/gnu.h: Likewise.
2120 2008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
2122 * fwprop.c (fwprop_done): Call df_remove_problem.
2124 2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
2127 * tree-scalar-evolution.c (instantiate_scev_1): Return
2128 chrec_dont_know for VL_EXP_CLASS_P.
2130 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
2132 * reg-stack.c (reg_to_stack): Add missing braces in memset
2135 2008-11-06 Andrew Stubbs <ams@codesourcery.com>
2137 * config/arm/bpabi.h (PROFILE_HOOK): New undef.
2138 (NO_PROFILE_COUNTERS): New define.
2140 2008-11-06 David Edelsohn <edelsohn@gnu.org>
2143 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
2145 2008-11-06 Kazu Hirata <kazu@codesourcery.com>
2148 * config/sparc/constraints.md (D): New.
2149 * config/sparc/predicates.md (const_double_or_vector_operand): New.
2150 * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
2152 * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
2153 Use the 'D' constraint in addition to 'F' in some alternatives.
2154 (DF splitter): Generalize for V64mode.
2155 * doc/md.texi (SPARC): Document the 'D' constraint.
2157 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
2159 * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
2161 2008-11-06 Ben Elliston <bje@au.ibm.com>
2163 * gcc.c: Remove ancient comment about a bug in Sun cc.
2165 2008-11-05 Janis Johnson <janis187@us.ibm.com>
2167 * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
2169 2008-11-06 Ben Elliston <bje@au.ibm.com>
2171 * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
2173 2008-11-06 Ben Elliston <bje@au.ibm.com>
2175 * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
2178 2008-11-05 Hans-Peter Nilsson <hp@axis.com>
2181 * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
2184 2008-11-05 Martin Jambor <mjambor@suse.cz>
2187 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
2188 pointer arithmetics into array_ref if the array is accessed
2189 through an indirect_ref.
2191 2008-11-05 Richard Guenther <rguenther@suse.de>
2194 * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
2195 qualified pointer conversion before stripping qualifiers.
2196 * gimplify.c (create_tmp_from_val): Use correctly qualified type.
2197 * tree-flow.h (may_propagate_address_into_dereference): Declare.
2198 * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
2201 * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
2202 properly canonicalize binary ops.
2203 (forward_propagate_addr_expr_1): Use
2204 may_propagate_address_into_dereference.
2206 2008-11-05 Uros Bizjak <ubizjak@gmail.com>
2209 * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
2210 Initialize uninitialized input registers with a NaN.
2212 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
2216 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
2218 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
2222 * graphite.c (scopdet_basic_block_info): Fix loops with multiple
2223 exits and conditions.
2224 * testsuite/gcc.dg/graphite/pr37943.c: New.
2226 2008-11-04 Jakub Jelinek <jakub@redhat.com>
2227 Andrew Pinski <andrew_pinski@playstation.sony.com>
2230 * c-common.c (warn_for_sign_compare): For complex result_type
2231 use component's type.
2233 2008-11-04 Jakub Jelinek <jakuB@redhat.com>
2235 * print-tree.c (print_node): Use code instead of TREE_CODE (node).
2237 * print-tree.c (print_node): Don't print DECL_INITIAL
2241 * c-common.c (parse_optimize_options): Save and restore
2242 flag_strict_aliasing around decode_options call.
2244 2008-11-04 Uros Bizjak <ubizjak@gmail.com>
2246 * config/i386/driver-i386.c (enum vendor_signatures): New enum.
2247 (host_detect_local_cpu): Use it instead of casted strings to
2248 compare vendor signatures.
2250 2008-11-03 Mikael Pettersson <mikpe@it.uu.se>
2253 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
2254 or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
2256 2008-11-03 Catherine Moore <clm@codesourcery.com>
2258 * config/mips.c (mips_conditional_register_usage): Handle the
2259 DSP control register.
2260 * doc/extend.texi: Document the DSP control register.
2262 2008-11-03 Steve Ellcey <sje@cup.hp.com>
2263 Jakub Jelinek <jakub@redhat.com>
2265 * omp-low.c (expand_omp_for_generic): If iter_type has different
2266 precision than type and type is a pointer type, cast n1 and n2
2267 first to an integer type with the same precision as pointers
2268 and only afterwards to iter_type.
2270 2008-11-03 Richard Sandiford <rdsandiford@googlemail.com>
2272 * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
2273 (UNSPEC_GOTSYM_OFF): New unspec.
2274 (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
2275 (pic_add_dot_plus_eight): Likewise.
2276 (tls_load_dot_plus_eight): Likewise. Update peephole2.
2277 * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
2278 UNSPEC_PIC_BASE operands.
2279 * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
2280 (arm_output_addr_const_extra): Handle it.
2282 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
2284 * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
2285 integer class to full integer class if the offset is not word-aligned.
2287 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2290 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2292 (doloop_optimize): Update call to doloop_modify.
2294 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
2296 * tree-sra.c (bitfield_overlaps_p): Fix oversight.
2298 2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2301 * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
2302 gcc_cv_as_cfi_directive.
2303 (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
2304 merging read-only and read-write sections or assembler emits
2305 read-write .eh_frame sections.
2306 * configure: Regenerate.
2308 2008-11-03 Nathan Froyd <froydnj@codesourcery.com>
2311 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2313 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2315 (rs6000_emit_prologue): Invert logic.
2316 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2317 (reg:P 11) instead of match_operand.
2318 (*save_fpregs_<mode>): Likewise.
2319 (*restore_gpregs_<mode>): Likewise.
2320 (*return_and_restore_gpregs_<mode>): Likewise.
2321 (*return_and_restore_fpregs_<mode>): Likewise.
2322 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2323 (reg:P 11) insted of match_operand.
2324 (*restore_gpregs_spe): Likewise.
2325 (*return_and_restore_gpregs_spe): Likewise.
2327 2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
2329 PR tree-optimization/37684
2330 * gcc.dg/graphite/pr37684.c: New.
2331 * graphite.c (exclude_component_ref): New.
2332 (is_simple_operand): Call exclude_component_ref.
2334 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
2336 PR tree-optimization/36908
2337 * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
2338 * tree-loop-distribution.c (number_of_rw_in_rdg): New.
2339 (number_of_rw_in_partition): New.
2340 (partition_contains_all_rw): New.
2341 (ldist_gen): Do not distribute when one of the partitions
2342 contains all the memory operations.
2344 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
2346 * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
2347 EDGE_IRREDUCIBLE_LOOP.
2349 2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
2351 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
2352 where we have one entry point in the loop which isn't the head.
2354 2008-11-03 Richard Guenther <rguenther@suse.de>
2357 * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
2359 2008-11-03 Jakub Jelinek <jakub@redhat.com>
2362 * passes.c (execute_one_pass): Don't look at cfun->curr_properties
2363 for ipa and simple ipa passes.
2365 2008-11-02 Richard Guenther <rguenther@suse.de>
2367 PR tree-optimization/37542
2368 * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
2369 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
2370 (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
2371 (vn_nary_op_insert_stmt): Likewise.
2372 (visit_use): Likewise.
2374 2008-11-02 Anatoly Sokolov <aesok@post.ru>
2376 * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
2378 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
2379 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
2380 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
2381 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
2382 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
2383 peephole2's): Replace unspec with rotate.
2384 * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
2386 2008-11-02 Richard Guenther <rguenther@suse.de>
2388 PR tree-optimization/37991
2389 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
2390 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
2391 (set_ssa_val_to): Print if the value changed.
2392 (simplify_binary_expression): Strip useless conversions.
2394 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
2397 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
2400 2008-11-01 Richard Guenther <rguenther@suse.de>
2403 * builtins.c (fold_builtin_strspn): Return a size_t.
2404 (fold_builtin_strcspn): Likewise.
2406 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2408 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
2409 attribute for struct return convention.
2411 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2413 * config/rs6000/crtsavres.asm: Really, really delete.
2415 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2417 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2419 (rs6000_emit_prologue): Invert logic.
2420 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2421 (reg:P 11) instead of match_operand.
2422 (*save_fpregs_<mode>): Likewise.
2423 (*restore_gpregs_<mode>): Likewise.
2424 (*return_and_restore_gpregs_<mode>): Likewise.
2425 (*return_and_restore_fpregs_<mode>): Likewise.
2426 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2427 (reg:P 11) insted of match_operand.
2428 (*restore_gpregs_spe): Likewise.
2429 (*return_and_restore_gpregs_spe): Likewise.
2431 2008-10-28 Luis Machado <luisgpm@br.ibm.com>
2433 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
2434 list of word switches that take args.
2436 2008-10-30 Jakub Jelinek <jakub@redhat.com>
2438 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
2439 (s390_output_pool_entry): Call it through for_each_rtx.
2442 * expr.c (store_constructor): For vectors, if target is a MEM, use
2443 target's MEM_ALIAS_SET instead of elttype alias set.
2445 2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
2448 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
2451 2008-10-29 David Edelsohn <edelsohn@gnu.org>
2454 * config/rs6000/predicates.md (word_offset_memref_operand):
2455 Restructure code and look inside auto-inc/dec addresses.
2457 2008-10-29 Steve Ellcey <sje@cup.hp.com>
2460 * libgcov.c ( __gcov_indirect_call_profiler): Check
2461 TARGET_VTABLE_USES_DESCRIPTORS.
2463 2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
2465 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
2466 (INITIAL_FRAME_POINTER_OFFSET): Remove.
2467 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
2468 offset if eliminating soft frame pointer.
2469 * config/spu/spu.md (stack_protect_set, stack_protect_test)
2470 (stack_protect_test_si): Add initial machine description
2471 for Stack Smashing Protector
2473 2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2476 * c-common.c (min_precision): Move to...
2477 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
2478 * tree.h (tree_int_cst_min_precision): Declare.
2479 * c-common.h (min_precision): Delete declaration.
2480 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
2481 multiplication of non-negative integer constants.
2482 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
2483 tree_int_cst_min_precision.
2484 (finish_enum): Likewise.
2486 2008-10-29 Joseph Myers <joseph@codesourcery.com>
2489 * convert.c (convert_to_real): Do not optimize conversions of
2490 binary arithmetic operations between binary and decimal
2491 floating-point types. Consider mode of target type in determining
2492 decimal type for arithmetic. Unless
2493 flag_unsafe_math_optimizations, do not optimize binary conversions
2494 where this may change rounding behavior.
2495 * real.c (real_can_shorten_arithmetic): New.
2496 * real.h (real_can_shorten_arithmetic): Declare.
2498 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
2500 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
2501 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
2502 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
2504 (must_save_p): For some workarounds, interrupts need to clobber a
2506 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
2507 and LC1 for WA_05000257.
2508 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
2509 WA_05000283 and WA_05000315.
2510 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
2511 (movbi): Add alternative to set CC to 1; improve code for setting
2513 (dummy_load): New pattern.
2515 2008-10-29 Jakub Jelinek <jakub@redhat.com>
2518 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
2519 BLKmode for non-memory, convert using a wider MODE_INT mode
2523 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
2524 that haven't been removed yet.
2526 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
2528 * config/bfin/bfin.c (struct machine_function): New member
2529 has_loopreg_clobber.
2530 (bfin_expand_movmem): Set it when generating memcpy insns.
2531 (n_regs_saved_by_prologue, expand_prologue_reg_save,
2532 expand_epilogue_reg_restore): If we have hardware loops,
2533 memcpy insns (indicated by has_loopreg_clobber) or function
2534 calls, we need to save the loop registers.
2536 2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
2538 * config/i386/i386.c (core2_cost): Fix typos in comments.
2540 2008-10-28 Jakub Jelinek <jakub@redhat.com>
2543 * combine.c (make_compound_operation): Don't call make_extraction with
2544 non-positive length.
2545 (simplify_shift_const_1): Canonicalize count even if complement_p.
2547 2008-10-28 Joseph Myers <joseph@codesourcery.com>
2549 * convert.c (strip_float_extensions): Do not remove or introduce
2550 conversions between binary and decimal floating-point types.
2552 2008-10-28 Jakub Jelinek <jakub@redhat.com>
2555 * fold-const.c (distribute_bit_expr): Convert common, left and
2556 right arguments to type.
2558 2008-10-28 Nick Clifton <nickc@redhat.com>
2560 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
2561 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
2562 call_really_used_regs array rather than the call_used_regs array.
2563 (mn10300_get_live_callee_saved_regs, expand_prologue,
2564 expand_epilogue, output_tst): Likewise.
2566 2008-10-27 Jakub Jelinek <jakub@redhat.com>
2569 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
2570 (df_get_entry_block_def_set): Neither here.
2571 (df_get_regular_block_artificial_uses): Add EH_USES registers.
2573 PR tree-optimization/37879
2574 * predict.c (tree_estimate_probability): Check if last_stmt is
2575 non-NULL before dereferencing it.
2577 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2579 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
2580 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
2581 (ira_fast_allocation): Remove the prototype.
2583 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
2584 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
2585 (color_pass): Modify the updated costs.
2586 (ira_color): Rename to color. Make it static.
2587 (ira_fast_allocation): Rename to fast_allocation. Make it static.
2588 (ira_color): New function.
2590 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
2593 * ira-lives.c (last_call_num, allocno_saved_at_call): New
2595 (set_allocno_live, clear_allocno_live, mark_ref_live,
2596 mark_ref_dead): Invalidate corresponding element of
2597 allocno_saved_at_call.
2598 (process_bb_node_lives): Increment last_call_num. Setup
2599 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
2600 allocno was already saved.
2601 (ira_create_allocno_live_ranges): Initiate last_call_num and
2602 allocno_saved_at_call.
2604 * ira-build.c (ira_create_allocno): Initiate
2605 ALLOCNO_UPDATED_COVER_CLASS_COST.
2606 (create_cap_allocno, propagate_allocno_info,
2607 remove_unnecessary_allocnos): Remove setting updated costs.
2608 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
2610 * ira.c (ira): Don't call ira_fast_allocation.
2612 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
2615 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2618 * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
2620 * ira-int.h (ira_hard_regno_cover_class): New.
2622 * ira-lives.c (mark_reg_live, mark_reg_dead,
2623 process_bb_node_lives): Use ira_hard_regno_cover_class.
2625 * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
2626 (setup_hard_regno_cover_class): New function.
2627 (ira_init): Call setup_hard_regno_cover_class.
2629 * ira-costs.c (cost_class_nums): Add comment.
2630 (find_allocno_class_costs): Initiate cost_class_nums.
2631 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
2633 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2636 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
2637 Rename to copy_info_to_removed_store_destinations. Propagate
2638 conflict hard regs and register stack attribute.
2640 2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2643 * pa.c (function_arg_padding): Pad complex and vector types
2644 upward in 64-bit runtime.
2645 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
2647 2008-10-26 Matthias Klose <doko@ubuntu.com>
2649 * doc/install.texi: Document requirements on antlr.
2651 2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
2653 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
2656 2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
2659 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
2660 is defined, use it to modify the constant offset.
2662 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
2664 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
2665 and short arguments to the correct location as mandated by the ABI.
2667 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
2669 PR rtl-optimization/37769
2670 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
2672 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
2674 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
2675 unwind-dw2-Os-4-200.o.
2677 2008-10-24 Joseph Myers <joseph@codesourcery.com>
2679 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
2680 (convert_for_assignment): Remove ic_argpass_nonproto cases.
2682 2008-10-24 Jakub Jelinek <jakub@redhat.com>
2684 PR tree-optimization/36038
2685 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
2686 add sizetype IV with initial value zero instead of pointer type.
2688 2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
2691 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
2692 around bit operation.
2693 * profile.c (is_edge_inconsistent): Likewise.
2694 * fold-const.c (truth_value_p): Move from here...
2695 * tree.h (truth_value_p): ... to here.
2696 * c-tree.h (c_expr): Update description of original_code.
2697 * c-typeck.c (parser_build_unary_op): Set original_code.
2698 (parser_build_binary_op): Update call to warn_about_parentheses.
2699 * c-common.c (warn_about_parentheses): Take two additional
2700 arguments of the operands. Use a switch. Quote operators
2701 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
2702 Add warning about !x | y and !x & y.
2703 * c-common.h (warn_about_parentheses): Update declaration.
2705 2008-10-24 Jakub Jelinek <jakub@redhat.com>
2707 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
2708 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
2709 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
2711 (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
2712 (check-%): For test targets listed in lang_checks_parallelized
2713 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
2714 run the testing in multiple make goals, possibly parallel, and
2715 afterwards run dg-extract-results.sh to merge the sum and log files.
2717 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
2719 * config/mips/mips.c (mips_canonicalize_move_class): New function.
2720 (mips_move_to_gpr_cost): Likewise.
2721 (mips_move_from_gpr_cost): Likewise.
2722 (mips_register_move_cost): Make more fine-grained.
2724 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
2726 * graphite.c (graphite_apply_transformations): Check for
2727 -fgraphite-identity.
2728 * toplev.c (process_options): Add graphite_identity.
2729 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
2731 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
2733 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
2734 mulhisihl and mulhisihh builtins.
2736 From Jie Zhang <jie.zhang@analog.com>
2737 * config/bfin/bfin.md (composev2hi): Put operands into vector
2740 2008-10-22 Chao-ying Fu <fu@mips.com>
2742 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
2744 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
2746 From Mike Frysinger <michael.frysinger@analog.com>
2747 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
2748 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
2749 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
2750 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
2751 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
2752 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
2753 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
2754 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
2755 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
2756 __ADSPBF51x__ for all of them.
2757 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
2758 -mcpu bf512, bf514, bf516, and bf518.
2759 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2760 bf512-none, bf514-none, bf516-none, and bf518-none.
2761 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2762 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2763 * doc/invoke.texi (Blackfin Options): Document that
2764 -mcpu now accepts bf512, bf514, bf516, and bf518.
2766 2008-10-22 Jakub Jelinek <jakub@redhat.com>
2769 * fold-const.c (build_range_type): For 1 .. signed_max
2770 range call build_nonstandard_inter_type if signed_type_for
2771 returned a type with bigger precision.
2773 2008-10-22 Richard Guenther <rguenther@suse.de>
2775 * tree.def (COMPLEX_TYPE): Constrain element type.
2776 * tree.c (build_complex_type): Assert that.
2777 * tree-ssa-structalias.c (could_have_pointers): Complex types
2778 cannot have pointers.
2780 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
2783 * c-typeck.c (convert_for_assignment): Do not give declaration's
2784 location for builtins. Spell out which type was expected and which
2787 2008-10-22 Nick Clifton <nickc@redhat.com>
2789 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
2790 the fdpic register to be a target when running in fdpic mode.
2792 2008-10-22 Rafael Espindola <espindola@google.com>
2794 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
2795 newly created statements.
2797 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
2800 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
2801 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
2802 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
2804 2008-10-22 Jakub Jelinek <jakub@redhat.com>
2807 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
2808 Adjust -mcmodel=medium description for 2005-07-31 changes.
2810 2008-10-22 Jan Hubicka <jh@suse.cz>
2811 Jakub Jelinek <jakub@redhat.com>
2814 * doc/invoke.texi: Remove references to obsoleted -d dumps.
2816 2008-10-21 Richard Henderson <rth@redhat.com>
2819 * emit-rtl.c (get_spill_slot_decl): Export.
2820 * emit-rtl.h (get_spill_slot_decl): Declare.
2821 * var-tracking.c (vt_add_function_parameters): Relax assertion
2822 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
2824 2008-10-21 Bob Wilson <bob.wilson@acm.org>
2826 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
2827 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
2830 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
2833 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
2834 processed by get_maxval_strlen.
2836 2008-10-21 David Edelsohn <edelsohn@gnu.org>
2839 * tree.c (get_file_function_name): Copy first_global_object_name.
2840 Centralize call to clean_symbol_name.
2842 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
2844 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
2845 * config/svr4.h (SVR4_ASM_SPEC): New.
2846 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2847 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2849 * doc/invoke.texi (Option Summary): Add -T to linker options.
2850 (Link Options): Document -T.
2852 2008-10-21 Jakub Jelinek <jakub@redhat.com>
2854 * tree-inline.c (tree_inlinable_function_p): Remove tuples
2857 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2860 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
2862 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
2864 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
2867 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
2869 * doc/install.texi: Fix typos in previous patch.
2871 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
2873 * doc/install.texi: Document in-tree building of gcc and mpfr.
2875 2008-10-19 Richard Guenther <rguenther@suse.de>
2877 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
2879 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2882 * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
2883 (build_enumerator): Convert enumerators that fit in integer to
2886 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
2888 * config/i386/i386.md (unnamed peephole2): Do not force memory
2889 operands of arith or logical instructions into registers for
2890 non-TARGET_READ_MODIFY targets.
2892 (ffs_cmove): Change operand 0 predicate to register_operand.
2893 Change operand 1 predicate to nonimmediate_operand.
2895 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
2897 2008-10-18 Richard Guenther <rguenther@suse.de>
2899 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
2900 VIEW_CONVERT_EXPR case against invalid gimple.
2902 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
2904 * c-parser.c (c_parser_binary_expression): Silence the
2905 uninitialized variable warning emitted for binary_loc.
2907 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
2909 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
2912 2008-10-16 Joseph Myers <joseph@codesourcery.com>
2915 * c-typeck.c (build_unary_op): Use omit_one_operand for
2916 IMAGPART_EXPR of real argument.
2918 2008-10-16 Jakub Jelinek <jakub@redhat.com>
2920 PR tree-optimization/37664
2921 * fold-const.c (fold_binary): When optimizing comparison with
2922 highest or lowest type's value, don't consider TREE_OVERFLOW.
2924 2008-10-16 David Edelsohn <edelsohn@gnu.org>
2927 * Makefile.in (coverage.o): Depend on $(TM_P_H).
2928 * coverage.c: Include tm_p.h.
2929 * config/rs6000/x-aix (jc1): Override LDFLAGS.
2930 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
2931 dollar signs from PREFIX.
2932 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
2933 instead of manual strip_name_encoding.
2935 2008-10-16 Richard Guenther <rguenther@suse.de>
2938 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
2939 volatile qualified functions or methods as relevant.
2941 2008-10-16 Jakub Jelinek <jakub@redhat.com>
2943 PR tree-optimization/37525
2944 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
2945 sizetype unsigned constants, both in the case of C and bounds.
2947 2008-10-15 Jan Hubicka <jh@suse.cz>
2949 * ira-emit.c (change_regs): Return false when replacing reg by itself.
2951 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
2954 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
2955 HARD_REGNO_CALL_PART_CLOBBERED.
2957 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
2960 * ira-lives.c (mark_early_clobbers): Remove.
2961 (make_pseudo_conflict, check_and_make_def_use_conflicts,
2962 check_and_make_def_conflicts,
2963 make_early_clobber_and_input_conflicts,
2964 mark_hard_reg_early_clobbers): New functions.
2965 (process_bb_node_lives): Call
2966 make_early_clobber_and_input_conflicts and
2967 mark_hard_reg_early_clobbers. Make hard register inputs live again.
2969 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
2970 early clobbers of pseudo-registers.
2972 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
2975 * ira-build.c (ira_flattening): Recalculate
2976 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
2977 from the scratch instead of the propagation.
2979 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
2981 * doc/rtl.texi (const_double): Remove the "addr" operand.
2982 Describe CONST_DOUBLE_* macros under const_double rather
2984 (const_fixed): Fix the operand description.
2985 (const): Add an @findex directive.
2986 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
2987 after the constant rtl table.
2988 (fix): Combine floating-point and fixed-point descriptions.
2990 * sched-deps.c (sched_analyze_2): Remove reference to
2993 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
2995 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
2997 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
2998 for UNSPEC_GOTSYM_OFFs.
2999 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
3000 (add_GOT_to_pic_reg): Use it.
3001 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
3003 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
3004 Harsha Jagasia <harsha.jagasia@amd.com>
3006 PR tree-optimization/37485
3007 * graphite.c (gmp_cst_to_tree): Moved.
3008 (iv_stack_entry_is_constant): New.
3009 (iv_stack_entry_is_iv): New.
3010 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
3011 (loop_iv_stack_insert_constant): New.
3012 (loop_iv_stack_pop): Use new datatpype.
3013 (loop_iv_stack_get_iv): Same.
3014 (loop_iv_stack_get_iv_from_name): Same.
3015 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
3016 (loop_iv_stack_patch_for_consts): New.
3017 (loop_iv_stack_remove_constants): New.
3018 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
3019 (translate_clast): Call loop_iv_stack_patch_for_consts and
3020 loop_iv_stack_remove_constants.
3021 (gloog): Use new datatype. Redirect construction edge to end
3022 block to avoid accidental deletion.
3023 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
3025 (union iv_stack_entry_data): New. Data in iv stack entry.
3026 (struct iv_stack_entry): New. Datatype for iv stack entries.
3028 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3030 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
3031 * graphite.c (free_scop): Same.
3032 (build_scops): Same.
3033 (free_scattering): New.
3034 (build_cloog_prog): Call free_scattering.
3035 (patch_phis_for_virtual_defs): Fix memleak.
3036 (graphite_trans_bb_strip_mine): Same.
3037 (limit_scops): Same.
3039 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3040 Harsha Jagasia <harsha.jagasia@amd.com>
3042 PR tree-optimization/37828
3043 * graphite.c (graphite_trans_loop_block): Do not loop block
3044 single nested loops.
3046 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3048 PR tree-optimization/37686
3049 * tree-loop-linear.c (linear_transform_loops): Build a
3050 loop nest vector. Pass it to lambda_compute_access_matrices.
3051 * tree-data-ref.h (struct access_matrix): Store the loop nest
3052 relative to which it encodes the information.
3053 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
3054 (am_vector_index_for_loop): Reimplemented: iterate over the
3055 loop nest for finding the loop index in the access matrix.
3056 (lambda_compute_access_matrices): Update declaration.
3057 * lambda-code.c (build_access_matrix): Pass the loop nest and
3059 (lambda_compute_access_matrices): Same.
3061 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
3063 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
3064 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
3065 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
3066 already implies hard float. Also fix several insn condition
3067 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
3069 2008-10-15 David Edelsohn <edelsohn@gnu.org>
3072 Based on patches by Laurent Vivier.
3073 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
3074 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
3075 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
3076 dollar sign to underscore.
3077 (ASM_OUTPUT_EXTERNAL): Same.
3078 (ASM_OUTPUT_LABELREF): New.
3079 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
3081 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
3082 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
3083 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
3084 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
3086 2008-10-15 Jakub Jelinek <jakub@redhat.com>
3088 PR tree-optimization/36881
3089 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
3090 that each value doesn't need runtime relocations, for !flag_pic
3091 check that each value is just a valid initializer constant.
3093 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
3095 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
3096 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
3097 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
3098 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
3100 (REG_CLASS_NAMES): Update accordingly.
3101 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
3102 rather than an unpredictable descriptive string.
3103 * config/mips/mips.c (mips_register_move_cost): Remove comment.
3104 (mips_register_move_cost): Check for specific COP*_REGS classes,
3105 instead of ALL_COP_AND_GR_REGS.
3106 (mips_ira_cover_classes): New function.
3107 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
3108 (TARGET_IRA_COVER_CLASSES): Define.
3110 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
3113 * tree.c (build_type_attribute_qual_variant): Hash on the
3114 unqualified type, and don't overwrite an existing
3115 (type_hash_eq): Make the TYPE_NAME of the types significant, to
3116 allow distinguishing between wchar_t and its underlying type. This
3117 also means that we'll retain a little more typedef information.
3119 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
3120 Dmitry Melnik <dm@ispras.ru>
3121 Dmitry Zhurikhin <zhur@ispras.ru>
3122 Alexander Monakov <amonakov@ispras.ru>
3123 Maxim Kuvyrkov <maxim@codesourcery.com>
3125 * target.h (struct gcc_target): Update prototypes of needs_block_p
3127 * haifa-sched.c (create_check_block_twin): Update calls to the above.
3128 * sel-sched.c (create_speculation_check): Likewise.
3129 * doc/tm.texi: Provide documentation for new target hooks.
3131 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
3132 (ia64_gen_spec_insn): Removed.
3133 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
3134 ia64_gen_spec_check): New static functions.
3135 (ia64_alloc_sched_context, ia64_init_sched_context,
3136 ia64_set_sched_context, ia64_clear_sched_context,
3137 ia64_free_sched_context, ia64_get_insn_spec_ds,
3138 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
3139 (ia64_needs_block_p): Change prototype.
3140 (ia64_gen_check): Rename to ia64_gen_spec_check.
3141 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
3142 into declaration, add special memory dependencies handling.
3143 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
3144 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3145 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3146 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
3147 Define new target hooks.
3148 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3149 (ia64_optimization_options): Turn on selective scheduling with -O3,
3150 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
3151 default with selective scheduling.
3152 (ia64_override_options): Initialize align_loops and align_functions
3153 to 32 and 64, respectively. Set global selective scheduling flags
3154 according to target-dependent flags.
3155 (rtx_needs_barrier): Support UNSPEC_LDS_A.
3156 (group_barrier_needed): Use new mstop-bit-before-check flag.
3158 (dfa_state_size): Make global.
3159 (spec_check_no, max_uid): Remove.
3160 (mem_ops_in_group, current_cycle): New variables.
3161 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3162 Initialize new variables.
3163 (is_load_p, record_memory_reference): New functions.
3164 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
3166 (ia64_variable_issue): Change use of current_sched_info to
3167 sched_deps_info. Update comment. Note if a load or a store is issued.
3168 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
3169 advance if maximal number of loads or stores was issued on current
3171 (scheduled_good_insn): New static helper function.
3172 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
3173 a group barrier is needed. Fix vertical spacing. Guard the code
3174 doing state transition with last_scheduled_insn check.
3175 Mark that a stop bit should be before current insn if there was a
3176 cycle advance. Update current_cycle and mem_ops_in_group.
3177 (ia64_h_i_d_extended): Change use of current_sched_info to
3178 sched_deps_info. Reallocate stops_p by larger chunks.
3179 (struct _ia64_sched_context): New structure.
3180 (ia64_sched_context_t): New typedef.
3181 (ia64_alloc_sched_context, ia64_init_sched_context,
3182 ia64_set_sched_context, ia64_clear_sched_context,
3183 ia64_free_sched_context): New static functions.
3184 (gen_func_t): New typedef.
3185 (get_spec_load_gen_function): New function.
3186 (SPEC_GEN_EXTEND_OFFSET): Declare.
3187 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3188 (get_mode_no_for_insn): Change the condition that prevents use of
3189 special hardware registers so it can now handle pseudos.
3190 (get_spec_unspec_code): New function.
3191 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
3192 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
3193 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
3194 during selective scheduling.
3195 (ia64_speculate_insn): Use ds_get_speculation_types when
3196 determining whether we need to change the pattern.
3197 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
3198 (ia64_spec_check_src_p): Support new speculation/check codes.
3199 (struct bundle_state): New field.
3200 (issue_nops_and_insn): Initialize it.
3201 (insert_bundle_state): Minimize mid-bundle stop bits.
3202 (important_for_bundling_p): New function.
3203 (get_next_important_insn): Use important_for_bundling_p.
3204 (bundling): When shifting TImode from unimportant insns, ignore
3205 also group barriers. Assert that best state is found before
3206 the backward bundling pass. Print number of mid-bundle stop bits.
3207 Minimize mid-bundle stop bits. Check correct calculation of
3208 mid-bundle stop bits.
3209 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
3210 (final_emit_insn_group_barriers): Emit stop bits before insns starting
3212 (sel2_run): New variable.
3213 (ia64_reorg): When flag_selective_scheduling2 is set, run the
3214 selective scheduling pass instead of schedule_ebbs.
3216 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
3217 (UNSPEC_LDS_A): New UNSPEC.
3218 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
3219 movti_internal, movsf_internal, movdf_internal,
3220 movxf_internal): Make visible. Add speculable* attributes.
3221 (output_c_nc): New mode attribute.
3222 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3223 mov<mode>_nc, zero_extend<mode>di2_nc,
3224 advanced_load_check_nc_<mode>): New insns.
3225 (zero_extend*): Add speculable* attributes.
3227 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
3228 (msched-stop-bits-after-every-cycle): Likewise.
3229 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
3231 (msched-spec-verbose): Remove.
3232 (msched-prefer-non-data-spec-insns,
3233 msched-prefer-non-control-spec-insns,
3234 msched-count-spec-in-critical-path,
3235 msel-sched-dont-check-control-spec): Use Target Report Var
3236 instead of Common Report Var.
3238 * config/ia64/itanium2.md: Remove incorrect bypass.
3240 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
3242 2008-10-14 Jakub Jelinek <jakub@redhat.com>
3245 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3246 and -fhelp=separate.
3248 2008-10-14 Ben Elliston <bje@au.ibm.com>
3250 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
3252 2008-10-13 Joseph Myers <joseph@codesourcery.com>
3254 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
3257 2008-10-13 Matthias Klose <doko@ubuntu.com>
3259 * config/pa/linux-atomic.c: Work around missing header file
3260 for hppa64-linux-gnu targets.
3262 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
3263 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
3264 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3265 Grace Cao <grace_cao@playstation.sony.com>
3267 * doc/invoke.texi (-mgen-cell-microcode): Document.
3268 (-mwarn-cell-microcode): Document.
3269 * cfglayout.c (locator_location): Export.
3270 * rtl.h (locator_location): Define prototype.
3271 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
3273 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
3274 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
3275 (mwarn-cell-microcode): New option.
3276 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
3277 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
3278 cell and not already set.
3279 Turn off string instructions if not generating cell microcode.
3280 (rs6000_final_prescan_insn): New function that warns about microcoded
3282 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
3283 * config/rs6000/rs6000.md
3284 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3285 the instruction would have been microcoded on the Cell. Set
3286 cell_micro to always on unnamed patterns for the string instructions.
3287 (cell_micro): Update definition, remove load/store conditional
3289 (sign_extend:DI): Define new pattern for non microcoded version.
3290 (sign_extend:SI): Likewise.
3291 (compare (div:P)): Set cell_micro to not.
3292 (andsi3): Define as an expand.
3293 (andsi3_mc): New pattern.
3294 (andsi3_nomc): New pattern.
3295 (andsi3_internal0_nomc): New pattern.
3296 (andsi3_internal2): Rename to ...
3297 (andsi3_internal2_mc): this and enable iff generating microcode.
3298 (andsi3_internal3): Rename to ...
3299 (andsi3_internal3_mc): this and enable iff generating microcode.
3300 (andsi3_internal4): Enable iif generating microcode.
3301 (andsi3_internal5): Rename to ..
3302 (andsi3_internal5_mc): this and enable iff generating microcode.
3303 (andsi3_internal5_nomc): New pattern.
3304 (extzvdi_internal1): Enable iff generating microcode.
3305 (extzvdi_internal2): Likewise.
3306 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
3307 (anddi3): Change to expand.
3308 (anddi3_mc): Rename from anddi3.
3309 (anddi3_no_mc): New pattern.
3310 (anddi3_internal2): Rename to ..
3311 (anddi3_internal2_mc): this and enable iff generating microcode.
3312 (anddi3_internal2_nomc): New pattern.
3313 (anddi3_internal3): Rename to ..
3314 (anddi3_internal3_mc): this and enable iff generating microcode.
3315 (anddi3_internal3_nomc): New pattern.
3316 (movti_string): Set cell_micro to always if TARGET_STRING.
3317 (stmsi8): Set cell_micro to always.
3323 (stmsi8_power): Likewise.
3324 (stmsi7_power): Likewise.
3325 (stmsi6_power): Likewise.
3326 (stmsi5_power): Likewise.
3327 (stmsi4_power): Likewise.
3328 (stmsi3_power): Likewise.
3329 (movsi_update2): Enable iff generating microcode.
3330 (movhi_update3): Likewise.
3331 (lmw): Set cell_micro to always.
3333 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
3335 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
3336 * config/s390/s390.c (machine_function): Remove
3337 decomposed_literal_pool_addresses_ok_p.
3338 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
3339 the difference of two labels.
3340 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
3341 (s390_pool_offset): New function.
3342 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
3343 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
3345 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
3347 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
3348 (powerpc*-*-linux-gnu*): Describe.
3349 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
3350 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
3351 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
3352 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
3353 config/rs6000/e500crtres32gpr.asm,
3354 config/rs6000/e500crtres64gpr.asm,
3355 config/rs6000/e500crtres64gprctr.asm,
3356 config/rs6000/e500crtrest32gpr.asm,
3357 config/rs6000/e500crtrest64gpr.asm,
3358 config/rs6000/e500crtresx32gpr.asm,
3359 config/rs6000/e500crtresx64gpr.asm,
3360 config/rs6000/e500crtsav32gpr.asm,
3361 config/rs6000/e500crtsav64gpr.asm,
3362 config/rs6000/e500crtsav64gprctr.asm,
3363 config/rs6000/e500crtsavg32gpr.asm,
3364 config/rs6000/e500crtsavg64gpr.asm,
3365 config/rs6000/e500crtsavg64gprctr.asm: Use it.
3366 * config/rs6000/crtsavres.asm: Really remove.
3368 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
3371 * c-format.c (convert_format_name_to_system_name): Use
3372 TARGET_OVERRIDES_FORMAT_INIT.
3373 * config.gcc (extra_options): Add for mingw targets mingw.opt.
3374 * config/i386/mingw.opt: New.
3375 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
3376 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
3377 (ms_printf_length_specs): Removed const specifier.
3378 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
3379 * doc/invoke.texi (Wno-pedantic-ms-format): New.
3381 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3383 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
3384 * doc/install.texi: Bump recommended MPFR to 2.3.2.
3386 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
3389 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
3390 sure that ref has valid bb.
3392 2008-10-12 Richard Henderson <rth@redhat.com>
3395 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
3396 * alias.c (value_addr_p, stack_addr_p): Remove.
3397 (nonoverlapping_memrefs_p): Remove IRA special case.
3398 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
3399 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
3400 * reload1.c (alter_reg): Use it.
3402 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
3404 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
3405 of registers instead of eax, ebx, ecx and edx. Use for loop
3406 and check register for non-zero value before the call
3407 to decode_caches_intel.
3409 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3411 PR rtl-optimization/37448
3412 * df.h: (df_ref_class): New enum.
3413 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
3414 (struct df_ref): Replaced with union df_ref_d.
3415 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
3416 New members of df_ref_d union.
3417 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
3418 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
3419 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
3420 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
3421 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3422 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
3423 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
3424 (df_scan_bb_info, df_bb_regno_first_def_find,
3425 df_bb_regno_last_def_find, df_find_def, df_find_use,
3426 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3427 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
3428 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
3429 df_get_artificial_defs, df_get_artificial_uses, union_defs)
3430 Replaced struct df_ref * with df_ref.
3431 * df-scan.c (df_collection_rec, df_null_ref_rec,
3432 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
3433 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
3434 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
3435 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
3436 df_reorganize_refs_by_reg_by_reg,
3437 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
3438 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
3439 df_sort_and_compress_refs, df_install_ref, df_install_refs,
3440 df_ref_record, df_get_conditional_uses, df_get_call_refs,
3441 df_bb_refs_record, df_exit_block_uses_collect,
3442 df_record_exit_block_uses, df_reg_chain_mark,
3443 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
3444 df_ref * with df_ref.
3445 (df_ref_record, df_uses_record, df_ref_create_structure): Added
3446 df_ref_class parameter.
3447 (df_scan_problem_data): Added new pools for different types of refs.
3448 (df_scan_free_internal, df_scan_alloc, df_free_ref,
3449 df_ref_create_structure): Processed new ref pools.
3450 (df_scan_start_dump): Added counts of refs and insns.
3451 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
3452 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3453 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
3454 code to pass df_ref_class down to ref creation functions.
3455 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
3456 df_reg_chain_mark): Use macros to hide references to df_refs.
3457 (df_ref_chain_change_bb): Removed.
3458 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
3459 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3460 Enhanced to understand df_ref union structure.
3461 * fwprop.c (local_ref_killed_between_p, use_killed_between,
3462 all_uses_available_at, update_df, try_fwprop_subst,
3463 forward_propagate_subreg, forward_propagate_and_simplify,
3464 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
3465 df_ref * with df_ref.
3466 (use_killed_between, all_uses_available_at): Use macros to hide
3467 references to df_refs.
3468 * regstat.c (regstat_bb_compute_ri,
3469 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
3471 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
3472 see_handle_relevant_refs, see_analyze_one_def,
3473 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
3474 struct df_ref * with df_ref.
3475 * ra-conflict.c (record_one_conflict, clear_reg_in_live,