1 2008-12-17 H.J. Lu <hongjiu.lu@intel.com>
4 * calls.c (expand_call): Check outgoing_reg_parm_stack_space
5 only if REG_PARM_STACK_SPACE is defined.
7 2008-12-17 Jan Hubicka <jh@suse.cz>
8 Kai Tietz <kai.tietz@onevision.com>
10 * calls.c (expand_call): Do not sibcall if
11 outgoing_reg_parm_stack_space does not match.
13 2008-12-16 Anatoly Sokolov <aesok@post.ru>
15 * config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
16 atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
18 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
19 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
21 2008-12-16 Hariharan Sandanagobalane <hariharan@picochip.com>
24 * config/picochip/picochip.opt (mae): Squeezed the comments onto one
27 2008-12-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
29 * configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up
31 * configure: Regenerate.
33 2008-12-16 Richard Earnshaw <rearnsha@arm.com>
36 * arm.c (arm_legitimate_index): Only accept addresses that are in
38 * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
39 * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
41 (extendqisi2): Likewise.
42 (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
43 predicate for operand1.
45 2008-12-15 Adam Nemet <anemet@caviumnetworks.com>
47 * config/mips/mips.c (mips_output_conditional_branch): Assert that
48 openrands[1] is a CODE_LABEL.
50 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
52 * config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to
53 the result of mips_prepare_builtin_target.
55 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
57 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls
58 if TARGET_ABICALLS is true.
60 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com>
62 * config/mips/mips.md (move_doubleword_fpr<mode>): Use
63 TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case.
65 2008-12-15 Hariharan Sandanagobalane <hariharan@picochip.com>
67 * config/picochip/picochip.c (picochip_override_options): Disable CFI
68 asm and change the signature of brev and byteSwap functions to use
70 * config/picochip/picochip.md (commsTestPort): This is a complex
71 instruction and should not be vliwed. Dont set insn type.
73 2008-12-15 Wolfgang Gellerich <gellerich@de.ibm.com>
74 * config/s390/s390.c (s390_swap_cmp): New function.
75 (s390_non_addr_reg_read_p): New function.
76 (s390_z10_optimize_cmp): New function.
77 (s390_reorg): Added call to s390_optimize_cmp.
78 * config/s390/s390.md (nop1): New insn.
80 2008-12-12 Rainer Emrich <r.emrich@de.tecosim.com>
83 * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path
84 for the milli.a library.
86 2008-12-12 Andrew Pinski <andrew_pinskia@playstation.sony.com>
87 Peter Bergner <bergner@vnet.ibm.com>
90 * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
91 TOC into the call pattern.
92 (call_indirect_aix64): Likewise.
93 (call_value_indirect_aix32): Likewise.
94 (call_value_indirect_aix64): Likewise.
95 (call_indirect_nonlocal_aix32_internal): New insn and split patterns
96 to split off the load of the TOC.
97 (call_indirect_nonlocal_aix32): Enable only after reload.
98 (call_indirect_nonlocal_aix64_internal): New insn and split patterns
99 to split off the load of the TOC.
100 (call_indirect_nonlocal_aix64): Enable only after reload.
101 (call_value_indirect_nonlocal_aix32_internal): New insn and split
102 patterns to split off the load of the TOC.
103 (call_value_indirect_nonlocal_aix32): Enable only after reload.
104 (call_value_indirect_nonlocal_aix64_internal): New insn and split
105 patterns to split off the load of the TOC.
106 (call_value_indirect_nonlocal_aix64): Enable only after reload.
108 2008-12-12 Andreas Schwab <schwab@suse.de>
111 2008-12-12 Andreas Schwab <schwab@suse.de>
112 * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
115 2008-12-12 Zdenek Dvorak <ook@ucw.cz>
117 PR tree-optimization/32044
118 * tree-scalar-evolution.h (expression_expensive_p): Declare.
119 * tree-scalar-evolution.c (expression_expensive_p): New function.
120 (scev_const_prop): Avoid introducing expensive expressions.
121 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto.
123 2008-12-12 Sebastian Pop <sebastian.pop@amd.com>
126 * graphite.c (nb_reductions_in_loop): Use simple_iv.
128 2008-12-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
130 * config/i386/x86intrin.h: New header file to support all x86
132 * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h
134 2008-12-12 H.J. Lu <hongjiu.lu@intel.com>
137 * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
140 2008-12-12 Andreas Schwab <schwab@suse.de>
142 * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
145 2008-12-12 Uros Bizjak <ubizjak@gmail.com>
147 * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
148 Use Pmode for scratch reg.
149 (*mb_internal): Use (match_dup 0) for unspec operand.
151 2008-12-12 Alexandre Oliva <aoliva@redhat.com>
153 * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
154 floor_log2 of zero. Negate widened zero.
156 2008-12-12 Ben Elliston <bje@au.ibm.com>
158 * config/fp-bit.c (nan): Rename from this ...
159 (makenan): ... to this.
161 2008-12-11 Adam Nemet <anemet@caviumnetworks.com>
163 * config/mips/mips.md (*branch_bit<bbv><mode>,
164 *branch_bit<bbv><mode>_inverted): Renumber operands so that the
165 label becomes operands[1].
167 2008-12-11 Harsha Jagasia <harsha.jagasia@amd.com>
169 PR tree-optimization/38446
170 * graphite.c (register_bb_in_sese): New.
171 (bb_in_sese_p): Check if bb belongs to sese region by explicitly
172 looking at the bbs in the region.
173 * graphite.h (sese): Add region_basic_blocks pointer set to
174 structure and initialize at the time of defining new scop.
176 2008-12-11 Tobias Grosser <grosser@fim.uni-passau.de>
178 * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
179 (find_params_in_bb): Do not free data refs.
180 (free_graphite_bb): Add FIXME on disabled free_data_refs.
182 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
184 * graphite.c (struct ivtype_map_elt): New.
185 (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
186 new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
187 gcc_type_for_cloog_iv): New.
188 (loop_iv_stack_patch_for_consts): Use the type of the induction
189 variable from the original loop, except for the automatically
190 generated loops, i.e., in the case of a strip-mined loop, in
191 which case there is no original loop: in that case just use
193 (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
194 (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
195 (clast_name_to_gcc): Accept params to be NULL.
196 (clast_to_gcc_expression): Take an extra parameter for the type.
197 Convert to that type all the expressions built by this function.
198 (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
199 (graphite_translate_clast_equation): Compute the type of the
200 clast_equation before translating its LHS and RHS.
201 (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
202 (graphite_create_new_loop): Compute the type of the induction
203 variable before translating the lower and upper bounds and before
204 creating the induction variable.
205 (rename_variables_from_edge, rename_phis_end_scop): New.
206 (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
207 (sese_add_exit_phis_edge): Do not use integer_zero_node.
208 (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
209 compute_cloog_iv_types): New.
210 (gloog): Call compute_cloog_iv_types before starting the
211 translation of the clast.
213 * graphite.h (struct graphite_bb): New field cloog_iv_types.
214 (GBB_CLOOG_IV_TYPES): New.
215 (debug_ivtype_map): Declared.
216 (oldiv_for_loop): New.
218 2008-12-10 Tobias Grosser <grosser@fim.uni-passau.de>
221 * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
222 (param_index): Assert if parameter is not know after parameter
224 (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
225 (find_scop_parameters): Mark, that we have finished parameter
227 (graphite_transform_loops): Move condition detection before parameter
229 * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
231 2008-12-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
234 * emutls.c (__emutls_get_address): Make sure offset is really zero
235 before initializing the object's offset.
237 2008-12-11 Jakub Jelinek <jakub@redhat.com>
240 * gimplify.c (gimplify_init_constructor): Don't force constructor
241 into memory if there is just one nonzero element.
243 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
245 Fix testsuite/gfortran.dg/graphite/id-4.f90.
246 * graphite.c (scan_tree_for_params): Do not compute the multiplicand
249 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
251 * graphite.c (build_scops_1): Initialize open_scop.exit
254 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
255 Jan Sjodin <jan.sjodin@amd.com>
256 Harsha Jagasia <harsha.jagasia@amd.com>
268 * tree-phinodes.c (remove_phi_nodes): New, extracted from...
269 * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
271 * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
272 * Makefile.in (graphite.o): Depend on value-prof.h.
273 (graphite.o-warn): Removed -Wno-error.
274 * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
275 to be a NULL pointer. Call update_stmt. Return the newly created
276 cannonical induction variable.
278 * graphite.h (debug_rename_map): Declared. Fix some comments.
280 * graphite.c: Reimplement the code generation from graphite to gimple.
281 Include value-prof.h.
282 (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
283 (get_old_iv_from_ssa_name): Removed.
284 (graphite_stmt_p): New.
285 (new_graphite_bb): Test for useful statements before building a
286 graphite statement for the basic block.
287 (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
288 in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason.
289 (recompute_all_dominators, graphite_verify,
290 nb_reductions_in_loop, graphite_loop_normal_form): New.
291 (scop_record_loop): Call graphite_loop_normal_form.
292 (build_scop_loop_nests): Iterate over all the blocks of the
293 function instead of relying on the incomplete information from
294 SCOP_BBS. Return the success of the operation.
295 (find_params_in_bb): Use the data from GBB_DATA_REFS.
296 (add_bb_domains): Removed.
297 (build_loop_iteration_domains): Don't call add_bb_domains.
298 Add the iteration domain only to the basic blocks that have been
299 translated to graphite.
300 (build_scop_conditions_1): Add constraints only if the basic
301 block have been translated to graphite.
302 (build_scop_data_accesses): Completely disabled until data
303 dependence is correctly implemented.
304 (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
305 (remove_all_edges_1, remove_all_edges): Removed.
306 (get_new_name_from_old_name): New.
307 (graphite_rename_variables_in_stmt): Renamed.
308 rename_variables_in_stmt. Call get_new_name_from_old_name.
309 Use replace_exp and update_stmt.
310 (is_old_iv): Renamed is_iv.
311 (expand_scalar_variables_stmt): Extra parameter for renaming map.
312 Use replace_exp and update_stmt.
313 (expand_scalar_variables_expr): Same. Use the map to get the
314 new names for the renaming of induction variables and for the
315 renaming of variables after a basic block has been copied.
316 (expand_scalar_variables): Same.
317 (graphite_rename_variables): Renamed rename_variables.
318 (move_phi_nodes): Removed.
319 (get_false_edge_from_guard_bb): New.
320 (build_iv_mapping): Do not insert the induction variable of a
321 loop in the renaming iv map if the basic block does not belong
323 (register_old_new_names, graphite_copy_stmts_from_block,
324 copy_bb_and_scalar_dependences): New.
325 (translate_clast): Heavily reimplemented: copy basic blocks,
326 do not move them. Finally, in call cleanup_tree_cfg in gloog.
327 At each translation step call graphite_verify ensuring the
328 consistency of the SSA, loops and dominators information.
329 (collect_virtual_phis, find_vdef_for_var_in_bb,
330 find_vdef_for_var_1, find_vdef_for_var,
331 patch_phis_for_virtual_defs): Removed huge hack.
332 (mark_old_loops, remove_dead_loops, skip_phi_defs,
333 collect_scop_exit_phi_args, patch_scop_exit_phi_args,
334 gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed.
335 (remove_sese_region, ifsese, if_region_entry, if_region_exit,
336 if_region_get_condition_block, if_region_set_false_region,
337 create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
338 sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
339 sese_add_exit_phis_edge, sese_add_exit_phis_var,
340 rewrite_into_sese_closed_ssa): New.
341 (gloog): Remove dead code. Early return if code cannot be
342 generated. Call cleanup_tree_cfg once the scop has been code
344 (graphite_trans_scop_block, graphite_trans_loop_block): Do not
345 block loops with less than two loops.
346 (graphite_apply_transformations): Remove the call to
347 scop_remove_ignoreable_gbbs.
348 (limit_scops): When build_scop_loop_nests fails, continue on next
349 scop. Fix open_scop.entry.
350 (graphite_transform_loops): Call recompute_all_dominators: force the
351 recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
352 Call initialize_original_copy_tables and free_original_copy_tables
353 to be able to copy basic blocks during code generation.
354 When build_scop_loop_nests fails, continue on next scop.
355 (value_clast): New union.
356 (clast_to_gcc_expression): Fix type cast warning.
358 2008-12-10 Richard Guenther <rguenther@suse.de>
360 PR tree-optimization/36792
361 * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
364 2008-12-10 Daniel Berlin <dberlin@dberlin.org>
366 PR tree-optimization/36792
367 * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.
369 2008-12-10 Alexandre Oliva <aoliva@redhat.com>
372 * dwarf2out.c (saved_do_cfi_asm): New.
373 (dwarf2out_do_frame): Take it into account.
374 (dwarf2out_d_cfi_asm): Likewise. Set it when appropriate.
376 2008-12-10 Alexandre Oliva <aoliva@redhat.com>
379 * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
380 variables initialized from SRAed bit fields.
382 2008-12-10 Martin Guy <martinwguy@yahoo.it>
385 * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
386 result will be in an FPU register.
388 2008-12-10 Eric Botcazou <ebotcazou@adacore.com>
392 * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
393 on the associated SYMBOL_REF_DECL node, if any.
395 2008-12-09 David Daney <ddaney@caviumnetworks.com>
397 * config/mips/sync.md (sync_<optab>_12): Replace
398 MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
399 (sync_old_<optab>_12): Remove third paramater to
400 MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
401 with MIPS_SYNC_OLD_OP_12_AND.
402 (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
403 with MIPS_SYNC_NEW_OP_12_AND.
404 (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
405 MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
406 (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
407 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
408 MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
409 (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
410 MIPS_SYNC_NEW_OP_12_XOR.
411 * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
412 MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
413 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
414 MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
415 MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
416 to implement new __sync_nand semantics.
417 (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
418 remove third parameter.
419 (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
420 MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
421 (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
422 (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
423 (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
424 (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
425 (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
426 (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
428 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
430 * graphite.c (graphite_transform_loops): Always call find_transform ()
431 in ENABLE_CHECKING. So we test these code paths, even if we do not
434 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
436 * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
438 2008-12-09 Jakub Jelinek <jakub@redhat.com>
441 * function.h (struct function): Add always_inline_functions_inlined.
442 * ipa-inline.c (cgraph_early_inlining): Set it to true.
443 * tree-optimize.c (execute_fixup_cfg): Likewise.
444 * builtins.c (avoid_folding_inline_builtin): New function.
445 (fold_call_expr): Don't optimize always_inline builtins before
447 (fold_call_stmt): Likewise.
448 (fold_builtin_call_array): Likewise. Don't call
449 fold_builtin_varargs for BUILT_IN_MD builtins.
451 PR tree-optimization/37416
452 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
454 2008-12-09 Janis Johnson <janis187@us.ibm.com>
456 * doc/sourcebuild.texi (Test Directives): Fix formatting.
458 2008-12-09 Vladimir Makarov <vmakarov@redhat.com>
460 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
462 * doc/invoke.texi (-fira-region): Describe new option.
463 (-fira-algorithm): Change the values.
465 * ira-conflicts.c (build_conflict_bit_table,
466 build_allocno_conflicts): Use ira_reg_classes_intersect_p.
467 (ira_build_conflicts): Use flag flag_ira_region instead of
468 flag_ira_algorithm. Prohibit usage of callee-saved likely spilled
469 base registers for allocnos crossing calls.
471 * flags.h (enum ira_algorithm): Redefine.
472 (enum ira_region): New.
473 (flag_ira_region): New.
475 * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
476 instead of flag_ira_algorithm.
478 * toplev.c (flag_ira_algorithm): Change the initial value.
479 (flag_ira_region): New.
481 * ira-int.h (ira_reg_classes_intersect_p,
482 ira_reg_class_super_classes): New.
484 * ira-color.c (update_copy_costs): Use
485 ira_reg_classes_intersect_p. Use right class to find hard reg index.
486 (update_conflict_hard_regno_costs): Ditto. Add a new parameter.
487 (assign_hard_reg): Ditto. Pass additional argument to
488 update_conflict_hard_regno_costs. Do not uncoalesce for priority
490 (allocno_priorities, setup_allocno_priorities,
491 allocno_priority_compare_func): Move before color_allocnos.
492 (color_allocnos): Add priority coloring. Use flag flag_ira_region
493 instead of flag_ira_algorithm.
494 (move_spill_restore): Check classes of the same reg allocno from
496 (update_curr_costs): Use ira_reg_classes_intersect_p.
497 (ira_reassign_conflict_allocnos): Ditto.
499 * opts.c (decode_options): Always set up flag_ira. Set up
500 flag_ira_algorithm. Warn CB can not be used for architecture.
501 (common_handle_option): Modify code for -fira-algorithm. Add code
502 to process -fira-region.
504 * ira-lives.c (update_allocno_pressure_excess_length): Process
506 (set_allocno_live, clear_allocno_live, mark_reg_live,
507 mark_reg_dead, process_bb_node_lives): Ditto.
509 * ira-emit.c (ira_emit): Fix insn codes.
511 * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
512 instead of flag_ira_algorithm.
513 (allocno_range_compare_func): Ignore classes for priority coloring.
514 (setup_min_max_conflict_allocno_ids): Ditto.
515 (ira_flattening): Use ira_reg_classes_intersect_p.
517 * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT.
519 * common.opt (fira-algorithm): Modify.
522 * ira.c (setup_class_hard_regs): Initialize.
523 (setup_cover_and_important_classes): Modify code setting class
524 related info for priority coloring.
525 (setup_class_translate): Ditto.
526 (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
527 (setup_reg_class_intersect_union): Rename to
528 setup_reg_class_relations. Add code for setting up new variables.
529 (find_reg_class_closure): Do not check targetm.ira_cover_classes.
530 (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
532 * ira-costs.c (common_classes): New.
533 (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm.
534 (find_allocno_class_costs): Ditto. Use common_classes. Translate
536 (ira_costs): Allocate/deallocate common_classes.
538 * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
539 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
542 * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
543 smallest_mode_for_size.
545 2008-12-10 Ben Elliston <bje@au.ibm.com>
547 * config/rs6000/linux-unwind.h (get_regs): Constify casts.
549 2008-12-09 Jan Hubicka <jh@suse.cz>
551 * predict.c (estimate_bb_frequencies): Fix test if profile is present.
553 2008-12-09 Jakub Jelinek <jakub@redhat.com>
555 PR tree-optimization/35468
556 * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
559 2008-12-09 Richard Guenther <rguenther@suse.de>
561 PR tree-optimization/38445
562 * tree-ssa-structalias.c (emit_pointer_definition): Only visit
564 (emit_alias_warning): Adjust.
566 2008-12-09 Andrew Haley <aph@redhat.com>
568 * fixed-value.c (do_fixed_add): Add comment.
569 * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
570 * builtins.c (fold_builtin_sqrt): Likewise.
572 2008-12-09 Kai Tietz <kai.tietz@onevision.com>
575 * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
577 * calls.c (nitialize_argument_information): Add fntype argument
578 and use it for calls.promote_function_args.
579 (expand_call): Pass fntype to aggregate_value_p if no fndecl
580 available and pass additional fntype to
581 initialize_argument_information.
582 * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
583 to get function abi type.
584 (init_cumulative_args): Use for abi kind detection fntype, when no
587 2008-12-09 Andreas Krebbel <krebbel1@de.ibm.com>
589 * config/s390/s390.md (movti, movdi_64, movdi_31,
590 *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
591 *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
593 (Integer->BLKmode splitter): Removed.
595 2008-12-08 Uros Bizjak <ubizjak@gmail.com>
597 * config/alpha/alpha.c (alpha_set_memflags): Process memory
598 references in full insn sequence.
600 2008-12-09 Jason Merrill <jason@redhat.com>
602 * gimplify.c (gimplify_init_constructor): Revert to using < rather
603 than <= for sparseness test.
606 * gimplify.c (gimplify_init_constructor): Don't write out a static
607 copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
610 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
613 Fix testsuite/gfortran.dg/graphite/id-3.f90.
614 * graphite.c (scopdet_basic_block_info): Fix bug that found some
615 regions more than once.
617 2008-12-09 Ben Elliston <bje@au.ibm.com>
619 * emutls.c (__emutls_get_address): Prototype.
620 (__emutls_register_common): Likewise.
622 * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
624 2008-12-09 Ben Elliston <bje@au.ibm.com>
626 * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
628 2008-12-08 Steve Ellcey <sje@cup.hp.com>
630 * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
631 (nonlocal_goto_receiver): New instruction.
633 2008-12-08 Jakub Jelinek <jakub@redhat.com>
636 * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
639 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
640 VIEW_CONVERT_EXPR the same as CASE_CONVERT.
642 2008-12-08 Richard Henderson <rth@redhat.com>
645 * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
646 (SET_TYPE_MODE): New.
647 * c-decl.c (parser_xref_tag): Use it.
648 (finish_enum): Likewise.
649 * tree.c (build_pointer_type_for_mode): Likewise.
650 (build_reference_type_for_mode, build_index_type): Likewise.
651 (build_range_type, make_vector_type): Likewise.
652 (build_common_tree_nodes_2): Likewise.
653 * stor-layout.c (compute_record_mode): Likewise.
654 (finalize_type_size, layout_type, make_fract_type): Likewise.
655 (make_accum_type, initialize_sizetypes): Likewise.
656 (vector_type_mode): New.
657 * function.c (allocate_struct_function): Call
658 invoke_set_current_function_hook before querying anything else.
660 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
662 2008-12-08 Luis Machado <luisgpm@br.ibm.com>
664 * alias.c (find_base_term): Synch LO_SUM handling with what
665 find_base_value does.
667 2008-12-08 Andrew Haley <aph@redhat.com>
668 Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
670 * gimple.h (gimple_build_try): Fix declaration.
672 * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
673 * fixed-value.c (do_fixed_add): Likewise.
674 * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
676 2008-12-08 Jakub Jelinek <jakub@redhat.com>
679 * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
680 on parallel and task contexts.
682 2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
684 * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
686 2008-12-07 Richard Guenther <rguenther@suse.de>
688 PR tree-optimization/38405
689 * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
690 not sign-extend truth values.
692 2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
694 * tree-sra.c (scalarize_use): Create another temporary with the proper
695 type for signed types in the use_all && !is_output bitfield case.
697 2008-12-06 Steven Bosscher <steven@gcc.gnu.org>
699 PR rtl-optimization/36365
700 * df-core.c (df_worklist_dataflow_overeager): Remove.
701 (df_worklist_dataflow): Don't call it, use double-queue only.
702 * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
704 2008-12-06 Jakub Jelinek <jakub@redhat.com>
707 * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
708 gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
710 2008-12-07 Ben Elliston <bje@au.ibm.com>
712 * gthr-single.h (__gthread_once): Adjust prototype to match all
713 other gthreads models.
715 2008-12-06 Jakub Jelinek <jakub@redhat.com>
717 * config/i386/i386.c (override_options): Use CPU_AMDFAM10
718 instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
721 * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
722 operands to mult_type if it isn't narrower than op0's type.
724 2008-12-06 Jan Hubicka <jh@suse.cz>
725 Jakub Jelinek <jakub@redhat.com>
727 PR tree-optimization/38074
728 * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
730 * predict.c (combine_predictions_for_bb): Ignore predictor predicting
731 in both dirrection for first match heuristics.
732 (tree_bb_level_predictions): Disable noreturn heuristic when there
733 is no returning path.
735 2008-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
737 PR rtl-optimization/38272
738 * reload1.c (choose_reload_regs): Keep reload_spill_index correct
741 2008-12-05 Jakub Jelinek <jakub@redhat.com>
744 * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
745 (pp_c_expression): Likewise.
747 2008-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
750 * c-parser.c (struct c_token): Make pragma_kind 8 bits.
752 2008-12-05 Jakub Jelinek <jakub@redhat.com>
755 * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
756 arguments to HOST_WIDE_INT. If type has different signedness
757 than unsignedp or different precision from bitsize, create
758 the right type for BIT_FIELD_REF and cast to type.
759 (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
762 2008-03-05 Richard Guenther <rguenther@suse.de>
764 * fold-const.c (fold_truthop): Remove code generating
765 BIT_FIELD_REFs of structure bases.
766 (fold_binary): Likewise.
767 (make_bit_field_ref): Remove.
768 (optimize_bit_field_compare): Remove.
769 (all_ones_mask_p): Remove.
771 2008-12-05 Jakub Jelinek <jakub@redhat.com>
773 * tree-sra.c (sra_explode_bitfield_assignment): Always
774 call unsigned_type_for, if the precision is higher than
775 needed, call build_nonstandard_integer_type.
778 * function.c (assign_parm_find_stack_rtl): If promoted_mode
779 is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
783 * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
784 only if internal_arg_pointer is a non-virtual pseudo.
786 2008-12-05 Joseph Myers <joseph@codesourcery.com>
788 * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
789 TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
790 * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
792 2008-12-05 Jakub Jelinek <jakub@redhat.com>
794 PR tree-optimization/37716
795 * gimplify.c (gimplify_expr): Allow COND_EXPR if
796 gimplify_ctxp->allow_rhs_cond_expr.
798 2008-12-05 Uros Bizjak <ubizjak@gmail.com>
800 * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
801 VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
803 (alpha_emit_conditional_branch): Do not generate direct branch
804 for UNORDERED comparisons.
806 2008-12-05 Andreas Schwab <schwab@suse.de>
808 * config/rs6000/linux-unwind.h (frob_update_context): Check for
811 2008-12-05 Jakub Jelinek <jakub@redhat.com>
814 * fold-const.c (fold_checksum_tree): Change buf type to union
817 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
820 * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
822 (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
824 2008-12-05 Ben Elliston <bje@au.ibm.com>
826 * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
828 (c_parser_initelt): Initialise des_loc and ellipsis_loc.
830 2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
831 Gary Funck <gary@intrepid.com>
833 * cse.c (lookup_as_function): Delete mode frobbing code.
834 (equiv_constant): Re-implement it there for SUBREGs.
836 2008-12-04 Richard Guenther <rguenther@suse.de>
839 * Makefile.in (tree-ssa-alias-warnings.o): Remove.
840 (tree-ssa-structalias.o): Remove errors.h dependency.
841 (tree-ssa-reassoc.o): Likewise.
842 * tree-ssa-reassoc.c: Do not include errors.h.
843 * tree-ssa-alias-warnings.c: Remove.
844 * tree-ssa-alias.c (compute_may_aliases): Remove call to
845 strict_aliasing_warning_backend.
846 * tree-ssa-structalias.c (emit_pointer_definition): New function.
847 (emit_alias_warning): Likewise.
848 (set_uids_in_ptset): Warn for clear cases of type-punning.
849 * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
852 2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
854 * cse.c (equiv_constant): Fix pasto.
856 2008-12-04 Nick Clifton <nickc@redhat.com>
858 * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
859 * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
860 formatting of quotes.
862 2008-12-04 Jakub Jelinek <jakub@redhat.com>
865 * fold-const.c (fold_checksum_tree): Allow modification of
868 2008-12-03 Jakub Jelinek <jakub@redhat.com>
871 * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
872 have the right number of arguments.
874 2008-12-03 Richard Guenther <rguenther@suse.de>
877 * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
880 2008-12-03 Tomas Bily <tbily@suse.cz>
883 * tree-loop-distribution.c (build_size_arg): New function.
884 (generate_memset_zero): Checks if dr_analyze_innermost succeed.
885 Reorganized generating of stmts.
886 * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
887 * tree-data-ref.c (dr_analyze_innermost): Returns bool.
888 Indicate if analysis succeed.
889 * tree-data-ref.h (dr_analyze_innermost): Returns bool.
890 * tree-predcom.c (valid_initializer_p, find_looparound_phi):
891 Uses new definition of dr_analyze_innermost.
893 2008-12-03 Ben Elliston <bje@au.ibm.com>
895 * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
897 2008-12-03 Jakub Jelinek <jakub@redhat.com>
899 PR tree-optimization/37716
900 * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
901 all the needed operations as trees and gimplify_assign it to dst.
904 * configure.ac (gcc_cv_readelf): Look for readelf.
905 (gcc_cv_as_cfi_advance_working): Check for working
906 cfi advances with code alignment factor > 1.
907 (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
909 * configure: Regenerated.
911 2008-12-03 Eric Botcazou <ebotcazou@adacore.com>
912 Jakub Jelinek <jakub@redhat.com>
913 Andrew Pinski <andrew_pinski@playstation.sony.com>
915 PR rtl-optimization/38281
916 * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
917 set it to NULL_RTX afterwards.
919 * emit-rtl.c (set_insn_deleted): Fix formatting.
921 2008-12-02 Richard Sandiford <rdsandiford@googlemail.com>
923 * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
925 * config/mips/mips.md (IMOVE32): New mode iterator.
926 (movsi): Generalize with IMOVE32.
927 (*movsi_internal): Likewise.
928 (*mov<mode>_mips16): Likewise.
931 2008-12-02 Nathan Sidwell <nathan@codesourcery.com>
932 Maxim Kuvyrkov <maxim@codesourcery.com>
934 * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
935 PC-relative addressing when compiling for uclinux PIC.
936 (__cmpdf_internal, __cmpsf_internal): Hide.
937 (__cmpdf, __cmpsf): Use PIC call sequence.
939 2008-12-02 Andreas Tobler <a.tobler@schweiz.org>
940 Jack Howarth <howarth@bromo.med.uc.edu>
942 * config/i386/t-darwin64: Add m32 multilib support.
944 2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
946 * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
948 2008-12-02 Jakub Jelinek <jakub@redhat.com>
951 * builtins.c (fold_builtin_memory_op): Convert len to sizetype
952 before using it in POINTER_PLUS_EXPR.
954 2008-12-02 Richard Guenther <rguenther@suse.de>
956 PR tree-optimization/38359
957 * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
960 2008-12-02 Martin Jambor <mjambor@suse.cz>
963 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
965 (forward_propagate_addr_into_variable_array_index): Check that the
966 offset is not computed from a MULT_EXPR, use is_gimple_assign rather
967 than the gimple code directly.
969 2008-12-02 Ben Elliston <bje@au.ibm.com>
971 * config/spu/float_disf.c (__floatdisf): Prototype.
972 * config/spu/float_unsdisf.c (__float_undisf): Likewise.
973 * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
974 * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
976 2008-12-02 DJ Delorie <dj@redhat.com>
978 * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
979 (DWARF_CIE_DATA_ALIGNMENT): Define.
981 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
982 Invert add/sub for INCOMING_FRAME_SP_OFFSET.
983 (xstormy16_expand_prologue): Likewise.
984 (xstormy16_expand_builtin_va_start): Likewise.
985 (xstormy16_gimplify_va_arg_expr): Likewise.
987 2008-12-02 Jakub Jelinek <jakub@redhat.com>
990 * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
991 potentially returned from folding memcpy.
992 (expand_builtin_stpcpy_args): Similarly for folding strcpy.
993 (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
995 2008-12-02 Danny Smith <dannysmith@users.sourceforge.net>
998 * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
999 decoration of function RTL names here on Ada language.
1001 2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
1003 PR rtl-optimization/38280
1004 * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
1005 ira_rebuild_regno_allocno_list): New functions.
1006 (regno_allocnos): New static variable.
1007 (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
1008 Call ira_rebuild_regno_allocno_list.
1010 2008-12-01 David Daney <ddaney@caviumnetworks.com>
1011 Adam Nemet <anemet@caviumnetworks.com>
1013 * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
1014 LINUX_DRIVER_SELF_SPECS.
1016 2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
1018 PR rtl-optimization/37514
1019 * reload1.c (reload_as_needed): Invalidate reg_last_reload
1020 from previous insns.
1022 2008-12-01 Jakub Jelinek <jakub@redhat.com>
1025 * c-omp.c (c_finish_omp_for): Only transform pointer
1026 ++ or -- into MODIFY_EXPR if second argument is non-NULL.
1028 PR rtl-optimization/38245
1029 * tree-vrp.c (abs_extent_range): New function.
1030 (extract_range_from_binary_expr): Compute range
1031 for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
1032 or includes zero or if vr1 is VR_RANGE and op0 has some
1035 2008-12-01 Uros Bizjak <ubizjak@gmail.com>
1038 * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
1039 case by calculating ~(new_reg & val) instead of (~new_reg & val).
1040 * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
1041 to (not:I48MODE (and:I48MODE (...))).
1042 (sync_old_nand<mode>): Ditto.
1043 (sync_new_nand<mode>): Ditto.
1045 2008-12-01 Nick Clifton <nickc@redhat.com>
1047 * config/stormy16/stormy16.md (CARRY_REG): New constant.
1048 Replace uses of the "y" register class with direct references to
1049 the CARRY_REG register.
1050 * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
1051 register with clobbers of the carry register.
1052 (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
1053 (xstormy16_split_cbranch): Remove redundant carry parameter.
1054 (xstormy16_expand_arith): Likewise.
1055 * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
1056 (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1057 REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
1058 (CARRY_REGNUM): Define.
1059 * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
1061 (xstormy16_expand_arith): Likewise.
1063 2008-12-01 Chen Liqin <liqin.chen@sunplusct.com>
1065 * config/score/score.h (IRA_COVER_CLASSES): Define.
1067 2008-11-30 Eric Botcazou <ebotcazou@adacore.com>
1070 * config/sparc/sparc.md (divsi3 expander): Remove constraints.
1071 (divsi3_sp32): Add new alternative with 'K' for operand #2.
1072 (cmp_sdiv_cc_set): Factor common string.
1073 (udivsi3_sp32): Add new alternative with 'K' for operand #2.
1075 (cmp_udiv_cc_set): Factor common string.
1077 2008-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1080 * varasm.c (emutls_finish): Fix common registration.
1082 2008-11-29 Jakub Jelinek <jakub@redhat.com>
1085 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
1087 2008-11-29 David Edelsohn <edelsohn@gnu.org>
1089 * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
1090 operand wrapped in NOT. Emit NAND as (ior (not X) (not Y)).
1091 (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
1092 * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
1093 Call rs6000_emit_sync with CODE=NOT and unmodified operands.
1094 Ignore sub-word case for now.
1095 (sync_nand<mode>_internal): Represent NAND in RTL.
1096 (sync_old_nand<mode): Same.
1097 (sync_old_name<mode>_internal): Same.
1098 (sync_new_nand<mode>): Same.
1099 (sync_new_nand<mode>_internal): Same.
1100 (sync_boolcshort_internal): Expect NAND.
1102 2008-11-28 Richard Guenther <rguenther@suse.de>
1104 PR tree-optimization/37955
1105 PR tree-optimization/37742
1106 * tree-vect-transform.c (vectorizable_store): Remove assert for
1108 (vectorizable_load): Likewise.
1110 2008-11-27 Richard Guenther <rguenther@suse.de>
1112 * tree-ssa-structalias.c (intra_create_variable_infos): Make
1113 a constraint for the static chain parameter.
1115 2008-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
1117 * config/bfin/bfin.opt (micplb): New option.
1118 * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
1119 * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
1120 ENABLE_WA_INDIRECT_CALLS): New macros.
1121 * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
1123 (indirect_call_p): New function.
1124 (workaround_speculation): Handle anomaly 05-00-0426 when
1125 ENABLE_WA_INDIRECT_CALLS is true.
1126 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1127 __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
1128 * doc/invoke.texi (Blackfin Options): Document -micplb.
1130 2008-11-26 DJ Delorie <dj@redhat.com>
1132 * config/m32c/mov.md ("extendhipsi2"): New.
1134 * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
1136 * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
1137 * config/m32c/mov.md (zero_extendqihi2): Likewise.
1139 2008-11-26 Adam Nemet <anemet@caviumnetworks.com>
1141 * config/mips/mips.md (clear_hazard): Rename to
1142 clear_hazard_<mode>. Use mode-specific addition.
1143 (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
1144 or gen_clear_hazard_di depending on the size of Pmode.
1146 2008-11-26 DJ Delorie <dj@redhat.com>
1148 * configure.ac: Test m32c-elf-gas for .loc.
1149 * configure: Likewise.
1151 2008-11-26 Janis Johnson <janis187@us.ibm.com>
1154 * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
1157 2008-11-26 Uros Bizjak <ubizjak@gmail.com>
1159 * config/i386/sync.md (memory_barrier_nosse): Disable also for
1160 TARGET_64BIT. Remove special asm template for TARGET_64BIT case.
1161 (memory_barrier): Do not generate memory_barrier_nosse instruction
1163 * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
1165 2008-11-26 Fredrik Unger <fred@tree.se>
1167 * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
1168 function name from __floatundisf.
1169 * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
1172 2008-11-25 Daniel Berlin <dberlin@dberlin.org>
1173 Richard Guenther <rguenther@suse.de>
1175 PR tree-optimization/37869
1176 * tree-ssa-structalias.c (struct constraint_graph): Remove
1177 pt_used and number_incoming members.
1178 (build_pred_graph): Do not allocate them.
1179 (condense_visit): Do not use them.
1180 (label_visit): Likewise.
1181 (free_var_substitution_info): Do not free them.
1183 2008-11-25 Vladimir Makarov <vmakarov@redhat.com>
1185 * doc/invoke.texi (ira-max-loops-num): Change semantics.
1187 * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
1189 * ira-color.c (allocno_spill_priority): New function.
1190 (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
1191 Print more info about the spilled allocno.
1192 (push_allocnos_to_stack): Use allocno_spill_priority. Add more
1193 checks on bad spill.
1195 * ira-build.c (loop_node_to_be_removed_p): Remove.
1196 (loop_compare_func, mark_loops_for_removal): New functions.
1197 (remove_uneccesary_loop_nodes_from_loop_t): Use member
1199 (remove_unnecessary_allocnos): Call mark_loops_for_removal.
1201 * ira.c (ira): Don't change flag_ira_algorithm.
1203 * params.def (ira-max-loops-num): Change the value.
1205 2008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com>
1207 * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
1208 Disable unsupported alternative for ColdFire,
1209 add new alternative that ColdFire can handle.
1211 2008-11-25 Eric Botcazou <ebotcazou@adacore.com>
1213 * regrename.c (merge_overlapping_regs): Add registers artificially
1214 defined at the top of the basic block to the set of live ones just
1215 before the first insn.
1217 2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
1218 Joey Ye <joey.ye@intel.com>
1221 * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
1222 false if we need to align the outgoing stack.
1223 (ix86_update_stack_boundary): Check parm_stack_boundary.
1225 2008-11-25 Richard Guenther <rguenther@suse.de>
1229 * tree-ssa-alias.c (struct alias_info): Remove written_vars.
1230 Remove dereferenced_ptrs_store and dereferenced_ptrs_load
1231 in favor of dereferenced_ptrs.
1232 (init_alias_info): Adjust.
1233 (delete_alias_info): Likewise.
1234 (compute_flow_insensitive_aliasing): Properly
1235 include all aliased variables.
1236 (update_alias_info_1): Use dereferenced_ptrs.
1237 (setup_pointers_and_addressables): Likewise.
1238 (get_smt_for): Honor ref-all pointers and pointers with known alias
1240 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
1242 2008-11-25 Uros Bizjak <ubizjak@gmail.com>
1245 * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
1246 (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
1248 2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
1250 * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
1252 2008-11-24 Richard Sandiford <rdsandiford@googlemail.com>
1254 * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
1256 2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
1259 * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
1260 (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
1262 2008-11-24 Uros Bizjak <ubizjak@gmail.com>
1264 * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
1265 UNSPECV_CMPXCHG_[12].
1266 * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
1267 UNSPECV_CMPXCHG_[12].
1270 * config/i386/sync.md (memory_barrier): New expander.
1272 2008-11-24 Jakub Jelinek <jakub@redhat.com>
1275 * dse.c (find_shift_sequence): Optimize extraction from a constant.
1277 2008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1279 * pa.c (function_arg): Revert 2008-10-26 change.
1281 2008-11-23 Helge Deller <deller@gmx.de>
1283 * pa/linux-atomic.c (EBUSY): Define if not _LP64.
1284 (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
1285 succeeded and lws_ret is not equal to oldval.
1287 2008-11-23 Kaz Kojima <kkojima@gcc.gnu.org>
1289 * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
1291 2008-11-22 Andreas Schwab <schwab@suse.de>
1293 * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
1296 2008-11-22 Adam Nemet <anemet@caviumnetworks.com>
1298 * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
1299 Use constant 1 as the operand.
1300 * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
1301 Rename gen_rdhwr to gen_rdhwr_synci_step_si or
1302 gen_rdhwr_synci_step_di depending on the size of Pmode.
1304 2008-11-22 Uros Bizjak <ubizjak@gmail.com>
1307 * config/i386/i386.md (SWI248): New mode iterator.
1308 (SWI32): Remove mode iterator.
1309 (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
1310 popcounthi2 insn patterns. Macroize pattern using SWI248 mode
1311 iterator. Generate popcnt mnemonic without mode extensions
1312 for Darwin x86 targets.
1313 (*popcount<mode>2_cmp): Ditto.
1314 (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
1315 extensions for Darwin x86 targets.
1317 2008-11-22 Eric Botcazou <ebotcazou@adacore.com>
1319 * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
1320 only if HAVE_AS_SPARC_UA_PCREL is defined.
1322 2008-11-22 Richard Sandiford <rdsandiford@googlemail.com>
1324 * ira-costs.c (find_allocno_class_costs): Work out the maximum
1325 allocno_costs value of the classees with the lowest total_costs
1326 value. Use this to set ALLOCNO_COVER_CLASS_COST here...
1327 (setup_allocno_cover_class_and_costs): ...rather than here.
1328 Use the ALLOCNO_COVER_CLASS_COST for all registers in the
1331 2008-11-22 Jakub Jelinek <jakub@redhat.com>
1334 * builtins.c (expand_builtin_apply_args): Emit sequence before
1335 parm_birth_insn instead of after entry_of_function's first insn.
1338 * function.c (assign_parm_remove_parallels): Pass
1339 data->passed_type as third argument to emit_group_store.
1342 * final.c (mark_symbol_refs_as_used): New function.
1343 * output.h (mark_symbol_refs_as_used): New prototype.
1344 * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
1345 (s390_output_pool_entry): Use mark_symbol_refs_as_used.
1346 * config/arm/arm.md (consttable_4): Likewise.
1349 * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
1351 2008-11-21 Jakub Jelinek <jakub@redhat.com>
1354 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
1355 propagate x = &a into *x = b if conversion from b to a's type is
1358 2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
1360 * caller-save.c (insert_one_insn): Take into account REG_INC notes
1361 for the liveness computation of the new insn.
1363 2008-11-21 DJ Delorie <dj@redhat.com>
1365 * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
1366 Moves to/from below100 space (W) can only use r0-r7.
1368 2008-11-21 Paolo Carlini <paolo.carlini@oracle.com>
1371 * doc/invoke.texi (Optimization Options): Fix typo.
1373 2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
1374 Xuepeng Guo <xuepeng.guo@intel.com>
1376 * config.gcc (extra_headers): For x86 and x86-64, remove
1377 gmmintrin.h, add immintrin.h and avxintrin.h.
1379 * config/i386/gmmintrin.h: Renamed to ...
1380 * config/i386/avxintrin.h: This. Issue an error if
1381 _IMMINTRIN_H_INCLUDED is undedined.
1383 * config/i386/immintrin.h: New.
1385 2008-11-21 Jakub Jelinek <jakub@redhat.com>
1388 * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
1389 mode of PLUS, not mode of the eliminated register.
1391 2008-11-21 Uros Bizjak <ubizjak@gmail.com>
1393 * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
1394 * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
1395 (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
1396 (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
1397 (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
1398 (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
1399 (*nand<mode>3): Rename to *andnot<mode>3.
1400 (*nandtf3): rename to *andnottf3.
1401 * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
1402 Use CODE_FOR_mmx_andnotv2si3.
1403 [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
1404 [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
1405 [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
1406 [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
1407 [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
1409 2008-11-21 Uros Bizjak <ubizjak@gmail.com>
1412 * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
1413 case by calculating ~(new_reg & val) instead of (~new_reg & val).
1414 * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
1415 to (not:IMODE (and:IMODE (...))).
1416 (sync_old_nand<mode>): Ditto.
1417 (sync_new_nand<mode>): Ditto.
1419 2008-11-20 Joseph Myers <joseph@codesourcery.com>
1421 * config/arm/thumb2.md (thumb2_casesi_internal,
1422 thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
1424 2008-11-20 Andreas Krebbel <krebbel1@de.ibm.com>
1426 * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
1427 nand to the changed 4.4 semantic.
1429 2008-11-20 Jakub Jelinek <jakub@redhat.com>
1432 * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
1433 (fold_builtin_memory_op): Handle even the case where just one
1434 of src and dest is an address of a var decl component, using
1435 TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant
1436 and readonly_data_expr src check.
1437 * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
1440 PR rtl-optimization/36998
1441 * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
1442 arguments. Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
1443 (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
1444 stack_adjust_offset callers.
1445 (dwarf2out_stack_adjust): Likewise. Handle insns in annulled
1447 (compute_barrier_args_size): Handle insns in annulled branches
1450 2008-11-20 Uros Bizjak <ubizjak@gmail.com>
1453 * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
1454 Handle cases when integer argument crosses argument register boundary.
1456 2008-11-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1459 * config.gcc (i[34567]86-*-solaris2*): Don't include
1460 i386/t-crtstuff here.
1461 Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
1462 * config/i386/t-sol2: Move to libgcc/config/i386.
1464 2008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
1467 * tlink.c: Include "libiberty.h".
1468 (initial_cwd): Change type into char *.
1469 (tlink_init): Call getpwd instead of getcwd.
1471 2008-11-19 Zdenek Dvorak <ook@ucw.cz>
1473 PR rtl-optimization/32283
1474 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
1475 of the induction variable to decide whether it may wrap.
1476 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
1477 initialization of the bound before the loop.
1478 * simplify-rtx.c (simplify_binary_operation_1): Add two
1479 simplifications regarding AND.
1480 (simplify_plus_minus): Only fail if no simplification is possible.
1481 * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
1483 2008-11-20 Jakub Jelinek <jakub@redhat.com>
1486 * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
1487 checking until GIMPLE lowering.
1488 * gimple-low.c (check_call_args): New function.
1489 (lower_stmt) <case GIMPLE_CALL>: Call it.
1491 2008-11-19 Adam Nemet <anemet@caviumnetworks.com>
1493 * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
1494 with the same type as the first operand of the AND expression.
1496 2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
1499 * ira-int.h (struct ira_loop_tree_node): New member
1500 entered_from_non_parent_p.
1502 * ira-color.c (print_loop_title): Print loop bbs.
1504 * ira-emit.c (entered_from_non_parent_p,
1505 setup_entered_from_non_parent_p): New functions.
1506 (not_modified_p): Rename to store_can_be_removed_p. Check there
1508 (generate_edge_moves): Use store_can_be_removed_p instead of
1510 (ira_emit): Call setup_entered_from_non_parent_p.
1512 * ira-build.c (copy_info_to_removed_store_destinations):
1513 Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
1514 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
1515 (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
1516 update all accumulated attributes.
1518 2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
1521 * ira-int.h (ira_copy_allocno_live_range_list,
1522 ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
1523 ira_finish_allocno_live_range_list): New prototypes.
1524 (ira_allocno_live_ranges_intersect_p,
1525 ira_pseudo_live_ranges_intersect_p): Remove.
1527 * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
1528 ira_pseudo_live_ranges_intersect_p): Rename to
1529 allocnos_have_intersected_live_ranges_p and
1530 pseudos_have_intersected_live_ranges_p. Move them from here to ...
1532 * ira-color.c: ... here
1533 (coalesced_allocno_conflict_p): Use
1534 allocnos_have_intersected_live_ranges_p.
1535 (coalesced_allocnos_living_at_program_points,
1536 coalesced_allocnos_live_at_points_p,
1537 set_coalesced_allocnos_live_points): Remove.
1538 (slot_coalesced_allocnos_live_ranges,
1539 slot_coalesced_allocno_live_ranges_intersect_p,
1540 setup_slot_coalesced_allocno_live_ranges): New.
1541 (coalesce_spill_slots): Use ranges of coalesced allocnos.
1542 (ira_sort_regnos_for_alter_reg): Use
1543 allocnos_have_intersected_live_ranges_p.
1544 (ira_reuse_stack_slot): Use
1545 pseudos_have_intersected_live_ranges_p.
1547 * global.c (pseudo_for_reload_consideration_p): Check
1548 flag_ira_share_spill_slots too.
1550 * ira-build.c (copy_allocno_live_range_list): Rename to
1551 ira_copy_allocno_live_range_list. Make it external.
1552 (merge_ranges): Rename to ira_merge_allocno_live_ranges. Make it
1554 (ira_allocno_live_ranges_intersect_p): New.
1555 (ira_finish_allocno_live_range_list): New.
1556 (finish_allocno): Use it.
1557 (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
1558 (copy_info_to_removed_store_destinations): Ditto. Use
1559 ira_copy_allocno_live_range_list.
1560 (ira_flattening): Use ira_merge_allocno_live_ranges.
1562 * ira.c (too_high_register_pressure_p): New function.
1563 (ira): Switch off sharing spill slots if the pressure is too high.
1565 2008-11-19 Richard Guenther <rguenther@suse.de>
1567 * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
1568 non-sizetype offsets if their precision matches that of the pointer.
1569 * expr.c (expand_expr_real_1): Always sign-extend the offset
1570 operand of a POINTER_PLUS_EXPR.
1572 2008-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1574 * config.gcc: Unobsolete mips-sgi-irix[56]*.
1575 (mips-sgi-irix[56]*): No need to use fixproto.
1577 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
1578 Paul Brook <paul@codesourcery.com>
1580 * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
1583 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
1585 * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
1587 2008-11-19 Razya Ladelsky <razya@il.ibm.com>
1590 * tree-parloops.c (loop_parallel_p): NULL vect_dump.
1591 (separate_decls_in_region): Create shared struct even when there
1592 are only reductions.
1594 2008-11-19 Hariharan Sandanagobalane <hariharan@picochip.com>
1596 * config/picochip/picochip.c (headers): Remove an unnecessary
1599 2008-11-19 Andrew Stubbs <ams@codesourcery.com>
1602 * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
1603 * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
1605 * config/m68k/m68k.md: Adjust all conditional branches that use the
1606 carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
1608 2008-11-18 Uros Bizjak <ubizjak@gmail.com>
1611 * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
1612 is a register or zero operand in the correct mode before generating
1613 mtch1 insn or a register operand in the correct mode before generating
1615 (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
1617 2008-11-18 Adam Nemet <anemet@caviumnetworks.com>
1619 * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
1620 (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
1621 mipsisa*-*-elf*. Handle mipsisa64r2*.
1622 * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
1623 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1625 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
1626 * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1628 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. Add mips64r2/mips16.
1629 Fix mips16 if mips64 or mips64r2 are multilib defaults.
1630 * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1633 2008-11-18 Jakub Jelinek <jakub@redhat.com>
1636 * config/i386/i386.md (allocate_stack_worker_32,
1637 allocate_stack_worker_64): Don't use match_dup between input and
1639 (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
1640 * config/i386/i386.c (ix86_expand_prologue): Likewise.
1642 2008-11-18 Kai Tietz <kai.tietz@onevision.com>
1644 * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
1645 is forced when trying to do a symbol link for it.
1647 2008-11-17 Adam Nemet <anemet@caviumnetworks.com>
1649 * expmed.c (extract_bit_field_1): Also use a temporary and
1650 convert_extracted_bit_field when the conversion from ext_mode to
1651 the target mode requires explicit truncation.
1653 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
1655 * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
1657 * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
1658 registers when not optimizing.
1660 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
1662 * config/mips/mips.md (*mul_acc_si): Remove middle alternative
1663 and its associated define_split. Expose the all-d alternative
1664 to the register allocator, but mark it with "?". Mark the first
1665 alternative with "*?*?".
1666 (*mul_sub_si): Likewise.
1667 (*mul_acc_si_r3900): New pattern.
1669 2008-11-17 Jakub Jelinek <jakub@redhat.com>
1672 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
1673 propagating x = &a into *x = b, add a cast if not useless
1674 type conversion or don't optimize if another stmt would be
1677 2008-11-17 Uros Bizjak <ubizjak@gmail.com>
1680 * optabs.c (expand_sync_operation): Properly handle NAND case
1681 by calculating ~(t1 & val) instead of (~t1 & val).
1682 * builtins.c (expand_builtin_sync_operation): Warn for changed
1683 semantics in NAND builtins.
1684 * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand.
1686 * doc/invoke.texi (Warning options): Add Wsync-nand.
1687 * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
1688 __sync_fetch_and_nand builtin operation in the example. Add a note
1689 about changed semantics in GCC 4.4.
1690 [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
1691 operation in the example. Add a note about changed semantics in
1694 2008-11-16 Jan Hubicka <jh@suse.cz>
1696 * cgraph.c (cgraph_function_body_availability): Fix test of externally
1699 2008-11-16 Joshua Kinard <kumba@gentoo.org>
1701 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
1704 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
1707 * config/mips/mips.c (mips_cfun_call_saved_reg_p)
1708 (mips_cfun_might_clobber_call_saved_reg_p): New functions,
1710 (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP
1711 rather than call_really_used_regs when handling $gp.
1713 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
1716 * config/mips/mips.c (machine_function): Update the comment
1717 above global_pointer.
1718 (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
1719 that a function doesn't need a global pointer.
1720 (mips_current_loadgp_style): Update accordingly.
1721 (mips_restore_gp): Likewise.
1722 (mips_output_cplocal): Likewise.
1723 (mips_expand_prologue): Likewise.
1725 2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
1727 * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
1728 parameter. Use DImode for computing the number of registers.
1729 (function_arg): Adjust for above change.
1730 (function_value): Likewise.
1732 2008-11-15 Zdenek Dvorak <ook@ucw.cz>
1734 PR tree-optimization/37950
1735 * tree-flow-inline.h (memory_partition): Return NULL when aliases were
1736 not computed for the current function.
1738 2008-11-15 Jakub Jelinek <jakub@redhat.com>
1741 * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
1742 gpr and other COMPONENT_REFs.
1744 2008-11-15 Richard Guenther <rguenther@suse.de>
1746 PR tree-optimization/38051
1747 * tree-ssa-alias.c (update_alias_info_1): Manually find
1750 2008-11-15 Joshua Kinard <kumba@gentoo.org>
1752 * doc/invoke.texi (-mfix-r10000): Document.
1753 * config/mips/mips.opt (mfix-r10000): New option.
1754 * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
1755 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
1756 (MIPS_COMPARE_AND_SWAP_12): Likewise.
1757 (MIPS_SYNC_OP): Likewise.
1758 (MIPS_SYNC_OP_12): Likewise.
1759 (MIPS_SYNC_OLD_OP_12): Likewise.
1760 (MIPS_SYNC_NEW_OP_12): Likewise.
1761 (MIPS_SYNC_OLD_OP): Likewise.
1762 (MIPS_SYNC_NAND): Likewise.
1763 (MIPS_SYNC_OLD_NAND): Likewise.
1764 (MIPS_SYNC_EXCHANGE): Likewise.
1765 (MIPS_SYNC_EXCHANGE_12): Likewise.
1766 (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
1768 (MIPS_SYNC_NEW_NAND): Likewise.
1769 * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
1770 (mips_init_print_operand_punct): Treat '~' as a punctuation character.
1771 (mips_output_sync_loop): New function.
1772 (mips_override_options): Make -march=r10000 imply -mfix-r10000.
1773 Make -mfix-r10000 require branch-likely instructions.
1774 * config/mips/sync.md (sync_compare_and_swap<mode>): Use
1775 mips_output_sync_loop.
1776 (compare_and_swap_12): Likewise.
1777 (sync_add<mode>): Likewise.
1778 (sync_<optab>_12): Likewise.
1779 (sync_old_<optab>_12): Likewise.
1780 (sync_new_<optab>_12): Likewise.
1781 (sync_nand_12): Likewise.
1782 (sync_old_nand_12): Likewise.
1783 (sync_new_nand_12): Likewise.
1784 (sync_sub<mode>): Likewise.
1785 (sync_old_add<mode>): Likewise.
1786 (sync_old_sub<mode>): Likewise.
1787 (sync_new_add<mode>): Likewise.
1788 (sync_new_sub<mode>): Likewise.
1789 (sync_<optab><mode>): Likewise.
1790 (sync_old_<optab><mode>): Likewise.
1791 (sync_new_<optab><mode>): Likewise.
1792 (sync_nand<mode>): Likewise.
1793 (sync_old_nand<mode>): Likewise.
1794 (sync_new_nand<mode>): Likewise.
1795 (sync_lock_test_and_set<mode>): Likewise.
1796 (test_and_set_12): Likewise.
1798 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
1800 * gcc.c (cc1_options): Fix comment.
1802 2008-11-15 Jakub Jelinek <jakub@redhat.com>
1805 * c-typeck.c (build_unary_op): Don't call get_unwidened. Use
1806 argtype instead of result_type.
1808 2008-11-14 Adam Nemet <anemet@caviumnetworks.com>
1810 * ira-int.h (struct ira_loop_tree_node): Improve comments for
1811 subloop_next/next and subloops/childen fields.
1813 2008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1815 * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
1816 (STANDARD_INCLUDE_DIR): Redefine to "/include".
1817 (LOCAL_INCLUDE_DIR): Undefine.
1818 * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
1820 2008-11-14 Vladimir Makarov <vmakarov@redhat.com>
1822 PR rtl-optimization/37397
1823 * ira-int.h (struct ira_allocno): New member bad_spill_p.
1824 (ALLOCNO_BAD_SPILL_P): New macro.
1826 * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
1828 * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
1829 (create_cap_allocno, propagate_allocno_info,
1830 remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
1831 (update_bad_spill_attribute): New function.
1832 (ira_build): Call it.
1834 * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
1836 2008-11-14 Jakub Jelinek <jakub@redhat.com>
1838 PR tree-optimization/38104
1839 * gimplify.c (gimple_regimplify_operands): Add referenced vars
1840 before calling mark_symbols_for_renaming, not after it.
1842 2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
1844 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
1845 (OVERRIDE_OPTIONS): Likewise.
1847 2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
1848 Andrew Stubbs <ams@codesourcery.com>
1849 Gunnar Von Boehn <gunnar@genesi-usa.com>
1852 * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
1853 the shorter LEA insn over ADD.L where possible.
1855 2008-11-14 Thomas Schwinge <tschwinge@gnu.org>
1857 * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
1858 systems, which are assumend to always provide SSP-support in glibc.
1859 Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
1861 * configure: Regenerate.
1863 2008-11-14 Jakub Jelinek <jakub@redhat.com>
1866 * function.c (gimplify_parameters): For callee copies parameters,
1867 move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
1869 2008-11-13 Thomas Schwinge <tschwinge@gnu.org>
1872 * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
1873 x86 parts into the `i[34567]86-*-linux*' and parts that are
1874 independent of the processor architecture into the `*-*-linux*' cases.
1875 (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
1876 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
1877 (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
1878 [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
1879 * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
1880 (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
1881 (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
1883 2008-11-13 Ruan Beihong <ruanbeihong@gmail.com>
1885 * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
1886 * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
1887 (ls2_idiv): Likewise idiv3.
1888 (ls2_prefetch): New reservation.
1889 * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
1890 * config/mips/mips.md (type): Add imul3nc and idiv3.
1891 (length): Handle idiv3.
1892 (any_mod): New code_iterator.
1893 (u): Handle MOD and UMOD.
1894 (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
1895 (prefetch): Handle TARGET_LOONGSON_2EF.
1897 2008-11-13 Jakub Jelinek <jakub@redhat.com>
1900 * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
1901 (prune_unused_types_walk): Call it for non-perennial local classes.
1902 Set die_mark to 2 if recursing on children. If die_mark is 1 on
1903 entry, just set it to 2 and recurse on children, don't walk attributes
1906 2008-11-13 Martin Michlmayr <tbm@cyrius.com>
1908 * c-common.c (warn_about_parentheses): Add missing whitespace
1911 2008-11-13 Paul Brook <paul@codesourcery.com>
1913 * doc/invoke.texi: Document --fix-cortex-m3.
1914 * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
1915 Cortex-M3 cpu is selected.
1916 (output_move_double): Avoid overlapping base register and first
1917 destination register when fix_cm3_ldrd.
1918 * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
1920 2008-11-13 Jakub Jelinek <jakub@redhat.com>
1923 * gimple.h (gimple_range_check_failed): Remove prototype.
1924 * gimple.c (gimple_check_failed): Don't check GCC_VERSION
1926 (gimple_range_check_failed): Removed.
1928 2008-11-13 Andrew Haley <aph@redhat.com>
1931 * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
1934 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1938 2007-05-07 Mike Stump <mrs@apple.com>
1939 * doc/invoke.texi (Warning Options): Document that -Wempty-body
1940 also checks for and while statements in C++.
1942 2008-11-12 Dodji Seketeli <dodji@redhat.com>
1945 * cgraph.h: New abstract_and_needed member to struct cgraph_node.
1946 * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
1947 - which clones are reachable - as "abstract and needed".
1948 * cgraph.c (cgraph_release_function_body): If a node is
1949 "abstract and needed", do not release its DECL_INITIAL() content
1950 that will be needed to emit debug info.
1952 2008-11-12 Steve Ellcey <sje@cup.hp.com>
1955 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
1956 to set HAVE_GETIPINFO.
1957 * aclocal.m4: Include ../config/unwind_ipinfo.m4.
1958 * configure: Regenerate.
1959 * config.in: Regenerate.
1961 2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
1964 * gcc/config.gcc: Use darwin9.h on darwin10 as well.
1966 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1969 2008-10-21 Jakub Jelinek <jakub@redhat.com>
1970 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
1972 2008-11-12 Jason Merrill <jason@redhat.com>
1975 * c-common.c (c_common_signed_or_unsigned_type): Remove C++
1978 2008-11-12 Anatoly Sokolov <aesok@post.ru>
1980 * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
1981 atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
1983 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1984 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1986 2008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1988 * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
1989 packed-stack special handling.
1990 (FRAME_ADDR_RTX): Add definition.
1992 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1995 * fold-const.c (native_encode_string): New function.
1996 (native_encode_expr): Use it for STRING_CST.
1998 2008-11-12 DJ Delorie <dj@redhat.com>
2000 * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
2001 insns if the intermediate value will be used later.
2003 2008-11-12 Andreas Schwab <schwab@suse.de>
2005 * config/m68k/m68k.c (print_operand): Mask off extra extension
2006 bits when writing out the representation of real values.
2008 2008-11-12 Ira Rosen <irar@il.ibm.com>
2010 PR tree-optimization/38079
2011 * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
2014 2008-11-12 Jakub Jelinek <jakub@redhat.com>
2017 * c-pretty-print.c (pp_c_complex_expr): New function.
2018 (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
2021 * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
2022 than INNER and INNER is a constant, forcibly align INNER as much
2025 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
2027 * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
2029 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
2031 PR rtl-optimization/37363
2032 * simplify-rtx.c (simplify_plus_minus): Don't create
2033 (const (minus ...)) expresisons.
2035 2008-11-11 Eric Botcazou <ebotcazou@adacore.com>
2037 * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
2040 2008-11-10 Catherine Moore <clm@codesourcery.com>
2042 * config.gcc (mips64vrel-*-elf*): Include the tm_file
2044 * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
2045 (BASE_DRIVER_SELF_SPECS): Remove.
2046 (DRIVER_SELF_SPECS): New definition.
2047 * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
2048 BASE_DRIVER_SELF_SPECS.
2049 * config/mips/sde.h: Likewise.
2050 * config/mips/iris6.h: Likewise.
2051 * config/mips/vr.h: Likewise.
2052 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
2054 2008-11-10 Vladimir Makarov <vmakarov@redhat.com>
2056 PR rtl-optimizations/37948
2057 * ira-int.h (struct ira_allocno_copy): New member constraint_p.
2058 (ira_create_copy, ira_add_allocno_copy): New parameter.
2060 * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it
2061 to ira_add_allocno_copy.
2062 (process_reg_shuffles, add_insn_allocno_copies): Pass a new
2063 parameter to process_regs_for_copy.
2064 (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
2065 Fix typo in passing second allocno to ira_add_allocno_copy.
2067 * ira-color.c (update_conflict_hard_regno_costs): Use head of
2068 coalesced allocnos list.
2069 (assign_hard_reg): Ditto. Check that assigned allocnos are not in
2071 (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
2072 (add_ira_allocno_to_ordered_bucket): Rename to
2073 add_allocno_to_ordered_bucket.
2074 (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use
2075 head of coalesced allocnos list.
2076 (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
2077 Check that it is aready calculated.
2078 (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
2079 (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
2081 (coalesce_allocnos): Do extended coalescing too.
2083 * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
2084 parameter to ira_add_allocno_copy.
2086 * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
2088 (print_copy): Print copy origination too.
2090 * ira-costs.c (scan_one_insn): Use alloc_pref for load from
2093 2008-11-10 Kaz Kojima <kkojima@gcc.gnu.org>
2095 PR rtl-optimization/37514
2096 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
2097 flag_ira_share_spill_slots to 2 if it's already non-zero.
2098 (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
2099 flag_ira_share_spill_slots is 2.
2101 2008-11-10 Kevin Buettner <kevinb@redhat.com>
2103 * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
2104 (prologue_enter_32): Set FB to SP - 4.
2106 2008-11-10 DJ Delorie <dj@redhat.com>
2108 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
2109 constraint for single-bit-clear in lower byte of HI constant, vs
2110 Imb which just ignores the upper byte.
2111 * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
2112 * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
2113 (iorhi3_16): Check for single bit set, not single bit clear.
2115 2008-11-10 Janis Johnson <janis187@us.ibm.com>
2117 * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
2119 * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
2121 2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
2123 * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
2124 values living in memory and use more precise alignment information.
2126 2008-11-10 Jakub Jelinek <jakub@redhat.com>
2129 * tree-mudflap.c (mf_build_check_statement_for): Split then_block
2130 after __mf_check call if the call must end a bb.
2132 2008-11-10 Ralph Loader <suckfish@ihug.co.nz>
2136 * combine.c (force_to_mode): Do not process vector types.
2138 * rtlanal.c (nonzero_bits1): Do not process vector types.
2139 (num_sign_bit_copies1): Likewise.
2141 2008-11-09 Thomas Schwinge <tschwinge@gnu.org>
2143 * config/i386/gnu.h: Add copyright and licensing header.
2144 * config/gnu.h: Likewise.
2146 2008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
2148 * fwprop.c (fwprop_done): Call df_remove_problem.
2150 2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
2153 * tree-scalar-evolution.c (instantiate_scev_1): Return
2154 chrec_dont_know for VL_EXP_CLASS_P.
2156 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
2158 * reg-stack.c (reg_to_stack): Add missing braces in memset
2161 2008-11-06 Andrew Stubbs <ams@codesourcery.com>
2163 * config/arm/bpabi.h (PROFILE_HOOK): New undef.
2164 (NO_PROFILE_COUNTERS): New define.
2166 2008-11-06 David Edelsohn <edelsohn@gnu.org>
2169 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
2171 2008-11-06 Kazu Hirata <kazu@codesourcery.com>
2174 * config/sparc/constraints.md (D): New.
2175 * config/sparc/predicates.md (const_double_or_vector_operand): New.
2176 * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
2178 * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
2179 Use the 'D' constraint in addition to 'F' in some alternatives.
2180 (DF splitter): Generalize for V64mode.
2181 * doc/md.texi (SPARC): Document the 'D' constraint.
2183 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
2185 * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
2187 2008-11-06 Ben Elliston <bje@au.ibm.com>
2189 * gcc.c: Remove ancient comment about a bug in Sun cc.
2191 2008-11-05 Janis Johnson <janis187@us.ibm.com>
2193 * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
2195 2008-11-06 Ben Elliston <bje@au.ibm.com>
2197 * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
2199 2008-11-06 Ben Elliston <bje@au.ibm.com>
2201 * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
2204 2008-11-05 Hans-Peter Nilsson <hp@axis.com>
2207 * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
2210 2008-11-05 Martin Jambor <mjambor@suse.cz>
2213 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
2214 pointer arithmetics into array_ref if the array is accessed
2215 through an indirect_ref.
2217 2008-11-05 Richard Guenther <rguenther@suse.de>
2220 * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
2221 qualified pointer conversion before stripping qualifiers.
2222 * gimplify.c (create_tmp_from_val): Use correctly qualified type.
2223 * tree-flow.h (may_propagate_address_into_dereference): Declare.
2224 * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
2227 * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
2228 properly canonicalize binary ops.
2229 (forward_propagate_addr_expr_1): Use
2230 may_propagate_address_into_dereference.
2232 2008-11-05 Uros Bizjak <ubizjak@gmail.com>
2235 * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
2236 Initialize uninitialized input registers with a NaN.
2238 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
2242 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
2244 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
2248 * graphite.c (scopdet_basic_block_info): Fix loops with multiple
2249 exits and conditions.
2250 * testsuite/gcc.dg/graphite/pr37943.c: New.
2252 2008-11-04 Jakub Jelinek <jakub@redhat.com>
2253 Andrew Pinski <andrew_pinski@playstation.sony.com>
2256 * c-common.c (warn_for_sign_compare): For complex result_type
2257 use component's type.
2259 2008-11-04 Jakub Jelinek <jakuB@redhat.com>
2261 * print-tree.c (print_node): Use code instead of TREE_CODE (node).
2263 * print-tree.c (print_node): Don't print DECL_INITIAL
2267 * c-common.c (parse_optimize_options): Save and restore
2268 flag_strict_aliasing around decode_options call.
2270 2008-11-04 Uros Bizjak <ubizjak@gmail.com>
2272 * config/i386/driver-i386.c (enum vendor_signatures): New enum.
2273 (host_detect_local_cpu): Use it instead of casted strings to
2274 compare vendor signatures.
2276 2008-11-03 Mikael Pettersson <mikpe@it.uu.se>
2279 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
2280 or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
2282 2008-11-03 Catherine Moore <clm@codesourcery.com>
2284 * config/mips.c (mips_conditional_register_usage): Handle the
2285 DSP control register.
2286 * doc/extend.texi: Document the DSP control register.
2288 2008-11-03 Steve Ellcey <sje@cup.hp.com>
2289 Jakub Jelinek <jakub@redhat.com>
2291 * omp-low.c (expand_omp_for_generic): If iter_type has different
2292 precision than type and type is a pointer type, cast n1 and n2
2293 first to an integer type with the same precision as pointers
2294 and only afterwards to iter_type.
2296 2008-11-03 Richard Sandiford <rdsandiford@googlemail.com>
2298 * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
2299 (UNSPEC_GOTSYM_OFF): New unspec.
2300 (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
2301 (pic_add_dot_plus_eight): Likewise.
2302 (tls_load_dot_plus_eight): Likewise. Update peephole2.
2303 * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
2304 UNSPEC_PIC_BASE operands.
2305 * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
2306 (arm_output_addr_const_extra): Handle it.
2308 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
2310 * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
2311 integer class to full integer class if the offset is not word-aligned.
2313 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2316 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2318 (doloop_optimize): Update call to doloop_modify.
2320 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
2322 * tree-sra.c (bitfield_overlaps_p): Fix oversight.
2324 2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2327 * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
2328 gcc_cv_as_cfi_directive.
2329 (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
2330 merging read-only and read-write sections or assembler emits
2331 read-write .eh_frame sections.
2332 * configure: Regenerate.
2334 2008-11-03 Nathan Froyd <froydnj@codesourcery.com>
2337 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2339 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2341 (rs6000_emit_prologue): Invert logic.
2342 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2343 (reg:P 11) instead of match_operand.
2344 (*save_fpregs_<mode>): Likewise.
2345 (*restore_gpregs_<mode>): Likewise.
2346 (*return_and_restore_gpregs_<mode>): Likewise.
2347 (*return_and_restore_fpregs_<mode>): Likewise.
2348 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2349 (reg:P 11) insted of match_operand.
2350 (*restore_gpregs_spe): Likewise.
2351 (*return_and_restore_gpregs_spe): Likewise.
2353 2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
2355 PR tree-optimization/37684
2356 * gcc.dg/graphite/pr37684.c: New.
2357 * graphite.c (exclude_component_ref): New.
2358 (is_simple_operand): Call exclude_component_ref.
2360 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
2362 PR tree-optimization/36908
2363 * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
2364 * tree-loop-distribution.c (number_of_rw_in_rdg): New.
2365 (number_of_rw_in_partition): New.
2366 (partition_contains_all_rw): New.
2367 (ldist_gen): Do not distribute when one of the partitions
2368 contains all the memory operations.
2370 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
2372 * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
2373 EDGE_IRREDUCIBLE_LOOP.
2375 2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
2377 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
2378 where we have one entry point in the loop which isn't the head.
2380 2008-11-03 Richard Guenther <rguenther@suse.de>
2383 * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
2385 2008-11-03 Jakub Jelinek <jakub@redhat.com>
2388 * passes.c (execute_one_pass): Don't look at cfun->curr_properties
2389 for ipa and simple ipa passes.
2391 2008-11-02 Richard Guenther <rguenther@suse.de>
2393 PR tree-optimization/37542
2394 * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
2395 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
2396 (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
2397 (vn_nary_op_insert_stmt): Likewise.
2398 (visit_use): Likewise.
2400 2008-11-02 Anatoly Sokolov <aesok@post.ru>
2402 * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
2404 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
2405 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
2406 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
2407 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
2408 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
2409 peephole2's): Replace unspec with rotate.
2410 * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
2412 2008-11-02 Richard Guenther <rguenther@suse.de>
2414 PR tree-optimization/37991
2415 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
2416 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
2417 (set_ssa_val_to): Print if the value changed.
2418 (simplify_binary_expression): Strip useless conversions.
2420 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
2423 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
2426 2008-11-01 Richard Guenther <rguenther@suse.de>
2429 * builtins.c (fold_builtin_strspn): Return a size_t.
2430 (fold_builtin_strcspn): Likewise.
2432 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2434 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
2435 attribute for struct return convention.
2437 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2439 * config/rs6000/crtsavres.asm: Really, really delete.
2441 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2443 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2445 (rs6000_emit_prologue): Invert logic.
2446 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2447 (reg:P 11) instead of match_operand.
2448 (*save_fpregs_<mode>): Likewise.
2449 (*restore_gpregs_<mode>): Likewise.
2450 (*return_and_restore_gpregs_<mode>): Likewise.
2451 (*return_and_restore_fpregs_<mode>): Likewise.
2452 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2453 (reg:P 11) insted of match_operand.
2454 (*restore_gpregs_spe): Likewise.
2455 (*return_and_restore_gpregs_spe): Likewise.
2457 2008-10-28 Luis Machado <luisgpm@br.ibm.com>
2459 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
2460 list of word switches that take args.
2462 2008-10-30 Jakub Jelinek <jakub@redhat.com>
2464 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
2465 (s390_output_pool_entry): Call it through for_each_rtx.
2468 * expr.c (store_constructor): For vectors, if target is a MEM, use
2469 target's MEM_ALIAS_SET instead of elttype alias set.
2471 2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
2474 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
2477 2008-10-29 David Edelsohn <edelsohn@gnu.org>
2480 * config/rs6000/predicates.md (word_offset_memref_operand):
2481 Restructure code and look inside auto-inc/dec addresses.
2483 2008-10-29 Steve Ellcey <sje@cup.hp.com>
2486 * libgcov.c ( __gcov_indirect_call_profiler): Check
2487 TARGET_VTABLE_USES_DESCRIPTORS.
2489 2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
2491 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
2492 (INITIAL_FRAME_POINTER_OFFSET): Remove.
2493 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
2494 offset if eliminating soft frame pointer.
2495 * config/spu/spu.md (stack_protect_set, stack_protect_test)
2496 (stack_protect_test_si): Add initial machine description
2497 for Stack Smashing Protector
2499 2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2502 * c-common.c (min_precision): Move to...
2503 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
2504 * tree.h (tree_int_cst_min_precision): Declare.
2505 * c-common.h (min_precision): Delete declaration.
2506 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
2507 multiplication of non-negative integer constants.
2508 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
2509 tree_int_cst_min_precision.
2510 (finish_enum): Likewise.
2512 2008-10-29 Joseph Myers <joseph@codesourcery.com>
2515 * convert.c (convert_to_real): Do not optimize conversions of
2516 binary arithmetic operations between binary and decimal
2517 floating-point types. Consider mode of target type in determining
2518 decimal type for arithmetic. Unless
2519 flag_unsafe_math_optimizations, do not optimize binary conversions
2520 where this may change rounding behavior.
2521 * real.c (real_can_shorten_arithmetic): New.
2522 * real.h (real_can_shorten_arithmetic): Declare.
2524 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
2526 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
2527 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
2528 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
2530 (must_save_p): For some workarounds, interrupts need to clobber a
2532 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
2533 and LC1 for WA_05000257.
2534 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
2535 WA_05000283 and WA_05000315.
2536 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
2537 (movbi): Add alternative to set CC to 1; improve code for setting
2539 (dummy_load): New pattern.
2541 2008-10-29 Jakub Jelinek <jakub@redhat.com>
2544 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
2545 BLKmode for non-memory, convert using a wider MODE_INT mode
2549 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
2550 that haven't been removed yet.
2552 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
2554 * config/bfin/bfin.c (struct machine_function): New member
2555 has_loopreg_clobber.
2556 (bfin_expand_movmem): Set it when generating memcpy insns.
2557 (n_regs_saved_by_prologue, expand_prologue_reg_save,
2558 expand_epilogue_reg_restore): If we have hardware loops,
2559 memcpy insns (indicated by has_loopreg_clobber) or function
2560 calls, we need to save the loop registers.
2562 2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
2564 * config/i386/i386.c (core2_cost): Fix typos in comments.
2566 2008-10-28 Jakub Jelinek <jakub@redhat.com>
2569 * combine.c (make_compound_operation): Don't call make_extraction with
2570 non-positive length.
2571 (simplify_shift_const_1): Canonicalize count even if complement_p.
2573 2008-10-28 Joseph Myers <joseph@codesourcery.com>
2575 * convert.c (strip_float_extensions): Do not remove or introduce
2576 conversions between binary and decimal floating-point types.
2578 2008-10-28 Jakub Jelinek <jakub@redhat.com>
2581 * fold-const.c (distribute_bit_expr): Convert common, left and
2582 right arguments to type.
2584 2008-10-28 Nick Clifton <nickc@redhat.com>
2586 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
2587 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
2588 call_really_used_regs array rather than the call_used_regs array.
2589 (mn10300_get_live_callee_saved_regs, expand_prologue,
2590 expand_epilogue, output_tst): Likewise.
2592 2008-10-27 Jakub Jelinek <jakub@redhat.com>
2595 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
2596 (df_get_entry_block_def_set): Neither here.
2597 (df_get_regular_block_artificial_uses): Add EH_USES registers.
2599 PR tree-optimization/37879
2600 * predict.c (tree_estimate_probability): Check if last_stmt is
2601 non-NULL before dereferencing it.
2603 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2605 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
2606 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
2607 (ira_fast_allocation): Remove the prototype.
2609 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
2610 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
2611 (color_pass): Modify the updated costs.
2612 (ira_color): Rename to color. Make it static.
2613 (ira_fast_allocation): Rename to fast_allocation. Make it static.
2614 (ira_color): New function.
2616 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
2619 * ira-lives.c (last_call_num, allocno_saved_at_call): New
2621 (set_allocno_live, clear_allocno_live, mark_ref_live,
2622 mark_ref_dead): Invalidate corresponding element of
2623 allocno_saved_at_call.
2624 (process_bb_node_lives): Increment last_call_num. Setup
2625 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
2626 allocno was already saved.
2627 (ira_create_allocno_live_ranges): Initiate last_call_num and
2628 allocno_saved_at_call.
2630 * ira-build.c (ira_create_allocno): Initiate
2631 ALLOCNO_UPDATED_COVER_CLASS_COST.
2632 (create_cap_allocno, propagate_allocno_info,
2633 remove_unnecessary_allocnos): Remove setting updated costs.
2634 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
2636 * ira.c (ira): Don't call ira_fast_allocation.
2638 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
2641 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2644 * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
2646 * ira-int.h (ira_hard_regno_cover_class): New.
2648 * ira-lives.c (mark_reg_live, mark_reg_dead,
2649 process_bb_node_lives): Use ira_hard_regno_cover_class.
2651 * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
2652 (setup_hard_regno_cover_class): New function.
2653 (ira_init): Call setup_hard_regno_cover_class.
2655 * ira-costs.c (cost_class_nums): Add comment.
2656 (find_allocno_class_costs): Initiate cost_class_nums.
2657 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
2659 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2662 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
2663 Rename to copy_info_to_removed_store_destinations. Propagate
2664 conflict hard regs and register stack attribute.
2666 2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2669 * pa.c (function_arg_padding): Pad complex and vector types
2670 upward in 64-bit runtime.
2671 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
2673 2008-10-26 Matthias Klose <doko@ubuntu.com>
2675 * doc/install.texi: Document requirements on antlr.
2677 2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
2679 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
2682 2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
2685 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
2686 is defined, use it to modify the constant offset.
2688 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
2690 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
2691 and short arguments to the correct location as mandated by the ABI.
2693 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
2695 PR rtl-optimization/37769
2696 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
2698 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
2700 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
2701 unwind-dw2-Os-4-200.o.
2703 2008-10-24 Joseph Myers <joseph@codesourcery.com>
2705 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
2706 (convert_for_assignment): Remove ic_argpass_nonproto cases.
2708 2008-10-24 Jakub Jelinek <jakub@redhat.com>
2710 PR tree-optimization/36038
2711 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
2712 add sizetype IV with initial value zero instead of pointer type.
2714 2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
2717 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
2718 around bit operation.
2719 * profile.c (is_edge_inconsistent): Likewise.
2720 * fold-const.c (truth_value_p): Move from here...
2721 * tree.h (truth_value_p): ... to here.
2722 * c-tree.h (c_expr): Update description of original_code.
2723 * c-typeck.c (parser_build_unary_op): Set original_code.
2724 (parser_build_binary_op): Update call to warn_about_parentheses.
2725 * c-common.c (warn_about_parentheses): Take two additional
2726 arguments of the operands. Use a switch. Quote operators
2727 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
2728 Add warning about !x | y and !x & y.
2729 * c-common.h (warn_about_parentheses): Update declaration.
2731 2008-10-24 Jakub Jelinek <jakub@redhat.com>
2733 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
2734 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
2735 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
2737 (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
2738 (check-%): For test targets listed in lang_checks_parallelized
2739 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
2740 run the testing in multiple make goals, possibly parallel, and
2741 afterwards run dg-extract-results.sh to merge the sum and log files.
2743 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
2745 * config/mips/mips.c (mips_canonicalize_move_class): New function.
2746 (mips_move_to_gpr_cost): Likewise.
2747 (mips_move_from_gpr_cost): Likewise.
2748 (mips_register_move_cost): Make more fine-grained.
2750 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
2752 * graphite.c (graphite_apply_transformations): Check for
2753 -fgraphite-identity.
2754 * toplev.c (process_options): Add graphite_identity.
2755 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
2757 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
2759 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
2760 mulhisihl and mulhisihh builtins.
2762 From Jie Zhang <jie.zhang@analog.com>
2763 * config/bfin/bfin.md (composev2hi): Put operands into vector
2766 2008-10-22 Chao-ying Fu <fu@mips.com>
2768 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
2770 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
2772 From Mike Frysinger <michael.frysinger@analog.com>
2773 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
2774 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
2775 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
2776 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
2777 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
2778 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
2779 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
2780 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
2781 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
2782 __ADSPBF51x__ for all of them.
2783 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
2784 -mcpu bf512, bf514, bf516, and bf518.
2785 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2786 bf512-none, bf514-none, bf516-none, and bf518-none.
2787 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2788 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2789 * doc/invoke.texi (Blackfin Options): Document that
2790 -mcpu now accepts bf512, bf514, bf516, and bf518.
2792 2008-10-22 Jakub Jelinek <jakub@redhat.com>
2795 * fold-const.c (build_range_type): For 1 .. signed_max
2796 range call build_nonstandard_inter_type if signed_type_for
2797 returned a type with bigger precision.
2799 2008-10-22 Richard Guenther <rguenther@suse.de>
2801 * tree.def (COMPLEX_TYPE): Constrain element type.
2802 * tree.c (build_complex_type): Assert that.
2803 * tree-ssa-structalias.c (could_have_pointers): Complex types
2804 cannot have pointers.
2806 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
2809 * c-typeck.c (convert_for_assignment): Do not give declaration's
2810 location for builtins. Spell out which type was expected and which
2813 2008-10-22 Nick Clifton <nickc@redhat.com>
2815 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
2816 the fdpic register to be a target when running in fdpic mode.
2818 2008-10-22 Rafael Espindola <espindola@google.com>
2820 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
2821 newly created statements.
2823 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
2826 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
2827 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
2828 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
2830 2008-10-22 Jakub Jelinek <jakub@redhat.com>
2833 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
2834 Adjust -mcmodel=medium description for 2005-07-31 changes.
2836 2008-10-22 Jan Hubicka <jh@suse.cz>
2837 Jakub Jelinek <jakub@redhat.com>
2840 * doc/invoke.texi: Remove references to obsoleted -d dumps.
2842 2008-10-21 Richard Henderson <rth@redhat.com>
2845 * emit-rtl.c (get_spill_slot_decl): Export.
2846 * emit-rtl.h (get_spill_slot_decl): Declare.
2847 * var-tracking.c (vt_add_function_parameters): Relax assertion
2848 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
2850 2008-10-21 Bob Wilson <bob.wilson@acm.org>
2852 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
2853 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
2856 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
2859 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
2860 processed by get_maxval_strlen.
2862 2008-10-21 David Edelsohn <edelsohn@gnu.org>
2865 * tree.c (get_file_function_name): Copy first_global_object_name.
2866 Centralize call to clean_symbol_name.
2868 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
2870 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
2871 * config/svr4.h (SVR4_ASM_SPEC): New.
2872 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2873 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2875 * doc/invoke.texi (Option Summary): Add -T to linker options.
2876 (Link Options): Document -T.
2878 2008-10-21 Jakub Jelinek <jakub@redhat.com>
2880 * tree-inline.c (tree_inlinable_function_p): Remove tuples
2883 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2886 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
2888 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
2890 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
2893 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
2895 * doc/install.texi: Fix typos in previous patch.
2897 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
2899 * doc/install.texi: Document in-tree building of gcc and mpfr.
2901 2008-10-19 Richard Guenther <rguenther@suse.de>
2903 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
2905 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2908 * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
2909 (build_enumerator): Convert enumerators that fit in integer to
2912 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
2914 * config/i386/i386.md (unnamed peephole2): Do not force memory
2915 operands of arith or logical instructions into registers for
2916 non-TARGET_READ_MODIFY targets.
2918 (ffs_cmove): Change operand 0 predicate to register_operand.
2919 Change operand 1 predicate to nonimmediate_operand.
2921 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
2923 2008-10-18 Richard Guenther <rguenther@suse.de>
2925 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
2926 VIEW_CONVERT_EXPR case against invalid gimple.
2928 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
2930 * c-parser.c (c_parser_binary_expression): Silence the
2931 uninitialized variable warning emitted for binary_loc.
2933 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
2935 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
2938 2008-10-16 Joseph Myers <joseph@codesourcery.com>
2941 * c-typeck.c (build_unary_op): Use omit_one_operand for
2942 IMAGPART_EXPR of real argument.
2944 2008-10-16 Jakub Jelinek <jakub@redhat.com>
2946 PR tree-optimization/37664
2947 * fold-const.c (fold_binary): When optimizing comparison with
2948 highest or lowest type's value, don't consider TREE_OVERFLOW.
2950 2008-10-16 David Edelsohn <edelsohn@gnu.org>
2953 * Makefile.in (coverage.o): Depend on $(TM_P_H).
2954 * coverage.c: Include tm_p.h.
2955 * config/rs6000/x-aix (jc1): Override LDFLAGS.
2956 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
2957 dollar signs from PREFIX.
2958 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
2959 instead of manual strip_name_encoding.
2961 2008-10-16 Richard Guenther <rguenther@suse.de>
2964 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
2965 volatile qualified functions or methods as relevant.
2967 2008-10-16 Jakub Jelinek <jakub@redhat.com>
2969 PR tree-optimization/37525
2970 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
2971 sizetype unsigned constants, both in the case of C and bounds.
2973 2008-10-15 Jan Hubicka <jh@suse.cz>
2975 * ira-emit.c (change_regs): Return false when replacing reg by itself.
2977 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
2980 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
2981 HARD_REGNO_CALL_PART_CLOBBERED.
2983 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
2986 * ira-lives.c (mark_early_clobbers): Remove.
2987 (make_pseudo_conflict, check_and_make_def_use_conflicts,
2988 check_and_make_def_conflicts,
2989 make_early_clobber_and_input_conflicts,
2990 mark_hard_reg_early_clobbers): New functions.
2991 (process_bb_node_lives): Call
2992 make_early_clobber_and_input_conflicts and
2993 mark_hard_reg_early_clobbers. Make hard register inputs live again.
2995 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
2996 early clobbers of pseudo-registers.
2998 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
3001 * ira-build.c (ira_flattening): Recalculate
3002 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
3003 from the scratch instead of the propagation.
3005 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
3007 * doc/rtl.texi (const_double): Remove the "addr" operand.
3008 Describe CONST_DOUBLE_* macros under const_double rather
3010 (const_fixed): Fix the operand description.
3011 (const): Add an @findex directive.
3012 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
3013 after the constant rtl table.
3014 (fix): Combine floating-point and fixed-point descriptions.
3016 * sched-deps.c (sched_analyze_2): Remove reference to
3019 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
3021 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
3023 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
3024 for UNSPEC_GOTSYM_OFFs.
3025 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
3026 (add_GOT_to_pic_reg): Use it.
3027 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
3029 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
3030 Harsha Jagasia <harsha.jagasia@amd.com>
3032 PR tree-optimization/37485
3033 * graphite.c (gmp_cst_to_tree): Moved.
3034 (iv_stack_entry_is_constant): New.
3035 (iv_stack_entry_is_iv): New.
3036 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
3037 (loop_iv_stack_insert_constant): New.
3038 (loop_iv_stack_pop): Use new datatpype.
3039 (loop_iv_stack_get_iv): Same.
3040 (loop_iv_stack_get_iv_from_name): Same.
3041 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
3042 (loop_iv_stack_patch_for_consts): New.
3043 (loop_iv_stack_remove_constants): New.
3044 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
3045 (translate_clast): Call loop_iv_stack_patch_for_consts and
3046 loop_iv_stack_remove_constants.
3047 (gloog): Use new datatype. Redirect construction edge to end
3048 block to avoid accidental deletion.
3049 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
3051 (union iv_stack_entry_data): New. Data in iv stack entry.
3052 (struct iv_stack_entry): New. Datatype for iv stack entries.
3054 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3056 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
3057 * graphite.c (free_scop): Same.
3058 (build_scops): Same.
3059 (free_scattering): New.
3060 (build_cloog_prog): Call free_scattering.
3061 (patch_phis_for_virtual_defs): Fix memleak.
3062 (graphite_trans_bb_strip_mine): Same.
3063 (limit_scops): Same.
3065 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3066 Harsha Jagasia <harsha.jagasia@amd.com>
3068 PR tree-optimization/37828
3069 * graphite.c (graphite_trans_loop_block): Do not loop block
3070 single nested loops.
3072 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3074 PR tree-optimization/37686
3075 * tree-loop-linear.c (linear_transform_loops): Build a
3076 loop nest vector. Pass it to lambda_compute_access_matrices.
3077 * tree-data-ref.h (struct access_matrix): Store the loop nest
3078 relative to which it encodes the information.
3079 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
3080 (am_vector_index_for_loop): Reimplemented: iterate over the
3081 loop nest for finding the loop index in the access matrix.
3082 (lambda_compute_access_matrices): Update declaration.
3083 * lambda-code.c (build_access_matrix): Pass the loop nest and
3085 (lambda_compute_access_matrices): Same.
3087 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
3089 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
3090 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
3091 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
3092 already implies hard float. Also fix several insn condition
3093 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
3095 2008-10-15 David Edelsohn <edelsohn@gnu.org>
3098 Based on patches by Laurent Vivier.
3099 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
3100 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
3101 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
3102 dollar sign to underscore.
3103 (ASM_OUTPUT_EXTERNAL): Same.
3104 (ASM_OUTPUT_LABELREF): New.
3105 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
3107 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
3108 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
3109 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
3110 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
3112 2008-10-15 Jakub Jelinek <jakub@redhat.com>
3114 PR tree-optimization/36881
3115 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
3116 that each value doesn't need runtime relocations, for !flag_pic
3117 check that each value is just a valid initializer constant.
3119 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
3121 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
3122 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
3123 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
3124 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
3126 (REG_CLASS_NAMES): Update accordingly.
3127 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
3128 rather than an unpredictable descriptive string.
3129 * config/mips/mips.c (mips_register_move_cost): Remove comment.
3130 (mips_register_move_cost): Check for specific COP*_REGS classes,
3131 instead of ALL_COP_AND_GR_REGS.
3132 (mips_ira_cover_classes): New function.
3133 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
3134 (TARGET_IRA_COVER_CLASSES): Define.
3136 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
3139 * tree.c (build_type_attribute_qual_variant): Hash on the
3140 unqualified type, and don't overwrite an existing
3141 (type_hash_eq): Make the TYPE_NAME of the types significant, to
3142 allow distinguishing between wchar_t and its underlying type. This
3143 also means that we'll retain a little more typedef information.
3145 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
3146 Dmitry Melnik <dm@ispras.ru>
3147 Dmitry Zhurikhin <zhur@ispras.ru>
3148 Alexander Monakov <amonakov@ispras.ru>
3149 Maxim Kuvyrkov <maxim@codesourcery.com>
3151 * target.h (struct gcc_target): Update prototypes of needs_block_p
3153 * haifa-sched.c (create_check_block_twin): Update calls to the above.
3154 * sel-sched.c (create_speculation_check): Likewise.
3155 * doc/tm.texi: Provide documentation for new target hooks.
3157 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
3158 (ia64_gen_spec_insn): Removed.
3159 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
3160 ia64_gen_spec_check): New static functions.
3161 (ia64_alloc_sched_context, ia64_init_sched_context,
3162 ia64_set_sched_context, ia64_clear_sched_context,
3163 ia64_free_sched_context, ia64_get_insn_spec_ds,
3164 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
3165 (ia64_needs_block_p): Change prototype.
3166 (ia64_gen_check): Rename to ia64_gen_spec_check.
3167 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
3168 into declaration, add special memory dependencies handling.
3169 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
3170 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3171 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3172 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
3173 Define new target hooks.
3174 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3175 (ia64_optimization_options): Turn on selective scheduling with -O3,
3176 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
3177 default with selective scheduling.
3178 (ia64_override_options): Initialize align_loops and align_functions
3179 to 32 and 64, respectively. Set global selective scheduling flags
3180 according to target-dependent flags.
3181 (rtx_needs_barrier): Support UNSPEC_LDS_A.
3182 (group_barrier_needed): Use new mstop-bit-before-check flag.
3184 (dfa_state_size): Make global.
3185 (spec_check_no, max_uid): Remove.
3186 (mem_ops_in_group, current_cycle): New variables.
3187 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3188 Initialize new variables.
3189 (is_load_p, record_memory_reference): New functions.
3190 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
3192 (ia64_variable_issue): Change use of current_sched_info to
3193 sched_deps_info. Update comment. Note if a load or a store is issued.
3194 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
3195 advance if maximal number of loads or stores was issued on current
3197 (scheduled_good_insn): New static helper function.
3198 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
3199 a group barrier is needed. Fix vertical spacing. Guard the code
3200 doing state transition with last_scheduled_insn check.
3201 Mark that a stop bit should be before current insn if there was a
3202 cycle advance. Update current_cycle and mem_ops_in_group.
3203 (ia64_h_i_d_extended): Change use of current_sched_info to
3204 sched_deps_info. Reallocate stops_p by larger chunks.
3205 (struct _ia64_sched_context): New structure.
3206 (ia64_sched_context_t): New typedef.
3207 (ia64_alloc_sched_context, ia64_init_sched_context,
3208 ia64_set_sched_context, ia64_clear_sched_context,
3209 ia64_free_sched_context): New static functions.
3210 (gen_func_t): New typedef.
3211 (get_spec_load_gen_function): New function.
3212 (SPEC_GEN_EXTEND_OFFSET): Declare.
3213 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3214 (get_mode_no_for_insn): Change the condition that prevents use of
3215 special hardware registers so it can now handle pseudos.
3216 (get_spec_unspec_code): New function.
3217 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
3218 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
3219 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
3220 during selective scheduling.
3221 (ia64_speculate_insn): Use ds_get_speculation_types when
3222 determining whether we need to change the pattern.
3223 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
3224 (ia64_spec_check_src_p): Support new speculation/check codes.
3225 (struct bundle_state): New field.
3226 (issue_nops_and_insn): Initialize it.
3227 (insert_bundle_state): Minimize mid-bundle stop bits.
3228 (important_for_bundling_p): New function.
3229 (get_next_important_insn): Use important_for_bundling_p.
3230 (bundling): When shifting TImode from unimportant insns, ignore
3231 also group barriers. Assert that best state is found before
3232 the backward bundling pass. Print number of mid-bundle stop bits.
3233 Minimize mid-bundle stop bits. Check correct calculation of
3234 mid-bundle stop bits.
3235 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
3236 (final_emit_insn_group_barriers): Emit stop bits before insns starting
3238 (sel2_run): New variable.
3239 (ia64_reorg): When flag_selective_scheduling2 is set, run the
3240 selective scheduling pass instead of schedule_ebbs.
3242 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
3243 (UNSPEC_LDS_A): New UNSPEC.
3244 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
3245 movti_internal, movsf_internal, movdf_internal,
3246 movxf_internal): Make visible. Add speculable* attributes.
3247 (output_c_nc): New mode attribute.
3248 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3249 mov<mode>_nc, zero_extend<mode>di2_nc,
3250 advanced_load_check_nc_<mode>): New insns.
3251 (zero_extend*): Add speculable* attributes.
3253 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
3254 (msched-stop-bits-after-every-cycle): Likewise.
3255 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
3257 (msched-spec-verbose): Remove.
3258 (msched-prefer-non-data-spec-insns,
3259 msched-prefer-non-control-spec-insns,
3260 msched-count-spec-in-critical-path,
3261 msel-sched-dont-check-control-spec): Use Target Report Var
3262 instead of Common Report Var.
3264 * config/ia64/itanium2.md: Remove incorrect bypass.
3266 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
3268 2008-10-14 Jakub Jelinek <jakub@redhat.com>
3271 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3272 and -fhelp=separate.
3274 2008-10-14 Ben Elliston <bje@au.ibm.com>
3276 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
3278 2008-10-13 Joseph Myers <joseph@codesourcery.com>
3280 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
3283 2008-10-13 Matthias Klose <doko@ubuntu.com>
3285 * config/pa/linux-atomic.c: Work around missing header file
3286 for hppa64-linux-gnu targets.
3288 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
3289 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
3290 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3291 Grace Cao <grace_cao@playstation.sony.com>
3293 * doc/invoke.texi (-mgen-cell-microcode): Document.
3294 (-mwarn-cell-microcode): Document.
3295 * cfglayout.c (locator_location): Export.
3296 * rtl.h (locator_location): Define prototype.
3297 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
3299 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
3300 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
3301 (mwarn-cell-microcode): New option.
3302 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
3303 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
3304 cell and not already set.
3305 Turn off string instructions if not generating cell microcode.
3306 (rs6000_final_prescan_insn): New function that warns about microcoded
3308 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
3309 * config/rs6000/rs6000.md
3310 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3311 the instruction would have been microcoded on the Cell. Set
3312 cell_micro to always on unnamed patterns for the string instructions.
3313 (cell_micro): Update definition, remove load/store conditional
3315 (sign_extend:DI): Define new pattern for non microcoded version.
3316 (sign_extend:SI): Likewise.
3317 (compare (div:P)): Set cell_micro to not.
3318 (andsi3): Define as an expand.
3319 (andsi3_mc): New pattern.
3320 (andsi3_nomc): New pattern.
3321 (andsi3_internal0_nomc): New pattern.
3322 (andsi3_internal2): Rename to ...
3323 (andsi3_internal2_mc): this and enable iff generating microcode.
3324 (andsi3_internal3): Rename to ...
3325 (andsi3_internal3_mc): this and enable iff generating microcode.
3326 (andsi3_internal4): Enable iif generating microcode.
3327 (andsi3_internal5): Rename to ..
3328 (andsi3_internal5_mc): this and enable iff generating microcode.
3329 (andsi3_internal5_nomc): New pattern.
3330 (extzvdi_internal1): Enable iff generating microcode.
3331 (extzvdi_internal2): Likewise.
3332 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
3333 (anddi3): Change to expand.
3334 (anddi3_mc): Rename from anddi3.
3335 (anddi3_no_mc): New pattern.
3336 (anddi3_internal2): Rename to ..
3337 (anddi3_internal2_mc): this and enable iff generating microcode.
3338 (anddi3_internal2_nomc): New pattern.
3339 (anddi3_internal3): Rename to ..
3340 (anddi3_internal3_mc): this and enable iff generating microcode.
3341 (anddi3_internal3_nomc): New pattern.
3342 (movti_string): Set cell_micro to always if TARGET_STRING.
3343 (stmsi8): Set cell_micro to always.
3349 (stmsi8_power): Likewise.
3350 (stmsi7_power): Likewise.
3351 (stmsi6_power): Likewise.
3352 (stmsi5_power): Likewise.
3353 (stmsi4_power): Likewise.
3354 (stmsi3_power): Likewise.
3355 (movsi_update2): Enable iff generating microcode.
3356 (movhi_update3): Likewise.
3357 (lmw): Set cell_micro to always.
3359 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
3361 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
3362 * config/s390/s390.c (machine_function): Remove
3363 decomposed_literal_pool_addresses_ok_p.
3364 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
3365 the difference of two labels.
3366 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
3367 (s390_pool_offset): New function.
3368 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
3369 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
3371 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
3373 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
3374 (powerpc*-*-linux-gnu*): Describe.
3375 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
3376 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
3377 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
3378 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
3379 config/rs6000/e500crtres32gpr.asm,
3380 config/rs6000/e500crtres64gpr.asm,
3381 config/rs6000/e500crtres64gprctr.asm,
3382 config/rs6000/e500crtrest32gpr.asm,
3383 config/rs6000/e500crtrest64gpr.asm,
3384 config/rs6000/e500crtresx32gpr.asm,
3385 config/rs6000/e500crtresx64gpr.asm,
3386 config/rs6000/e500crtsav32gpr.asm,
3387 config/rs6000/e500crtsav64gpr.asm,
3388 config/rs6000/e500crtsav64gprctr.asm,
3389 config/rs6000/e500crtsavg32gpr.asm,
3390 config/rs6000/e500crtsavg64gpr.asm,
3391 config/rs6000/e500crtsavg64gprctr.asm: Use it.
3392 * config/rs6000/crtsavres.asm: Really remove.
3394 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
3397 * c-format.c (convert_format_name_to_system_name): Use
3398 TARGET_OVERRIDES_FORMAT_INIT.
3399 * config.gcc (extra_options): Add for mingw targets mingw.opt.
3400 * config/i386/mingw.opt: New.
3401 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
3402 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
3403 (ms_printf_length_specs): Removed const specifier.
3404 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
3405 * doc/invoke.texi (Wno-pedantic-ms-format): New.
3407 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3409 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
3410 * doc/install.texi: Bump recommended MPFR to 2.3.2.
3412 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
3415 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
3416 sure that ref has valid bb.
3418 2008-10-12 Richard Henderson <rth@redhat.com>
3421 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
3422 * alias.c (value_addr_p, stack_addr_p): Remove.
3423 (nonoverlapping_memrefs_p): Remove IRA special case.
3424 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
3425 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
3426 * reload1.c (alter_reg): Use it.
3428 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
3430 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
3431 of registers instead of eax, ebx, ecx and edx. Use for loop
3432 and check register for non-zero value before the call
3433 to decode_caches_intel.
3435 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3437 PR rtl-optimization/37448
3438 * df.h: (df_ref_class): New enum.
3439 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
3440 (struct df_ref): Replaced with union df_ref_d.
3441 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
3442 New members of df_ref_d union.
3443 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
3444 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
3445 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
3446 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
3447 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3448 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
3449 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
3450 (df_scan_bb_info, df_bb_regno_first_def_find,
3451 df_bb_regno_last_def_find, df_find_def, df_find_use,
3452 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3453 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
3454 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
3455 df_get_artificial_defs, df_get_artificial_uses, union_defs)
3456 Replaced struct df_ref * with df_ref.
3457 * df-scan.c (df_collection_rec, df_null_ref_rec,
3458 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
3459 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
3460 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
3461 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
3462 df_reorganize_refs_by_reg_by_reg,
3463 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
3464 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
3465 df_sort_and_compress_refs, df_install_ref, df_install_refs,
3466 df_ref_record, df_get_conditional_uses, df_get_call_refs,
3467 df_bb_refs_record, df_exit_block_uses_collect,
3468 df_record_exit_block_uses, df_reg_chain_mark,
3469 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
3470 df_ref * with df_ref.
3471 (df_ref_record, df_uses_record, df_ref_create_structure): Added
3472 df_ref_class parameter.
3473 (df_scan_problem_data): Added new pools for different types of refs.
3474 (df_scan_free_internal, df_scan_alloc, df_free_ref,
3475 df_ref_create_structure): Processed new ref pools.
3476 (df_scan_start_dump): Added counts of refs and insns.
3477 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
3478 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3479 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
3480 code to pass df_ref_class down to ref creation functions.
3481 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
3482 df_reg_chain_mark): Use macros to hide references to df_refs.
3483 (df_ref_chain_change_bb): Removed.
3484 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
3485 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3486 Enhanced to understand df_ref union structure.
3487 * fwprop.c (local_ref_killed_between_p, use_killed_between,
3488 all_uses_available_at, update_df, try_fwprop_subst,
3489 forward_propagate_subreg, forward_propagate_and_simplify,
3490 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
3491 df_ref * with df_ref.
3492 (use_killed_between, all_uses_available_at): Use macros to hide
3493 references to df_refs.
3494 * regstat.c (regstat_bb_compute_ri,
3495 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
3497 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
3498 see_handle_relevant_refs, see_analyze_one_def,
3499 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
3500 struct df_ref * with df_ref.
3501 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
3502 global_conflicts): Replaced struct df_ref * with df_ref.
3503 * ddg.c (create_ddg_dep_from_intra_loop_link,
3504 add_cross_iteration_register_deps, build_inter_loop_deps):
3505 Replaced struct df_ref * with df_ref.
3506 (create_ddg_dep_from_intra_loop_link,
3507 add_cross_iteration_register_deps): Use macros to hide references
3509 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
3510 df_ref * with df_ref.
3511 * df-core.c (df_bb_regno_first_def_find,
3512 df_bb_regno_last_def_find, df_find_def, df_find_use,
3513 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3514 debug_df_ref): Replaced struct df_ref * with df_ref.
3515 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
3516 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
3518 * web.c (union_defs, entry_register, replace_ref, web_main):
3519 Replaced struct df_ref * with df_ref.
3520 (union_defs, replace_ref): Use macros to hide references to df_refs.
3521 * global.c (compute_regs_asm_clobbered, build_insn_chain):
3522 Replaced struct df_ref * with df_ref.
3523 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
3524 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets):
3525 Replaced struct df_ref * with df_ref.
3526 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
3527 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
3529 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
3530 * df-byte-scan.c (df_compute_accessed_bytes_extract,
3531 df_compute_accessed_bytes_strict_low_part,
3532 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
3533 Replaced struct df_ref * with df_ref.
3534 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
3535 * init-regs.c (initialize_uninitialized_regs): Replaced struct
3536 df_ref * with df_ref.
3537 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
3538 check_dependency, check_dependencies, record_uses): Replaced
3539 struct df_ref * with df_ref.
3540 (invariant_for_use, check_dependency): Use macros to hide
3541 references to df_refs.
3542 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
3543 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
3544 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
3545 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
3546 references to df_refs.
3547 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
3549 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
3550 * df-problems.c (df_rd_bb_local_compute_process_def,
3551 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
3552 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
3553 df_chain_remove_problem, df_chain_create_bb_process_use,
3554 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
3555 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
3556 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
3557 df_byte_lr_simulate_artificial_refs_at_top,
3558 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
3559 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
3560 df_simulate_uses, df_simulate_artificial_refs_at_end,
3561 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
3563 (df_chain_dump): Use macros to hide references to df_refs.
3564 * config/mips/mips.c (r10k_simplify_address): Replaced struct
3565 df_ref * with df_ref.
3566 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
3567 mark_artificial_uses, mark_reg_dependencies,
3568 byte_dce_process_block): Replaced struct df_ref * with df_ref.
3570 2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
3572 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
3574 (array_ref_element_size): Likewise.
3575 (array_ref_low_bound): Likewise.
3576 (array_ref_up_bound): Likewise.
3577 * expr.c (contains_packed_reference): Likewise.
3578 (array_ref_element_size): Likewise.
3579 (array_ref_low_bound): Likewise.
3580 (array_ref_up_bound): Likewise.
3581 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
3582 with ARRAY_RANGE_REF.
3583 (idx_find_step): Likewise.
3584 (idx_record_use): Likewise.
3585 (strip_offset_1): Likewise.
3586 (idx_remove_ssa_names): Likewise.
3588 2008-10-11 Uros Bizjak <ubizjak@gmail.com>
3589 Andi Kleen <ak@linux.intel.com>
3591 * config/i386/cpuid.h (__cpuid_count): New defines.
3592 * config/i386/driver-i386.c (struct cache_desc): New structure.
3593 (describe_cache): Use struct cache_desc to pass cache descriptions.
3594 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
3595 (detect_caches_amd): Use struct cache_desc to describe caches.
3596 (decode_caches_intel): Use struct cache_desc to pass cache
3597 descriptions. Update descriptions to match latest (rev -032,
3598 December 2007) CPUID documentation. Do not check valid bit here.
3599 Check for Xeon MP value 0x49 problems.
3600 (detect_caches_cpuid2): New function, split from detect_caches_intel.
3601 Check valid bit before calling decode_caches_intel. Detect number
3602 of times to repeat CPUID instruction.
3603 (detect_caches_cpuid4): New function.
3604 (detect_caches_intel): Depending on max_level, call
3605 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
3606 only when other methods fail to provide valid L2 cache description.
3608 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3611 * pa.md (call, call_value): Generate an rtx for register r4 and pass
3612 it to PIC call patterns.
3613 (call_symref_pic): Revise pattern to expose PIC register save. Remove
3614 code generation and attributes from pattern. Change peephole2 to
3615 split for noreturn case. Revise split pattern for non noreturn case.
3616 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
3617 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
3618 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
3621 2008-10-11 David Edelsohn <edelsohn@gnu.org>
3623 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
3624 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
3626 (divdf3): Reformat long line.
3628 2008-10-11 Michael J. Eager <eager@eagercon.com>
3630 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
3632 (rs6000_handle_option): Process -mfpu options.
3633 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
3634 (enum fpu_type_t): New.
3635 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
3636 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
3638 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
3639 (floatdidf2): Add TARGET_SINGLE_FPU condition.
3640 * config/rs6000/rs6000.opt (-mfpu): New.
3641 (-mxilinx-fpu): New.
3642 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
3643 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
3644 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
3645 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
3646 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
3648 2008-10-11 Jakub Jelinek <jakub@redhat.com>
3651 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
3652 LO_SUM on Darwin if mode has just one unit.
3654 2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
3657 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
3658 has been optimized out.
3660 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
3662 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
3663 instead of PIC_DIRECT_ADDR_P.
3664 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3665 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
3666 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
3667 (PIC_OFFSET_P): Rename to...
3668 (PCREL_SYMOFF_P): ...this.
3669 (PIC_DIRECT_ADDR_P): Delete.
3670 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
3672 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
3673 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
3674 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
3675 * config/sh/sh.c (print_operand): Remove CONST handling.
3676 (unspec_caller_rtx_p): Rewrite to use split_const and check
3677 the operands of UNSPEC bases.
3678 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
3679 with (unspec [A B] UNSPEC_SYMOFF).
3680 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
3681 UNSPEC_PCREL_SYMOFF.
3682 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
3683 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
3684 (UNSPEC_EXTRACT_U16): Likewise.
3685 (UNSPEC_SYMOFF): Likewise.
3686 (UNSPEC_PCREL_SYMOFF): Likewise.
3687 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
3689 (movsi_const_16bit): Likewise.
3690 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
3691 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
3692 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
3693 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
3694 with (unspec [A B] UNSPEC_SYMOFF).
3695 (symPLT_label2reg): Replace (minus A (minus B pc)) with
3696 (unspec [A B] PCREL_UNSPEC_SYMOFF).
3697 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
3698 (Csu): Likewise UNSPEC_EXTRACT_U16.
3699 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
3700 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
3702 2008-10-10 Stepan Kasal <skasal@redhat.com>
3704 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
3705 for loop strip mining and loop blocking.
3707 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
3709 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
3710 vary types depending on debug info.
3712 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
3714 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
3715 before ensuring it's already computed.
3717 2008-10-09 Jakub Jelinek <jakub@redhat.com>
3719 * rtl.h (locator_eq): New decl.
3720 * cfglayout.c (locator_scope): New function.
3721 (insn_scope): Use it.
3722 (locator_eq): New function.
3723 (fixup_reorder_chain): Search for last insn in src bb
3724 that has locator set or first insn in dest bb. Use
3725 locator_eq instead of == to compare locators.
3726 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
3727 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
3728 == to compare locators.
3730 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
3732 * gimple-low.c (lower_function_body, lower_gimple_return,
3733 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
3734 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
3735 goto_block on edges if goto_locus is known.
3738 * tree.h (get_object_alignment): Declare.
3739 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
3740 get_object_alignment if needed.
3741 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
3743 (get_object_alignment): ... here. New function. Try harder to
3744 determine alignment from get_inner_reference returned offset.
3746 2008-10-08 Jakub Jelinek <jakub@redhat.com>
3748 * graphite.c (gloog): Don't call find_unreachable_blocks
3749 before delte_unreachable_blocks.
3751 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
3752 goto_locus of true_edge into RTL locator.
3754 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
3756 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
3757 (*jcc_btdi_mask_rex64): Ditto.
3759 (*jcc_btsi_mask): Ditto.
3760 (*jcc_btsi_1): Ditto.
3761 (*jcc_btsi_mask_1): Ditto.
3763 2008-10-08 Paul Brook <paul@codesourcery.com>
3765 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
3766 compatible profiler (__gnu_mcount_nc).
3767 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
3769 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
3771 * config/i386/i386.c (initial_ix86_tune_features): Add
3772 X86_TUNE_USE_VECTOR_FP_CONVERTS.
3773 * config/i386/i386.h (ix86_tune_indices): Likewise.
3774 (TARGET_USE_VECTOR_FP_CONVERTS): New.
3776 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
3777 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
3778 for FP to FP splitters.
3780 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
3782 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
3785 2008-10-08 Jakub Jelinek <jakub@redhat.com>
3789 PR rtl-optimization/37341
3790 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
3791 to ORIG_BB, pass through ORIG_BB recursively.
3792 (cse_condition_code_reg): Adjust caller.
3794 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
3796 * sdbout.c (sdbout_one_type): Treat the value type
3797 CONST_DECL for enumerals.
3799 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
3801 * config/i386/i386.md: Remove trailing white spaces.
3803 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
3805 PR rtl-optimization/37448
3806 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
3807 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
3809 (struct output_info) [count]: Renamed total_created and made
3811 (struct output_info) [size]: Renamed total_allocated and made
3813 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
3814 Properly keep track of desc->size.
3815 (print_statistics, dump_alloc_pool_statistics): Enhance the
3816 printing of statistics to print the number of elements and to use
3819 2008-10-07 Jakub Jelinek <jakub@redhat.com>
3822 * opts.h (CL_SAVE): Move up to flags range.
3823 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
3824 CL_COMMON): Renumber.
3825 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
3826 * opts.c (common_handle_option): Revert last change.
3828 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
3830 * config/i386/i386-protos.h (ix86_schedule): New.
3832 * config/i386/i386.c (ix86_schedule): New.
3833 (override_options): Add schedule to processor_alias_table. Set
3834 ix86_schedule from the schedule field in processor_alias_table.
3835 (ix86_function_specific_save): Save ix86_schedule.
3836 (ix86_function_specific_restore): Restore ix86_schedule.
3838 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
3839 ix86_tune. Add none and remove i386, i486, pentium4, nocona
3842 * config/i386/i386.opt: Add schedule.
3844 * config/i386/ppro.md: Remove generic32.
3846 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
3849 * expr.c (count_type_elements): Handle ERROR_MARK.
3851 2008-10-07 Jakub Jelinek <jakub@redhat.com>
3856 * basic-block.h (struct edge_def): Add goto_block field.
3857 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
3858 one insn with locus corresponding to edge's goto_locus if !optimize.
3859 * profile.c (branch_prob): Copy edge's goto_block.
3860 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
3862 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
3863 locator in between the merged basic blocks if !optimize and needed.
3864 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
3865 goto_locus into RTL locator. For unconditional jump use that
3866 locator for the jump insn.
3867 (expand_gimple_cond): Convert goto_block and goto_locus into
3868 RTL locator for all remaining edges. For unconditional jump
3869 use that locator for the jump insn.
3870 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
3871 there is more than one edge or insn locator along the forwarding
3872 edges and !optimize. If there is just one, set e->goto_locus.
3873 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
3875 (move_block_to_fn): Adjust edge's goto_block.
3877 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
3880 * expmed.c (expand_mult): Properly check DImode constant in
3883 2008-10-07 Jakub Jelinek <jakub@redhat.com>
3886 * dwarf2out.c (common_block_die_table): New variable.
3887 (common_block_die_table_hash, common_block_die_table_eq): New
3889 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
3890 COMMON block in the current scope rather than globally. Optimize
3891 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
3892 DW_OP_addr SYMBOL_REF+off.
3894 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
3896 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
3897 Return true for non-addressable GIMPLE operands.
3899 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
3902 * config/i386/i386.c (initial_ix86_tune_features): Remove
3903 X86_TUNE_USE_BIT_TEST.
3904 * config/i386/i386.h (ix86_tune_indices): Likewise.
3905 (TARGET_USE_BIT_TEST): Removed.
3907 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3909 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
3911 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
3913 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
3914 (mul<mode>3_mul3): ... into this new template.
3916 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
3918 * gimplify.c (gimplify_arg): Add location argument. Use it.
3919 (gimplify_call_expr): Pass location to gimplify_arg.
3920 (gimplify_modify_expr_to_memcpy): Same.
3921 (gimplify_modify_expr_to_memset): Same.
3923 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
3925 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3926 Update calls to build_unary_op and build_indirect_ref for location
3929 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
3932 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
3933 * c-typeck.c (array_to_pointer_conversion): Pass location to
3935 (function_to_pointer_conversion): Use error_at and warning_at.
3936 (build_indirect_ref): Same.
3937 (build_array_ref): Pass location to build_binary_op.
3938 (parser_build_unary_op): Do not set location after calling
3940 (build_unary_op): Add location argument. Use it throughout. Set
3941 EXPR_LOCATION before returning new tree.
3942 (build_modify_expr): Same.
3943 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
3945 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
3946 build_indirect_ref, build_modify_expr.
3947 (c_finish_omp_for): Same. Use error_at instead of error.
3948 * c-common.c (c_common_truthvalue_conversion): Pass location to
3950 (warn_for_div_by_zero): Add location argument.
3951 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
3952 build_unary_op, warn_for_div_by_zero.
3953 * c-parser.c (c_parser_typeof_specifier): Use
3954 protected_set_expr_location.
3955 (c_parser_statement_after_labels): Same.
3956 (c_parser_condition): Same.
3957 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
3958 (c_parser_conditional_expression): Use protected_set_expr_location.
3959 (c_parser_unary_expression): Pass location to build_indirect_ref.
3960 (c_parser_postfix_expression_after_primary): Pass location to
3961 build_indirect_ref, build_unary_op.
3962 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
3964 2008-10-06 Joshua Kinard <kumba@gentoo.org>
3966 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
3967 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
3968 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
3970 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
3971 (mips_issue_rate): Handle PROCESSOR_R10000.
3972 * config/mips/mips.md (cpu): Add r10000.
3974 * config/mips/10000.md: New file.
3976 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
3978 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
3979 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
3980 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
3982 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
3984 * config/darwin-protos.h (machopic_function_base_name): Delete.
3985 (machopic_function_base_sym): Likewise.
3986 (machopic_gen_offset): Declare.
3987 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
3988 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
3989 * config/darwin.c (machopic_function_base_name): Delete.
3990 (machopic_function_base_sym): Likewise.
3991 (gen_pic_offset): Rename to...
3992 (machopic_gen_offset): ...this and remove the pic_base argument.
3993 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
3994 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
3995 crtl->uses_pic_offset_table.
3996 (machopic_indirect_data_reference): Use new machopic_gen_offset
3998 (machopic_legitimize_pic_address): Likewise.
3999 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
4001 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
4002 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
4003 * config/i386/i386.c (output_set_got): Likewise.
4004 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
4006 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
4007 (legitimate_address_p): Likewise.
4008 (output_pic_addr_const): Likewise.
4009 (output_addr_const_extra): Likewise.
4010 (ix86_delegitimize_address): Expect darwin_local_data_pic to
4011 match an UNSPEC rather than a MINUS.
4012 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
4013 (builtin_setjmp_receiver): Use machopic_gen_offset.
4014 * config/i386/predicates.md (pic_symbolic_operand): Handle
4015 UNSPEC_MACHOPIC_OFFSET.
4017 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
4018 Use machopic_gen_offset and machopic_operand_p.
4019 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
4020 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
4021 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
4022 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
4023 Set crtl->uses_pic_offset_table.
4025 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
4027 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
4029 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
4030 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
4031 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
4032 (constant_pool_expr_p): Use split_const and check the base.
4033 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
4035 (legitimate_constant_pool_address_p): Check toc_relative_p
4036 instead of constant_pool_expr_p.
4037 (print_operand_address): Always use output_addr_const for
4038 constant pool addresses.
4039 (rs6000_output_addr_const_extra): New function.
4040 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
4042 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
4046 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
4047 (mark_ref_live, mark_ref_dead): Use them.
4048 (def_conflicts_with_inputs_p): Remove.
4049 (mark_early_clobbers): New function.
4050 (process_bb_node_lives): Call preprocess_constraints and
4051 mark_early_clobbers.
4053 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
4055 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>