1 2008-12-12 Rainer Emrich <r.emrich@de.tecosim.com>
4 * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path
5 for the milli.a library.
7 2008-12-12 Andrew Pinski <andrew_pinskia@playstation.sony.com>
8 Peter Bergner <bergner@vnet.ibm.com>
11 * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
12 TOC into the call pattern.
13 (call_indirect_aix64): Likewise.
14 (call_value_indirect_aix32): Likewise.
15 (call_value_indirect_aix64): Likewise.
16 (call_indirect_nonlocal_aix32_internal): New insn and split patterns
17 to split off the load of the TOC.
18 (call_indirect_nonlocal_aix32): Enable only after reload.
19 (call_indirect_nonlocal_aix64_internal): New insn and split patterns
20 to split off the load of the TOC.
21 (call_indirect_nonlocal_aix64): Enable only after reload.
22 (call_value_indirect_nonlocal_aix32_internal): New insn and split
23 patterns to split off the load of the TOC.
24 (call_value_indirect_nonlocal_aix32): Enable only after reload.
25 (call_value_indirect_nonlocal_aix64_internal): New insn and split
26 patterns to split off the load of the TOC.
27 (call_value_indirect_nonlocal_aix64): Enable only after reload.
29 2008-12-12 Andreas Schwab <schwab@suse.de>
32 2008-12-12 Andreas Schwab <schwab@suse.de>
33 * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
36 2008-12-12 Zdenek Dvorak <ook@ucw.cz>
38 PR tree-optimization/32044
39 * tree-scalar-evolution.h (expression_expensive_p): Declare.
40 * tree-scalar-evolution.c (expression_expensive_p): New function.
41 (scev_const_prop): Avoid introducing expensive expressions.
42 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto.
44 2008-12-12 Sebastian Pop <sebastian.pop@amd.com>
47 * graphite.c (nb_reductions_in_loop): Use simple_iv.
49 2008-12-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
51 * config/i386/x86intrin.h: New header file to support all x86
53 * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h
55 2008-12-12 H.J. Lu <hongjiu.lu@intel.com>
58 * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
61 2008-12-12 Andreas Schwab <schwab@suse.de>
63 * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
66 2008-12-12 Uros Bizjak <ubizjak@gmail.com>
68 * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
69 Use Pmode for scratch reg.
70 (*mb_internal): Use (match_dup 0) for unspec operand.
72 2008-12-12 Alexandre Oliva <aoliva@redhat.com>
74 * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
75 floor_log2 of zero. Negate widened zero.
77 2008-12-12 Ben Elliston <bje@au.ibm.com>
79 * config/fp-bit.c (nan): Rename from this ...
80 (makenan): ... to this.
82 2008-12-11 Adam Nemet <anemet@caviumnetworks.com>
84 * config/mips/mips.md (*branch_bit<bbv><mode>,
85 *branch_bit<bbv><mode>_inverted): Renumber operands so that the
86 label becomes operands[1].
88 2008-12-11 Harsha Jagasia <harsha.jagasia@amd.com>
90 PR tree-optimization/38446
91 * graphite.c (register_bb_in_sese): New.
92 (bb_in_sese_p): Check if bb belongs to sese region by explicitly
93 looking at the bbs in the region.
94 * graphite.h (sese): Add region_basic_blocks pointer set to
95 structure and initialize at the time of defining new scop.
97 2008-12-11 Tobias Grosser <grosser@fim.uni-passau.de>
99 * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
100 (find_params_in_bb): Do not free data refs.
101 (free_graphite_bb): Add FIXME on disabled free_data_refs.
103 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
105 * graphite.c (struct ivtype_map_elt): New.
106 (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
107 new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
108 gcc_type_for_cloog_iv): New.
109 (loop_iv_stack_patch_for_consts): Use the type of the induction
110 variable from the original loop, except for the automatically
111 generated loops, i.e., in the case of a strip-mined loop, in
112 which case there is no original loop: in that case just use
114 (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
115 (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
116 (clast_name_to_gcc): Accept params to be NULL.
117 (clast_to_gcc_expression): Take an extra parameter for the type.
118 Convert to that type all the expressions built by this function.
119 (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
120 (graphite_translate_clast_equation): Compute the type of the
121 clast_equation before translating its LHS and RHS.
122 (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
123 (graphite_create_new_loop): Compute the type of the induction
124 variable before translating the lower and upper bounds and before
125 creating the induction variable.
126 (rename_variables_from_edge, rename_phis_end_scop): New.
127 (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
128 (sese_add_exit_phis_edge): Do not use integer_zero_node.
129 (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
130 compute_cloog_iv_types): New.
131 (gloog): Call compute_cloog_iv_types before starting the
132 translation of the clast.
134 * graphite.h (struct graphite_bb): New field cloog_iv_types.
135 (GBB_CLOOG_IV_TYPES): New.
136 (debug_ivtype_map): Declared.
137 (oldiv_for_loop): New.
139 2008-12-10 Tobias Grosser <grosser@fim.uni-passau.de>
142 * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
143 (param_index): Assert if parameter is not know after parameter
145 (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
146 (find_scop_parameters): Mark, that we have finished parameter
148 (graphite_transform_loops): Move condition detection before parameter
150 * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
152 2008-12-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
155 * emutls.c (__emutls_get_address): Make sure offset is really zero
156 before initializing the object's offset.
158 2008-12-11 Jakub Jelinek <jakub@redhat.com>
161 * gimplify.c (gimplify_init_constructor): Don't force constructor
162 into memory if there is just one nonzero element.
164 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
166 Fix testsuite/gfortran.dg/graphite/id-4.f90.
167 * graphite.c (scan_tree_for_params): Do not compute the multiplicand
170 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
172 * graphite.c (build_scops_1): Initialize open_scop.exit
175 2008-12-11 Sebastian Pop <sebastian.pop@amd.com>
176 Jan Sjodin <jan.sjodin@amd.com>
177 Harsha Jagasia <harsha.jagasia@amd.com>
189 * tree-phinodes.c (remove_phi_nodes): New, extracted from...
190 * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
192 * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
193 * Makefile.in (graphite.o): Depend on value-prof.h.
194 (graphite.o-warn): Removed -Wno-error.
195 * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
196 to be a NULL pointer. Call update_stmt. Return the newly created
197 cannonical induction variable.
199 * graphite.h (debug_rename_map): Declared. Fix some comments.
201 * graphite.c: Reimplement the code generation from graphite to gimple.
202 Include value-prof.h.
203 (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
204 (get_old_iv_from_ssa_name): Removed.
205 (graphite_stmt_p): New.
206 (new_graphite_bb): Test for useful statements before building a
207 graphite statement for the basic block.
208 (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
209 in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason.
210 (recompute_all_dominators, graphite_verify,
211 nb_reductions_in_loop, graphite_loop_normal_form): New.
212 (scop_record_loop): Call graphite_loop_normal_form.
213 (build_scop_loop_nests): Iterate over all the blocks of the
214 function instead of relying on the incomplete information from
215 SCOP_BBS. Return the success of the operation.
216 (find_params_in_bb): Use the data from GBB_DATA_REFS.
217 (add_bb_domains): Removed.
218 (build_loop_iteration_domains): Don't call add_bb_domains.
219 Add the iteration domain only to the basic blocks that have been
220 translated to graphite.
221 (build_scop_conditions_1): Add constraints only if the basic
222 block have been translated to graphite.
223 (build_scop_data_accesses): Completely disabled until data
224 dependence is correctly implemented.
225 (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
226 (remove_all_edges_1, remove_all_edges): Removed.
227 (get_new_name_from_old_name): New.
228 (graphite_rename_variables_in_stmt): Renamed.
229 rename_variables_in_stmt. Call get_new_name_from_old_name.
230 Use replace_exp and update_stmt.
231 (is_old_iv): Renamed is_iv.
232 (expand_scalar_variables_stmt): Extra parameter for renaming map.
233 Use replace_exp and update_stmt.
234 (expand_scalar_variables_expr): Same. Use the map to get the
235 new names for the renaming of induction variables and for the
236 renaming of variables after a basic block has been copied.
237 (expand_scalar_variables): Same.
238 (graphite_rename_variables): Renamed rename_variables.
239 (move_phi_nodes): Removed.
240 (get_false_edge_from_guard_bb): New.
241 (build_iv_mapping): Do not insert the induction variable of a
242 loop in the renaming iv map if the basic block does not belong
244 (register_old_new_names, graphite_copy_stmts_from_block,
245 copy_bb_and_scalar_dependences): New.
246 (translate_clast): Heavily reimplemented: copy basic blocks,
247 do not move them. Finally, in call cleanup_tree_cfg in gloog.
248 At each translation step call graphite_verify ensuring the
249 consistency of the SSA, loops and dominators information.
250 (collect_virtual_phis, find_vdef_for_var_in_bb,
251 find_vdef_for_var_1, find_vdef_for_var,
252 patch_phis_for_virtual_defs): Removed huge hack.
253 (mark_old_loops, remove_dead_loops, skip_phi_defs,
254 collect_scop_exit_phi_args, patch_scop_exit_phi_args,
255 gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed.
256 (remove_sese_region, ifsese, if_region_entry, if_region_exit,
257 if_region_get_condition_block, if_region_set_false_region,
258 create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
259 sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
260 sese_add_exit_phis_edge, sese_add_exit_phis_var,
261 rewrite_into_sese_closed_ssa): New.
262 (gloog): Remove dead code. Early return if code cannot be
263 generated. Call cleanup_tree_cfg once the scop has been code
265 (graphite_trans_scop_block, graphite_trans_loop_block): Do not
266 block loops with less than two loops.
267 (graphite_apply_transformations): Remove the call to
268 scop_remove_ignoreable_gbbs.
269 (limit_scops): When build_scop_loop_nests fails, continue on next
270 scop. Fix open_scop.entry.
271 (graphite_transform_loops): Call recompute_all_dominators: force the
272 recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
273 Call initialize_original_copy_tables and free_original_copy_tables
274 to be able to copy basic blocks during code generation.
275 When build_scop_loop_nests fails, continue on next scop.
276 (value_clast): New union.
277 (clast_to_gcc_expression): Fix type cast warning.
279 2008-12-10 Richard Guenther <rguenther@suse.de>
281 PR tree-optimization/36792
282 * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
285 2008-12-10 Daniel Berlin <dberlin@dberlin.org>
287 PR tree-optimization/36792
288 * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.
290 2008-12-10 Alexandre Oliva <aoliva@redhat.com>
293 * dwarf2out.c (saved_do_cfi_asm): New.
294 (dwarf2out_do_frame): Take it into account.
295 (dwarf2out_d_cfi_asm): Likewise. Set it when appropriate.
297 2008-12-10 Alexandre Oliva <aoliva@redhat.com>
300 * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
301 variables initialized from SRAed bit fields.
303 2008-12-10 Martin Guy <martinwguy@yahoo.it>
306 * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
307 result will be in an FPU register.
309 2008-12-10 Eric Botcazou <ebotcazou@adacore.com>
313 * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
314 on the associated SYMBOL_REF_DECL node, if any.
316 2008-12-09 David Daney <ddaney@caviumnetworks.com>
318 * config/mips/sync.md (sync_<optab>_12): Replace
319 MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
320 (sync_old_<optab>_12): Remove third paramater to
321 MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
322 with MIPS_SYNC_OLD_OP_12_AND.
323 (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
324 with MIPS_SYNC_NEW_OP_12_AND.
325 (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
326 MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
327 (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
328 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
329 MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
330 (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
331 MIPS_SYNC_NEW_OP_12_XOR.
332 * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
333 MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
334 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
335 MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
336 MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
337 to implement new __sync_nand semantics.
338 (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
339 remove third parameter.
340 (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
341 MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
342 (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
343 (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
344 (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
345 (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
346 (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
347 (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
349 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
351 * graphite.c (graphite_transform_loops): Always call find_transform ()
352 in ENABLE_CHECKING. So we test these code paths, even if we do not
355 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
357 * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
359 2008-12-09 Jakub Jelinek <jakub@redhat.com>
362 * function.h (struct function): Add always_inline_functions_inlined.
363 * ipa-inline.c (cgraph_early_inlining): Set it to true.
364 * tree-optimize.c (execute_fixup_cfg): Likewise.
365 * builtins.c (avoid_folding_inline_builtin): New function.
366 (fold_call_expr): Don't optimize always_inline builtins before
368 (fold_call_stmt): Likewise.
369 (fold_builtin_call_array): Likewise. Don't call
370 fold_builtin_varargs for BUILT_IN_MD builtins.
372 PR tree-optimization/37416
373 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
375 2008-12-09 Janis Johnson <janis187@us.ibm.com>
377 * doc/sourcebuild.texi (Test Directives): Fix formatting.
379 2008-12-09 Vladimir Makarov <vmakarov@redhat.com>
381 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
383 * doc/invoke.texi (-fira-region): Describe new option.
384 (-fira-algorithm): Change the values.
386 * ira-conflicts.c (build_conflict_bit_table,
387 build_allocno_conflicts): Use ira_reg_classes_intersect_p.
388 (ira_build_conflicts): Use flag flag_ira_region instead of
389 flag_ira_algorithm. Prohibit usage of callee-saved likely spilled
390 base registers for allocnos crossing calls.
392 * flags.h (enum ira_algorithm): Redefine.
393 (enum ira_region): New.
394 (flag_ira_region): New.
396 * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
397 instead of flag_ira_algorithm.
399 * toplev.c (flag_ira_algorithm): Change the initial value.
400 (flag_ira_region): New.
402 * ira-int.h (ira_reg_classes_intersect_p,
403 ira_reg_class_super_classes): New.
405 * ira-color.c (update_copy_costs): Use
406 ira_reg_classes_intersect_p. Use right class to find hard reg index.
407 (update_conflict_hard_regno_costs): Ditto. Add a new parameter.
408 (assign_hard_reg): Ditto. Pass additional argument to
409 update_conflict_hard_regno_costs. Do not uncoalesce for priority
411 (allocno_priorities, setup_allocno_priorities,
412 allocno_priority_compare_func): Move before color_allocnos.
413 (color_allocnos): Add priority coloring. Use flag flag_ira_region
414 instead of flag_ira_algorithm.
415 (move_spill_restore): Check classes of the same reg allocno from
417 (update_curr_costs): Use ira_reg_classes_intersect_p.
418 (ira_reassign_conflict_allocnos): Ditto.
420 * opts.c (decode_options): Always set up flag_ira. Set up
421 flag_ira_algorithm. Warn CB can not be used for architecture.
422 (common_handle_option): Modify code for -fira-algorithm. Add code
423 to process -fira-region.
425 * ira-lives.c (update_allocno_pressure_excess_length): Process
427 (set_allocno_live, clear_allocno_live, mark_reg_live,
428 mark_reg_dead, process_bb_node_lives): Ditto.
430 * ira-emit.c (ira_emit): Fix insn codes.
432 * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
433 instead of flag_ira_algorithm.
434 (allocno_range_compare_func): Ignore classes for priority coloring.
435 (setup_min_max_conflict_allocno_ids): Ditto.
436 (ira_flattening): Use ira_reg_classes_intersect_p.
438 * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT.
440 * common.opt (fira-algorithm): Modify.
443 * ira.c (setup_class_hard_regs): Initialize.
444 (setup_cover_and_important_classes): Modify code setting class
445 related info for priority coloring.
446 (setup_class_translate): Ditto.
447 (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
448 (setup_reg_class_intersect_union): Rename to
449 setup_reg_class_relations. Add code for setting up new variables.
450 (find_reg_class_closure): Do not check targetm.ira_cover_classes.
451 (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
453 * ira-costs.c (common_classes): New.
454 (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm.
455 (find_allocno_class_costs): Ditto. Use common_classes. Translate
457 (ira_costs): Allocate/deallocate common_classes.
459 * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
460 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
463 * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
464 smallest_mode_for_size.
466 2008-12-10 Ben Elliston <bje@au.ibm.com>
468 * config/rs6000/linux-unwind.h (get_regs): Constify casts.
470 2008-12-09 Jan Hubicka <jh@suse.cz>
472 * predict.c (estimate_bb_frequencies): Fix test if profile is present.
474 2008-12-09 Jakub Jelinek <jakub@redhat.com>
476 PR tree-optimization/35468
477 * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
480 2008-12-09 Richard Guenther <rguenther@suse.de>
482 PR tree-optimization/38445
483 * tree-ssa-structalias.c (emit_pointer_definition): Only visit
485 (emit_alias_warning): Adjust.
487 2008-12-09 Andrew Haley <aph@redhat.com>
489 * fixed-value.c (do_fixed_add): Add comment.
490 * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
491 * builtins.c (fold_builtin_sqrt): Likewise.
493 2008-12-09 Kai Tietz <kai.tietz@onevision.com>
496 * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
498 * calls.c (nitialize_argument_information): Add fntype argument
499 and use it for calls.promote_function_args.
500 (expand_call): Pass fntype to aggregate_value_p if no fndecl
501 available and pass additional fntype to
502 initialize_argument_information.
503 * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
504 to get function abi type.
505 (init_cumulative_args): Use for abi kind detection fntype, when no
508 2008-12-09 Andreas Krebbel <krebbel1@de.ibm.com>
510 * config/s390/s390.md (movti, movdi_64, movdi_31,
511 *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
512 *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
514 (Integer->BLKmode splitter): Removed.
516 2008-12-08 Uros Bizjak <ubizjak@gmail.com>
518 * config/alpha/alpha.c (alpha_set_memflags): Process memory
519 references in full insn sequence.
521 2008-12-09 Jason Merrill <jason@redhat.com>
523 * gimplify.c (gimplify_init_constructor): Revert to using < rather
524 than <= for sparseness test.
527 * gimplify.c (gimplify_init_constructor): Don't write out a static
528 copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
531 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
534 Fix testsuite/gfortran.dg/graphite/id-3.f90.
535 * graphite.c (scopdet_basic_block_info): Fix bug that found some
536 regions more than once.
538 2008-12-09 Ben Elliston <bje@au.ibm.com>
540 * emutls.c (__emutls_get_address): Prototype.
541 (__emutls_register_common): Likewise.
543 * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
545 2008-12-09 Ben Elliston <bje@au.ibm.com>
547 * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
549 2008-12-08 Steve Ellcey <sje@cup.hp.com>
551 * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
552 (nonlocal_goto_receiver): New instruction.
554 2008-12-08 Jakub Jelinek <jakub@redhat.com>
557 * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
560 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
561 VIEW_CONVERT_EXPR the same as CASE_CONVERT.
563 2008-12-08 Richard Henderson <rth@redhat.com>
566 * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
567 (SET_TYPE_MODE): New.
568 * c-decl.c (parser_xref_tag): Use it.
569 (finish_enum): Likewise.
570 * tree.c (build_pointer_type_for_mode): Likewise.
571 (build_reference_type_for_mode, build_index_type): Likewise.
572 (build_range_type, make_vector_type): Likewise.
573 (build_common_tree_nodes_2): Likewise.
574 * stor-layout.c (compute_record_mode): Likewise.
575 (finalize_type_size, layout_type, make_fract_type): Likewise.
576 (make_accum_type, initialize_sizetypes): Likewise.
577 (vector_type_mode): New.
578 * function.c (allocate_struct_function): Call
579 invoke_set_current_function_hook before querying anything else.
581 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
583 2008-12-08 Luis Machado <luisgpm@br.ibm.com>
585 * alias.c (find_base_term): Synch LO_SUM handling with what
586 find_base_value does.
588 2008-12-08 Andrew Haley <aph@redhat.com>
589 Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
591 * gimple.h (gimple_build_try): Fix declaration.
593 * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
594 * fixed-value.c (do_fixed_add): Likewise.
595 * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
597 2008-12-08 Jakub Jelinek <jakub@redhat.com>
600 * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
601 on parallel and task contexts.
603 2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
605 * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
607 2008-12-07 Richard Guenther <rguenther@suse.de>
609 PR tree-optimization/38405
610 * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
611 not sign-extend truth values.
613 2008-12-07 Eric Botcazou <ebotcazou@adacore.com>
615 * tree-sra.c (scalarize_use): Create another temporary with the proper
616 type for signed types in the use_all && !is_output bitfield case.
618 2008-12-06 Steven Bosscher <steven@gcc.gnu.org>
620 PR rtl-optimization/36365
621 * df-core.c (df_worklist_dataflow_overeager): Remove.
622 (df_worklist_dataflow): Don't call it, use double-queue only.
623 * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
625 2008-12-06 Jakub Jelinek <jakub@redhat.com>
628 * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
629 gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
631 2008-12-07 Ben Elliston <bje@au.ibm.com>
633 * gthr-single.h (__gthread_once): Adjust prototype to match all
634 other gthreads models.
636 2008-12-06 Jakub Jelinek <jakub@redhat.com>
638 * config/i386/i386.c (override_options): Use CPU_AMDFAM10
639 instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
642 * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
643 operands to mult_type if it isn't narrower than op0's type.
645 2008-12-06 Jan Hubicka <jh@suse.cz>
646 Jakub Jelinek <jakub@redhat.com>
648 PR tree-optimization/38074
649 * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
651 * predict.c (combine_predictions_for_bb): Ignore predictor predicting
652 in both dirrection for first match heuristics.
653 (tree_bb_level_predictions): Disable noreturn heuristic when there
654 is no returning path.
656 2008-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
658 PR rtl-optimization/38272
659 * reload1.c (choose_reload_regs): Keep reload_spill_index correct
662 2008-12-05 Jakub Jelinek <jakub@redhat.com>
665 * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
666 (pp_c_expression): Likewise.
668 2008-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
671 * c-parser.c (struct c_token): Make pragma_kind 8 bits.
673 2008-12-05 Jakub Jelinek <jakub@redhat.com>
676 * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
677 arguments to HOST_WIDE_INT. If type has different signedness
678 than unsignedp or different precision from bitsize, create
679 the right type for BIT_FIELD_REF and cast to type.
680 (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
683 2008-03-05 Richard Guenther <rguenther@suse.de>
685 * fold-const.c (fold_truthop): Remove code generating
686 BIT_FIELD_REFs of structure bases.
687 (fold_binary): Likewise.
688 (make_bit_field_ref): Remove.
689 (optimize_bit_field_compare): Remove.
690 (all_ones_mask_p): Remove.
692 2008-12-05 Jakub Jelinek <jakub@redhat.com>
694 * tree-sra.c (sra_explode_bitfield_assignment): Always
695 call unsigned_type_for, if the precision is higher than
696 needed, call build_nonstandard_integer_type.
699 * function.c (assign_parm_find_stack_rtl): If promoted_mode
700 is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
704 * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
705 only if internal_arg_pointer is a non-virtual pseudo.
707 2008-12-05 Joseph Myers <joseph@codesourcery.com>
709 * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
710 TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
711 * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
713 2008-12-05 Jakub Jelinek <jakub@redhat.com>
715 PR tree-optimization/37716
716 * gimplify.c (gimplify_expr): Allow COND_EXPR if
717 gimplify_ctxp->allow_rhs_cond_expr.
719 2008-12-05 Uros Bizjak <ubizjak@gmail.com>
721 * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
722 VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
724 (alpha_emit_conditional_branch): Do not generate direct branch
725 for UNORDERED comparisons.
727 2008-12-05 Andreas Schwab <schwab@suse.de>
729 * config/rs6000/linux-unwind.h (frob_update_context): Check for
732 2008-12-05 Jakub Jelinek <jakub@redhat.com>
735 * fold-const.c (fold_checksum_tree): Change buf type to union
738 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
741 * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
743 (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
745 2008-12-05 Ben Elliston <bje@au.ibm.com>
747 * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
749 (c_parser_initelt): Initialise des_loc and ellipsis_loc.
751 2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
752 Gary Funck <gary@intrepid.com>
754 * cse.c (lookup_as_function): Delete mode frobbing code.
755 (equiv_constant): Re-implement it there for SUBREGs.
757 2008-12-04 Richard Guenther <rguenther@suse.de>
760 * Makefile.in (tree-ssa-alias-warnings.o): Remove.
761 (tree-ssa-structalias.o): Remove errors.h dependency.
762 (tree-ssa-reassoc.o): Likewise.
763 * tree-ssa-reassoc.c: Do not include errors.h.
764 * tree-ssa-alias-warnings.c: Remove.
765 * tree-ssa-alias.c (compute_may_aliases): Remove call to
766 strict_aliasing_warning_backend.
767 * tree-ssa-structalias.c (emit_pointer_definition): New function.
768 (emit_alias_warning): Likewise.
769 (set_uids_in_ptset): Warn for clear cases of type-punning.
770 * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
773 2008-12-04 Eric Botcazou <ebotcazou@adacore.com>
775 * cse.c (equiv_constant): Fix pasto.
777 2008-12-04 Nick Clifton <nickc@redhat.com>
779 * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
780 * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
781 formatting of quotes.
783 2008-12-04 Jakub Jelinek <jakub@redhat.com>
786 * fold-const.c (fold_checksum_tree): Allow modification of
789 2008-12-03 Jakub Jelinek <jakub@redhat.com>
792 * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
793 have the right number of arguments.
795 2008-12-03 Richard Guenther <rguenther@suse.de>
798 * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
801 2008-12-03 Tomas Bily <tbily@suse.cz>
804 * tree-loop-distribution.c (build_size_arg): New function.
805 (generate_memset_zero): Checks if dr_analyze_innermost succeed.
806 Reorganized generating of stmts.
807 * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
808 * tree-data-ref.c (dr_analyze_innermost): Returns bool.
809 Indicate if analysis succeed.
810 * tree-data-ref.h (dr_analyze_innermost): Returns bool.
811 * tree-predcom.c (valid_initializer_p, find_looparound_phi):
812 Uses new definition of dr_analyze_innermost.
814 2008-12-03 Ben Elliston <bje@au.ibm.com>
816 * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
818 2008-12-03 Jakub Jelinek <jakub@redhat.com>
820 PR tree-optimization/37716
821 * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
822 all the needed operations as trees and gimplify_assign it to dst.
825 * configure.ac (gcc_cv_readelf): Look for readelf.
826 (gcc_cv_as_cfi_advance_working): Check for working
827 cfi advances with code alignment factor > 1.
828 (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
830 * configure: Regenerated.
832 2008-12-03 Eric Botcazou <ebotcazou@adacore.com>
833 Jakub Jelinek <jakub@redhat.com>
834 Andrew Pinski <andrew_pinski@playstation.sony.com>
836 PR rtl-optimization/38281
837 * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
838 set it to NULL_RTX afterwards.
840 * emit-rtl.c (set_insn_deleted): Fix formatting.
842 2008-12-02 Richard Sandiford <rdsandiford@googlemail.com>
844 * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
846 * config/mips/mips.md (IMOVE32): New mode iterator.
847 (movsi): Generalize with IMOVE32.
848 (*movsi_internal): Likewise.
849 (*mov<mode>_mips16): Likewise.
852 2008-12-02 Nathan Sidwell <nathan@codesourcery.com>
853 Maxim Kuvyrkov <maxim@codesourcery.com>
855 * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
856 PC-relative addressing when compiling for uclinux PIC.
857 (__cmpdf_internal, __cmpsf_internal): Hide.
858 (__cmpdf, __cmpsf): Use PIC call sequence.
860 2008-12-02 Andreas Tobler <a.tobler@schweiz.org>
861 Jack Howarth <howarth@bromo.med.uc.edu>
863 * config/i386/t-darwin64: Add m32 multilib support.
865 2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
867 * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
869 2008-12-02 Jakub Jelinek <jakub@redhat.com>
872 * builtins.c (fold_builtin_memory_op): Convert len to sizetype
873 before using it in POINTER_PLUS_EXPR.
875 2008-12-02 Richard Guenther <rguenther@suse.de>
877 PR tree-optimization/38359
878 * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
881 2008-12-02 Martin Jambor <mjambor@suse.cz>
884 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
886 (forward_propagate_addr_into_variable_array_index): Check that the
887 offset is not computed from a MULT_EXPR, use is_gimple_assign rather
888 than the gimple code directly.
890 2008-12-02 Ben Elliston <bje@au.ibm.com>
892 * config/spu/float_disf.c (__floatdisf): Prototype.
893 * config/spu/float_unsdisf.c (__float_undisf): Likewise.
894 * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
895 * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
897 2008-12-02 DJ Delorie <dj@redhat.com>
899 * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
900 (DWARF_CIE_DATA_ALIGNMENT): Define.
902 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
903 Invert add/sub for INCOMING_FRAME_SP_OFFSET.
904 (xstormy16_expand_prologue): Likewise.
905 (xstormy16_expand_builtin_va_start): Likewise.
906 (xstormy16_gimplify_va_arg_expr): Likewise.
908 2008-12-02 Jakub Jelinek <jakub@redhat.com>
911 * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
912 potentially returned from folding memcpy.
913 (expand_builtin_stpcpy_args): Similarly for folding strcpy.
914 (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
916 2008-12-02 Danny Smith <dannysmith@users.sourceforge.net>
919 * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
920 decoration of function RTL names here on Ada language.
922 2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
924 PR rtl-optimization/38280
925 * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
926 ira_rebuild_regno_allocno_list): New functions.
927 (regno_allocnos): New static variable.
928 (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
929 Call ira_rebuild_regno_allocno_list.
931 2008-12-01 David Daney <ddaney@caviumnetworks.com>
932 Adam Nemet <anemet@caviumnetworks.com>
934 * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
935 LINUX_DRIVER_SELF_SPECS.
937 2008-12-01 Vladimir Makarov <vmakarov@redhat.com>
939 PR rtl-optimization/37514
940 * reload1.c (reload_as_needed): Invalidate reg_last_reload
943 2008-12-01 Jakub Jelinek <jakub@redhat.com>
946 * c-omp.c (c_finish_omp_for): Only transform pointer
947 ++ or -- into MODIFY_EXPR if second argument is non-NULL.
949 PR rtl-optimization/38245
950 * tree-vrp.c (abs_extent_range): New function.
951 (extract_range_from_binary_expr): Compute range
952 for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
953 or includes zero or if vr1 is VR_RANGE and op0 has some
956 2008-12-01 Uros Bizjak <ubizjak@gmail.com>
959 * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
960 case by calculating ~(new_reg & val) instead of (~new_reg & val).
961 * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
962 to (not:I48MODE (and:I48MODE (...))).
963 (sync_old_nand<mode>): Ditto.
964 (sync_new_nand<mode>): Ditto.
966 2008-12-01 Nick Clifton <nickc@redhat.com>
968 * config/stormy16/stormy16.md (CARRY_REG): New constant.
969 Replace uses of the "y" register class with direct references to
970 the CARRY_REG register.
971 * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
972 register with clobbers of the carry register.
973 (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
974 (xstormy16_split_cbranch): Remove redundant carry parameter.
975 (xstormy16_expand_arith): Likewise.
976 * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
977 (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
978 REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
979 (CARRY_REGNUM): Define.
980 * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
982 (xstormy16_expand_arith): Likewise.
984 2008-12-01 Chen Liqin <liqin.chen@sunplusct.com>
986 * config/score/score.h (IRA_COVER_CLASSES): Define.
988 2008-11-30 Eric Botcazou <ebotcazou@adacore.com>
991 * config/sparc/sparc.md (divsi3 expander): Remove constraints.
992 (divsi3_sp32): Add new alternative with 'K' for operand #2.
993 (cmp_sdiv_cc_set): Factor common string.
994 (udivsi3_sp32): Add new alternative with 'K' for operand #2.
996 (cmp_udiv_cc_set): Factor common string.
998 2008-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1001 * varasm.c (emutls_finish): Fix common registration.
1003 2008-11-29 Jakub Jelinek <jakub@redhat.com>
1006 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
1008 2008-11-29 David Edelsohn <edelsohn@gnu.org>
1010 * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
1011 operand wrapped in NOT. Emit NAND as (ior (not X) (not Y)).
1012 (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
1013 * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
1014 Call rs6000_emit_sync with CODE=NOT and unmodified operands.
1015 Ignore sub-word case for now.
1016 (sync_nand<mode>_internal): Represent NAND in RTL.
1017 (sync_old_nand<mode): Same.
1018 (sync_old_name<mode>_internal): Same.
1019 (sync_new_nand<mode>): Same.
1020 (sync_new_nand<mode>_internal): Same.
1021 (sync_boolcshort_internal): Expect NAND.
1023 2008-11-28 Richard Guenther <rguenther@suse.de>
1025 PR tree-optimization/37955
1026 PR tree-optimization/37742
1027 * tree-vect-transform.c (vectorizable_store): Remove assert for
1029 (vectorizable_load): Likewise.
1031 2008-11-27 Richard Guenther <rguenther@suse.de>
1033 * tree-ssa-structalias.c (intra_create_variable_infos): Make
1034 a constraint for the static chain parameter.
1036 2008-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
1038 * config/bfin/bfin.opt (micplb): New option.
1039 * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
1040 * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
1041 ENABLE_WA_INDIRECT_CALLS): New macros.
1042 * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
1044 (indirect_call_p): New function.
1045 (workaround_speculation): Handle anomaly 05-00-0426 when
1046 ENABLE_WA_INDIRECT_CALLS is true.
1047 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1048 __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
1049 * doc/invoke.texi (Blackfin Options): Document -micplb.
1051 2008-11-26 DJ Delorie <dj@redhat.com>
1053 * config/m32c/mov.md ("extendhipsi2"): New.
1055 * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
1057 * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
1058 * config/m32c/mov.md (zero_extendqihi2): Likewise.
1060 2008-11-26 Adam Nemet <anemet@caviumnetworks.com>
1062 * config/mips/mips.md (clear_hazard): Rename to
1063 clear_hazard_<mode>. Use mode-specific addition.
1064 (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
1065 or gen_clear_hazard_di depending on the size of Pmode.
1067 2008-11-26 DJ Delorie <dj@redhat.com>
1069 * configure.ac: Test m32c-elf-gas for .loc.
1070 * configure: Likewise.
1072 2008-11-26 Janis Johnson <janis187@us.ibm.com>
1075 * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
1078 2008-11-26 Uros Bizjak <ubizjak@gmail.com>
1080 * config/i386/sync.md (memory_barrier_nosse): Disable also for
1081 TARGET_64BIT. Remove special asm template for TARGET_64BIT case.
1082 (memory_barrier): Do not generate memory_barrier_nosse instruction
1084 * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
1086 2008-11-26 Fredrik Unger <fred@tree.se>
1088 * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
1089 function name from __floatundisf.
1090 * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
1093 2008-11-25 Daniel Berlin <dberlin@dberlin.org>
1094 Richard Guenther <rguenther@suse.de>
1096 PR tree-optimization/37869
1097 * tree-ssa-structalias.c (struct constraint_graph): Remove
1098 pt_used and number_incoming members.
1099 (build_pred_graph): Do not allocate them.
1100 (condense_visit): Do not use them.
1101 (label_visit): Likewise.
1102 (free_var_substitution_info): Do not free them.
1104 2008-11-25 Vladimir Makarov <vmakarov@redhat.com>
1106 * doc/invoke.texi (ira-max-loops-num): Change semantics.
1108 * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
1110 * ira-color.c (allocno_spill_priority): New function.
1111 (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
1112 Print more info about the spilled allocno.
1113 (push_allocnos_to_stack): Use allocno_spill_priority. Add more
1114 checks on bad spill.
1116 * ira-build.c (loop_node_to_be_removed_p): Remove.
1117 (loop_compare_func, mark_loops_for_removal): New functions.
1118 (remove_uneccesary_loop_nodes_from_loop_t): Use member
1120 (remove_unnecessary_allocnos): Call mark_loops_for_removal.
1122 * ira.c (ira): Don't change flag_ira_algorithm.
1124 * params.def (ira-max-loops-num): Change the value.
1126 2008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com>
1128 * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
1129 Disable unsupported alternative for ColdFire,
1130 add new alternative that ColdFire can handle.
1132 2008-11-25 Eric Botcazou <ebotcazou@adacore.com>
1134 * regrename.c (merge_overlapping_regs): Add registers artificially
1135 defined at the top of the basic block to the set of live ones just
1136 before the first insn.
1138 2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
1139 Joey Ye <joey.ye@intel.com>
1142 * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
1143 false if we need to align the outgoing stack.
1144 (ix86_update_stack_boundary): Check parm_stack_boundary.
1146 2008-11-25 Richard Guenther <rguenther@suse.de>
1150 * tree-ssa-alias.c (struct alias_info): Remove written_vars.
1151 Remove dereferenced_ptrs_store and dereferenced_ptrs_load
1152 in favor of dereferenced_ptrs.
1153 (init_alias_info): Adjust.
1154 (delete_alias_info): Likewise.
1155 (compute_flow_insensitive_aliasing): Properly
1156 include all aliased variables.
1157 (update_alias_info_1): Use dereferenced_ptrs.
1158 (setup_pointers_and_addressables): Likewise.
1159 (get_smt_for): Honor ref-all pointers and pointers with known alias
1161 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
1163 2008-11-25 Uros Bizjak <ubizjak@gmail.com>
1166 * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
1167 (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
1169 2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
1171 * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
1173 2008-11-24 Richard Sandiford <rdsandiford@googlemail.com>
1175 * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
1177 2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
1180 * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
1181 (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
1183 2008-11-24 Uros Bizjak <ubizjak@gmail.com>
1185 * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
1186 UNSPECV_CMPXCHG_[12].
1187 * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
1188 UNSPECV_CMPXCHG_[12].
1191 * config/i386/sync.md (memory_barrier): New expander.
1193 2008-11-24 Jakub Jelinek <jakub@redhat.com>
1196 * dse.c (find_shift_sequence): Optimize extraction from a constant.
1198 2008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1200 * pa.c (function_arg): Revert 2008-10-26 change.
1202 2008-11-23 Helge Deller <deller@gmx.de>
1204 * pa/linux-atomic.c (EBUSY): Define if not _LP64.
1205 (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
1206 succeeded and lws_ret is not equal to oldval.
1208 2008-11-23 Kaz Kojima <kkojima@gcc.gnu.org>
1210 * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
1212 2008-11-22 Andreas Schwab <schwab@suse.de>
1214 * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
1217 2008-11-22 Adam Nemet <anemet@caviumnetworks.com>
1219 * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
1220 Use constant 1 as the operand.
1221 * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
1222 Rename gen_rdhwr to gen_rdhwr_synci_step_si or
1223 gen_rdhwr_synci_step_di depending on the size of Pmode.
1225 2008-11-22 Uros Bizjak <ubizjak@gmail.com>
1228 * config/i386/i386.md (SWI248): New mode iterator.
1229 (SWI32): Remove mode iterator.
1230 (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
1231 popcounthi2 insn patterns. Macroize pattern using SWI248 mode
1232 iterator. Generate popcnt mnemonic without mode extensions
1233 for Darwin x86 targets.
1234 (*popcount<mode>2_cmp): Ditto.
1235 (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
1236 extensions for Darwin x86 targets.
1238 2008-11-22 Eric Botcazou <ebotcazou@adacore.com>
1240 * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
1241 only if HAVE_AS_SPARC_UA_PCREL is defined.
1243 2008-11-22 Richard Sandiford <rdsandiford@googlemail.com>
1245 * ira-costs.c (find_allocno_class_costs): Work out the maximum
1246 allocno_costs value of the classees with the lowest total_costs
1247 value. Use this to set ALLOCNO_COVER_CLASS_COST here...
1248 (setup_allocno_cover_class_and_costs): ...rather than here.
1249 Use the ALLOCNO_COVER_CLASS_COST for all registers in the
1252 2008-11-22 Jakub Jelinek <jakub@redhat.com>
1255 * builtins.c (expand_builtin_apply_args): Emit sequence before
1256 parm_birth_insn instead of after entry_of_function's first insn.
1259 * function.c (assign_parm_remove_parallels): Pass
1260 data->passed_type as third argument to emit_group_store.
1263 * final.c (mark_symbol_refs_as_used): New function.
1264 * output.h (mark_symbol_refs_as_used): New prototype.
1265 * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
1266 (s390_output_pool_entry): Use mark_symbol_refs_as_used.
1267 * config/arm/arm.md (consttable_4): Likewise.
1270 * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
1272 2008-11-21 Jakub Jelinek <jakub@redhat.com>
1275 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
1276 propagate x = &a into *x = b if conversion from b to a's type is
1279 2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
1281 * caller-save.c (insert_one_insn): Take into account REG_INC notes
1282 for the liveness computation of the new insn.
1284 2008-11-21 DJ Delorie <dj@redhat.com>
1286 * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
1287 Moves to/from below100 space (W) can only use r0-r7.
1289 2008-11-21 Paolo Carlini <paolo.carlini@oracle.com>
1292 * doc/invoke.texi (Optimization Options): Fix typo.
1294 2008-11-21 H.J. Lu <hongjiu.lu@intel.com>
1295 Xuepeng Guo <xuepeng.guo@intel.com>
1297 * config.gcc (extra_headers): For x86 and x86-64, remove
1298 gmmintrin.h, add immintrin.h and avxintrin.h.
1300 * config/i386/gmmintrin.h: Renamed to ...
1301 * config/i386/avxintrin.h: This. Issue an error if
1302 _IMMINTRIN_H_INCLUDED is undedined.
1304 * config/i386/immintrin.h: New.
1306 2008-11-21 Jakub Jelinek <jakub@redhat.com>
1309 * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
1310 mode of PLUS, not mode of the eliminated register.
1312 2008-11-21 Uros Bizjak <ubizjak@gmail.com>
1314 * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
1315 * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
1316 (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
1317 (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
1318 (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
1319 (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
1320 (*nand<mode>3): Rename to *andnot<mode>3.
1321 (*nandtf3): rename to *andnottf3.
1322 * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
1323 Use CODE_FOR_mmx_andnotv2si3.
1324 [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
1325 [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
1326 [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
1327 [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
1328 [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
1330 2008-11-21 Uros Bizjak <ubizjak@gmail.com>
1333 * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
1334 case by calculating ~(new_reg & val) instead of (~new_reg & val).
1335 * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
1336 to (not:IMODE (and:IMODE (...))).
1337 (sync_old_nand<mode>): Ditto.
1338 (sync_new_nand<mode>): Ditto.
1340 2008-11-20 Joseph Myers <joseph@codesourcery.com>
1342 * config/arm/thumb2.md (thumb2_casesi_internal,
1343 thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
1345 2008-11-20 Andreas Krebbel <krebbel1@de.ibm.com>
1347 * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
1348 nand to the changed 4.4 semantic.
1350 2008-11-20 Jakub Jelinek <jakub@redhat.com>
1353 * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
1354 (fold_builtin_memory_op): Handle even the case where just one
1355 of src and dest is an address of a var decl component, using
1356 TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant
1357 and readonly_data_expr src check.
1358 * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
1361 PR rtl-optimization/36998
1362 * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
1363 arguments. Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
1364 (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
1365 stack_adjust_offset callers.
1366 (dwarf2out_stack_adjust): Likewise. Handle insns in annulled
1368 (compute_barrier_args_size): Handle insns in annulled branches
1371 2008-11-20 Uros Bizjak <ubizjak@gmail.com>
1374 * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
1375 Handle cases when integer argument crosses argument register boundary.
1377 2008-11-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1380 * config.gcc (i[34567]86-*-solaris2*): Don't include
1381 i386/t-crtstuff here.
1382 Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
1383 * config/i386/t-sol2: Move to libgcc/config/i386.
1385 2008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
1388 * tlink.c: Include "libiberty.h".
1389 (initial_cwd): Change type into char *.
1390 (tlink_init): Call getpwd instead of getcwd.
1392 2008-11-19 Zdenek Dvorak <ook@ucw.cz>
1394 PR rtl-optimization/32283
1395 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
1396 of the induction variable to decide whether it may wrap.
1397 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
1398 initialization of the bound before the loop.
1399 * simplify-rtx.c (simplify_binary_operation_1): Add two
1400 simplifications regarding AND.
1401 (simplify_plus_minus): Only fail if no simplification is possible.
1402 * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
1404 2008-11-20 Jakub Jelinek <jakub@redhat.com>
1407 * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
1408 checking until GIMPLE lowering.
1409 * gimple-low.c (check_call_args): New function.
1410 (lower_stmt) <case GIMPLE_CALL>: Call it.
1412 2008-11-19 Adam Nemet <anemet@caviumnetworks.com>
1414 * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
1415 with the same type as the first operand of the AND expression.
1417 2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
1420 * ira-int.h (struct ira_loop_tree_node): New member
1421 entered_from_non_parent_p.
1423 * ira-color.c (print_loop_title): Print loop bbs.
1425 * ira-emit.c (entered_from_non_parent_p,
1426 setup_entered_from_non_parent_p): New functions.
1427 (not_modified_p): Rename to store_can_be_removed_p. Check there
1429 (generate_edge_moves): Use store_can_be_removed_p instead of
1431 (ira_emit): Call setup_entered_from_non_parent_p.
1433 * ira-build.c (copy_info_to_removed_store_destinations):
1434 Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
1435 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
1436 (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
1437 update all accumulated attributes.
1439 2008-11-19 Vladimir Makarov <vmakarov@redhat.com>
1442 * ira-int.h (ira_copy_allocno_live_range_list,
1443 ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
1444 ira_finish_allocno_live_range_list): New prototypes.
1445 (ira_allocno_live_ranges_intersect_p,
1446 ira_pseudo_live_ranges_intersect_p): Remove.
1448 * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
1449 ira_pseudo_live_ranges_intersect_p): Rename to
1450 allocnos_have_intersected_live_ranges_p and
1451 pseudos_have_intersected_live_ranges_p. Move them from here to ...
1453 * ira-color.c: ... here
1454 (coalesced_allocno_conflict_p): Use
1455 allocnos_have_intersected_live_ranges_p.
1456 (coalesced_allocnos_living_at_program_points,
1457 coalesced_allocnos_live_at_points_p,
1458 set_coalesced_allocnos_live_points): Remove.
1459 (slot_coalesced_allocnos_live_ranges,
1460 slot_coalesced_allocno_live_ranges_intersect_p,
1461 setup_slot_coalesced_allocno_live_ranges): New.
1462 (coalesce_spill_slots): Use ranges of coalesced allocnos.
1463 (ira_sort_regnos_for_alter_reg): Use
1464 allocnos_have_intersected_live_ranges_p.
1465 (ira_reuse_stack_slot): Use
1466 pseudos_have_intersected_live_ranges_p.
1468 * global.c (pseudo_for_reload_consideration_p): Check
1469 flag_ira_share_spill_slots too.
1471 * ira-build.c (copy_allocno_live_range_list): Rename to
1472 ira_copy_allocno_live_range_list. Make it external.
1473 (merge_ranges): Rename to ira_merge_allocno_live_ranges. Make it
1475 (ira_allocno_live_ranges_intersect_p): New.
1476 (ira_finish_allocno_live_range_list): New.
1477 (finish_allocno): Use it.
1478 (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
1479 (copy_info_to_removed_store_destinations): Ditto. Use
1480 ira_copy_allocno_live_range_list.
1481 (ira_flattening): Use ira_merge_allocno_live_ranges.
1483 * ira.c (too_high_register_pressure_p): New function.
1484 (ira): Switch off sharing spill slots if the pressure is too high.
1486 2008-11-19 Richard Guenther <rguenther@suse.de>
1488 * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
1489 non-sizetype offsets if their precision matches that of the pointer.
1490 * expr.c (expand_expr_real_1): Always sign-extend the offset
1491 operand of a POINTER_PLUS_EXPR.
1493 2008-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1495 * config.gcc: Unobsolete mips-sgi-irix[56]*.
1496 (mips-sgi-irix[56]*): No need to use fixproto.
1498 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
1499 Paul Brook <paul@codesourcery.com>
1501 * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
1504 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
1506 * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
1508 2008-11-19 Razya Ladelsky <razya@il.ibm.com>
1511 * tree-parloops.c (loop_parallel_p): NULL vect_dump.
1512 (separate_decls_in_region): Create shared struct even when there
1513 are only reductions.
1515 2008-11-19 Hariharan Sandanagobalane <hariharan@picochip.com>
1517 * config/picochip/picochip.c (headers): Remove an unnecessary
1520 2008-11-19 Andrew Stubbs <ams@codesourcery.com>
1523 * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
1524 * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
1526 * config/m68k/m68k.md: Adjust all conditional branches that use the
1527 carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
1529 2008-11-18 Uros Bizjak <ubizjak@gmail.com>
1532 * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
1533 is a register or zero operand in the correct mode before generating
1534 mtch1 insn or a register operand in the correct mode before generating
1536 (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
1538 2008-11-18 Adam Nemet <anemet@caviumnetworks.com>
1540 * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
1541 (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
1542 mipsisa*-*-elf*. Handle mipsisa64r2*.
1543 * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
1544 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1546 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
1547 * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1549 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. Add mips64r2/mips16.
1550 Fix mips16 if mips64 or mips64r2 are multilib defaults.
1551 * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1554 2008-11-18 Jakub Jelinek <jakub@redhat.com>
1557 * config/i386/i386.md (allocate_stack_worker_32,
1558 allocate_stack_worker_64): Don't use match_dup between input and
1560 (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
1561 * config/i386/i386.c (ix86_expand_prologue): Likewise.
1563 2008-11-18 Kai Tietz <kai.tietz@onevision.com>
1565 * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
1566 is forced when trying to do a symbol link for it.
1568 2008-11-17 Adam Nemet <anemet@caviumnetworks.com>
1570 * expmed.c (extract_bit_field_1): Also use a temporary and
1571 convert_extracted_bit_field when the conversion from ext_mode to
1572 the target mode requires explicit truncation.
1574 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
1576 * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
1578 * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
1579 registers when not optimizing.
1581 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
1583 * config/mips/mips.md (*mul_acc_si): Remove middle alternative
1584 and its associated define_split. Expose the all-d alternative
1585 to the register allocator, but mark it with "?". Mark the first
1586 alternative with "*?*?".
1587 (*mul_sub_si): Likewise.
1588 (*mul_acc_si_r3900): New pattern.
1590 2008-11-17 Jakub Jelinek <jakub@redhat.com>
1593 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
1594 propagating x = &a into *x = b, add a cast if not useless
1595 type conversion or don't optimize if another stmt would be
1598 2008-11-17 Uros Bizjak <ubizjak@gmail.com>
1601 * optabs.c (expand_sync_operation): Properly handle NAND case
1602 by calculating ~(t1 & val) instead of (~t1 & val).
1603 * builtins.c (expand_builtin_sync_operation): Warn for changed
1604 semantics in NAND builtins.
1605 * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand.
1607 * doc/invoke.texi (Warning options): Add Wsync-nand.
1608 * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
1609 __sync_fetch_and_nand builtin operation in the example. Add a note
1610 about changed semantics in GCC 4.4.
1611 [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
1612 operation in the example. Add a note about changed semantics in
1615 2008-11-16 Jan Hubicka <jh@suse.cz>
1617 * cgraph.c (cgraph_function_body_availability): Fix test of externally
1620 2008-11-16 Joshua Kinard <kumba@gentoo.org>
1622 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
1625 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
1628 * config/mips/mips.c (mips_cfun_call_saved_reg_p)
1629 (mips_cfun_might_clobber_call_saved_reg_p): New functions,
1631 (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP
1632 rather than call_really_used_regs when handling $gp.
1634 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
1637 * config/mips/mips.c (machine_function): Update the comment
1638 above global_pointer.
1639 (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
1640 that a function doesn't need a global pointer.
1641 (mips_current_loadgp_style): Update accordingly.
1642 (mips_restore_gp): Likewise.
1643 (mips_output_cplocal): Likewise.
1644 (mips_expand_prologue): Likewise.
1646 2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
1648 * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
1649 parameter. Use DImode for computing the number of registers.
1650 (function_arg): Adjust for above change.
1651 (function_value): Likewise.
1653 2008-11-15 Zdenek Dvorak <ook@ucw.cz>
1655 PR tree-optimization/37950
1656 * tree-flow-inline.h (memory_partition): Return NULL when aliases were
1657 not computed for the current function.
1659 2008-11-15 Jakub Jelinek <jakub@redhat.com>
1662 * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
1663 gpr and other COMPONENT_REFs.
1665 2008-11-15 Richard Guenther <rguenther@suse.de>
1667 PR tree-optimization/38051
1668 * tree-ssa-alias.c (update_alias_info_1): Manually find
1671 2008-11-15 Joshua Kinard <kumba@gentoo.org>
1673 * doc/invoke.texi (-mfix-r10000): Document.
1674 * config/mips/mips.opt (mfix-r10000): New option.
1675 * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
1676 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
1677 (MIPS_COMPARE_AND_SWAP_12): Likewise.
1678 (MIPS_SYNC_OP): Likewise.
1679 (MIPS_SYNC_OP_12): Likewise.
1680 (MIPS_SYNC_OLD_OP_12): Likewise.
1681 (MIPS_SYNC_NEW_OP_12): Likewise.
1682 (MIPS_SYNC_OLD_OP): Likewise.
1683 (MIPS_SYNC_NAND): Likewise.
1684 (MIPS_SYNC_OLD_NAND): Likewise.
1685 (MIPS_SYNC_EXCHANGE): Likewise.
1686 (MIPS_SYNC_EXCHANGE_12): Likewise.
1687 (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
1689 (MIPS_SYNC_NEW_NAND): Likewise.
1690 * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
1691 (mips_init_print_operand_punct): Treat '~' as a punctuation character.
1692 (mips_output_sync_loop): New function.
1693 (mips_override_options): Make -march=r10000 imply -mfix-r10000.
1694 Make -mfix-r10000 require branch-likely instructions.
1695 * config/mips/sync.md (sync_compare_and_swap<mode>): Use
1696 mips_output_sync_loop.
1697 (compare_and_swap_12): Likewise.
1698 (sync_add<mode>): Likewise.
1699 (sync_<optab>_12): Likewise.
1700 (sync_old_<optab>_12): Likewise.
1701 (sync_new_<optab>_12): Likewise.
1702 (sync_nand_12): Likewise.
1703 (sync_old_nand_12): Likewise.
1704 (sync_new_nand_12): Likewise.
1705 (sync_sub<mode>): Likewise.
1706 (sync_old_add<mode>): Likewise.
1707 (sync_old_sub<mode>): Likewise.
1708 (sync_new_add<mode>): Likewise.
1709 (sync_new_sub<mode>): Likewise.
1710 (sync_<optab><mode>): Likewise.
1711 (sync_old_<optab><mode>): Likewise.
1712 (sync_new_<optab><mode>): Likewise.
1713 (sync_nand<mode>): Likewise.
1714 (sync_old_nand<mode>): Likewise.
1715 (sync_new_nand<mode>): Likewise.
1716 (sync_lock_test_and_set<mode>): Likewise.
1717 (test_and_set_12): Likewise.
1719 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
1721 * gcc.c (cc1_options): Fix comment.
1723 2008-11-15 Jakub Jelinek <jakub@redhat.com>
1726 * c-typeck.c (build_unary_op): Don't call get_unwidened. Use
1727 argtype instead of result_type.
1729 2008-11-14 Adam Nemet <anemet@caviumnetworks.com>
1731 * ira-int.h (struct ira_loop_tree_node): Improve comments for
1732 subloop_next/next and subloops/childen fields.
1734 2008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1736 * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
1737 (STANDARD_INCLUDE_DIR): Redefine to "/include".
1738 (LOCAL_INCLUDE_DIR): Undefine.
1739 * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
1741 2008-11-14 Vladimir Makarov <vmakarov@redhat.com>
1743 PR rtl-optimization/37397
1744 * ira-int.h (struct ira_allocno): New member bad_spill_p.
1745 (ALLOCNO_BAD_SPILL_P): New macro.
1747 * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
1749 * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
1750 (create_cap_allocno, propagate_allocno_info,
1751 remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
1752 (update_bad_spill_attribute): New function.
1753 (ira_build): Call it.
1755 * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
1757 2008-11-14 Jakub Jelinek <jakub@redhat.com>
1759 PR tree-optimization/38104
1760 * gimplify.c (gimple_regimplify_operands): Add referenced vars
1761 before calling mark_symbols_for_renaming, not after it.
1763 2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
1765 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
1766 (OVERRIDE_OPTIONS): Likewise.
1768 2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
1769 Andrew Stubbs <ams@codesourcery.com>
1770 Gunnar Von Boehn <gunnar@genesi-usa.com>
1773 * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
1774 the shorter LEA insn over ADD.L where possible.
1776 2008-11-14 Thomas Schwinge <tschwinge@gnu.org>
1778 * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
1779 systems, which are assumend to always provide SSP-support in glibc.
1780 Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
1782 * configure: Regenerate.
1784 2008-11-14 Jakub Jelinek <jakub@redhat.com>
1787 * function.c (gimplify_parameters): For callee copies parameters,
1788 move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
1790 2008-11-13 Thomas Schwinge <tschwinge@gnu.org>
1793 * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
1794 x86 parts into the `i[34567]86-*-linux*' and parts that are
1795 independent of the processor architecture into the `*-*-linux*' cases.
1796 (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
1797 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
1798 (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
1799 [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
1800 * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
1801 (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
1802 (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
1804 2008-11-13 Ruan Beihong <ruanbeihong@gmail.com>
1806 * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
1807 * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
1808 (ls2_idiv): Likewise idiv3.
1809 (ls2_prefetch): New reservation.
1810 * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
1811 * config/mips/mips.md (type): Add imul3nc and idiv3.
1812 (length): Handle idiv3.
1813 (any_mod): New code_iterator.
1814 (u): Handle MOD and UMOD.
1815 (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
1816 (prefetch): Handle TARGET_LOONGSON_2EF.
1818 2008-11-13 Jakub Jelinek <jakub@redhat.com>
1821 * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
1822 (prune_unused_types_walk): Call it for non-perennial local classes.
1823 Set die_mark to 2 if recursing on children. If die_mark is 1 on
1824 entry, just set it to 2 and recurse on children, don't walk attributes
1827 2008-11-13 Martin Michlmayr <tbm@cyrius.com>
1829 * c-common.c (warn_about_parentheses): Add missing whitespace
1832 2008-11-13 Paul Brook <paul@codesourcery.com>
1834 * doc/invoke.texi: Document --fix-cortex-m3.
1835 * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
1836 Cortex-M3 cpu is selected.
1837 (output_move_double): Avoid overlapping base register and first
1838 destination register when fix_cm3_ldrd.
1839 * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
1841 2008-11-13 Jakub Jelinek <jakub@redhat.com>
1844 * gimple.h (gimple_range_check_failed): Remove prototype.
1845 * gimple.c (gimple_check_failed): Don't check GCC_VERSION
1847 (gimple_range_check_failed): Removed.
1849 2008-11-13 Andrew Haley <aph@redhat.com>
1852 * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
1855 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1859 2007-05-07 Mike Stump <mrs@apple.com>
1860 * doc/invoke.texi (Warning Options): Document that -Wempty-body
1861 also checks for and while statements in C++.
1863 2008-11-12 Dodji Seketeli <dodji@redhat.com>
1866 * cgraph.h: New abstract_and_needed member to struct cgraph_node.
1867 * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
1868 - which clones are reachable - as "abstract and needed".
1869 * cgraph.c (cgraph_release_function_body): If a node is
1870 "abstract and needed", do not release its DECL_INITIAL() content
1871 that will be needed to emit debug info.
1873 2008-11-12 Steve Ellcey <sje@cup.hp.com>
1876 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
1877 to set HAVE_GETIPINFO.
1878 * aclocal.m4: Include ../config/unwind_ipinfo.m4.
1879 * configure: Regenerate.
1880 * config.in: Regenerate.
1882 2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
1885 * gcc/config.gcc: Use darwin9.h on darwin10 as well.
1887 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1890 2008-10-21 Jakub Jelinek <jakub@redhat.com>
1891 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
1893 2008-11-12 Jason Merrill <jason@redhat.com>
1896 * c-common.c (c_common_signed_or_unsigned_type): Remove C++
1899 2008-11-12 Anatoly Sokolov <aesok@post.ru>
1901 * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
1902 atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
1904 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1905 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1907 2008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1909 * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
1910 packed-stack special handling.
1911 (FRAME_ADDR_RTX): Add definition.
1913 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1916 * fold-const.c (native_encode_string): New function.
1917 (native_encode_expr): Use it for STRING_CST.
1919 2008-11-12 DJ Delorie <dj@redhat.com>
1921 * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
1922 insns if the intermediate value will be used later.
1924 2008-11-12 Andreas Schwab <schwab@suse.de>
1926 * config/m68k/m68k.c (print_operand): Mask off extra extension
1927 bits when writing out the representation of real values.
1929 2008-11-12 Ira Rosen <irar@il.ibm.com>
1931 PR tree-optimization/38079
1932 * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
1935 2008-11-12 Jakub Jelinek <jakub@redhat.com>
1938 * c-pretty-print.c (pp_c_complex_expr): New function.
1939 (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
1942 * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
1943 than INNER and INNER is a constant, forcibly align INNER as much
1946 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
1948 * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
1950 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
1952 PR rtl-optimization/37363
1953 * simplify-rtx.c (simplify_plus_minus): Don't create
1954 (const (minus ...)) expresisons.
1956 2008-11-11 Eric Botcazou <ebotcazou@adacore.com>
1958 * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
1961 2008-11-10 Catherine Moore <clm@codesourcery.com>
1963 * config.gcc (mips64vrel-*-elf*): Include the tm_file
1965 * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
1966 (BASE_DRIVER_SELF_SPECS): Remove.
1967 (DRIVER_SELF_SPECS): New definition.
1968 * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
1969 BASE_DRIVER_SELF_SPECS.
1970 * config/mips/sde.h: Likewise.
1971 * config/mips/iris6.h: Likewise.
1972 * config/mips/vr.h: Likewise.
1973 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
1975 2008-11-10 Vladimir Makarov <vmakarov@redhat.com>
1977 PR rtl-optimizations/37948
1978 * ira-int.h (struct ira_allocno_copy): New member constraint_p.
1979 (ira_create_copy, ira_add_allocno_copy): New parameter.
1981 * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it
1982 to ira_add_allocno_copy.
1983 (process_reg_shuffles, add_insn_allocno_copies): Pass a new
1984 parameter to process_regs_for_copy.
1985 (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
1986 Fix typo in passing second allocno to ira_add_allocno_copy.
1988 * ira-color.c (update_conflict_hard_regno_costs): Use head of
1989 coalesced allocnos list.
1990 (assign_hard_reg): Ditto. Check that assigned allocnos are not in
1992 (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
1993 (add_ira_allocno_to_ordered_bucket): Rename to
1994 add_allocno_to_ordered_bucket.
1995 (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use
1996 head of coalesced allocnos list.
1997 (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
1998 Check that it is aready calculated.
1999 (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
2000 (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
2002 (coalesce_allocnos): Do extended coalescing too.
2004 * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
2005 parameter to ira_add_allocno_copy.
2007 * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
2009 (print_copy): Print copy origination too.
2011 * ira-costs.c (scan_one_insn): Use alloc_pref for load from
2014 2008-11-10 Kaz Kojima <kkojima@gcc.gnu.org>
2016 PR rtl-optimization/37514
2017 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
2018 flag_ira_share_spill_slots to 2 if it's already non-zero.
2019 (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
2020 flag_ira_share_spill_slots is 2.
2022 2008-11-10 Kevin Buettner <kevinb@redhat.com>
2024 * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
2025 (prologue_enter_32): Set FB to SP - 4.
2027 2008-11-10 DJ Delorie <dj@redhat.com>
2029 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
2030 constraint for single-bit-clear in lower byte of HI constant, vs
2031 Imb which just ignores the upper byte.
2032 * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
2033 * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
2034 (iorhi3_16): Check for single bit set, not single bit clear.
2036 2008-11-10 Janis Johnson <janis187@us.ibm.com>
2038 * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
2040 * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
2042 2008-11-10 Eric Botcazou <ebotcazou@adacore.com>
2044 * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
2045 values living in memory and use more precise alignment information.
2047 2008-11-10 Jakub Jelinek <jakub@redhat.com>
2050 * tree-mudflap.c (mf_build_check_statement_for): Split then_block
2051 after __mf_check call if the call must end a bb.
2053 2008-11-10 Ralph Loader <suckfish@ihug.co.nz>
2057 * combine.c (force_to_mode): Do not process vector types.
2059 * rtlanal.c (nonzero_bits1): Do not process vector types.
2060 (num_sign_bit_copies1): Likewise.
2062 2008-11-09 Thomas Schwinge <tschwinge@gnu.org>
2064 * config/i386/gnu.h: Add copyright and licensing header.
2065 * config/gnu.h: Likewise.
2067 2008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
2069 * fwprop.c (fwprop_done): Call df_remove_problem.
2071 2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
2074 * tree-scalar-evolution.c (instantiate_scev_1): Return
2075 chrec_dont_know for VL_EXP_CLASS_P.
2077 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
2079 * reg-stack.c (reg_to_stack): Add missing braces in memset
2082 2008-11-06 Andrew Stubbs <ams@codesourcery.com>
2084 * config/arm/bpabi.h (PROFILE_HOOK): New undef.
2085 (NO_PROFILE_COUNTERS): New define.
2087 2008-11-06 David Edelsohn <edelsohn@gnu.org>
2090 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
2092 2008-11-06 Kazu Hirata <kazu@codesourcery.com>
2095 * config/sparc/constraints.md (D): New.
2096 * config/sparc/predicates.md (const_double_or_vector_operand): New.
2097 * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
2099 * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
2100 Use the 'D' constraint in addition to 'F' in some alternatives.
2101 (DF splitter): Generalize for V64mode.
2102 * doc/md.texi (SPARC): Document the 'D' constraint.
2104 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
2106 * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
2108 2008-11-06 Ben Elliston <bje@au.ibm.com>
2110 * gcc.c: Remove ancient comment about a bug in Sun cc.
2112 2008-11-05 Janis Johnson <janis187@us.ibm.com>
2114 * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
2116 2008-11-06 Ben Elliston <bje@au.ibm.com>
2118 * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
2120 2008-11-06 Ben Elliston <bje@au.ibm.com>
2122 * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
2125 2008-11-05 Hans-Peter Nilsson <hp@axis.com>
2128 * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
2131 2008-11-05 Martin Jambor <mjambor@suse.cz>
2134 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
2135 pointer arithmetics into array_ref if the array is accessed
2136 through an indirect_ref.
2138 2008-11-05 Richard Guenther <rguenther@suse.de>
2141 * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
2142 qualified pointer conversion before stripping qualifiers.
2143 * gimplify.c (create_tmp_from_val): Use correctly qualified type.
2144 * tree-flow.h (may_propagate_address_into_dereference): Declare.
2145 * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
2148 * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
2149 properly canonicalize binary ops.
2150 (forward_propagate_addr_expr_1): Use
2151 may_propagate_address_into_dereference.
2153 2008-11-05 Uros Bizjak <ubizjak@gmail.com>
2156 * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
2157 Initialize uninitialized input registers with a NaN.
2159 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
2163 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
2165 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
2169 * graphite.c (scopdet_basic_block_info): Fix loops with multiple
2170 exits and conditions.
2171 * testsuite/gcc.dg/graphite/pr37943.c: New.
2173 2008-11-04 Jakub Jelinek <jakub@redhat.com>
2174 Andrew Pinski <andrew_pinski@playstation.sony.com>
2177 * c-common.c (warn_for_sign_compare): For complex result_type
2178 use component's type.
2180 2008-11-04 Jakub Jelinek <jakuB@redhat.com>
2182 * print-tree.c (print_node): Use code instead of TREE_CODE (node).
2184 * print-tree.c (print_node): Don't print DECL_INITIAL
2188 * c-common.c (parse_optimize_options): Save and restore
2189 flag_strict_aliasing around decode_options call.
2191 2008-11-04 Uros Bizjak <ubizjak@gmail.com>
2193 * config/i386/driver-i386.c (enum vendor_signatures): New enum.
2194 (host_detect_local_cpu): Use it instead of casted strings to
2195 compare vendor signatures.
2197 2008-11-03 Mikael Pettersson <mikpe@it.uu.se>
2200 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
2201 or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
2203 2008-11-03 Catherine Moore <clm@codesourcery.com>
2205 * config/mips.c (mips_conditional_register_usage): Handle the
2206 DSP control register.
2207 * doc/extend.texi: Document the DSP control register.
2209 2008-11-03 Steve Ellcey <sje@cup.hp.com>
2210 Jakub Jelinek <jakub@redhat.com>
2212 * omp-low.c (expand_omp_for_generic): If iter_type has different
2213 precision than type and type is a pointer type, cast n1 and n2
2214 first to an integer type with the same precision as pointers
2215 and only afterwards to iter_type.
2217 2008-11-03 Richard Sandiford <rdsandiford@googlemail.com>
2219 * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
2220 (UNSPEC_GOTSYM_OFF): New unspec.
2221 (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
2222 (pic_add_dot_plus_eight): Likewise.
2223 (tls_load_dot_plus_eight): Likewise. Update peephole2.
2224 * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
2225 UNSPEC_PIC_BASE operands.
2226 * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
2227 (arm_output_addr_const_extra): Handle it.
2229 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
2231 * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
2232 integer class to full integer class if the offset is not word-aligned.
2234 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2237 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2239 (doloop_optimize): Update call to doloop_modify.
2241 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
2243 * tree-sra.c (bitfield_overlaps_p): Fix oversight.
2245 2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2248 * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
2249 gcc_cv_as_cfi_directive.
2250 (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
2251 merging read-only and read-write sections or assembler emits
2252 read-write .eh_frame sections.
2253 * configure: Regenerate.
2255 2008-11-03 Nathan Froyd <froydnj@codesourcery.com>
2258 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2260 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2262 (rs6000_emit_prologue): Invert logic.
2263 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2264 (reg:P 11) instead of match_operand.
2265 (*save_fpregs_<mode>): Likewise.
2266 (*restore_gpregs_<mode>): Likewise.
2267 (*return_and_restore_gpregs_<mode>): Likewise.
2268 (*return_and_restore_fpregs_<mode>): Likewise.
2269 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2270 (reg:P 11) insted of match_operand.
2271 (*restore_gpregs_spe): Likewise.
2272 (*return_and_restore_gpregs_spe): Likewise.
2274 2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
2276 PR tree-optimization/37684
2277 * gcc.dg/graphite/pr37684.c: New.
2278 * graphite.c (exclude_component_ref): New.
2279 (is_simple_operand): Call exclude_component_ref.
2281 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
2283 PR tree-optimization/36908
2284 * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
2285 * tree-loop-distribution.c (number_of_rw_in_rdg): New.
2286 (number_of_rw_in_partition): New.
2287 (partition_contains_all_rw): New.
2288 (ldist_gen): Do not distribute when one of the partitions
2289 contains all the memory operations.
2291 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
2293 * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
2294 EDGE_IRREDUCIBLE_LOOP.
2296 2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
2298 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
2299 where we have one entry point in the loop which isn't the head.
2301 2008-11-03 Richard Guenther <rguenther@suse.de>
2304 * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
2306 2008-11-03 Jakub Jelinek <jakub@redhat.com>
2309 * passes.c (execute_one_pass): Don't look at cfun->curr_properties
2310 for ipa and simple ipa passes.
2312 2008-11-02 Richard Guenther <rguenther@suse.de>
2314 PR tree-optimization/37542
2315 * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
2316 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
2317 (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
2318 (vn_nary_op_insert_stmt): Likewise.
2319 (visit_use): Likewise.
2321 2008-11-02 Anatoly Sokolov <aesok@post.ru>
2323 * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
2325 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
2326 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
2327 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
2328 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
2329 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
2330 peephole2's): Replace unspec with rotate.
2331 * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
2333 2008-11-02 Richard Guenther <rguenther@suse.de>
2335 PR tree-optimization/37991
2336 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
2337 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
2338 (set_ssa_val_to): Print if the value changed.
2339 (simplify_binary_expression): Strip useless conversions.
2341 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
2344 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
2347 2008-11-01 Richard Guenther <rguenther@suse.de>
2350 * builtins.c (fold_builtin_strspn): Return a size_t.
2351 (fold_builtin_strcspn): Likewise.
2353 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2355 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
2356 attribute for struct return convention.
2358 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2360 * config/rs6000/crtsavres.asm: Really, really delete.
2362 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
2364 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2366 (rs6000_emit_prologue): Invert logic.
2367 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2368 (reg:P 11) instead of match_operand.
2369 (*save_fpregs_<mode>): Likewise.
2370 (*restore_gpregs_<mode>): Likewise.
2371 (*return_and_restore_gpregs_<mode>): Likewise.
2372 (*return_and_restore_fpregs_<mode>): Likewise.
2373 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2374 (reg:P 11) insted of match_operand.
2375 (*restore_gpregs_spe): Likewise.
2376 (*return_and_restore_gpregs_spe): Likewise.
2378 2008-10-28 Luis Machado <luisgpm@br.ibm.com>
2380 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
2381 list of word switches that take args.
2383 2008-10-30 Jakub Jelinek <jakub@redhat.com>
2385 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
2386 (s390_output_pool_entry): Call it through for_each_rtx.
2389 * expr.c (store_constructor): For vectors, if target is a MEM, use
2390 target's MEM_ALIAS_SET instead of elttype alias set.
2392 2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
2395 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
2398 2008-10-29 David Edelsohn <edelsohn@gnu.org>
2401 * config/rs6000/predicates.md (word_offset_memref_operand):
2402 Restructure code and look inside auto-inc/dec addresses.
2404 2008-10-29 Steve Ellcey <sje@cup.hp.com>
2407 * libgcov.c ( __gcov_indirect_call_profiler): Check
2408 TARGET_VTABLE_USES_DESCRIPTORS.
2410 2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
2412 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
2413 (INITIAL_FRAME_POINTER_OFFSET): Remove.
2414 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
2415 offset if eliminating soft frame pointer.
2416 * config/spu/spu.md (stack_protect_set, stack_protect_test)
2417 (stack_protect_test_si): Add initial machine description
2418 for Stack Smashing Protector
2420 2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2423 * c-common.c (min_precision): Move to...
2424 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
2425 * tree.h (tree_int_cst_min_precision): Declare.
2426 * c-common.h (min_precision): Delete declaration.
2427 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
2428 multiplication of non-negative integer constants.
2429 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
2430 tree_int_cst_min_precision.
2431 (finish_enum): Likewise.
2433 2008-10-29 Joseph Myers <joseph@codesourcery.com>
2436 * convert.c (convert_to_real): Do not optimize conversions of
2437 binary arithmetic operations between binary and decimal
2438 floating-point types. Consider mode of target type in determining
2439 decimal type for arithmetic. Unless
2440 flag_unsafe_math_optimizations, do not optimize binary conversions
2441 where this may change rounding behavior.
2442 * real.c (real_can_shorten_arithmetic): New.
2443 * real.h (real_can_shorten_arithmetic): Declare.
2445 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
2447 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
2448 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
2449 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
2451 (must_save_p): For some workarounds, interrupts need to clobber a
2453 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
2454 and LC1 for WA_05000257.
2455 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
2456 WA_05000283 and WA_05000315.
2457 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
2458 (movbi): Add alternative to set CC to 1; improve code for setting
2460 (dummy_load): New pattern.
2462 2008-10-29 Jakub Jelinek <jakub@redhat.com>
2465 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
2466 BLKmode for non-memory, convert using a wider MODE_INT mode
2470 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
2471 that haven't been removed yet.
2473 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
2475 * config/bfin/bfin.c (struct machine_function): New member
2476 has_loopreg_clobber.
2477 (bfin_expand_movmem): Set it when generating memcpy insns.
2478 (n_regs_saved_by_prologue, expand_prologue_reg_save,
2479 expand_epilogue_reg_restore): If we have hardware loops,
2480 memcpy insns (indicated by has_loopreg_clobber) or function
2481 calls, we need to save the loop registers.
2483 2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
2485 * config/i386/i386.c (core2_cost): Fix typos in comments.
2487 2008-10-28 Jakub Jelinek <jakub@redhat.com>
2490 * combine.c (make_compound_operation): Don't call make_extraction with
2491 non-positive length.
2492 (simplify_shift_const_1): Canonicalize count even if complement_p.
2494 2008-10-28 Joseph Myers <joseph@codesourcery.com>
2496 * convert.c (strip_float_extensions): Do not remove or introduce
2497 conversions between binary and decimal floating-point types.
2499 2008-10-28 Jakub Jelinek <jakub@redhat.com>
2502 * fold-const.c (distribute_bit_expr): Convert common, left and
2503 right arguments to type.
2505 2008-10-28 Nick Clifton <nickc@redhat.com>
2507 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
2508 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
2509 call_really_used_regs array rather than the call_used_regs array.
2510 (mn10300_get_live_callee_saved_regs, expand_prologue,
2511 expand_epilogue, output_tst): Likewise.
2513 2008-10-27 Jakub Jelinek <jakub@redhat.com>
2516 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
2517 (df_get_entry_block_def_set): Neither here.
2518 (df_get_regular_block_artificial_uses): Add EH_USES registers.
2520 PR tree-optimization/37879
2521 * predict.c (tree_estimate_probability): Check if last_stmt is
2522 non-NULL before dereferencing it.
2524 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2526 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
2527 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
2528 (ira_fast_allocation): Remove the prototype.
2530 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
2531 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
2532 (color_pass): Modify the updated costs.
2533 (ira_color): Rename to color. Make it static.
2534 (ira_fast_allocation): Rename to fast_allocation. Make it static.
2535 (ira_color): New function.
2537 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
2540 * ira-lives.c (last_call_num, allocno_saved_at_call): New
2542 (set_allocno_live, clear_allocno_live, mark_ref_live,
2543 mark_ref_dead): Invalidate corresponding element of
2544 allocno_saved_at_call.
2545 (process_bb_node_lives): Increment last_call_num. Setup
2546 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
2547 allocno was already saved.
2548 (ira_create_allocno_live_ranges): Initiate last_call_num and
2549 allocno_saved_at_call.
2551 * ira-build.c (ira_create_allocno): Initiate
2552 ALLOCNO_UPDATED_COVER_CLASS_COST.
2553 (create_cap_allocno, propagate_allocno_info,
2554 remove_unnecessary_allocnos): Remove setting updated costs.
2555 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
2557 * ira.c (ira): Don't call ira_fast_allocation.
2559 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
2562 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2565 * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
2567 * ira-int.h (ira_hard_regno_cover_class): New.
2569 * ira-lives.c (mark_reg_live, mark_reg_dead,
2570 process_bb_node_lives): Use ira_hard_regno_cover_class.
2572 * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
2573 (setup_hard_regno_cover_class): New function.
2574 (ira_init): Call setup_hard_regno_cover_class.
2576 * ira-costs.c (cost_class_nums): Add comment.
2577 (find_allocno_class_costs): Initiate cost_class_nums.
2578 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
2580 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
2583 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
2584 Rename to copy_info_to_removed_store_destinations. Propagate
2585 conflict hard regs and register stack attribute.
2587 2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2590 * pa.c (function_arg_padding): Pad complex and vector types
2591 upward in 64-bit runtime.
2592 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
2594 2008-10-26 Matthias Klose <doko@ubuntu.com>
2596 * doc/install.texi: Document requirements on antlr.
2598 2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
2600 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
2603 2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
2606 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
2607 is defined, use it to modify the constant offset.
2609 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
2611 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
2612 and short arguments to the correct location as mandated by the ABI.
2614 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
2616 PR rtl-optimization/37769
2617 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
2619 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
2621 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
2622 unwind-dw2-Os-4-200.o.
2624 2008-10-24 Joseph Myers <joseph@codesourcery.com>
2626 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
2627 (convert_for_assignment): Remove ic_argpass_nonproto cases.
2629 2008-10-24 Jakub Jelinek <jakub@redhat.com>
2631 PR tree-optimization/36038
2632 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
2633 add sizetype IV with initial value zero instead of pointer type.
2635 2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
2638 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
2639 around bit operation.
2640 * profile.c (is_edge_inconsistent): Likewise.
2641 * fold-const.c (truth_value_p): Move from here...
2642 * tree.h (truth_value_p): ... to here.
2643 * c-tree.h (c_expr): Update description of original_code.
2644 * c-typeck.c (parser_build_unary_op): Set original_code.
2645 (parser_build_binary_op): Update call to warn_about_parentheses.
2646 * c-common.c (warn_about_parentheses): Take two additional
2647 arguments of the operands. Use a switch. Quote operators
2648 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
2649 Add warning about !x | y and !x & y.
2650 * c-common.h (warn_about_parentheses): Update declaration.
2652 2008-10-24 Jakub Jelinek <jakub@redhat.com>
2654 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
2655 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
2656 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
2658 (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
2659 (check-%): For test targets listed in lang_checks_parallelized
2660 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
2661 run the testing in multiple make goals, possibly parallel, and
2662 afterwards run dg-extract-results.sh to merge the sum and log files.
2664 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
2666 * config/mips/mips.c (mips_canonicalize_move_class): New function.
2667 (mips_move_to_gpr_cost): Likewise.
2668 (mips_move_from_gpr_cost): Likewise.
2669 (mips_register_move_cost): Make more fine-grained.
2671 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
2673 * graphite.c (graphite_apply_transformations): Check for
2674 -fgraphite-identity.
2675 * toplev.c (process_options): Add graphite_identity.
2676 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
2678 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
2680 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
2681 mulhisihl and mulhisihh builtins.
2683 From Jie Zhang <jie.zhang@analog.com>
2684 * config/bfin/bfin.md (composev2hi): Put operands into vector
2687 2008-10-22 Chao-ying Fu <fu@mips.com>
2689 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
2691 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
2693 From Mike Frysinger <michael.frysinger@analog.com>
2694 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
2695 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
2696 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
2697 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
2698 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
2699 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
2700 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
2701 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
2702 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
2703 __ADSPBF51x__ for all of them.
2704 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
2705 -mcpu bf512, bf514, bf516, and bf518.
2706 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2707 bf512-none, bf514-none, bf516-none, and bf518-none.
2708 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2709 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2710 * doc/invoke.texi (Blackfin Options): Document that
2711 -mcpu now accepts bf512, bf514, bf516, and bf518.
2713 2008-10-22 Jakub Jelinek <jakub@redhat.com>
2716 * fold-const.c (build_range_type): For 1 .. signed_max
2717 range call build_nonstandard_inter_type if signed_type_for
2718 returned a type with bigger precision.
2720 2008-10-22 Richard Guenther <rguenther@suse.de>
2722 * tree.def (COMPLEX_TYPE): Constrain element type.
2723 * tree.c (build_complex_type): Assert that.
2724 * tree-ssa-structalias.c (could_have_pointers): Complex types
2725 cannot have pointers.
2727 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
2730 * c-typeck.c (convert_for_assignment): Do not give declaration's
2731 location for builtins. Spell out which type was expected and which
2734 2008-10-22 Nick Clifton <nickc@redhat.com>
2736 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
2737 the fdpic register to be a target when running in fdpic mode.
2739 2008-10-22 Rafael Espindola <espindola@google.com>
2741 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
2742 newly created statements.
2744 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
2747 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
2748 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
2749 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
2751 2008-10-22 Jakub Jelinek <jakub@redhat.com>
2754 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
2755 Adjust -mcmodel=medium description for 2005-07-31 changes.
2757 2008-10-22 Jan Hubicka <jh@suse.cz>
2758 Jakub Jelinek <jakub@redhat.com>
2761 * doc/invoke.texi: Remove references to obsoleted -d dumps.
2763 2008-10-21 Richard Henderson <rth@redhat.com>
2766 * emit-rtl.c (get_spill_slot_decl): Export.
2767 * emit-rtl.h (get_spill_slot_decl): Declare.
2768 * var-tracking.c (vt_add_function_parameters): Relax assertion
2769 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
2771 2008-10-21 Bob Wilson <bob.wilson@acm.org>
2773 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
2774 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
2777 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
2780 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
2781 processed by get_maxval_strlen.
2783 2008-10-21 David Edelsohn <edelsohn@gnu.org>
2786 * tree.c (get_file_function_name): Copy first_global_object_name.
2787 Centralize call to clean_symbol_name.
2789 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
2791 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
2792 * config/svr4.h (SVR4_ASM_SPEC): New.
2793 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2794 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2796 * doc/invoke.texi (Option Summary): Add -T to linker options.
2797 (Link Options): Document -T.
2799 2008-10-21 Jakub Jelinek <jakub@redhat.com>
2801 * tree-inline.c (tree_inlinable_function_p): Remove tuples
2804 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2807 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
2809 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
2811 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
2814 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
2816 * doc/install.texi: Fix typos in previous patch.
2818 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
2820 * doc/install.texi: Document in-tree building of gcc and mpfr.
2822 2008-10-19 Richard Guenther <rguenther@suse.de>
2824 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
2826 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2829 * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
2830 (build_enumerator): Convert enumerators that fit in integer to
2833 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
2835 * config/i386/i386.md (unnamed peephole2): Do not force memory
2836 operands of arith or logical instructions into registers for
2837 non-TARGET_READ_MODIFY targets.
2839 (ffs_cmove): Change operand 0 predicate to register_operand.
2840 Change operand 1 predicate to nonimmediate_operand.
2842 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
2844 2008-10-18 Richard Guenther <rguenther@suse.de>
2846 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
2847 VIEW_CONVERT_EXPR case against invalid gimple.
2849 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
2851 * c-parser.c (c_parser_binary_expression): Silence the
2852 uninitialized variable warning emitted for binary_loc.
2854 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
2856 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
2859 2008-10-16 Joseph Myers <joseph@codesourcery.com>
2862 * c-typeck.c (build_unary_op): Use omit_one_operand for
2863 IMAGPART_EXPR of real argument.
2865 2008-10-16 Jakub Jelinek <jakub@redhat.com>
2867 PR tree-optimization/37664
2868 * fold-const.c (fold_binary): When optimizing comparison with
2869 highest or lowest type's value, don't consider TREE_OVERFLOW.
2871 2008-10-16 David Edelsohn <edelsohn@gnu.org>
2874 * Makefile.in (coverage.o): Depend on $(TM_P_H).
2875 * coverage.c: Include tm_p.h.
2876 * config/rs6000/x-aix (jc1): Override LDFLAGS.
2877 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
2878 dollar signs from PREFIX.
2879 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
2880 instead of manual strip_name_encoding.
2882 2008-10-16 Richard Guenther <rguenther@suse.de>
2885 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
2886 volatile qualified functions or methods as relevant.
2888 2008-10-16 Jakub Jelinek <jakub@redhat.com>
2890 PR tree-optimization/37525
2891 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
2892 sizetype unsigned constants, both in the case of C and bounds.
2894 2008-10-15 Jan Hubicka <jh@suse.cz>
2896 * ira-emit.c (change_regs): Return false when replacing reg by itself.
2898 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
2901 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
2902 HARD_REGNO_CALL_PART_CLOBBERED.
2904 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
2907 * ira-lives.c (mark_early_clobbers): Remove.
2908 (make_pseudo_conflict, check_and_make_def_use_conflicts,
2909 check_and_make_def_conflicts,
2910 make_early_clobber_and_input_conflicts,
2911 mark_hard_reg_early_clobbers): New functions.
2912 (process_bb_node_lives): Call
2913 make_early_clobber_and_input_conflicts and
2914 mark_hard_reg_early_clobbers. Make hard register inputs live again.
2916 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
2917 early clobbers of pseudo-registers.
2919 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
2922 * ira-build.c (ira_flattening): Recalculate
2923 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
2924 from the scratch instead of the propagation.
2926 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
2928 * doc/rtl.texi (const_double): Remove the "addr" operand.
2929 Describe CONST_DOUBLE_* macros under const_double rather
2931 (const_fixed): Fix the operand description.
2932 (const): Add an @findex directive.
2933 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
2934 after the constant rtl table.
2935 (fix): Combine floating-point and fixed-point descriptions.
2937 * sched-deps.c (sched_analyze_2): Remove reference to
2940 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
2942 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
2944 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
2945 for UNSPEC_GOTSYM_OFFs.
2946 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
2947 (add_GOT_to_pic_reg): Use it.
2948 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
2950 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
2951 Harsha Jagasia <harsha.jagasia@amd.com>
2953 PR tree-optimization/37485
2954 * graphite.c (gmp_cst_to_tree): Moved.
2955 (iv_stack_entry_is_constant): New.
2956 (iv_stack_entry_is_iv): New.
2957 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
2958 (loop_iv_stack_insert_constant): New.
2959 (loop_iv_stack_pop): Use new datatpype.
2960 (loop_iv_stack_get_iv): Same.
2961 (loop_iv_stack_get_iv_from_name): Same.
2962 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
2963 (loop_iv_stack_patch_for_consts): New.
2964 (loop_iv_stack_remove_constants): New.
2965 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
2966 (translate_clast): Call loop_iv_stack_patch_for_consts and
2967 loop_iv_stack_remove_constants.
2968 (gloog): Use new datatype. Redirect construction edge to end
2969 block to avoid accidental deletion.
2970 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
2972 (union iv_stack_entry_data): New. Data in iv stack entry.
2973 (struct iv_stack_entry): New. Datatype for iv stack entries.
2975 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
2977 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
2978 * graphite.c (free_scop): Same.
2979 (build_scops): Same.
2980 (free_scattering): New.
2981 (build_cloog_prog): Call free_scattering.
2982 (patch_phis_for_virtual_defs): Fix memleak.
2983 (graphite_trans_bb_strip_mine): Same.
2984 (limit_scops): Same.
2986 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
2987 Harsha Jagasia <harsha.jagasia@amd.com>
2989 PR tree-optimization/37828
2990 * graphite.c (graphite_trans_loop_block): Do not loop block
2991 single nested loops.
2993 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
2995 PR tree-optimization/37686
2996 * tree-loop-linear.c (linear_transform_loops): Build a
2997 loop nest vector. Pass it to lambda_compute_access_matrices.
2998 * tree-data-ref.h (struct access_matrix): Store the loop nest
2999 relative to which it encodes the information.
3000 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
3001 (am_vector_index_for_loop): Reimplemented: iterate over the
3002 loop nest for finding the loop index in the access matrix.
3003 (lambda_compute_access_matrices): Update declaration.
3004 * lambda-code.c (build_access_matrix): Pass the loop nest and
3006 (lambda_compute_access_matrices): Same.
3008 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
3010 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
3011 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
3012 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
3013 already implies hard float. Also fix several insn condition
3014 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
3016 2008-10-15 David Edelsohn <edelsohn@gnu.org>
3019 Based on patches by Laurent Vivier.
3020 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
3021 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
3022 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
3023 dollar sign to underscore.
3024 (ASM_OUTPUT_EXTERNAL): Same.
3025 (ASM_OUTPUT_LABELREF): New.
3026 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
3028 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
3029 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
3030 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
3031 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
3033 2008-10-15 Jakub Jelinek <jakub@redhat.com>
3035 PR tree-optimization/36881
3036 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
3037 that each value doesn't need runtime relocations, for !flag_pic
3038 check that each value is just a valid initializer constant.
3040 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
3042 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
3043 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
3044 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
3045 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
3047 (REG_CLASS_NAMES): Update accordingly.
3048 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
3049 rather than an unpredictable descriptive string.
3050 * config/mips/mips.c (mips_register_move_cost): Remove comment.
3051 (mips_register_move_cost): Check for specific COP*_REGS classes,
3052 instead of ALL_COP_AND_GR_REGS.
3053 (mips_ira_cover_classes): New function.
3054 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
3055 (TARGET_IRA_COVER_CLASSES): Define.
3057 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
3060 * tree.c (build_type_attribute_qual_variant): Hash on the
3061 unqualified type, and don't overwrite an existing
3062 (type_hash_eq): Make the TYPE_NAME of the types significant, to
3063 allow distinguishing between wchar_t and its underlying type. This
3064 also means that we'll retain a little more typedef information.
3066 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
3067 Dmitry Melnik <dm@ispras.ru>
3068 Dmitry Zhurikhin <zhur@ispras.ru>
3069 Alexander Monakov <amonakov@ispras.ru>
3070 Maxim Kuvyrkov <maxim@codesourcery.com>
3072 * target.h (struct gcc_target): Update prototypes of needs_block_p
3074 * haifa-sched.c (create_check_block_twin): Update calls to the above.
3075 * sel-sched.c (create_speculation_check): Likewise.
3076 * doc/tm.texi: Provide documentation for new target hooks.
3078 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
3079 (ia64_gen_spec_insn): Removed.
3080 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
3081 ia64_gen_spec_check): New static functions.
3082 (ia64_alloc_sched_context, ia64_init_sched_context,
3083 ia64_set_sched_context, ia64_clear_sched_context,
3084 ia64_free_sched_context, ia64_get_insn_spec_ds,
3085 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
3086 (ia64_needs_block_p): Change prototype.
3087 (ia64_gen_check): Rename to ia64_gen_spec_check.
3088 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
3089 into declaration, add special memory dependencies handling.
3090 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
3091 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3092 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3093 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
3094 Define new target hooks.
3095 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3096 (ia64_optimization_options): Turn on selective scheduling with -O3,
3097 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
3098 default with selective scheduling.
3099 (ia64_override_options): Initialize align_loops and align_functions
3100 to 32 and 64, respectively. Set global selective scheduling flags
3101 according to target-dependent flags.
3102 (rtx_needs_barrier): Support UNSPEC_LDS_A.
3103 (group_barrier_needed): Use new mstop-bit-before-check flag.
3105 (dfa_state_size): Make global.
3106 (spec_check_no, max_uid): Remove.
3107 (mem_ops_in_group, current_cycle): New variables.
3108 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3109 Initialize new variables.
3110 (is_load_p, record_memory_reference): New functions.
3111 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
3113 (ia64_variable_issue): Change use of current_sched_info to
3114 sched_deps_info. Update comment. Note if a load or a store is issued.
3115 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
3116 advance if maximal number of loads or stores was issued on current
3118 (scheduled_good_insn): New static helper function.
3119 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
3120 a group barrier is needed. Fix vertical spacing. Guard the code
3121 doing state transition with last_scheduled_insn check.
3122 Mark that a stop bit should be before current insn if there was a
3123 cycle advance. Update current_cycle and mem_ops_in_group.
3124 (ia64_h_i_d_extended): Change use of current_sched_info to
3125 sched_deps_info. Reallocate stops_p by larger chunks.
3126 (struct _ia64_sched_context): New structure.
3127 (ia64_sched_context_t): New typedef.
3128 (ia64_alloc_sched_context, ia64_init_sched_context,
3129 ia64_set_sched_context, ia64_clear_sched_context,
3130 ia64_free_sched_context): New static functions.
3131 (gen_func_t): New typedef.
3132 (get_spec_load_gen_function): New function.
3133 (SPEC_GEN_EXTEND_OFFSET): Declare.
3134 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3135 (get_mode_no_for_insn): Change the condition that prevents use of
3136 special hardware registers so it can now handle pseudos.
3137 (get_spec_unspec_code): New function.
3138 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
3139 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
3140 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
3141 during selective scheduling.
3142 (ia64_speculate_insn): Use ds_get_speculation_types when
3143 determining whether we need to change the pattern.
3144 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
3145 (ia64_spec_check_src_p): Support new speculation/check codes.
3146 (struct bundle_state): New field.
3147 (issue_nops_and_insn): Initialize it.
3148 (insert_bundle_state): Minimize mid-bundle stop bits.
3149 (important_for_bundling_p): New function.
3150 (get_next_important_insn): Use important_for_bundling_p.
3151 (bundling): When shifting TImode from unimportant insns, ignore
3152 also group barriers. Assert that best state is found before
3153 the backward bundling pass. Print number of mid-bundle stop bits.
3154 Minimize mid-bundle stop bits. Check correct calculation of
3155 mid-bundle stop bits.
3156 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
3157 (final_emit_insn_group_barriers): Emit stop bits before insns starting
3159 (sel2_run): New variable.
3160 (ia64_reorg): When flag_selective_scheduling2 is set, run the
3161 selective scheduling pass instead of schedule_ebbs.
3163 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
3164 (UNSPEC_LDS_A): New UNSPEC.
3165 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
3166 movti_internal, movsf_internal, movdf_internal,
3167 movxf_internal): Make visible. Add speculable* attributes.
3168 (output_c_nc): New mode attribute.
3169 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3170 mov<mode>_nc, zero_extend<mode>di2_nc,
3171 advanced_load_check_nc_<mode>): New insns.
3172 (zero_extend*): Add speculable* attributes.
3174 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
3175 (msched-stop-bits-after-every-cycle): Likewise.
3176 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
3178 (msched-spec-verbose): Remove.
3179 (msched-prefer-non-data-spec-insns,
3180 msched-prefer-non-control-spec-insns,
3181 msched-count-spec-in-critical-path,
3182 msel-sched-dont-check-control-spec): Use Target Report Var
3183 instead of Common Report Var.
3185 * config/ia64/itanium2.md: Remove incorrect bypass.
3187 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
3189 2008-10-14 Jakub Jelinek <jakub@redhat.com>
3192 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3193 and -fhelp=separate.
3195 2008-10-14 Ben Elliston <bje@au.ibm.com>
3197 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
3199 2008-10-13 Joseph Myers <joseph@codesourcery.com>
3201 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
3204 2008-10-13 Matthias Klose <doko@ubuntu.com>
3206 * config/pa/linux-atomic.c: Work around missing header file
3207 for hppa64-linux-gnu targets.
3209 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
3210 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
3211 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3212 Grace Cao <grace_cao@playstation.sony.com>
3214 * doc/invoke.texi (-mgen-cell-microcode): Document.
3215 (-mwarn-cell-microcode): Document.
3216 * cfglayout.c (locator_location): Export.
3217 * rtl.h (locator_location): Define prototype.
3218 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
3220 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
3221 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
3222 (mwarn-cell-microcode): New option.
3223 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
3224 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
3225 cell and not already set.
3226 Turn off string instructions if not generating cell microcode.
3227 (rs6000_final_prescan_insn): New function that warns about microcoded
3229 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
3230 * config/rs6000/rs6000.md
3231 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3232 the instruction would have been microcoded on the Cell. Set
3233 cell_micro to always on unnamed patterns for the string instructions.
3234 (cell_micro): Update definition, remove load/store conditional
3236 (sign_extend:DI): Define new pattern for non microcoded version.
3237 (sign_extend:SI): Likewise.
3238 (compare (div:P)): Set cell_micro to not.
3239 (andsi3): Define as an expand.
3240 (andsi3_mc): New pattern.
3241 (andsi3_nomc): New pattern.
3242 (andsi3_internal0_nomc): New pattern.
3243 (andsi3_internal2): Rename to ...
3244 (andsi3_internal2_mc): this and enable iff generating microcode.
3245 (andsi3_internal3): Rename to ...
3246 (andsi3_internal3_mc): this and enable iff generating microcode.
3247 (andsi3_internal4): Enable iif generating microcode.
3248 (andsi3_internal5): Rename to ..
3249 (andsi3_internal5_mc): this and enable iff generating microcode.
3250 (andsi3_internal5_nomc): New pattern.
3251 (extzvdi_internal1): Enable iff generating microcode.
3252 (extzvdi_internal2): Likewise.
3253 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
3254 (anddi3): Change to expand.
3255 (anddi3_mc): Rename from anddi3.
3256 (anddi3_no_mc): New pattern.
3257 (anddi3_internal2): Rename to ..
3258 (anddi3_internal2_mc): this and enable iff generating microcode.
3259 (anddi3_internal2_nomc): New pattern.
3260 (anddi3_internal3): Rename to ..
3261 (anddi3_internal3_mc): this and enable iff generating microcode.
3262 (anddi3_internal3_nomc): New pattern.
3263 (movti_string): Set cell_micro to always if TARGET_STRING.
3264 (stmsi8): Set cell_micro to always.
3270 (stmsi8_power): Likewise.
3271 (stmsi7_power): Likewise.
3272 (stmsi6_power): Likewise.
3273 (stmsi5_power): Likewise.
3274 (stmsi4_power): Likewise.
3275 (stmsi3_power): Likewise.
3276 (movsi_update2): Enable iff generating microcode.
3277 (movhi_update3): Likewise.
3278 (lmw): Set cell_micro to always.
3280 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
3282 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
3283 * config/s390/s390.c (machine_function): Remove
3284 decomposed_literal_pool_addresses_ok_p.
3285 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
3286 the difference of two labels.
3287 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
3288 (s390_pool_offset): New function.
3289 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
3290 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
3292 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
3294 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
3295 (powerpc*-*-linux-gnu*): Describe.
3296 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
3297 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
3298 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
3299 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
3300 config/rs6000/e500crtres32gpr.asm,
3301 config/rs6000/e500crtres64gpr.asm,
3302 config/rs6000/e500crtres64gprctr.asm,
3303 config/rs6000/e500crtrest32gpr.asm,
3304 config/rs6000/e500crtrest64gpr.asm,
3305 config/rs6000/e500crtresx32gpr.asm,
3306 config/rs6000/e500crtresx64gpr.asm,
3307 config/rs6000/e500crtsav32gpr.asm,
3308 config/rs6000/e500crtsav64gpr.asm,
3309 config/rs6000/e500crtsav64gprctr.asm,
3310 config/rs6000/e500crtsavg32gpr.asm,
3311 config/rs6000/e500crtsavg64gpr.asm,
3312 config/rs6000/e500crtsavg64gprctr.asm: Use it.
3313 * config/rs6000/crtsavres.asm: Really remove.
3315 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
3318 * c-format.c (convert_format_name_to_system_name): Use
3319 TARGET_OVERRIDES_FORMAT_INIT.
3320 * config.gcc (extra_options): Add for mingw targets mingw.opt.
3321 * config/i386/mingw.opt: New.
3322 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
3323 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
3324 (ms_printf_length_specs): Removed const specifier.
3325 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
3326 * doc/invoke.texi (Wno-pedantic-ms-format): New.
3328 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3330 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
3331 * doc/install.texi: Bump recommended MPFR to 2.3.2.
3333 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
3336 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
3337 sure that ref has valid bb.
3339 2008-10-12 Richard Henderson <rth@redhat.com>
3342 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
3343 * alias.c (value_addr_p, stack_addr_p): Remove.
3344 (nonoverlapping_memrefs_p): Remove IRA special case.
3345 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
3346 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
3347 * reload1.c (alter_reg): Use it.
3349 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
3351 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
3352 of registers instead of eax, ebx, ecx and edx. Use for loop
3353 and check register for non-zero value before the call
3354 to decode_caches_intel.
3356 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3358 PR rtl-optimization/37448
3359 * df.h: (df_ref_class): New enum.
3360 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
3361 (struct df_ref): Replaced with union df_ref_d.
3362 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
3363 New members of df_ref_d union.
3364 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
3365 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
3366 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
3367 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
3368 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3369 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
3370 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
3371 (df_scan_bb_info, df_bb_regno_first_def_find,
3372 df_bb_regno_last_def_find, df_find_def, df_find_use,
3373 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3374 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
3375 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
3376 df_get_artificial_defs, df_get_artificial_uses, union_defs)
3377 Replaced struct df_ref * with df_ref.
3378 * df-scan.c (df_collection_rec, df_null_ref_rec,
3379 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
3380 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
3381 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
3382 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
3383 df_reorganize_refs_by_reg_by_reg,
3384 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
3385 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
3386 df_sort_and_compress_refs, df_install_ref, df_install_refs,
3387 df_ref_record, df_get_conditional_uses, df_get_call_refs,
3388 df_bb_refs_record, df_exit_block_uses_collect,
3389 df_record_exit_block_uses, df_reg_chain_mark,
3390 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
3391 df_ref * with df_ref.
3392 (df_ref_record, df_uses_record, df_ref_create_structure): Added
3393 df_ref_class parameter.
3394 (df_scan_problem_data): Added new pools for different types of refs.
3395 (df_scan_free_internal, df_scan_alloc, df_free_ref,
3396 df_ref_create_structure): Processed new ref pools.
3397 (df_scan_start_dump): Added counts of refs and insns.
3398 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
3399 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3400 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
3401 code to pass df_ref_class down to ref creation functions.
3402 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
3403 df_reg_chain_mark): Use macros to hide references to df_refs.
3404 (df_ref_chain_change_bb): Removed.
3405 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
3406 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3407 Enhanced to understand df_ref union structure.
3408 * fwprop.c (local_ref_killed_between_p, use_killed_between,
3409 all_uses_available_at, update_df, try_fwprop_subst,
3410 forward_propagate_subreg, forward_propagate_and_simplify,
3411 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
3412 df_ref * with df_ref.
3413 (use_killed_between, all_uses_available_at): Use macros to hide
3414 references to df_refs.
3415 * regstat.c (regstat_bb_compute_ri,
3416 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
3418 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
3419 see_handle_relevant_refs, see_analyze_one_def,
3420 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
3421 struct df_ref * with df_ref.
3422 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
3423 global_conflicts): Replaced struct df_ref * with df_ref.
3424 * ddg.c (create_ddg_dep_from_intra_loop_link,
3425 add_cross_iteration_register_deps, build_inter_loop_deps):
3426 Replaced struct df_ref * with df_ref.
3427 (create_ddg_dep_from_intra_loop_link,
3428 add_cross_iteration_register_deps): Use macros to hide references
3430 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
3431 df_ref * with df_ref.
3432 * df-core.c (df_bb_regno_first_def_find,
3433 df_bb_regno_last_def_find, df_find_def, df_find_use,
3434 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3435 debug_df_ref): Replaced struct df_ref * with df_ref.
3436 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
3437 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
3439 * web.c (union_defs, entry_register, replace_ref, web_main):
3440 Replaced struct df_ref * with df_ref.
3441 (union_defs, replace_ref): Use macros to hide references to df_refs.
3442 * global.c (compute_regs_asm_clobbered, build_insn_chain):
3443 Replaced struct df_ref * with df_ref.
3444 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
3445 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets):
3446 Replaced struct df_ref * with df_ref.
3447 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
3448 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
3450 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
3451 * df-byte-scan.c (df_compute_accessed_bytes_extract,
3452 df_compute_accessed_bytes_strict_low_part,
3453 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
3454 Replaced struct df_ref * with df_ref.
3455 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
3456 * init-regs.c (initialize_uninitialized_regs): Replaced struct
3457 df_ref * with df_ref.
3458 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
3459 check_dependency, check_dependencies, record_uses): Replaced
3460 struct df_ref * with df_ref.
3461 (invariant_for_use, check_dependency): Use macros to hide
3462 references to df_refs.
3463 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
3464 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
3465 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
3466 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
3467 references to df_refs.
3468 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
3470 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
3471 * df-problems.c (df_rd_bb_local_compute_process_def,
3472 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
3473 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
3474 df_chain_remove_problem, df_chain_create_bb_process_use,
3475 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
3476 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
3477 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
3478 df_byte_lr_simulate_artificial_refs_at_top,
3479 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
3480 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
3481 df_simulate_uses, df_simulate_artificial_refs_at_end,
3482 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
3484 (df_chain_dump): Use macros to hide references to df_refs.
3485 * config/mips/mips.c (r10k_simplify_address): Replaced struct
3486 df_ref * with df_ref.
3487 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
3488 mark_artificial_uses, mark_reg_dependencies,
3489 byte_dce_process_block): Replaced struct df_ref * with df_ref.
3491 2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
3493 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
3495 (array_ref_element_size): Likewise.
3496 (array_ref_low_bound): Likewise.
3497 (array_ref_up_bound): Likewise.
3498 * expr.c (contains_packed_reference): Likewise.
3499 (array_ref_element_size): Likewise.
3500 (array_ref_low_bound): Likewise.
3501 (array_ref_up_bound): Likewise.
3502 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
3503 with ARRAY_RANGE_REF.
3504 (idx_find_step): Likewise.
3505 (idx_record_use): Likewise.
3506 (strip_offset_1): Likewise.
3507 (idx_remove_ssa_names): Likewise.
3509 2008-10-11 Uros Bizjak <ubizjak@gmail.com>
3510 Andi Kleen <ak@linux.intel.com>
3512 * config/i386/cpuid.h (__cpuid_count): New defines.
3513 * config/i386/driver-i386.c (struct cache_desc): New structure.
3514 (describe_cache): Use struct cache_desc to pass cache descriptions.
3515 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
3516 (detect_caches_amd): Use struct cache_desc to describe caches.
3517 (decode_caches_intel): Use struct cache_desc to pass cache
3518 descriptions. Update descriptions to match latest (rev -032,
3519 December 2007) CPUID documentation. Do not check valid bit here.
3520 Check for Xeon MP value 0x49 problems.
3521 (detect_caches_cpuid2): New function, split from detect_caches_intel.
3522 Check valid bit before calling decode_caches_intel. Detect number
3523 of times to repeat CPUID instruction.
3524 (detect_caches_cpuid4): New function.
3525 (detect_caches_intel): Depending on max_level, call
3526 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
3527 only when other methods fail to provide valid L2 cache description.
3529 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3532 * pa.md (call, call_value): Generate an rtx for register r4 and pass
3533 it to PIC call patterns.
3534 (call_symref_pic): Revise pattern to expose PIC register save. Remove
3535 code generation and attributes from pattern. Change peephole2 to
3536 split for noreturn case. Revise split pattern for non noreturn case.
3537 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
3538 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
3539 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
3542 2008-10-11 David Edelsohn <edelsohn@gnu.org>
3544 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
3545 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
3547 (divdf3): Reformat long line.
3549 2008-10-11 Michael J. Eager <eager@eagercon.com>
3551 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
3553 (rs6000_handle_option): Process -mfpu options.
3554 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
3555 (enum fpu_type_t): New.
3556 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
3557 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
3559 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
3560 (floatdidf2): Add TARGET_SINGLE_FPU condition.
3561 * config/rs6000/rs6000.opt (-mfpu): New.
3562 (-mxilinx-fpu): New.
3563 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
3564 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
3565 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
3566 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
3567 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
3569 2008-10-11 Jakub Jelinek <jakub@redhat.com>
3572 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
3573 LO_SUM on Darwin if mode has just one unit.
3575 2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
3578 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
3579 has been optimized out.
3581 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
3583 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
3584 instead of PIC_DIRECT_ADDR_P.
3585 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3586 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
3587 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
3588 (PIC_OFFSET_P): Rename to...
3589 (PCREL_SYMOFF_P): ...this.
3590 (PIC_DIRECT_ADDR_P): Delete.
3591 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
3593 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
3594 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
3595 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
3596 * config/sh/sh.c (print_operand): Remove CONST handling.
3597 (unspec_caller_rtx_p): Rewrite to use split_const and check
3598 the operands of UNSPEC bases.
3599 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
3600 with (unspec [A B] UNSPEC_SYMOFF).
3601 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
3602 UNSPEC_PCREL_SYMOFF.
3603 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
3604 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
3605 (UNSPEC_EXTRACT_U16): Likewise.
3606 (UNSPEC_SYMOFF): Likewise.
3607 (UNSPEC_PCREL_SYMOFF): Likewise.
3608 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
3610 (movsi_const_16bit): Likewise.
3611 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
3612 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
3613 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
3614 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
3615 with (unspec [A B] UNSPEC_SYMOFF).
3616 (symPLT_label2reg): Replace (minus A (minus B pc)) with
3617 (unspec [A B] PCREL_UNSPEC_SYMOFF).
3618 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
3619 (Csu): Likewise UNSPEC_EXTRACT_U16.
3620 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
3621 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
3623 2008-10-10 Stepan Kasal <skasal@redhat.com>
3625 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
3626 for loop strip mining and loop blocking.
3628 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
3630 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
3631 vary types depending on debug info.
3633 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
3635 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
3636 before ensuring it's already computed.
3638 2008-10-09 Jakub Jelinek <jakub@redhat.com>
3640 * rtl.h (locator_eq): New decl.
3641 * cfglayout.c (locator_scope): New function.
3642 (insn_scope): Use it.
3643 (locator_eq): New function.
3644 (fixup_reorder_chain): Search for last insn in src bb
3645 that has locator set or first insn in dest bb. Use
3646 locator_eq instead of == to compare locators.
3647 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
3648 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
3649 == to compare locators.
3651 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
3653 * gimple-low.c (lower_function_body, lower_gimple_return,
3654 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
3655 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
3656 goto_block on edges if goto_locus is known.
3659 * tree.h (get_object_alignment): Declare.
3660 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
3661 get_object_alignment if needed.
3662 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
3664 (get_object_alignment): ... here. New function. Try harder to
3665 determine alignment from get_inner_reference returned offset.
3667 2008-10-08 Jakub Jelinek <jakub@redhat.com>
3669 * graphite.c (gloog): Don't call find_unreachable_blocks
3670 before delte_unreachable_blocks.
3672 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
3673 goto_locus of true_edge into RTL locator.
3675 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
3677 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
3678 (*jcc_btdi_mask_rex64): Ditto.
3680 (*jcc_btsi_mask): Ditto.
3681 (*jcc_btsi_1): Ditto.
3682 (*jcc_btsi_mask_1): Ditto.
3684 2008-10-08 Paul Brook <paul@codesourcery.com>
3686 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
3687 compatible profiler (__gnu_mcount_nc).
3688 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
3690 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
3692 * config/i386/i386.c (initial_ix86_tune_features): Add
3693 X86_TUNE_USE_VECTOR_FP_CONVERTS.
3694 * config/i386/i386.h (ix86_tune_indices): Likewise.
3695 (TARGET_USE_VECTOR_FP_CONVERTS): New.
3697 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
3698 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
3699 for FP to FP splitters.
3701 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
3703 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
3706 2008-10-08 Jakub Jelinek <jakub@redhat.com>
3710 PR rtl-optimization/37341
3711 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
3712 to ORIG_BB, pass through ORIG_BB recursively.
3713 (cse_condition_code_reg): Adjust caller.
3715 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
3717 * sdbout.c (sdbout_one_type): Treat the value type
3718 CONST_DECL for enumerals.
3720 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
3722 * config/i386/i386.md: Remove trailing white spaces.
3724 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
3726 PR rtl-optimization/37448
3727 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
3728 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
3730 (struct output_info) [count]: Renamed total_created and made
3732 (struct output_info) [size]: Renamed total_allocated and made
3734 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
3735 Properly keep track of desc->size.
3736 (print_statistics, dump_alloc_pool_statistics): Enhance the
3737 printing of statistics to print the number of elements and to use
3740 2008-10-07 Jakub Jelinek <jakub@redhat.com>
3743 * opts.h (CL_SAVE): Move up to flags range.
3744 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
3745 CL_COMMON): Renumber.
3746 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
3747 * opts.c (common_handle_option): Revert last change.
3749 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
3751 * config/i386/i386-protos.h (ix86_schedule): New.
3753 * config/i386/i386.c (ix86_schedule): New.
3754 (override_options): Add schedule to processor_alias_table. Set
3755 ix86_schedule from the schedule field in processor_alias_table.
3756 (ix86_function_specific_save): Save ix86_schedule.
3757 (ix86_function_specific_restore): Restore ix86_schedule.
3759 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
3760 ix86_tune. Add none and remove i386, i486, pentium4, nocona
3763 * config/i386/i386.opt: Add schedule.
3765 * config/i386/ppro.md: Remove generic32.
3767 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
3770 * expr.c (count_type_elements): Handle ERROR_MARK.
3772 2008-10-07 Jakub Jelinek <jakub@redhat.com>
3777 * basic-block.h (struct edge_def): Add goto_block field.
3778 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
3779 one insn with locus corresponding to edge's goto_locus if !optimize.
3780 * profile.c (branch_prob): Copy edge's goto_block.
3781 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
3783 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
3784 locator in between the merged basic blocks if !optimize and needed.
3785 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
3786 goto_locus into RTL locator. For unconditional jump use that
3787 locator for the jump insn.
3788 (expand_gimple_cond): Convert goto_block and goto_locus into
3789 RTL locator for all remaining edges. For unconditional jump
3790 use that locator for the jump insn.
3791 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
3792 there is more than one edge or insn locator along the forwarding
3793 edges and !optimize. If there is just one, set e->goto_locus.
3794 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
3796 (move_block_to_fn): Adjust edge's goto_block.
3798 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
3801 * expmed.c (expand_mult): Properly check DImode constant in
3804 2008-10-07 Jakub Jelinek <jakub@redhat.com>
3807 * dwarf2out.c (common_block_die_table): New variable.
3808 (common_block_die_table_hash, common_block_die_table_eq): New
3810 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
3811 COMMON block in the current scope rather than globally. Optimize
3812 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
3813 DW_OP_addr SYMBOL_REF+off.
3815 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
3817 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
3818 Return true for non-addressable GIMPLE operands.
3820 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
3823 * config/i386/i386.c (initial_ix86_tune_features): Remove
3824 X86_TUNE_USE_BIT_TEST.
3825 * config/i386/i386.h (ix86_tune_indices): Likewise.
3826 (TARGET_USE_BIT_TEST): Removed.
3828 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3830 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
3832 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
3834 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
3835 (mul<mode>3_mul3): ... into this new template.
3837 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
3839 * gimplify.c (gimplify_arg): Add location argument. Use it.
3840 (gimplify_call_expr): Pass location to gimplify_arg.
3841 (gimplify_modify_expr_to_memcpy): Same.
3842 (gimplify_modify_expr_to_memset): Same.
3844 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
3846 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3847 Update calls to build_unary_op and build_indirect_ref for location
3850 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
3853 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
3854 * c-typeck.c (array_to_pointer_conversion): Pass location to
3856 (function_to_pointer_conversion): Use error_at and warning_at.
3857 (build_indirect_ref): Same.
3858 (build_array_ref): Pass location to build_binary_op.
3859 (parser_build_unary_op): Do not set location after calling
3861 (build_unary_op): Add location argument. Use it throughout. Set
3862 EXPR_LOCATION before returning new tree.
3863 (build_modify_expr): Same.
3864 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
3866 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
3867 build_indirect_ref, build_modify_expr.
3868 (c_finish_omp_for): Same. Use error_at instead of error.
3869 * c-common.c (c_common_truthvalue_conversion): Pass location to
3871 (warn_for_div_by_zero): Add location argument.
3872 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
3873 build_unary_op, warn_for_div_by_zero.
3874 * c-parser.c (c_parser_typeof_specifier): Use
3875 protected_set_expr_location.
3876 (c_parser_statement_after_labels): Same.
3877 (c_parser_condition): Same.
3878 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
3879 (c_parser_conditional_expression): Use protected_set_expr_location.
3880 (c_parser_unary_expression): Pass location to build_indirect_ref.
3881 (c_parser_postfix_expression_after_primary): Pass location to
3882 build_indirect_ref, build_unary_op.
3883 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
3885 2008-10-06 Joshua Kinard <kumba@gentoo.org>
3887 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
3888 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
3889 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
3891 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
3892 (mips_issue_rate): Handle PROCESSOR_R10000.
3893 * config/mips/mips.md (cpu): Add r10000.
3895 * config/mips/10000.md: New file.
3897 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
3899 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
3900 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
3901 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
3903 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
3905 * config/darwin-protos.h (machopic_function_base_name): Delete.
3906 (machopic_function_base_sym): Likewise.
3907 (machopic_gen_offset): Declare.
3908 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
3909 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
3910 * config/darwin.c (machopic_function_base_name): Delete.
3911 (machopic_function_base_sym): Likewise.
3912 (gen_pic_offset): Rename to...
3913 (machopic_gen_offset): ...this and remove the pic_base argument.
3914 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
3915 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
3916 crtl->uses_pic_offset_table.
3917 (machopic_indirect_data_reference): Use new machopic_gen_offset
3919 (machopic_legitimize_pic_address): Likewise.
3920 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
3922 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
3923 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
3924 * config/i386/i386.c (output_set_got): Likewise.
3925 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
3927 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
3928 (legitimate_address_p): Likewise.
3929 (output_pic_addr_const): Likewise.
3930 (output_addr_const_extra): Likewise.
3931 (ix86_delegitimize_address): Expect darwin_local_data_pic to
3932 match an UNSPEC rather than a MINUS.
3933 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
3934 (builtin_setjmp_receiver): Use machopic_gen_offset.
3935 * config/i386/predicates.md (pic_symbolic_operand): Handle
3936 UNSPEC_MACHOPIC_OFFSET.
3938 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
3939 Use machopic_gen_offset and machopic_operand_p.
3940 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
3941 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
3942 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
3943 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
3944 Set crtl->uses_pic_offset_table.
3946 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
3948 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
3950 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
3951 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
3952 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
3953 (constant_pool_expr_p): Use split_const and check the base.
3954 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
3956 (legitimate_constant_pool_address_p): Check toc_relative_p
3957 instead of constant_pool_expr_p.
3958 (print_operand_address): Always use output_addr_const for
3959 constant pool addresses.
3960 (rs6000_output_addr_const_extra): New function.
3961 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
3963 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
3967 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
3968 (mark_ref_live, mark_ref_dead): Use them.
3969 (def_conflicts_with_inputs_p): Remove.
3970 (mark_early_clobbers): New function.
3971 (process_bb_node_lives): Call preprocess_constraints and
3972 mark_early_clobbers.
3974 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
3976 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
3978 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
3979 lib with -mthread switch.
3981 2008-10-05 Dodji Seketeli <dodji@redhat.com>
3984 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
3985 function in two, making it call a new and reusable
3986 dwarf2out_imported_module_or_decl() that takes the containing
3987 BLOCK of the declaration in argument.
3988 (dwarf2out_imported_module_or_decl_real): New function.
3989 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
3990 IMPORTED_DECL in account.
3991 * tree.def: Added IMPORTED_DECL node type.
3992 * tree.h: Added accessors for IMPORTED_DECL nodes.
3993 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
3995 2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3997 * doc/gimple.texi: Fix some typos, wrap some long lines,
3998 fix some broken wraps with continuations.
3999 * tree-ssa-reassoc.c: Fix comment typos.
4001 2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4004 * pa.c (legitimize_pic_address): Force function labels to memory in
4007 2008-10-04 Anton Blanchard <anton@samba.org>
4009 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
4010 (rs6000_split_atomic_op): Same.
4011 (rs6000_split_compare_and_swap): Same.
4012 (rs6000_split_compare_and_swapqhi): Same.
4014 2008-10-04 Richard Guenther <rguenther@suse.de>
4016 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
4017 instead of pointer equality.
4018 (vn_nary_op_eq): Likewise.
4020 2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
4022 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
4024 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
4025 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
4027 2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
4029 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
4030 Revert previous change.
4032 2008-10-03 Tom Tromey <tromey@redhat.com>
4034 * stringpool.c (ggc_alloc_string): Terminate string.
4036 2008-10-03 Jakub Jelinek <jakub@redhat.com>
4038 * gimplify.c (gimplify_function_tree): For -finstrument-functions
4039 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
4040 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
4043 * gimplify.c (declare_vars): Use gimple_bind_block instead of
4046 2008-10-03 Pascal Obry <obry@adacore.com>
4048 * gcov.c (create_file_names): Properly handle UNIX and DOS
4049 directory separators.
4050 (make_gcov_file_name): Likewise + convert the ':' DOS drive
4051 separator to '~' to ensure clean filenames on Windows.
4053 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
4055 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
4056 Add a null terminator to the stripped name.
4058 2008-10-02 David Edelsohn <edelsohn@gnu.org>
4060 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
4061 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4062 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
4063 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
4064 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4065 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
4066 TARGET_SINGLE_FLOAT.
4068 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
4070 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
4072 2008-10-02 Richard Guenther <rguenther@suse.de>
4075 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
4076 and VECTOR_TYPE recurse with useless_type_conversion_p which
4077 properly handles void pointer conversion.
4079 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
4082 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
4083 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
4085 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
4087 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4088 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
4089 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
4090 they translate to non builtins.
4091 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
4092 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
4093 __builtin_vec_promote, __builtin_vec_extract, and
4094 __builtin_vec_insert.
4095 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
4096 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
4097 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
4098 * config/rs6000/altivec.h (vec_extract): Define
4099 (vec_insert): Define.
4100 (vec_splats): Define.
4101 (vec_promote): Define.
4103 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
4104 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
4105 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
4107 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
4109 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
4110 prototype. Add new parameter, blk.
4111 Use BLKmode for the MEM if blk is true.
4112 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
4113 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
4114 ALTIVEC_BUILTIN_STVRXL.
4115 Update usage of altivec_expand_lv_builtin.
4116 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
4117 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
4118 (altivec_init_builtins): If compiling for the Cell, also define the
4120 * config/rs6000/rs6000.h (rs6000_builtins): Define
4121 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
4122 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
4123 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
4124 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
4125 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
4126 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
4127 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
4128 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
4129 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
4130 UNSPEC_STVRX, and UNSPEC_STVRXL.
4131 (altivec_lvlx): New pattern.
4132 (altivec_lvlxl): New pattern.
4133 (altivec_lvrx): New pattern.
4134 (altivec_lvrxl): New pattern.
4135 (altivec_stvlx): New pattern.
4136 (altivec_stvlxl): New pattern.
4137 (altivec_stvrx): New pattern.
4138 (altivec_stvrxl): New pattern.
4139 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
4140 (vec_lvlxl): Likewise.
4141 (vec_lvrx): Define if PPU is defined.
4142 (vec_lvrxl): Likewise.
4143 (vec_stvlx): Define if PPU is defined.
4144 (vec_stvlxl): Likewise.
4145 (vec_stvrx): Define if PPU is defined.
4146 (vec_stvrxl): Likewise.
4148 2008-10-01 Geert Bosch <bosch@adacore.com>
4150 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
4152 2008-10-01 Richard Guenther <rguenther@suse.de>
4154 PR tree-optimization/37617
4155 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
4156 do not add to the NEW_SETS.
4158 2008-10-01 Richard Guenther <rguenther@suse.de>
4161 * tree-vrp.c (execute_vrp): If we optimized away the default
4162 case make sure to promote the label that got in place of it
4163 to a default case label.
4165 2008-10-01 Richard Henderson <rth@redhat.com>
4168 * tree-complex.c (set_component_ssa_name): Don't optimize
4169 is_gimple_min_invariant values with ssa_names in abnormal phis.
4171 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
4173 PR tree-optimization/37662
4174 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
4175 commutative binary operation if they are in the wrong order and
4176 fold_build2 produces non-GIMPLE.
4178 2008-09-30 Jakub Jelinek <jakub@redhat.com>
4180 PR tree-optimization/37662
4181 PR tree-optimization/37663
4182 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
4183 get_value_range with non-SSA_NAME. Don't assert operands have been
4184 folded, instead just bail out.
4186 2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
4188 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
4190 2008-09-30 Richard Guenther <rguenther@suse.de>
4193 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
4194 build restrict-qualified pointers.
4195 (vectorizable_store): Move alias check later.
4196 (vectorizable_load): Likewise.
4198 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
4200 * c-common.c (empty_if_body_warning): Remove.
4201 * c-common.h (empty_if_body_warning): Remove.
4202 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
4203 here the -Wempty-body warning for `if' and `else' statements.
4204 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
4206 2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
4208 * config/i386/i386.opt: Add msse2avx.
4210 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
4211 * config/i386/linux64.h (ASM_SPEC): Likewise.
4213 * doc/invoke.texi: Document -msse2avx.
4215 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
4217 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
4219 2008-09-29 Joseph Myers <joseph@codesourcery.com>
4221 * ifcvt.c (noce_emit_store_flag): If using condition from original
4222 jump, reverse it if if_info->cond was reversed.
4224 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
4226 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
4227 non-constant memory if it cannot be forced to constant memory.
4228 Overhaul surrounding code and factor out common condition.
4230 2008-09-29 Jeff Law <law@redhat.com>
4232 * reload1.c (alter_reg): Add missing curly braces.
4234 2008-09-29 Michael J. Eager <eager@eagercon.com>
4236 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
4238 * config/rs6000/rs6000.c (rs6000_override_options): Move
4239 rs6000_init_hard_regno_mode_ok after all options changed.
4240 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
4241 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
4242 -msimple-fpu flags. Add warning messages if single FP not configured.
4243 (rs6000_file_start): Output gnu_attribute for single-float.
4244 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
4245 (rs6000_legitimize_address): Likewise.
4246 (rs6000_legitimize_reload_address): Likewise.
4247 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
4248 TARGET_SINGLE_FLOAT.
4249 (function_arg_advance): Likewise (partial conversion).
4250 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
4251 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
4252 TARGET_SINGLE_FLOAT.
4253 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
4254 (rs6000_emit_prologue): Likewise.
4255 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
4256 TARGET_SINGLE_FLOAT.
4257 (rs6000_libcall_value): Likewise.
4258 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
4259 (TARGET_DOUBLE_FLOAT): New default to 1
4260 (TARGET_SIMPLE_FPU): New default to 0
4261 (TARGET_SINGLE_FPU): New default to 0
4262 (TARGET_SINGLE_FLOAT_MODE): New.
4263 (TARGET_DOUBLE_FLOAT_MODE): New.
4264 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
4265 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
4267 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
4268 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4269 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
4270 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
4271 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
4272 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
4273 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
4274 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
4275 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4276 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
4277 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
4278 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
4279 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
4280 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
4281 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
4282 cmptf_internal1, *cmptf_internal2): Condition on
4283 TARGET_DOUBLE_FLOAT.
4284 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
4285 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
4286 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
4287 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
4288 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
4289 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
4290 TARGET_SINGLE_FLOAT.
4291 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
4292 * config/rs6000/rs6000.opt (-msingle-float): New.
4293 (-mdouble-float): New.
4294 (-msimple-fpu): New.
4295 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
4296 -msingle-float, -mdouble-float, -msimple-fpu options.
4297 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
4298 _SOFT_DOUBLE for -msingle-float.
4299 * config.gcc: New config for target=powerpc-xilinx-eabi.
4301 2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
4303 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
4304 have exit and entry.
4305 (new_scop): Take entry and exit edge to define new SCoP.
4306 (sd_region_p): New structure used during SCoP detection.
4307 (move_scops): Delete.
4308 (move_sd_regions): New.
4309 (scopdet_info): Change the definition from edges back to basic_blocks.
4310 (scopdet_edge_info): Work on basic_blocks and rename to
4311 scopdet_basic_block_info.
4312 (split_difficult_bb): At the moment removed. We should later
4313 add it at another place.
4314 (build_scops_1): Work on basic_blocks.
4315 (bb_in_sd_region): New.
4316 (find_single_entry_edge): New.
4317 (find_single_exit_edge): New.
4318 (create_single_entry_edge): New.
4319 (sd_region_without_exit): New.
4320 (create_single_exit_edge): New.
4321 (unmark_exit_edges): New.
4322 (mark_exit_edges): New.
4323 (create_sese_edges): New.
4324 (build_graphite_scops): New.
4325 (build_scops): Make SCoPs SESE.
4326 (limit_scops): Use the new functions.
4328 2008-09-29 Hans-Peter Nilsson <hp@axis.com>
4330 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
4332 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4335 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
4336 address to a register before taking the lower part.
4338 2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
4340 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
4343 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4344 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
4347 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
4348 the newly created variable.
4349 Create a VECTOR_CST of all 1s for vector types.
4351 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
4354 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
4356 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
4358 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
4359 order to convert between modes.
4360 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
4362 2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
4364 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
4367 2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
4370 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
4374 2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
4376 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
4377 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
4378 them to yield false with MIPS16.
4380 2008-09-26 Jakub Jelinek <jakub@redhat.com>
4383 * dwarf2out.c (tls_mem_loc_descriptor): New function.
4384 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
4385 mem_loc_descriptor failed. Accept UNSPEC.
4386 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
4387 fail if one of the loc_descriptor calls for pieces failed.
4388 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
4389 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
4390 if loc_descriptor_from_tree_1 on offset failed.
4393 * opts.c (common_handle_option): Don't call print_specific_help with
4394 CL_SAVE as first argument.
4396 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
4397 Steve Ellcey <sje@cup.hp.com>
4399 * configure: Regenerate for new libtool.
4400 * aclocal.m4: Ditto.
4402 2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
4404 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
4405 alias set on MEM when saving stack pointer.
4406 * config/rs6000/rs6000.md (allocate_stack): Likewise
4408 2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
4410 PR tree-optimization/37574
4411 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
4412 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
4413 instead of vector_type for constants. Take computation out of loop.
4414 (vect_get_vec_def_for_operand): Use only vectype for constant case,
4415 and use only vector_type for invariant case.
4416 (get_initial_def_for_reduction): Use vectype instead of vector_type.
4418 2008-09-25 Jakub Jelinek <jakub@redhat.com>
4421 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
4422 the decl is a VAR_DECL or FUNCTION_DECL.
4424 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
4427 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
4428 (mark_ref_live, mark_ref_dead): Use them.
4429 (def_conflicts_with_inputs_p): Remove.
4430 (mark_early_clobbers): New function.
4431 (process_bb_node_lives): Call preprocess_constraints and
4432 mark_early_clobbers.
4434 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
4436 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
4439 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
4440 (ira_compress_allocno_live_ranges): New prototype.
4442 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
4443 (coalesced_allocnos_living_at_program_points): New.
4444 (coalesced_allocnos_live_at_points_p,
4445 set_coalesced_allocnos_live_points): New functions.
4446 (coalesce_spill_slots): Rewrite.
4448 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
4449 ira_compress_allocno_live_ranges): New functions.
4451 * ira-build.c (ira_flattening): Call
4452 ira_compress_allocno_live_ranges.
4455 2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
4457 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
4460 2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
4462 * combine.c (make_compound_operation): Handle the 'E' format.
4463 (count_rtxs): Likewise.
4464 (update_table_tick): Likewise.
4465 (get_last_value_validate): Likewise.
4467 2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
4469 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
4471 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
4473 * matrix-reorg.c (transform_allocation_sites): Initializers
4474 added to avoid the warning.
4476 2008-09-25 Martin Jambor <mjambor@suse.cz>
4478 * cgraph.c (free_nodes): New variable.
4479 (NEXT_FREE_NODE): New macro.
4480 (cgraph_create_node): Reuse nodes from the free list. Do not
4481 update uid if doing so.
4482 (cgraph_remove_node): Add the node to the free list.
4484 2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
4486 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
4488 2008-09-24 Richard Henderson <rth@redhat.com>
4490 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
4491 * unwind-dw2.c (execute_stack_op): Handle it.
4493 2008-09-24 David Edelsohn <edelsohn@gnu.org>
4496 2008-09-24 Michael J. Eager <eager@eagercon.com>
4498 2008-09-24 Aldy Hernandez <aldyh@redhat.com>
4500 * c-common.c (fname_decl): New location argument.
4501 * c-common.h (fname_decl): Same.
4502 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
4504 (c_parser_typeof_specifier): Same.
4505 (c_parser_parms_list_declarator): Same.
4506 (c_parser_asm_string_literal): Same.
4507 (c_parser_compound_statement_nostart): Same.
4508 (c_parser_label): Same.
4509 (c_parser_do_statement): Same.
4510 (c_parser_asm_statement): Same.
4511 (c_parser_unary_expression): Same.
4512 (c_parser_sizeof_expression): Same.
4513 (c_parser_postfix_expression): Same.
4514 (c_parser_pragma): Same.
4515 (c_parser_omp_clause_collapse): Same.
4516 (c_parser_omp_clause_num_threads): Same.
4517 (c_parser_omp_clause_schedule): Same.
4518 (c_parser_omp_all_clauses): Same.
4519 (c_parser_omp_sections_scope): Same.
4520 (c_parser_omp_for_loop): Same. Pass condition's location to
4521 c_objc_common_truthvalue_conversion.
4522 (c_parser_enum_specifier): Remove comment.
4524 2008-09-24 Michael J. Eager <eager@eagercon.com>
4526 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
4528 * config/rs6000/rs6000.c (rs6000_override_options): Move
4529 rs6000_init_hard_regno_mode_ok after all options changed.
4530 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
4531 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
4532 -msimple-fpu flags. Add warning messages if single FP not configured.
4533 (rs6000_file_start): Output gnu_attribute for single-float.
4534 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
4535 (rs6000_legitimize_address): Likewise.
4536 (rs6000_legitimize_reload_address): Likewise.
4537 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
4538 TARGET_SINGLE_FLOAT.
4539 (function_arg_advance): Likewise.
4540 (function_arg): Likewise.
4541 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
4542 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
4543 TARGET_SINGLE_FLOAT.
4544 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
4545 (rs6000_emit_prologue): Likewise.
4546 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
4547 TARGET_SINGLE_FLOAT.
4548 (rs6000_libcall_value): Likewise.
4549 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
4550 (TARGET_DOUBLE_FLOAT): New default to 1
4551 (TARGET_SIMPLE_FPU): New default to 0
4552 (TARGET_SINGLE_FPU): New default to 0
4553 (TARGET_SINGLE_FLOAT_MODE): New.
4554 (TARGET_DOUBLE_FLOAT_MODE): New.
4555 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
4556 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
4558 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
4559 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4560 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
4561 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
4562 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
4563 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
4564 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
4565 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
4566 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4567 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
4568 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
4569 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
4570 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
4571 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
4572 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
4573 cmptf_internal1, *cmptf_internal2): Condition on
4574 TARGET_DOUBLE_FLOAT.
4575 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
4576 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
4577 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
4578 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
4579 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
4580 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
4581 TARGET_SINGLE_FLOAT.
4582 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
4583 * config/rs6000/rs6000.opt (-msingle-float): New.
4584 (-mdouble-float): New.
4585 (-msimple-fpu): New.
4586 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
4587 -msingle-float, -mdouble-float, -msimple-fpu options.
4588 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
4589 _SOFT_DOUBLE for -msingle-float.
4590 * config.gcc: New config for target=powerpc-xilinx-eabi.
4592 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
4594 * config/sparc/constraints.md: New file.
4595 * config/sparc/sparc.md: Include it.
4596 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
4597 (sparc_extra_constraint_check): Delete.
4598 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
4599 (memory_ok_for_ldd): New predicate.
4600 (sparc_extra_constraint_check): Delete.
4601 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
4602 (CONST_OK_FOR_LETTER_P): Likewise.
4603 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
4604 (EXTRA_CONSTRAINT): Likewise.
4606 2008-08-23 Steve Ellcey <sje@cup.hp.com>
4608 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
4610 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
4612 * alias.c (find_base_value): Use FIND_BASE_TERM.
4613 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
4615 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
4617 * config/i386/i386.c: Include cselib.h.
4618 (ix86_pic_register_p): New function.
4619 (ix86_delegitimize_address): Use it to check for the PIC register.
4621 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
4623 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
4624 * config/i386/i386.c (ix86_find_base_term): Don't check for
4625 SYMBOL_REF and LABEL_REF.
4627 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
4629 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
4630 constant PLUS in a CONST.
4632 2008-09-23 Kai Tietz <kai.tietz@onevision.com>
4634 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
4635 check for sibcall support for w64.
4637 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
4639 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
4641 2008-09-23 Aldy Hernandez <aldyh@redhat.com>
4643 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
4644 parser_build_binary_op.
4645 * c-decl.c (build_enumerator): Pass location to build_binary_op.
4646 * c-typeck.c (build_array_ref): Same.
4647 (parser_build_unary_op): New location argument.
4648 (pointer_diff): Pass location to build_binary_op,
4649 c_objc_common_truthvalue_conversion.
4650 (build_modify_expr): Same.
4651 (build_unary_op): New location argument.
4652 (build_binary_op): New location argument.
4653 (c_objc_common_truthvalue_conversion): Pass location to
4654 c_*common_truthvalue_conversion.
4655 * c-convert.c (convert): Same.
4656 * c-common.c (binary_op_error): New location argument.
4657 (pointer_int_sum): Pass location to build_binary_op.
4658 (c_common_truthvalue_conversion): New location argument.
4659 (warn_for_sign_compare): Same.
4660 * c-common.h: Add location argument to c_common_truthvalue_conversion,
4661 binary_op_error, build_binary_op, warn_for_sign_compare.
4662 * c-parser.c (c_parser_condition): Pass location to
4663 c_*common_truthvalue_conversion.
4664 (c_parser_conditional_expression): Save condition's location and pass
4666 (c_parser_binary_expression): Same, but for the binary operator's
4668 (c_parser_omp_for_loop): Pass location to
4669 c_objc_common_truthvalue_conversion.
4671 2008-09-23 Martin Jambor <mjambor@suse.cz>
4673 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
4674 (cgraph_node_remove_callees): New temporary f. Hold the next item
4676 (cgraph_node_remove_callers): Likewise.
4678 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
4679 (ipa_node_removal_hook): Likewise.
4681 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
4682 gimple_call_copy_skip_args and moved to the gimple_call section.
4683 * gimple.c (gimple_copy_call_skip_args): Renamed to
4684 gimple_call_copy_skip_args. Changed al users.
4686 2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
4688 * ira-color.c (start_allocno_priorities): Rename to
4689 setup_allocno_priorities. Use costs and
4690 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
4691 range lengths. Get rid off doubles.
4692 (ira_fast_allocations): Call start_allocno_priorities.
4694 2008-09-22 David Daney <ddaney@avtrex.com>
4697 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
4698 register if TARGET_LONG_CALLS.
4700 2008-09-22 Richard Guenther <rguenther@suse.de>
4702 PR tree-optimization/37145
4703 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
4704 value-numbering union accesses with their offset and size only.
4705 (visit_reference_op_load): Fix simplification of inserted conversions.
4706 * tree-ssa-pre.c (find_or_generate_expression): Do not
4707 recursively generate expressions if running FRE.
4709 2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
4711 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
4712 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
4715 2008-09-22 Richard Guenther <rguenther@suse.de>
4717 PR tree-optimization/37145
4718 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
4719 (phi_translate_1): Constant fold references.
4721 2008-09-22 Ira Rosen <irar@il.ibm.com>
4723 PR tree-optimization/37482
4724 * tree-vectorizer.h (struct _slp_instance): Add new field.
4725 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
4726 (get_earlier_stmt): New function.
4727 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
4729 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
4730 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
4731 asserts that GSI points to the scalar statement being vectorized.
4732 Set new statement location according to GSI.
4733 (vect_schedule_slp_instance): Use GSI of
4734 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
4736 2008-09-21 Jan Hubicka <jh@suse.cz>
4738 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
4739 (ipcp_insert_stage): Update dead_nodes bitmap.
4741 2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
4744 * config/i386/t-cygming (SHLIB_LC): Remove.
4745 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
4746 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
4748 2008-09-22 Hans-Peter Nilsson <hp@axis.com>
4752 * final.c (mark_symbol_ref_as_used): New helper function.
4753 (output_operand): Instead of just looking inside MEMs for
4754 SYMBOL_REFs, use new helper function and for_each_rtx.
4755 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
4756 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
4757 Make head comment more general.
4758 * config/darwin.c (machopic_output_indirection): Handle weak
4759 references here, like in assemble_external.
4761 2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
4763 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
4764 (sparc_emit_float_lib_cmp): Change return type.
4765 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
4766 (gen_compare_operator): New function.
4767 (sparc_emit_float_lib_cmp): Return the new operator to be used in
4768 the comparison sequence. Minor tweaks.
4769 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
4770 that the final operator and the result of sparc_emit_float_lib_cmp
4771 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
4772 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
4773 buneq, bunge, bunle, bltgt): Assert that the final operator and the
4774 result of sparc_emit_float_lib_cmp match for software TFmode.
4775 (movqicc, movhicc, movsicc, movdicc): Merge into...
4776 (mov<I:mode>cc): ...this.
4777 (movsfcc, movdfcc, movtfcc): Merge into...
4778 (mov<F:mode>cc): ...this.
4779 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
4781 (mov<I:mode>_cc_v9): ...this.
4782 (movdi_cc_sp64_trunc): Delete.
4783 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
4784 movdi_cc_reg_sp64): Merge into...
4785 (mov<I:mode>_cc_reg_sp64): ...this.
4786 (movsf_cc_sp64): Rename into...
4787 (movsf_cc_v9): ...this.
4788 (movdf_cc_sp64): Rename into...
4789 (movdf_cc_v9): ...this.
4790 (movtf_cc_hq_sp64): Rename into...
4791 (movtf_cc_hq_v9): ...this.
4792 (movtf_cc_sp64): Rename into...
4793 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
4795 2008-09-21 Diego Novillo <dnovillo@google.com>
4797 * doc/gccint.texi: Include generic.texi and gimple.texi.
4799 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
4800 (GIMPLE): Move to gimple.texi.
4801 (Annotations): Remove references to to stmt_ann_t and
4803 (SSA Operands): Rename from 'Statement Operands'.
4804 * doc/generic.texi: New.
4805 * doc/gimple.texi: New.
4806 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
4807 * Makefile.in (TEXI_GCCINT_FILES):
4808 * gimple.c (gimple_copy_call_skip_args): Rename from
4809 giple_copy_call_skip_args. Update all users.
4810 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
4812 2008-09-21 Ira Rosen <irar@il.ibm.com>
4814 PR tree-optimization/37539
4815 * tree-vect-transform.c (vect_transform_strided_load): Save vector
4816 statement in related statement field only for the first load of the
4817 group of loads with the same data reference.
4819 2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
4821 * config/mips/mips.h (TUNE_OCTEON): New macro.
4822 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
4823 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
4824 * config/mips/octeon.md: New file.
4825 * config/mips/mips.md: Include octeon.md. Restore
4826 semi-alphabetical order of include files.
4828 2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
4831 * config/i386/i386.md (*jcc_fused_1): Removed.
4832 (*jcc_fused_2): Likewise.
4833 (*jcc_fused_3): Likewise.
4834 (*jcc_fused_4): Likewise.
4836 2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
4838 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
4839 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
4840 * target.h (gcc_target): Add ira_cover_classes.
4841 * ira.c: Remove IRA_COVER_CLASSES guards.
4842 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
4843 instead of IRA_COVER_CLASSES.
4844 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
4845 (setup_class_translate): Likewise.
4846 (setup_reg_class_intersect_union): Likewise.
4847 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
4848 test of targetm.ira_cover_classes.
4849 * opts.c (decode_options): Use targetm.ira_cover_classes instead
4850 of IRA_COVER_CLASSES.
4851 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
4852 (TARGET_INITIALIZER): Include it.
4853 * targhooks.h (default_ira_cover_classes): Declare.
4854 * targhooks.c (default_ira_cover_classes): New function.
4856 2008-09-19 Bob Wilson <bob.wilson@acm.org>
4858 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
4860 2008-09-19 Ian Lance Taylor <iant@google.com>
4862 * varasm.c (narrowing_initializer_constant_valid_p): Return
4863 NULL_TREE if ENDTYPE is not an integer.
4865 2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
4868 * tree-ssa.c (execute_update_addresses_taken): Also update
4869 DECL_GIMPLE_REG_P for vector and complex types.
4871 2008-09-19 Andrew MacLeod <amacleod@redhat.com>
4872 Jan Hubicka <jh@suse.cz>
4875 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
4876 empty before freeing them.
4877 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
4879 2008-09-18 Bob Wilson <bob.wilson@acm.org>
4881 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
4882 * config/xtensa/predicates.md (tls_symbol_operand): New.
4883 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
4884 (TARGET_CANNOT_FORCE_MEM): Define.
4885 (xtensa_tls_symbol_p): New.
4886 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
4887 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
4888 (xtensa_tls_module_base): New.
4889 (xtensa_call_tls_desc): New.
4890 (xtensa_legitimize_tls_address): New.
4891 (xtensa_legitimize_address): Handle TLS symbols.
4892 (xtensa_tls_referenced_p_1): New.
4893 (xtensa_tls_referenced_p): New.
4894 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
4896 (XTENSA_BUILTIN_THREAD_POINTER): New.
4897 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
4898 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
4899 builtin. Add declarations for __builtin_thread_pointer and
4900 __builtin_set_thread_pointer.
4901 (xtensa_fold_builtin): Recognize new builtins.
4902 (xtensa_expand_builtin): Expand new builtins.
4903 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
4904 (TARGET_THREADPTR): Define.
4905 (HAVE_AS_TLS): Define default value.
4906 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
4907 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
4908 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
4909 (UNSPECV_SET_TP): New.
4910 (sym_TPOFF, sym_DTPOFF): New.
4911 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
4912 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
4913 * configure: Regenerated.
4915 2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
4918 * config/ia64/ia64.c (ia64_optimization_options): Move
4919 checking and setting flag_schedule_insns_after_reload and
4920 ia64_flag_schedule_insns2 back to ...
4921 (ia64_override_options): Here.
4923 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
4926 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
4927 zero extend count after the correction to it is done.
4928 (doloop_optimize): Update call to doloop_modify, don't zero extend
4931 2008-09-18 Martin Jambor <mjambor@suse.cz>
4933 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
4935 * ipa-prop.c: Correct comments.
4936 * ipa-prop.h: Likewise.
4938 2008-09-18 Jan Hubicka <jh@suse.cz>
4941 * ipa-reference.c (ipa_reference_local_vars_info_d,
4942 ipa_reference_global_vars_info_d,
4943 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
4944 ipa_reference_vars_info_t): Move here from ipa-reference.h
4945 (node_duplication_hook_holder, node_removal_hook_holder): New.
4946 (get_reference_vars_info_from_cgraph): Rename to ...
4947 (get_reference_vars_info): ... this one, use cgraph uids.
4948 (get_local_reference_vars_info, get_global_reference_vars_info):
4949 Use cgraph instead of decl.
4950 (ipa_reference_get_read_local, ipa_reference_get_written_local):
4952 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
4953 ipa_reference_get_written_global,
4954 ipa_reference_get_not_written_global): Use cgraph argument.
4955 (check_call): Simplify avail check.
4956 (scan_stmt_for_static_refs): Update.
4957 (propagate_bits): Update.
4958 (merge_callee_local_info): Remove.
4959 (init_function_info): Use cgraph nodes.
4960 (clean_function_local_data): Break out from ...
4961 (clean_function): ... here.
4962 (copy_local_bitmap, copy_global_bitmap): New functions.
4963 (duplicate_node_data, remove_node_data): New functions.
4964 (generate_summary): Register hooks; use visibility instead of
4966 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
4967 * ipa-reference.h (ipa_reference_local_vars_info_d,
4968 ipa_reference_global_vars_info_d,
4969 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
4970 ipa_reference_vars_info_t): Move to ipa-reference.c
4971 (ipa_reference_get_read_local, ipa_reference_get_written_local):
4973 (ipa_reference_get_read_global, ipa_reference_get_written_global,
4974 ipa_reference_get_not_read_global,
4975 ipa_reference_get_not_written_global): Update prototype.
4976 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
4977 (init_state): Remove.
4978 (node_duplication_hook_holder, node_removal_hook_holder): New.
4979 (get_function_state, set_function_state): Use VECtor.
4980 (analyze_function): Check body availability.
4981 (add_new_function): Likewise.
4982 (duplicate_node_data, remove_node_data): New.
4983 (generate_summary): Register hooks; do not care about clones.
4984 (propafate): Do not care about clones; recursive functions are
4986 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
4987 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
4988 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
4990 * tree-flow.h (function_ann_d): Remove reference_vars_info.
4991 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
4992 Update call of ipa-reference accesors.
4994 2008-09-18 Simon Baldwin <simonb@google.com>
4996 * c-opts.c (c_common_handle_option): Add handling for
4997 -Wbuiltin-macro-redefined command line option.
4998 * c.opt: Added builtin-macro-redefined option.
4999 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
5002 2008-09-18 Richard Guenther <rguenther@suse.de>
5004 PR tree-optimization/37258
5005 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
5006 and signedness for integral types.
5007 (vn_phi_eq): Require compatible types.
5009 2008-09-18 Jakub Jelinek <jakub@redhat.com>
5012 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
5013 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
5015 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
5016 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
5017 ggc_free other TREE_LIST nodes from that chain.
5018 * function.c (instantiate_decls): Instantiate also DECL_RTL
5019 of vars in cfun->local_decls, free that list afterwards.
5021 2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
5023 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
5024 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
5026 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
5028 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
5029 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
5031 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
5033 PR tree-optimization/37102
5034 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
5035 from a node. Check to see if another PHI is dead.
5036 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
5037 remove real PHIs which have no uses.
5038 (rewrite_out_of_ssa): Call eliminate_useless_phis.
5040 2008-09-18 Richard Guenther <rguenther@suse.de>
5043 * tree-cfg.c (remove_useless_stmts_1): Remove
5044 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
5046 2008-09-18 Nick Clifton <nickc@redhat.com>
5048 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
5049 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
5050 to frv_secondary_reload_class.
5051 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
5052 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
5053 (frv_secondary_reload_class): Omit unused parameter.
5054 (frv_secondary_reload): New function. Handle the case when
5055 secondary_reload_class() is called before the reload_(in|out)
5056 _optabs have been initialised.
5057 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
5059 * config/frv/frv.md: Define an exclusion set between fr550_m0
5062 2008-09-18 Richard Guenther <rguenther@suse.de>
5064 PR tree-optimization/37456
5065 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
5066 want to insert after ends a BB insert on the single fallthru
5069 2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
5071 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
5072 Mention -march=z9-109, z9-ec and z10.
5074 2008-09-18 Uros Bizjak <ubizjak@gmail.com>
5076 PR rtl-optimization/37544
5077 * regrename.c (maybe_mode_change): Exit early when copy_mode
5078 is narrower than orig_mode and narrower than new_mode.
5080 2008-09-18 Alexander Monakov <amonakov@ispras.ru>
5083 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
5085 * sched-rgn.c (ref_counts): Remove.
5086 (insn_referenced): New static variable.
5087 (INSN_REF_COUNT): Remove.
5088 (sched_run_compute_dependencies): Use insn_referenced instead of
5090 (add_branch_dependences): Likewise. Delete dead assignment.
5092 2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
5094 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
5095 consumer is an asm. Add comment why this is important.
5096 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
5097 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
5099 2008-09-17 Joseph Myers <joseph@codesourcery.com>
5101 * expr.c (emit_group_store): Do not shift before moving via a
5104 2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
5106 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
5107 from aggregate to non-aggregate type if the bit pattern is not fully
5108 preserved afterwards.
5110 2008-09-17 Richard Guenther <rguenther@suse.de>
5112 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
5113 (verify_gimple_assign): ... this. Split into ...
5114 (verify_gimple_assign_unary): ... this,
5115 (verify_gimple_assign_binary): ... that,
5116 (verify_gimple_assign_single): ... and this.
5117 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
5118 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
5119 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
5120 (verify_types_in_gimple_reference): Be forgiving with
5122 (verify_gimple_phi): Deal with virtual operands.
5124 * tree.def (PREDICT_EXPR): Change to tcc_expression.
5126 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
5128 * tree.c (get_callee_fndecl): Don't call the language hook.
5129 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
5130 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
5131 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
5133 2008-09-17 Jakub Jelinek <jakub@redhat.com>
5135 * tree.c (protected_set_expr_location): Don't unnecessarily
5136 check for error_mark_node.
5138 2008-09-17 Art Haas <ahaas@impactweather.com>
5140 * ipa-reference.c (analyze_function): Declare step only if
5141 ENABLE_CHECKING is defined.
5143 2008-09-17 Jan Hubicka <jh@suse.cz>
5146 * tree.h (DECL_INLINE): remove.
5147 (DECL_DECLARED_INLINE_P): Update docs.
5148 (DECL_NO_INLINE_WARNING_P): new.
5149 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
5150 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
5152 2008-09-17 Jakub Jelinek <jakub@redhat.com>
5153 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5156 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
5159 2008-09-17 Jan Hubicka <jh@suse.cz>
5161 * ipa-reference.c (ipa_obstack): Remove.
5162 (local_info_obstack, global_info_obstack): New.
5163 (add_static_var): We now handle variables only.
5164 (mark_address_taken, mark_load, mark_store): New functions based on ...
5165 (check_operand): ... remove.
5166 (get_asm_stmt_operands): Rename to ...
5167 (check_asm_memory_clobber): ... this. Look only for memory clobber.
5168 (scan_stmt_for_static_refs): Rewrite.
5169 (scan_op_for_static_refs): Rename to ...
5170 (scan_initializer_for_static_refs): do not look for VAR_DECL
5171 initializers; stop recursion on types and decls.
5172 (ipa_init): Use proper obstacks.
5173 (analyze_variable): Use scan_initializer_for_static_refs.
5174 (init_function_info): Use local obstack.
5175 (analyze_function): Simplify.
5176 (add_new_function): We don't need visited_nodes obstack.
5177 (generate_summary): Use proper obstacks; cleanup after propagation.
5179 2008-09-17 Richard Guenther <rguenther@suse.de>
5182 PR tree-optimization/37491
5183 * alias.c (get_alias_set): Use the canonical type.
5184 * tree-vect-transform.c (vectorizable_store): Use the type of
5185 the lhs for the vector type. Adjust checking.
5186 (vectorizable_load): Adjust checking.
5188 2008-09-16 Jakub Jelinek <jakub@redhat.com>
5189 Adam Nemet <anemet@caviumnetworks.com>
5191 PR rtl-optimization/37483
5192 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
5193 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
5194 Rearrange code to better match the original comment. Check
5195 t_unconditional first. Improve comment.
5197 2008-09-16 Jakub Jelinek <jakub@redhat.com>
5200 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
5201 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
5204 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
5205 GIMPLE_TRY if cleanup sequence is empty.
5207 2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
5210 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
5211 eliminate IV if the cost are the same.
5213 2008-09-16 Richard Guenther <rguenther@suse.de>
5216 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
5219 2008-09-16 Richard Guenther <rguenther@suse.de>
5221 PR tree-optimization/37508
5222 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
5224 2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
5226 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
5228 2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
5230 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
5231 use gen_floatdidf2 directly.
5232 (floatunssidf2): Likewise.
5233 (floatsidf_ppc64_mfpgpr): Remove.
5234 (floatsidf_ppc64): Remove.
5235 (floatunssidf_ppc64): Remove.
5237 2008-09-15 Jakub Jelinek <jakub@redhat.com>
5239 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
5240 rather than update_cost_queue.
5242 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
5243 in every call starting with the second one, instead of only when
5244 alias_bitmap_obstack.elements != NULL.
5246 * tree-predcom.c (filter_suitable_components): Free all refs in
5247 act->refs vector before calling release_component.
5248 (add_ref_to_chain): Free ref if not adding it to chain->refs.
5250 * tree-data-ref.c (free_subscripts): Free all subscript objects.
5252 * tree-loop-linear.c (linear_transform_loops): Initialize
5253 lambda_obstack only after calling perfect_loop_nest_depth.
5254 Goto free_and_continue instead of just continue for later failures.
5257 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
5260 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
5262 2008-09-14 Andreas Schwab <schwab@suse.de>
5264 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
5266 2008-09-14 Jan Hubicka <jh@suse.cz>
5268 * invoke.texi (-fconserve-stack): Document.
5269 * opts.c (decode_options): Handle conserve_stack.
5270 * common.opt (fconvserve_stack): New.
5272 2008-09-14 David Edelsohn <edelsohn@gnu.org>
5274 * config.host: Add x-aix to host_xmake_file.
5275 * config/rs6000/t-aix52: Do not override LDFLAGS.
5276 * config/rs6000/x-aix: New file.
5278 2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
5284 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
5285 is not recognized as a valid register usage. Allow REG_X to be used
5287 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
5288 forces a reload when using a base register.
5290 2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
5292 * config/i386/cygming-crtend.c (register_frame_ctor): If
5293 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
5294 directly with atexit.
5295 (deregister_frame_ctor): Rename to ...
5296 (deregister_frame_dtor): Use to call __gcc_deregister_frame
5297 if !DEFAULT_USE_CXA_ATEXIT.
5299 2008-09-13 Jan Hubicka <jh@suse.cz>
5301 * cgraph.c: Include value-prof.h
5302 * Makefile.in (cgraph.o): Add value-prof.h dependency.
5304 2008-09-13 Jan Hubicka <jh@suse.cz>
5307 * tree-profile.c (add_abnormal_goto_call_edges): New function.
5308 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
5309 tree_gen_one_value_profiler, tree_gen_average_profiler,
5310 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
5312 2008-09-13 Jan Hubicka <jh@suse.cz>
5314 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
5315 too many bytes on misalligned blocks.
5317 2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5319 * doc/cfg.texi: Fix some typos.
5320 * doc/extend.texi: Likewise.
5321 * doc/install.texi: Likewise.
5322 * doc/invoke.texi: Likewise.
5323 * doc/rtl.texi: Likewise.
5324 * doc/tree-ssa.texi: Likewise.
5326 2008-09-13 Richard Guenther <rguenther@suse.de>
5329 * tree-nested.c (finalize_nesting_tree_1): Generate valid
5330 gimple stores for memory rhs.
5332 2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
5334 PR rtl-optimization/37489
5335 * cse.c (fold_rtx): Don't return const_true_rtx for float
5336 compare if FLOAT_STORE_FLAG_VALUE is undefined.
5338 2008-09-13 Jan Hubicka <jh@suse.cz>
5340 PR tree-optimization/37392
5341 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
5343 2008-09-13 Martin Jambor <mjambor@suse.cz>
5344 Jan Hubicka <jh@suse.cz>
5346 * cgraph.c (free_edges): New variable.
5347 (NEXT_FREE_EDGE): New macro.
5348 (cgraph_free_edge): New function.
5349 (cgraph_remove_edge): Call cgraph_remove_edge_1.
5350 (cgraph_node_remove_callees): Likewise.
5351 (cgraph_node_remove_callers): Likewise.
5352 (cgraph_create_edge): Reuse edges from the free list. Do not
5353 update uid if doing so.
5354 (cgraph_remove_*_hook): Add free call.
5356 2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
5358 * ira-color.c (conflict_allocno_vec): Delete.
5359 (update_cost_queue_elem): New structure.
5360 (update_cost_queue): New variable.
5361 (update_cost_queue_tail): Likewise.
5362 (update_cost_queue_elems): Likewise.
5363 (allocno_update_cost_check): Delete.
5364 (initiate_cost_update): Allocate update_cost_queue_elems
5365 instead of allocno_update_cost_check.
5366 (finish_cost_update): Update the free()s accordingly.
5367 (start_update_cost): New function.
5368 (queue_update_cost): Likewise.
5369 (get_next_update_cost): Likewise.
5370 (update_copy_costs_1): Inline into...
5371 (update_copy_costs): ...here. Use a queue instead of recursive calls.
5372 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
5373 once we've established they are equal. Don't allocate update
5374 costs if there is nothing to add to them.
5375 (update_conflict_hard_regno_costs): Remove ALLOCNO and
5376 DIVISOR arguments. Use a queue instead of recursive calls;
5377 process all the allocnos in the initial queue, rather than
5379 (assign_hard_reg): Use queue_update_cost instead of
5380 conflict_allocno_vec. Queue coalesced allocnos instead
5381 of calling update_conflict_hard_regno_costs for each one.
5382 Just call update_conflict_hard_regno_costs once for the
5384 (ira_color): Remove conflict_allocno_vec handling.
5386 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
5388 PR tree-optimization/37484
5389 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
5390 (save_var_name): Same.
5391 (initialize_cloog_names): Same.
5392 (initialize_cloog_names): Same.
5394 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
5396 * tree-scalar-evolution.c (set_instantiated_value): Set
5399 2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
5403 * ira-build.c (common_loop_tree_node_dominator): Remove.
5404 (copy_live_ranges_to_removed_store_destinations): New function.
5405 (regno_top_level_allocno_map): Move to top level from ...
5406 (ira_flattening): ... here. Use
5407 copy_live_ranges_to_removed_store_destinations.
5409 * ira-emit.c (generate_edge_moves): Fix a comment.
5411 2008-09-12 Anatoly Sokolov <aesok@post.ru>
5414 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
5415 scratch register after 'set' pattern.
5417 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5419 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
5420 information passed to mark_reg_pointer.
5421 * explow.c (force_reg): Likewise.
5423 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5425 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
5426 when building for the celledp architecture.
5428 2008-09-12 Richard Guenther <rguenther@suse.de>
5430 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
5432 2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
5434 PR rtl-optimization/37424
5435 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
5436 the regnos instead of the addresses.
5438 2008-09-11 Janis Johnson <janis187@us.ibm.com>
5440 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
5442 2008-09-11 Richard Guenther <rguenther@suse.de>
5444 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
5445 entering the weaker equivalence recording.
5447 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
5449 2008-09-11 Jeff Law <law@redhat.com>
5451 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
5452 by assign_stack_local on the IRA path for stack slot sharing
5453 as well as the non-IRA path.
5455 2008-09-11 Uros Bizjak <ubizjak@gmail.com>
5457 * config/i386/i386.h: Fix whitespace issues.
5459 2008-09-11 Martin Jambor <mjambor@suse.cz>
5461 * ipa-prop.h (struct ipa_param_flags): Removed.
5462 (struct ipa_param_descriptor): New structure.
5463 (struct ipa_node_params): ipcp_lattices, param_decls and
5464 param_flags moved to ipa_param_description.
5465 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
5466 descriptors. Renamed all users.
5467 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
5468 changed to access descriptors. Renamed all users.
5469 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
5470 to access descriptors. Renamed all users.
5471 * ipa-cp.c (ipcp_init_cloned_node): Call
5472 ipa_initialize_node_params instead of ipa_count_formal_params and
5473 ipa_create_param_decls_array.
5474 (ipcp_analyze_node): Likewise.
5475 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
5476 descriptors. Renamed all users.
5477 (ipcp_initialize_node_lattices): Remove allocation.
5478 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
5479 ipa_initialize_node_params instead of ipa_count_formal_params and
5480 ipa_create_param_decls_array.
5481 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
5482 ipa_populate_param_decls, made static, added parameter info,
5483 renamed mt to node, removed allocation, changed to use
5485 (ipa_count_formal_params): Made static, added parameter info,
5487 (ipa_initialize_node_params): New function.
5488 (ipa_check_stmt_modifications): Changed to use descriptors.
5489 (ipa_detect_param_modifications): Removed allocation, changed to
5491 (ipa_note_param_call): Changed to use descriptors.
5492 (ipa_analyze_params_uses): Removed allocation.
5493 (ipa_free_node_params_substructures): Changed to use descriptors.
5494 (ipa_edge_duplication_hook): Use the unused attribute.
5495 (ipa_node_duplication_hook): Use the unused attribute, changed to
5496 use descriptors, changed to duplicate descriptors.
5498 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
5499 changed all callers. Call ipa_propagate_indirect_call_infos if doing
5500 indirect inlining. Made static.
5501 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
5502 functions called only once.
5503 (cgraph_decide_recursive_inlining): Don't call
5504 ipa_propagate_indirect_call_infos, pass new_edges to
5505 cgraph_mark_inline_edge instead.
5506 (cgraph_decide_inlining_of_small_functions): Don't call
5507 ipa_propagate_indirect_call_infos, pass new_edges to
5508 cgraph_mark_inline_edge instead.
5509 (cgraph_decide_inlining): Don't call
5510 ipa_propagate_indirect_call_infos.
5511 * ipa-prop.c: Check that vectors are allocated.
5513 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
5514 iff a new cgraph edges have been created.
5515 (cgraph_decide_inlining): New variable redo_always_inline.
5516 Flattening and always_inlining loop until callgraph stabilizes.
5517 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
5518 true iff new cgraph edges have been created.
5519 (propagate_info_to_inlined_callees): Likewise.
5520 (ipa_propagate_indirect_call_infos): Likewise.
5522 2008-09-11 Richard Guenther <rguenther@suse.de>
5524 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
5525 (set_prologue_iterations): Likewise.
5526 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
5528 (vect_update_init_of_dr): Likewise.
5529 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
5531 * fold-const.c (fold_unary): Do not generate calculations
5534 2008-09-11 Paolo Bonzini <bonzini@gnu.org>
5536 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
5537 TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
5538 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
5540 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
5542 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
5543 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
5544 before finalizing the changes.
5545 * tree-vrp.c (extract_range_from_binary_expr): Add limited support
5547 (simplify_truth_ops_using_ranges): New.
5548 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
5549 simplify_cond_using_ranges, simplify_switch_using_ranges): Return
5550 whether a simplification was made.
5551 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
5552 use a switch statement and also call simplify_truth_ops_using_ranges.
5554 2008-09-11 Jan Hubicka <jh@suse.cz>
5556 * ggc-common.c (loc_array): Make static.
5557 * dce.c (rest_of_handle_ud_dce): Free worklist.
5559 2008-09-11 Jan Hubicka <jh@suse.cz>
5561 * cgraph.c (cgraph_release_function_body): Plug memory leak on
5562 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
5563 function so we are sure we do not dangle it forever.
5564 * function.c (outer_function_chain, find_function_data): Remove.
5565 (function_context_stack): New.
5566 (push_function_context, pop_function_context): Update.
5567 * function.h (struct function): Remove pointer outer.
5568 (outer_function_chain, find_function_data): Remove.
5569 * stmt.c (force_label_rtx): Remove dead call of find_function_data.
5571 2008-09-11 Jan Hubicka <jh@suse.cz>
5574 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
5576 2008-09-11 Jan Hubicka <jh@suse.cz>
5578 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
5580 2008-09-11 Jan Hubicka <jh@suse.cz>
5582 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
5583 (free_var_map_entry): New function.
5584 (redirect_edge_var_map_destroy): Use it.
5586 2008-09-11 Jan Hubicka <jh@suse.cz>
5589 * tree-inline.c (add_lexical_block): Replace with ...
5590 (prepend_lexical_block): ... prepend at begginig.
5591 (remap_blocks): Use it and reverse later.
5592 (expand_call_inline): Use prepend_lexical_block.
5594 2008-09-11 Jan Hubicka <jh@suse.cz>
5596 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
5598 2008-09-11 Jan Hubicka <jh@suse.cz>
5600 * function.c (free_after_compilation): Call insn_locators_free.
5601 * cfglayout.c (insn_locators_free): New function.
5602 * rtl.h (insn_locators_free): Declare.
5604 2008-09-11 Jan Hubicka <jh@suse.cz>
5606 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
5608 (cond_move_process_if_block): Update call.
5610 2008-09-11 Jan Hubicka <jh@suse.cz>
5612 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
5613 * vec.c: Include hashtab.h
5614 (vec_descriptor, ptr_hash_entry): New structures.
5615 (vec_desc_hash, vec_ptr_map): New static variables.
5616 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
5617 register_overhead, free_overhead, vec_heap_free): New functions.
5618 (vec_gc_o_reserve_1): ggc_free when resizing to 0.
5619 (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
5620 (cmp_statistic, add_statistics, dump_vec_loc_statistics):
5623 2008-09-11 Ira Rosen <irar@il.ibm.com>
5625 PR tree-optimization/37474
5626 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
5627 length of load permutation.
5629 2008-09-11 Andreas Schwab <schwab@suse.de>
5631 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
5633 2008-09-11 Jakub Jelinek <jakub@redhat.com>
5636 * expmed.c (extract_low_bits): Avoid creating invalid subregs.
5637 * dse.c (find_shift_sequence): Use extract_low_bits instead of
5638 simplify_gen_subreg.
5640 2008-09-11 Ira Rosen <irar@il.ibm.com>
5642 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
5645 2008-09-10 Jakub Jelinek <jakub@redhat.com>
5648 * gimplify.c (gimplify_body): Call default_rtl_profile.
5651 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
5652 instead of tok->val.node if not expanding to something else. Handle
5653 intervening CPP_PADDING tokens.
5654 (altivec_categorize_keyword): Remove unneeded comparisons.
5656 2008-09-10 Richard Guenther <rguenther@suse.de>
5658 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
5660 2008-09-10 Richard Guenther <rguenther@suse.de>
5663 * tree-inline.c (insert_init_stmt): Make sure to not
5664 insert invalid gimple stores.
5666 2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
5668 PR tree-optimization/37388
5669 * toplev.c (process_options): Fail and warn when graphite
5670 flags are used, but the compiler has not been configured
5671 with graphite libraries.
5672 * graphite.c (graphite_transform_loops): Remove printfs
5673 to dump_file for the case when graphite is not available.
5675 2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
5678 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
5679 the even element into register.
5680 (ix86_expand_vector_init_general): Don't use
5681 ix86_expand_vector_init_interleave on V16QImode and V8HImode
5682 if we can't move from GPR to SSE register directly.
5684 2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
5686 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
5687 not lose track of the number of NOPs needed. Number of NOPs needed
5688 for sync vs. loads workaround was switched; corrected. Run second
5689 pass for all workarounds. No NOPs needed after call insns. Change
5690 second pass to use find_next_insn_start and find_load helpers in order
5691 to properly detect parallel insns.
5692 * config/bfin/bfin.md (cbranch_with_nops): Increase length.
5694 2008-09-10 Jan Hubicka <jh@suse.cz>
5696 * value-prof.c (gimple_ic): Fix tuplification bug.
5697 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
5700 2008-09-10 Jakub Jelinek <jakub@redhat.com>
5702 PR tree-optimization/37353
5703 * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
5704 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
5705 calls instead of cond_dead_built_in_calls.
5706 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
5707 initalize the vector only before adding first entry. Use VEC_safe_push
5708 instead of VEC_quick_push. Pass cond_dead_built_in_calls to
5709 shrink_wrap_conditional_dead_built_in_calls call.
5711 2008-09-10 Ira Rosen <irar@il.ibm.com>
5713 PR tree-optimization/37385
5714 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
5715 argument, and use it as a vector type if not NULL.
5716 (vectorizable_store): Call vect_create_data_ref_ptr with the type of
5718 (vect_setup_realignment): Call vect_create_data_ref_ptr with
5719 additional argument.
5720 (vectorizable_load): Likewise.
5722 2008-09-10 Jakub Jelinek <jakub@redhat.com>
5724 * config/i386/i386.md (SWI32): New mode iterator.
5725 (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
5728 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
5730 PR rtl-optimization/37435
5731 * caller-save.c (insert_restore, insert_save): Check the mode by
5734 2008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5737 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
5739 (dw2_output_indirect_constant_1): Use unstripped name in symbol
5742 2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
5744 * doc/invoke.texi (ARM Options): Correct errors in discussion
5745 of -mfloat-abi, -mhard-float, and -msoft-float.
5747 2008-09-09 Jakub Jelinek <jakub@redhat.com>
5748 Jan Hubicka <jh@suse.cz>
5751 * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
5752 calling gimple_regimplify_operands on it. Iterate over all newly
5753 added statements, not just the last one.
5754 (insert_init_stmt): Insert stmt into seq first, then call
5755 gimple_regimplify_operands on it. Don't create new gimplification
5756 context, nor find referenced vars.
5758 2008-09-09 Jakub Jelinek <jakub@redhat.com>
5761 * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
5762 to pointer to vector pointer.
5763 * ipa-prop.c (ipa_propagate_indirect_call_infos,
5764 propagate_info_to_inlined_callees): Likewise.
5765 (update_call_notes_after_inlining): Likewise. Push new indirect edge
5766 to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
5767 ipa_check_create_edge_args.
5768 * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
5769 argument to pointer to vector pointer.
5770 (cgraph_decide_inlining_of_small_function): Adjust
5771 cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
5775 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
5776 optimizing for size, not speed.
5778 PR rtl-optimization/37408
5779 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
5780 if parm is promoted.
5782 2008-09-09 Sebastian Pop <sebastian.pop@amd.com>
5784 PR tree-optimization/37375
5785 * tree-scalar-evolution.c (scev_info_str): Add field
5787 (new_scev_info_str, eq_scev_info, find_var_scev_info,
5788 set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
5789 set_instantiated_value): Pass instantiated_below.
5790 (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
5792 (instantiate_scev_1, instantiate_scev): Pass a basic block above which
5793 the definitions are not instantiated.
5795 * tree-scalar-evolution.h (instantiate_scev): Update declaration.
5796 (block_before_loop): New.
5797 * tree-data-ref.c (dr_analyze_indices): Update uses of
5799 * graphite.c (block_before_scop): New.
5800 (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
5801 basic block, not a loop for determining the parameters.
5802 (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
5804 (idx_record_params, find_params_in_bb, find_scop_parameters,
5805 build_loop_iteration_domains, add_conditions_to_domain): Update calls
5806 to instantiate_scev.
5808 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
5810 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
5814 * ira-build.c (ira_create_allocno): Setup frequency to 0.
5816 * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
5817 Check zero freq and increase if necessary.
5819 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
5821 * ira-conflicts.c (process_regs_for_copy): Check that the hard
5822 regno is in the right range. Add comments.
5824 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5826 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
5828 * mips-tfile.c (copy_object): Cast alloca result to int *.
5829 * mips-tdump.c (print_symbol): Cast xmalloc return values to
5831 Rename class to sclass.
5832 (read_tfile): Cast read_seek return values to proper types.
5833 Cast xcalloc return value to proper type.
5835 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5837 * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
5838 * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
5839 * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
5841 2008-09-09 Jan Hubicka <jh@suse.cz>
5843 * profile.c (is_edge_inconsistent): Add debug output; ignore
5844 negative count on fake edges.
5845 (is_inconsistent): Add debug output.
5847 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
5849 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
5851 (choose_ready): When first insn is chosen from the ready list, also
5854 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
5856 PR rtl-optimization/37360
5857 * haifa-sched.c (max_issue): Do not assert that we never issue more
5858 insns than issue_rate. Add comment.
5860 2008-09-09 Richard Guenther <rguenther@suse.de>
5862 * tree-cfg.c (verify_types_in_gimple_op): Remove.
5863 (verify_types_in_gimple_call): Rename to ...
5864 (verify_gimple_call): ... this. Enhance.
5865 (verify_types_in_gimple_cond): Remove.
5866 (verify_gimple_comparison): New function ...
5867 (verify_types_in_gimple_assign): ... split out from here.
5868 (verify_types_in_gimple_return): Rename to ...
5869 (verify_gimple_return): ... this. Enhance.
5870 (verify_types_in_gimple_switch): Rename to ...
5871 (verify_gimple_switch): ... this. Enhance.
5872 (verify_gimple_goto): New function.
5873 (verify_types_in_gimple_phi): Rename to ...
5874 (verify_gimple_phi): ... this. Enhance.
5875 (verify_types_in_gimple_stmt): Adjust calls to helper functions.
5876 Fold in single-statement cases from verify_types_in_gimple_seq_2.
5877 (verify_types_in_gimple_seq_2): Remove cases handled in
5878 verify_types_in_gimple_stmt.
5880 2008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
5882 * config/bfin/bfin.c (n_regs_to_save): New static variable.
5883 (push_multiple_operation, pop_multiple_operation): Set it.
5884 (workaround_rts_anomaly): New function.
5885 (workaround_speculation): New function, broken out of bfin_reorg.
5886 (bfin_reorg): Call the new functions.
5888 2008-09-09 Richard Guenther <rguenther@suse.de>
5892 * gimplify.c (gimplify_conversion): Change conversions of
5893 non-register type to VIEW_CONVERT_EXPRs.
5894 (gimplify_addr_expr): If we need to make the operand
5895 addressable make sure to use a properly initialized
5896 temporary for that so it gets a valid gimple store.
5898 2008-09-09 Aldy Hernandez <aldyh@redhat.com>
5900 * function.h (struct function): Add function_start_locus.
5901 * cfgexpand.c (gimple_expand_cfg): Use it.
5902 * c-parser.c (c_parser_declaration_or_fndef): Set it.
5904 2008-09-09 Richard Guenther <rguenther@suse.de>
5906 PR tree-optimization/37433
5907 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
5910 2008-09-09 Richard Guenther <rguenther@suse.de>
5912 PR tree-optimization/37387
5913 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
5914 and bits to a common type.
5916 2008-09-09 Nick Clifton <nickc@redhat.com>
5918 * config/v850/v850.md (return): Restore frame size restriction.
5920 2008-09-09 Paolo Bonzini <bonzini@gnu.org>
5922 * c-common.c (c_expand_decl): Remove.
5923 * c-common.h (anon_aggr_type_p): Remove prototype.
5924 (DECL_ANON_UNION_ELEMS): Remove.
5925 * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
5926 * c-decl.c (anon_aggr_type_p): Remove.
5927 * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
5928 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
5929 * langhooks.h (struct lang_hooks): Remove expand_decl.
5930 * langhooks.c (lhd_expand_decl): Remove.
5931 * stmt.c (expand_anon_union_decl): Remove.
5932 * tree.h (expand_anon_union_decl): Remove prototype.
5934 2008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
5937 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
5939 * config/avr/avr.md (QISI) : Define mode iterator.
5940 (negated_tst<mode>) : Redefine as split using mode macro.
5941 (reversed_tstqi): Define insn as reversed compare with zero.
5942 (reversed_tsthi): Ditto.
5943 (reversed_tstsi): Ditto.
5945 2008-09-08 Jakub Jelinek <jakub@redhat.com>
5948 * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
5949 call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
5952 * predict.c (optimize_function_for_size_p): Don't segfault if
5954 * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
5955 tree_swap_operands_p): Don't test cfun != NULL before calling
5956 optimize_function_for_s*_p.
5958 2008-09-08 Eric Botcazou <ebotcazou@adacore.com>
5960 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
5963 2008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
5965 * crx/crx.h (IRA_COVER_CLASSES): Define.
5967 2008-09-08 Jakub Jelinek <jakub@redhat.com>
5970 * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
5971 even when a stmt has been gimple_modified_p, but after fold_stmt is
5972 not any longer. Remove unneeded may_have_exposed_new_symbols
5975 2008-09-08 Richard Guenther <rguenther@suse.de>
5977 PR tree-optimization/37421
5978 * tree-ssa-sccvn.c (visit_copy): Make sure to fully
5981 2008-09-08 Jakub Jelinek <jakub@redhat.com>
5984 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
5986 2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5989 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
5990 * pa-hpux10.h (LINK_SPEC): Likewise.
5991 * pa-hpux11.h (LINK_SPEC): Likewise.
5993 2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5995 * pa32-regs.h (IRA_COVER_CLASSES): Define.
5996 * pa64-regs.h (IRA_COVER_CLASSES): Define.
5998 2008-09-07 Helge Deller <deller@gmx.de>
6000 * pa/linux-atomic.c: New file.
6001 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
6002 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
6004 2008-09-07 Richard Guenther <rguenther@suse.de>
6005 Ira Rosen <irar@il.ibm.com>
6007 PR tree-optimization/36630
6008 * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
6009 Call STRIP_NOPS before calling evolution_part_in_loop_num.
6011 2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
6012 Ira Rosen <irar@il.ibm.com>
6014 PR tree-optimization/35642
6015 * config/rs6000/altivec.md (mulv8hi3): Implement.
6017 2008-09-06 Jeff Law <law@redhat.com>
6019 * h8300/h8300.h (IRA_COVER_CLASSES): Define.
6021 2008-09-06 Jan Hubicka <jh@suse.cz>
6023 PR tree-optimization/14703
6024 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
6026 * passes.c (init_optimization_passes): Recompute inline parameters.
6028 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
6030 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
6033 2008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
6034 Peter Fuerst <post@pfrst.de>
6036 * doc/invoke.texi: Document -mr10k-cache-barrier=.
6037 * doc/extend.texi: Document __builtin_mips_cache.
6038 * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
6039 * config/mips/mips.opt (mr10k-cache-barrier=): New option.
6040 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
6041 __GCC_HAVE_BUILTIN_MIPS_CACHE.
6042 (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
6043 * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
6044 (set_push_mips_isas): New variable.
6045 (mips_r10k_cache_barrier): New variable.
6046 (cache): New availability predicate.
6047 (mips_builtins): Add an entry for __builtin_mips_cache.
6048 (mips_build_cvpointer_type): New function.
6049 (MIPS_ATYPE_CVPOINTER): New macro.
6050 (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
6052 (r10k_simplified_address_p, r10k_simplify_address)
6053 (r10k_uncached_address_p, r10k_safe_address_p)
6054 (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
6055 (r10k_needs_protection_p_call, r10k_needs_protection_p)
6056 (r10k_insert_cache_barriers): New functions.
6057 (mips_reorg_process_insns): Delete cache barriers after a
6058 branch-likely instruction.
6059 (mips_reorg): Call r10k_insert_cache_barriers.
6060 (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
6061 * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
6062 (UNSPEC_R10K_CACHE_BARRIER): Likewise.
6063 (mips_cache, r10k_cache_barrier): New define_insns.
6065 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
6067 * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
6068 * ira-color.c (setup_allocno_left_conflicts_num): Use
6069 hard_reg_set_equal_p instead of a comparison with
6070 ira_zero_hard_reg_set.
6071 * ira.c (setup_reg_subclasses): Likewise.
6072 (setup_cover_and_important_classes): Likewise.
6073 (setup_class_translate): Likewise.
6074 (setup_reg_class_intersect_union): Likewise.
6075 (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
6076 (ira_init_once): Don't initialize them.
6078 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
6080 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
6082 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
6084 * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
6086 2008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
6088 Improved branch hints, safe hints, and scheduling.
6090 * haifa-sched.c (sched_emit_insn) : Define.
6091 * sched-int.h (sched_emit_insn) : Add prototype.
6092 * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
6093 -mhint-max-distance -msafe-hints) : Document.
6094 * config/spu/spu.c (spu_flag_var_tracking): New.
6095 (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
6096 TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
6097 TARGET_ASM_FILE_START): Define.
6098 (TARGET_SCHED_ADJUST_PRIORITY): Remove.
6099 (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
6100 (spu_emit_branch_hint): Add blocks argument.
6101 (insert_branch_hints, insert_nops): Remove.
6102 (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
6103 uses_ls_unit, spu_sched_init_global, spu_sched_init,
6104 spu_sched_reorder, asm_file_start): New functions.
6105 (clock_var, spu_sched_length, pipe0_clock,
6106 pipe1_clock, prev_clock_var, prev_priority,
6107 spu_ls_first, prev_ls_clock): New static variables.
6108 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
6109 * config/spu.md (iprefetch): Add operand, make it clobber MEM.
6110 (nopn_nv): Add a non-volatile version of nop.
6111 * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
6112 -mhint-max-distance, -msafe-hints): New options.
6114 2008-09-05 Janis Johnson <janis187@us.ibm.com>
6115 Samuel Tardieu <sam@rfc1149.net>
6117 * opts.c (decode_options): Combine nested if statements.
6120 * opts.c (decode_options): Handle more relationships among
6121 unit-at-a-time, toplevel-reorder, and section-anchors.
6123 2008-09-05 David Daney <ddaney@avtrex.com>
6125 * doc/install.texi (--enable-reduced-reflection): Document new option.
6127 2008-09-05 Bob Wilson <bob.wilson@acm.org>
6129 * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
6131 (constantpool_operand): New.
6132 (move_operand): Disallow sub-word modes for the constant pool.
6133 * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
6134 (xtensa_secondary_reload_class): Replace with....
6135 (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
6136 Set icode for sub-word reloads from the constant pool.
6137 * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
6138 (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
6139 * config/xtensa/xtensa.md (reload<mode>_literal): New.
6140 * config/xtensa/xtensa-protos.h: Update prototypes.
6142 2008-09-05 Joseph Myers <joseph@codesourcery.com>
6144 * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
6145 (REG_CLASS_NAMES): Update.
6146 (REG_CLASS_CONTENTS): Update.
6147 * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
6148 of ALL_REGS for regs 77 and 78.
6149 * function.c (instantiate_virtual_regs_in_insn): Assert that
6150 return value of simplify_gen_subreg is not NULL.
6152 2008-09-05 Paolo Bonzini <bonzini@gnu.org>
6154 * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
6155 (gen_rtvec_v): Fix coding standards.
6157 2008-09-04 Jan Hubicka <jh@suse.cz>
6159 * i386.c (decide_alg): Be more conservative about optimizing for size.
6161 2008-09-04 Ian Lance Taylor <iant@google.com>
6163 * varasm.c (narrowing_initializer_constant_valid_p): New
6165 (initializer_constant_valid_p): Call it.
6167 2008-09-04 Jeff Law <law@redhat.com>
6169 * fold-const.c (native_encode_real): Fix computation of WORDS.
6170 (native_interpret_real): Likewise.
6172 2008-09-04 Janis Johnson <janis187@us.ibm.com>
6174 * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
6176 2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
6178 * ira-conflicts.c (process_regs_for_copy): Check insn to check
6179 that the cost is already taken into account in ira-costs.c
6181 * ira-int.h (ira_debug_copy, ira_debug_copies): New.
6183 * ira-build.c (print_copy, print_copies, ira_debug_copy,
6184 ira_debug_copies): New.
6185 (ira_bulid): Call print_copies.
6187 * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
6189 2008-09-04 Samuel Tardieu <sam@rfc1149.net>
6192 * config/rs6000/rs6000.c (optimization_options): Remove check of
6193 flag_toplevel_order.
6195 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
6197 * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
6198 * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
6199 second operand is a reg_imm10_operand.
6200 * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
6201 *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
6202 (*seq_<GPR:mode><GPR2:mode>): Rename to
6203 *seq_zero_<GPR:mode><GPR2:mode>. Don't match if
6205 (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
6206 *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if
6208 (*sne_<GPR:mode><GPR2:mode>): Rename to
6209 *sne_zero_<GPR:mode><GPR2:mode>. Don't match if
6212 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
6214 * config/mips/mips.h (ISA_HAS_EXTS): New macro.
6215 * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
6216 combining an arithmetic right shift by more than 31 and a
6217 trunction. Don't match for out-of-range shift amounts. Set
6218 attribute mode to <MODE>.
6219 (*lshr32_trunc<mode>): Name the pattern combining a logical right
6220 shift by 32 and and a truncation. Set attribute mode to <MODE>.
6221 (*<optab>_trunc<mode>_exts): New pattern for truncated right
6222 shifts by less than 32.
6223 (extv): Change predicate on first operand to accept registers.
6224 Change predicate of the other operands from immediate_operand to
6225 const_int_operand. Expand exts when source is a register.
6226 (extzv): Change predicate of the constant operands from
6227 immediate_operand to const_int_operand.
6228 (extzv<mode>): Change predicate of the constant operands from
6229 immediate_operand to const_int_operand and no constraint. Also
6231 (*extzv_trunc<mode>_exts): New pattern.
6233 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
6235 * config/mips/mips.h (ISA_HAS_CINS): New macro.
6236 * config/mips/mips-protos.h (mask_low_and_shift_p,
6237 mask_low_and_shift_len): Declare.
6238 * config/mips/mips.c (mask_low_and_shift_p,
6239 mask_low_and_shift_len): New functions.
6240 (mips_print_operand): Handle new operand prefix "m".
6241 * config/mips/mips.md (*cins<mode>): New pattern.
6243 2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
6245 * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
6246 optimizing for size.
6248 2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
6250 * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
6251 regardless of epilogue_completed.
6253 2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
6256 * ira-lives.c (process_bb_node_lives): Check setjmp.
6258 2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
6261 * ira-build.c (form_loop_tree): Reverse BB walk.
6262 (create_bb_allocnos): Likewise.
6263 * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
6264 (mark_reg_store): Rename to...
6265 (mark_ref_live): ...this and take a df_ref argument instead of
6266 note_stores arguments. Assert that we have a register.
6267 (mark_reg_clobber): Delete.
6268 (def_conflicts_with_inputs_p): New function.
6269 (mark_reg_conflicts): Delete.
6270 (mark_reg_death): Rename to...
6271 (mark_ref_dead): ...this and take a df_ref argument instead of
6272 a register. Assert that we have a register.
6273 (process_bb_node_lives): Hoist frequency calculation out of
6274 instruction walk. Convert from a forwards scan to a backwards scan.
6275 Use DF_REF_USES and DF_REF_DEFS instead of register notes and
6276 note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling.
6277 (create_allocno_live_ranges): Don't create regs_set.
6279 2008-09-04 Ian Lance Taylor <iant@google.com>
6281 * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
6282 or REG_LABEL_TARGET.
6283 * calls.c (emit_library_call_value_1): Use MEM_P rather than
6284 comparing MODE with MEM.
6285 * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
6286 comparing with GF_PREDICT_TAKEN.
6287 (gimple_get_lhs): Change code to enum gimple_code.
6288 (gimple_set_lhs): Likewise.
6289 * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
6290 * omp-low.c (find_omp_clause): Change kind parameter to enum
6292 * tree-flow.h (find_omp_clause): Update declaration.
6293 * regrename.c (clear_dead_regs): Change kind parameter to enum
6295 * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
6297 * see.c (see_get_extension_data): Change return type to enum
6298 entry_type. Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
6299 SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
6300 (see_gen_normalized_extension): Change extension_code parameter to
6302 (see_seek_pre_extension_expr): Change extension_code to enum
6304 (see_merge_one_def_extension): Likewise.
6305 (see_handle_relevant_defs): Likewise.
6306 (see_handle_relevant_uses): Likewise.
6307 (see_analyze_one_def): Likewise.
6308 * tree-cfg.c (need_fake_edge_p): Compare gimple code with
6309 GIMPLE_ASM rather than ASM_EXPR.
6310 * tree-ssa-alias.c (is_escape_site): Compare gimple code with
6311 GIMPLE_RETURN rather than RETURN_EXPR.
6312 * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
6313 (evaluate_stmt): Likewise.
6314 * tree-vect-analyze.c (vect_analyze_operations): Change relevance
6315 to enum vect_relevant.
6316 (vect_mark_stmts_to_be_vectorized): Change assertion to not
6317 compare gimple codes with tree codes.
6319 2008-09-04 Paul Brook <paul@codesourcery.com>
6321 * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
6323 2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
6325 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
6326 pointer check lost in the recent no-unit-at-a-time patch.
6328 2008-09-04 Jan Hubicka <jh@suse.cz>
6331 * tree-switch-conversion.c (check_final_bb): Accept only IP
6334 2008-09-04 Jan Hubicka <jh@suse.cz>
6336 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
6338 (vrp_evaluate_conditional_warnv_with_ops): ... this one. Add
6339 using_ranges argument.
6340 (vrp_evaluate_conditional): Avoid bogus warning for type range.
6341 (vrp_visit_cond_stmt): Update call of
6342 vrp_evaluate_conditional_warnv_with_ops
6344 2008-09-04 Jan Hubicka <jh@suse.cz>
6346 PR tree-optimization/37345
6347 PR tree-optimization/37358
6348 PR tree-optimization/37357
6349 * tree.c (build_function_type_skip_args): Build distinct type copy;
6351 (build_function_decl_skip_args): Set type of new decl not orig decl;
6352 clear DECL_VINDEX for methods turned into functions.
6354 2008-09-04 Nick Clifton <nickc@redhat.com>
6356 * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
6357 * configure: Regenerate.
6358 * config.in: Regenerate.
6359 * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
6360 alignment field, if it is supported.
6362 2008-09-04 Kai Tietz <kai.tietz@onevision.com>
6364 * config/i386/t-mingw32 (SHLIB_LC): Change order of import
6367 2008-09-03 David Edelsohn <edelsohn@gnu.org>
6369 * config/rs6000/rs6000.c (processor_target_table): Do not
6370 enable VMX for POWER6.
6372 2008-09-03 Anton Blanchard <anton@samba.org>
6374 * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
6375 emit memory barrier before operation.
6377 2008-09-03 John David Anglin <dave.anglin@nrc.cnrc.gc.ca>
6380 * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
6381 default_elf_asm_output_external.
6383 2008-09-03 Jeff Law <law@redhat.com>
6385 * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
6387 2008-09-03 Richard Henderson <rth@redhat.com>
6389 * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
6390 memory barrier to below the test-and-set.
6391 (alpha_split_lock_test_and_set_12): Likewise.
6393 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
6397 * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
6400 * ira-color.c (print_loop_title): Use all_allocnos.
6401 (color_pass): Ditto. Don't add border_allocnos. Check that
6402 subloop allocno in the correspdoning bitmap all_allocnos.
6404 * ira-emit.c (change_loop): Use all_allocnos.
6406 * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
6407 (ira_create_allocno): Set up all_allocnos bit for the created allocno.
6408 (create_cap_allocno): Remove setting mentioned_allocnos.
6409 (create_insn_allocnos): Ditto.
6410 (remove_unnecessary_allocnos): Use all_allocnos.
6411 (check_allocno_creation): Check that allocnos are in the
6412 corresponding bitmap all_allocnos.
6414 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
6418 * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
6419 (process_regs_for_copy): Process subregs. Refine check when cost
6420 is taken into account in ira-costs.c.
6421 (process_reg_shuffles): Use REG_SUBREG_P.
6422 (add_insn_allocno_copies): Ditto. Ignore modes.
6424 * ira-color.c (conflict_allocno_vec): New.
6425 (COST_HOP_DIVISOR): New macro.
6426 (update_copy_costs_1): Use it.
6427 (update_conflict_hard_regno_costs): New function.
6428 (assign_hard_reg): Use it.
6429 (ira_color): Allocate and free conflict_allocno_vec.
6431 2008-09-03 Vladimir Makarov <vmakarov@redhat.com>
6435 * ira-int.h (ira_sort_insn_chain): Remove.
6437 * ira.c (basic_block_order_nums, chain_insn_order,
6438 chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
6439 (ira): Don't call ira_sort_insn_chain.
6441 * reload1.c (reload): Don't call ira_sort_insn_chain.
6443 2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
6446 * cgraphunit.c (update_call_expr): Remove eh regions from statements
6447 which become non throw.
6448 (cgraph_function_versioning): Also clear DECL_WEAK. Call
6449 update_call_expr after updating the flags on the decl.
6451 2008-09-03 Jan Hubicka <jh@suse.cz>
6453 PR tree-optimization/37315
6454 * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
6455 * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
6456 (cgraph_analyze_functions): Use node->analyzed
6457 (cgraph_mark_functions_to_output): Likewise.
6458 (cgraph_expand_function): All functions can be released after
6460 (cgraph_optimize): Use gimple_has_body_p.
6461 * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
6462 (cgraph_decide_inlining_incrementally): Likewise.
6463 (inline_transform): Inline transform.
6464 * tree-inline.c (initialize_cfun): Do now shallow copy structure;
6466 (inlinable_function_p): Drop gimple_body check.
6467 (expand_call_inline): Use gimple_has_body_p.
6468 * gimple.c (gimple_has_body_p): New.
6469 * gimple.h (gimple_has_body_p): Add prototype.
6470 * tree-cfg.c (execute_build_cfg): Remove gimple_body.
6471 (dump_function_to_file): Use gimple_has_body_p check.
6473 2008-09-03 Jakub Jelinek <jakub@redhat.com>
6476 * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
6478 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
6480 2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
6482 From Michael Frysinger <michael.frysinger@analog.com>
6483 * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
6484 bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549. Add 0.2
6487 2008-09-03 Hari Sandanagobalane <hariharan@picochip.com>
6490 * doc/extend.texi: Document picoChip builtin functions.
6491 * doc/invoke.texi: Document picoChip options.
6492 * doc/contrib.texi: Add picoChip contribution.
6493 * doc/md.texi: Document picoChip constraints.
6494 * config.gcc: Add picochip-*-*.
6495 * config/picochip/: Add new port.
6497 2008-09-03 Richard Guenther <rguenther@suse.de>
6499 PR tree-optimization/37328
6500 * tree-sra.c (sra_build_assignment): Gimplify properly.
6501 (generate_copy_inout): Take the correct stmt as definition,
6502 remove bogus assert.
6504 2008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
6506 * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
6509 From Michael Frysinger <michael.frysinger@analog.com>
6510 * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
6512 2008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net>
6514 * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
6515 (__gthread_setspecific): Revert 2008-08-31 change to
6516 __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API case.
6518 2008-09-02 Aldy Hernandez <aldyh@redhat.com>
6520 * diagnostic.c (error_at): New.
6521 * toplev.h (error_at): New prototype.
6522 * c-typeck.c (build_array_ref): Call error_at instead of error.
6523 Pass location to pedwarn.
6525 2008-09-02 Adam Nemet <anemet@caviumnetworks.com>
6527 * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
6529 2008-09-02 Jakub Jelinek <jakub@redhat.com>
6531 * dwarf2out.c (tree_add_const_value_attribute): Only handle
6532 VAR_DECL and CONST_DECL.
6534 2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
6535 Jakub Jelinek <jakub@redhat.com>
6537 * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
6538 (setup_incoming_varargs_64): Assume cum != NULL. Set/check
6539 ix86_varargs_gpr_size and ix86_varargs_fpr_size. Use
6540 ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
6541 Don't set ix86_save_varrargs_registers.
6542 (ix86_setup_incoming_varargs): Assume cum != NULL.
6543 (ix86_va_start): Check ix86_varargs_gpr_size and
6544 ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
6545 cfun->va_list_fpr_size, respectively. Subtract 8*X86_64_REGPARM_MAX
6546 from frame pointer if ix86_varargs_gpr_size == 0.
6547 (ix86_compute_frame_layout): Updated.
6548 * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
6549 (ix86_varargs_gpr_size): Define.
6550 (ix86_varargs_fpr_size): Likewise.
6551 (machine_function): Remove save_varrargs_registers.
6552 Add varargs_gpr_size and varargs_fpr_size.
6554 2008-09-02 Jakub Jelinek <jakub@redhat.com>
6556 * config/alpha/alpha.c (va_list_skip_additions,
6557 alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
6558 (alpha_gimplify_va_arg): Call unshare_expr on second use of
6561 PR tree-optimization/36766
6562 * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
6563 for already removed basic blocks.
6566 * real.c (real_maxval): Clear a lower bit to make real_maxval
6567 match get_max_float for IBM long double format.
6569 2008-09-02 Andreas Schwab <schwab@suse.de>
6571 * configure.ac: Use m4_quote to quote the expansion of m4_do.
6572 * configure: Regenerate.
6574 2008-09-02 Richard Sandiford <rdsandiford@googlemail.com>
6576 * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
6577 SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
6578 checking for a non-VOID CONSTANT_P.
6580 2008-09-02 Jan Hubicka <jh@suse.cz>
6582 * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
6583 * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
6586 2008-09-02 H.J. Lu <hongjiu.lu@intel.com>
6588 * expr.c (emit_group_store): Don't assert stack temp mode size.
6590 2008-09-02 Sebastian Pop <sebastian.pop@amd.com>
6591 Tobias Grosser <grosser@fim.uni-passau.de>
6592 Jan Sjodin <jan.sjodin@amd.com>
6593 Harsha Jagasia <harsha.jagasia@amd.com>
6594 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6595 Konrad Trifunovic <konrad.trifunovic@inria.fr>
6596 Adrien Eliche <aeliche@isty.uvsq.fr>
6598 Merge from graphite branch.
6601 * tree-loop-linear.c (perfect_loop_nest_depth): Export.
6602 * doc/invoke.texi (-floop-block, -floop-interchange,
6603 -floop-strip-mine): Document new flags.
6604 * tree-into-ssa.c (gimple_vec): Moved...
6605 * tree-loop-distribution.c (rdg_component): Moved...
6606 * cfgloopmanip.c: Include tree-flow.h.
6607 (update_dominators_in_loop): New.
6608 (create_empty_if_region_on_edge): New.
6609 (create_empty_loop_on_edge): New.
6610 (loopify): Use update_dominators_in_loop.
6611 * tree-pass.h (pass_graphite_transforms): Declared.
6612 * configure: Regenerate.
6613 * tree-phinodes.c (make_phi_node): Export.
6614 (add_phi_node_to_bb): New, split from create_phi_node.
6615 * tree-chrec.c (for_each_scev_op): New.
6616 * tree-chrec.h (for_each_scev_op): Declared.
6617 * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
6618 (remove_statement): Call get_phi_with_result.
6619 * config.in (HAVE_cloog): Undef.
6620 * gdbinit.in (pgg): New.
6621 * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
6622 * tree-ssa-loop.c (graphite_transforms): New.
6623 (gate_graphite_transforms): New.
6624 (pass_graphite_transforms): New.
6625 * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
6626 HAVE_cloog): Defined.
6627 * tree-vectorizer.c (rename_variables_in_bb): Export.
6628 * tree-data-ref.c (dr_may_alias_p): Export.
6629 (stmt_simple_memref_p): New.
6630 (find_data_references_in_stmt): Export.
6631 (find_data_references_in_loop): Export.
6632 (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
6633 (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
6634 (create_rdg_vertices): Export.
6635 (build_empty_rdg): New.
6636 (build_rdg): Call build_empty_rdg. Free dependence_relations.
6637 * tree-data-ref.h (rdg_component): ... here.
6639 (struct data_reference): Add a field scop.
6641 (find_data_references_in_loop): Declared.
6642 (find_data_references_in_stmt): Declared.
6643 (create_rdg_vertices): Declared.
6644 (dr_may_alias_p): Declared.
6645 (stmt_simple_memref_p): Declared.
6646 (struct rdg_edge): Add a field ddr_p relation.
6647 (build_empty_rdg): Declared.
6648 * lambda.h (lambda_matrix): Declare a VEC of.
6649 (find_induction_var_from_exit_cond): Declared.
6650 (lambda_vector_compare): New.
6651 * common.opt (fgraphite, floop-strip-mine,
6652 floop-interchange, floop-block): New flags.
6653 * lambda-code.c (find_induction_var_from_exit_cond): Export.
6654 * cfgloop.c (is_loop_exit): New.
6655 * cfgloop.h (is_loop_exit): Declared.
6656 (create_empty_if_region_on_edge): Declared.
6657 (create_empty_loop_on_edge): Declared.
6658 * tree-flow.h (add_phi_node_to_bb): Declared.
6659 (make_phi_node): Declared.
6660 (rename_variables_in_bb): Declared.
6661 (perfect_loop_nest_depth): Declared.
6662 (graphite_transform_loops): Declared.
6663 * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
6664 (graphite.o-warn): Add -Wno-error.
6665 (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
6666 (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
6667 (INCLUDES): Add PPLINC, CLOOGINC.
6668 (OBJS-common): Add graphite.o.
6669 (graphite.o): Add rule.
6670 * gimple.h (gimple_vec): ... here.
6671 * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
6672 * passes.c (init_optimization_passes): Schedule
6673 pass_graphite_transforms.
6675 2008-09-02 Samuel Tardieu <sam@rfc1149.net>
6678 * opts.c (decode_options): Move processing of -fno-unit-at-a-time
6679 and -fno-toplevel-reorder after handle_options.
6681 2008-09-02 Paul Brook <paul@codesourcery.com>
6683 * config/arm/arm.c (arm_tune_cortex_a9): Define.
6684 (arm_override_options): Set arm_tune_cortex_a9.
6685 (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
6686 (arm_issue_rate): Handle cortexa9.
6687 * config/arm/arm.h (arm_tune_cortex_a9): Declare.
6688 * config/arm/arm-cores.def: Add cortex-a9.
6689 * config/arm/arm-tune.md: Regenerate.
6690 * config/arm/arm.md: Include cortex-a9.md.
6691 (generic_sched, generic_vfp): Add cortexa9.
6692 * config/arm/cortex-a9.md: New file.
6694 2008-09-02 Richard Guenther <rguenther@suse.de>
6696 PR tree-optimization/37327
6697 * tree-vrp.c (register_new_assert_for): Make sure to not have
6698 TREE_OVERFLOW set on the bound.
6700 2008-09-02 Alexander Monakov <amonakov@ispras.ru>
6702 Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
6704 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
6705 * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
6708 2008-09-02 Victor Kaplansky <victork@il.ibm.com>
6710 * gcc/config/spu/spu.md (divdf3): Removed.
6712 2008-09-02 Jakub Jelinek <jakub@redhat.com>
6714 PR tree-optimization/37095
6715 * cgraph.c (cgraph_node): When creating new cgraph node after
6716 assembler_name_hash has been populated, record it in the hash
6719 2008-09-01 Paul Brook <paul@codesourcery.com>
6721 * doc/invoke.texi: Document -mword-relocations.
6722 * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
6723 * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
6724 * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
6725 * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
6726 (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
6727 (arm_emit_movpair): New function.
6728 (arm_print_operand <c>): Handle sybolic addresses.
6729 * config/arm/arm.h (TARGET_USE_MOVT): Define.
6730 (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
6731 * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
6732 * config/arm/arm.opt: Add -mword-relocations.
6733 * config/arm/arm.md (movsi): Use arm_emit_movpair.
6734 (arm_movt, arm_movw): New.
6736 2008-09-01 Paul Brook <paul@codesourcery.com>
6738 * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
6739 Allow Interworking on ARMv4 EABI based targets.
6740 * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
6741 (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
6743 2008-09-01 Paul Brook <paul@codesourcery.com>
6745 * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
6746 optimized LT0 test. Remove optimization for GT.
6748 2008-09-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6750 * pa64-hpux.h (LIB_SPEC): Link against librt when building static
6751 openmp applications.
6752 * pa-hpux11.h (LIB_SPEC): Likewise.
6754 * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
6757 2008-09-01 Jan Hubicka <jh@suse.cz>
6759 * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
6760 present, use only counts; when guessed use only frequencies.
6761 (estimate_bb_frequencies): Use function_frequency.
6762 * profile.c (compute_branch_probabilities): Exit early when
6763 profile reading failed. Set profile_status.
6764 (branch_prob): Do not set profile_status.
6766 2008-09-01 Aldy Hernandez <aldyh@redhat.com>
6768 * tree.c (protected_set_expr_location): New.
6769 * tree.h (protected_set_expr_location): New prototype.
6770 * c-tree.h (build_array_ref): Add argument.
6771 (parser_build_unary_op): Same.
6772 * c-typeck.c (build_indirect_ref): Handle new location argument.
6773 (build_array_ref): Same.
6774 (parser_build_unary_op): Same.
6775 * gimplify.c (gimplify_asm_expr): Set input_location before calling
6777 * c-omp.c (c_finish_omp_atomic): Pass location when calling
6779 * c-common.c (finish_label_address_expr): Handle new location argument.
6780 * c-common.h (build_indirect_ref): Add argument.
6781 (finish_label_address_expr): Same.
6782 * c-parser.c (c_parser_unary_expression): Pass location to build
6784 (c_parser_postfix_expression): Same.
6786 2008-09-01 Paul Brook <paul@codesourcery.com>
6788 * config/arm/arm.md: Include cortex-r4f.md.
6789 (attr fpu): Update type list.
6790 (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
6791 fconstd, fcmps and fcmpd.
6792 (attr tune_cortexr4): Define.
6793 (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
6794 * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
6795 fconsts, fconstd, fcmps and fcmpd. Use them in insn patterns.
6796 * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
6797 * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
6798 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
6799 cortex_a8_vfp_farith: Ditto.
6800 * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
6801 * config/arm/cortex-r4.md: Use tune_cortexr4.
6802 * config/arm/cortex-r4f.md: New file.
6804 2008-09-01 Richard Guenther <rguenther@suse.de>
6806 PR tree-optimization/37305
6807 * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
6808 the result of constant conversions.
6809 (fold_gimple_assign): Likewise.
6811 2008-09-01 Andrey Belevantsev <abel@ispras.ru>
6813 * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
6814 #ifdef ENABLE_CHECKING.
6816 2008-09-01 Andrey Belevantsev <abel@ispras.ru>
6818 * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
6819 * sched-int.h (print_insn, print_pattern, print_value): Declare also
6820 when !INSN_SCHEDULING.
6822 2008-09-01 Andreas Schwab <schwab@suse.de>
6824 * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
6826 2008-09-01 Paul Brook <paul@codesourcery.com>
6828 * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
6830 2008-09-01 Jan Hubicka <jh@suse.cz>
6832 * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
6834 * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
6836 * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
6837 * gimplify.c (gimplify_init_constructor): Add speed operand.
6838 * tree-sra.c (decide_block_copy): Likewise.
6839 * tree-inline.c (estimate_move_cost): Likewise.
6840 * config/alpha/alpha.h (MOVE_RATIO): Update.
6841 * config/frv/frv.c (MOVE_RATIO): Update.
6842 * config/spu/spu.h (MOVE_RATIO): Update.
6843 * config/sparc/sparc.h (MOVE_RATIO): Update.
6844 * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
6845 * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
6846 * config/cris/cris.h (MOVE_RATIO): Update.
6847 * config/mn10300/mn10300.h (MOVE_RATIO): Update.
6848 * config/arm/arm.h (MOVE_RATIO): Update.
6849 * config/pa/pa.md: Update uses of MOVE_RATIO
6850 * config/pa/pa.h (MOVE_RATIO): Update.
6851 * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
6852 CLEAR_RATIO, SET_RATIO): Update.
6853 * config/h8300/h8300.h (MOVE_RATIO): Update.
6854 * config/v850/v850.h (MOVE_RATIO): Update.
6855 * config/bfin/bfin.h (MOVE_RATIO): Update.
6857 2008-08-31 Andrey Belevantsev <abel@ispras.ru>
6858 Dmitry Melnik <dm@ispras.ru>
6859 Dmitry Zhurikhin <zhur@ispras.ru>
6860 Alexander Monakov <amonakov@ispras.ru>
6861 Maxim Kuvyrkov <maxim@codesourcery.com>
6863 * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
6864 sel-sched-dump.c, sel-sched-ir.c: New files.
6865 * Makefile.in (OBJS-common): Add selective scheduling object files.
6866 (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
6867 (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
6868 (sched-vis.o): Add dependency on $(INSN_ATTR_H).
6869 * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
6870 * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
6871 (make_forwarder_block): Update loop latch if we have redirected
6872 the loop latch edge.
6873 * cfgloop.c (get_loop_body_in_custom_order): New function.
6874 * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
6875 (CP_FALLTHRU_PREHEADERS): Likewise.
6876 (get_loop_body_in_custom_order): Declare.
6877 * cfgloopmanip.c (has_preds_from_loop): New.
6878 (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
6879 Assert that the preheader edge will be fall thru when it is set.
6880 * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
6881 fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
6882 fsel-sched-substitution, fselective-scheduling): New flags.
6883 * cse.c (hash_rtx_cb): New.
6885 * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
6886 sel_sched_insn_cnt): New counters.
6887 * final.c (compute_alignments): Export. Free dominance
6888 info after loop_optimizer_finalize.
6889 * genattr.c (main): Output maximal_insn_latency prototype.
6890 * genautomata.c (output_default_latencies): New.
6891 Factor its code from ...
6892 (output_internal_insn_latency_func): ... here.
6893 (output_internal_maximal_insn_latency_func): New.
6894 (output_maximal_insn_latency_func): New.
6895 * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
6896 (struct hard_reg_set_iterator): New.
6897 (hard_reg_set_iter_init, hard_reg_set_iter_set,
6898 hard_reg_set_iter_next): New functions.
6899 (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
6900 * lists.c (remove_free_INSN_LIST_node,
6901 remove_free_EXPR_LIST_node): New functions.
6902 * loop-init.c (loop_optimizer_init): When
6903 LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
6904 calling create_preheaders.
6905 (loop_optimizer_finalize): Do not verify flow info after reload.
6906 * recog.c (validate_replace_rtx_1): New parameter simplify.
6907 Default it to true. Update all uses. Factor out simplifying
6909 (simplify_while_replacing): ... this new function.
6910 (validate_replace_rtx_part,
6911 validate_replace_rtx_part_nosimplify): New.
6912 * recog.h (validate_replace_rtx_part,
6913 validate_replace_rtx_part_nosimplify): Declare.
6914 * rtl.c (rtx_equal_p_cb): New.
6915 (rtx_equal_p): Use it.
6916 * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
6917 (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
6918 debug_bb_n_slim, debug_bb_slim, print_rtl_slim): Likewise.
6919 * vecprim.h: Add a vector type for unsigned int.
6920 * haifa-sched.c: Include vecprim.h and cfgloop.h.
6921 (issue_rate, sched_verbose_param, note_list, dfa_state_size,
6922 ready_try, cycle_issued_insns, spec_info): Make global.
6923 (readyp): Initialize.
6924 (dfa_lookahead): New global variable.
6925 (old_max_uid, old_last_basic_block): Remove.
6926 (h_i_d): Make it a vector.
6927 (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
6929 (after_recovery, adding_bb_to_current_region_p):
6930 New variables to handle correct insertion of the recovery code.
6931 (struct ready_list): Move declaration to sched-int.h.
6932 (rgn_n_insns): Removed.
6933 (rtx_vec_t): Move to sched-int.h.
6934 (find_insn_reg_weight): Remove.
6935 (find_insn_reg_weight1): Rename to find_insn_reg_weight.
6936 (haifa_init_h_i_d, haifa_finish_h_i_d):
6937 New functions to initialize / finalize haifa instruction data.
6938 (extend_h_i_d, init_h_i_d): Rewrite.
6939 (unlink_other_notes): Move logic to add_to_note_list. Handle
6940 selective scheduler.
6941 (ready_lastpos, ready_element, ready_sort, reemit_notes,
6942 find_fallthru_edge): Make global, remove static prototypes.
6943 (max_issue): Make global. Add privileged_n and state parameters. Use
6945 (extend_global, extend_all): Removed.
6946 (init_before_recovery): Add new param. Fix the handling of the case
6947 when we insert a recovery code before the EXIT which has a predecessor
6948 with a fallthrough edge to it.
6949 (create_recovery_block): Make global. Rename to
6950 sched_create_recovery_block. Update.
6951 (change_pattern): Rename to sched_change_pattern. Make global.
6952 (speculate_insn): Rename to sched_speculate_insn. Make global.
6953 Split haifa-specific functionality into ...
6954 (haifa_change_pattern): New static function.
6955 (sched_extend_bb): New static function.
6956 (sched_init_bbs): New function.
6957 (current_sched_info): Change type to struct haifa_sched_info.
6958 (insn_cost): Adjust for selective scheduling.
6959 (dep_cost_1): New function. Move logic from ...
6960 (dep_cost): ... here.
6961 (dep_cost): Use dep_cost_1.
6962 (contributes_to_priority_p): Use sched_deps_info instead of
6964 (priority): Adjust to work with selective scheduling. Process the
6965 corner case when all dependencies don't contribute to priority.
6966 (rank_for_schedule): Use ds_weak instead of dep_weak.
6967 (advance_state): New function. Move logic from ...
6968 (advance_one_cycle): ... here.
6969 (add_to_note_list, concat_note_lists): New functions.
6970 (rm_other_notes): Make static. Adjust for selective scheduling.
6971 (remove_notes, restore_other_notes): New functions.
6972 (move_insn): Add two arguments. Update assert. Don't call
6974 (choose_ready): Remove lookahead variable, use dfa_lookahead.
6975 Remove more_issue, max_points. Move the code to initialize
6976 max_lookahead_tries to max_issue.
6977 (schedule_block): Remove rgn_n_insns1 parameter. Don't allocate
6978 ready. Adjust use of move_insn. Call restore_other_notes.
6980 (sched_init, sched_finish): Move Haifa-specific initialization/
6982 (haifa_sched_init, haifa_sched_finish): ... respectively.
6984 (setup_sched_dump): New function.
6985 (haifa_init_only_bb): New static function.
6986 (haifa_speculate_insn): New static function.
6987 (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
6988 (extend_ready, extend_all): Remove.
6989 (sched_extend_ready_list, sched_finish_ready_list): New functions.
6990 (create_check_block_twin, add_to_speculative_block): Use
6991 haifa_insns_init instead of extend_global. Update to use new
6992 initialization functions. Change parameter. Factor out code from
6993 create_check_block_twin to ...
6994 (sched_create_recovery_edges) ... this new function.
6995 (add_block): Remove.
6996 (sched_scan_info): New.
6997 (extend_bb): Use sched_scan_info.
6998 (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
6999 static functions for walking through scheduling region.
7000 (sched_luids): New vector variable to replace uid_to_luid.
7001 (luids_extend_insn): New function.
7002 (sched_max_luid): New variable.
7003 (luids_init_insn): New function.
7004 (sched_init_luids, sched_finish_luids): New functions.
7005 (insn_luid): New debug function.
7006 (sched_extend_target): New function.
7007 (haifa_init_insn): New static function.
7008 (sched_init_only_bb): New hook.
7009 (sched_split_block): New hook.
7010 (sched_split_block_1): New function.
7011 (sched_create_empty_bb): New hook.
7012 (sched_create_empty_bb_1): New function.
7013 (common_sched_info, ready): New global variables.
7014 (current_sched_info_var): Remove.
7015 (move_block_after_check): Use common_sched_info.
7016 (haifa_luid_for_non_insn): New static function.
7017 (init_before_recovery): Use haifa_init_only_bb instead of add_block.
7018 (increase_insn_priority): New.
7019 * modulo-sched.c: (issue_rate): Remove static declaration.
7020 (sms_sched_info): Change type to haifa_sched_info.
7021 (sms_sched_deps_info, sms_common_sched_info): New variables.
7022 (setup_sched_infos): New.
7023 (sms_schedule): Initialize them. Call haifa_sched_init/finish.
7024 Do not call regstat_free_calls_crossed.
7025 (sms_print_insn): Use const_rtx.
7026 * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
7027 PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
7028 PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
7029 PARAM_SCHED_MEM_TRUE_DEP_COST): New.
7030 * sched-deps.c (sched_deps_info): New. Update all relevant uses of
7031 current_sched_info to use it.
7032 (enum reg_pending_barrier_mode): Move to sched-int.h.
7033 (h_d_i_d): New variable. Initialize to NULL.
7034 ({true, output, anti, spec, forward}_dependency_cache): Initialize
7036 (estimate_dep_weak): Remove static declaration.
7037 (sched_has_condition_p): New function. Adjust users of
7038 sched_get_condition to use it instead.
7039 (conditions_mutex_p): Add arguments indicating which conditions are
7041 (sched_get_condition_with_rev): Rename from sched_get_condition. Add
7042 argument to indicate whether returned condition is reversed. Do not
7043 generate new rtx when condition should be reversed; indicate it by
7044 setting new argument instead.
7045 (add_dependence_list_and_free): Add deps parameter.
7046 Update all users. Do not free dependence list when
7047 deps context is readonly.
7048 (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
7050 (remove_from_dependence_list, remove_from_both_dependence_lists): New.
7051 (remove_from_deps): New. Use the above functions.
7052 (cur_insn, can_start_lhs_rhs_p): New static variables.
7053 (add_or_update_back_dep_1): Initialize present_dep_type.
7054 (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
7055 haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
7056 haifa_note_dep): New functions implementing dependence hooks for
7057 the Haifa scheduler.
7058 (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
7059 note_dep): New functions.
7060 (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
7062 (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
7063 (free_deps): Initialize deps->reg_last.
7064 (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
7065 sched_analyze_insn): Update to use dependency hooks infrastructure
7066 and readonly contexts.
7067 (deps_analyze_insn): New function. Move part of logic from ...
7068 (sched_analyze): ... here. Also move some logic to ...
7069 (deps_start_bb): ... here. New function.
7070 (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
7072 (sched_deps_init): New function. Move code from ...
7073 (init_dependency_caches): ... here. Remove.
7074 (init_deps_data_vector): New.
7075 (sched_deps_finish): New function. Move code from ...
7076 (free_dependency_caches): ... here. Remove.
7077 (init_deps_global, finish_deps_global): Adjust for use with
7078 selective scheduling.
7079 (get_dep_weak): Move logic to ...
7080 (get_dep_weak_1): New function.
7081 (ds_merge): Move logic to ...
7082 (ds_merge_1): New static function.
7083 (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
7084 (ds_get_max_dep_weak): New function.
7085 * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
7086 (n_insns): Rename to rgn_n_insns.
7087 (debug_ebb_dependencies): New function.
7088 (init_ready_list): Use it.
7089 (begin_schedule_ready): Use sched_init_only_bb.
7090 (ebb_print_insn): Indicate when an insn starts a new cycle.
7091 (contributes_to_priority, compute_jump_reg_dependencies,
7092 add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
7093 (add_block1): Remove to ebb_add_block.
7094 (ebb_sched_deps_info, ebb_common_sched_info): New variables.
7095 (schedule_ebb): Initialize them. Use remove_notes instead of
7096 rm_other_notes. Use haifa_local_init/finish.
7097 (schedule_ebbs): Use haifa_sched_init/finish.
7098 * sched-int.h: Include vecprim.h, remove rtl.h.
7099 (struct ready_list): Delete declaration.
7100 (sched_verbose_param, enum sched_pass_id_t,
7101 bb_vec_t, insn_vec_t, rtx_vec_t): New.
7102 (struct sched_scan_info_def): New structure.
7103 (sched_scan_info, sched_scan, sched_init_bbs,
7104 sched_init_luids, sched_finish_luids, sched_extend_target,
7105 haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
7106 (struct common_sched_info_def): New.
7107 (common_sched_info, haifa_common_sched_info,
7108 sched_emulate_haifa_p): Declare.
7110 (sched_luids): Declare.
7111 (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
7112 (sched_max_luid, insn_luid): Declare.
7113 (note_list, remove_notes, restore_other_notes, bb_note): Declare.
7114 (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
7115 print_insn, print_pattern, print_value, haifa_classify_insn,
7116 sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
7117 setup_sched_dump, sched_init, sched_finish,
7118 sel_insn_is_speculation_check): Export.
7119 (struct ready_list): Move from haifa-sched.c.
7120 (ready_try, ready, max_issue): Export.
7121 (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
7122 sched_init_only_bb, sched_split_block, sched_split_block_1,
7123 sched_create_empty_bb, sched_create_empty_bb_1,
7124 sched_create_recovery_block, sched_create_recovery_edges): Export.
7125 (enum reg_pending_barrier_mode): Export.
7126 (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
7128 (struct sched_info): Rename to haifa_sched_info. Use const_rtx for
7129 print_insn field. Move add_block and fix_recovery_cfg to
7130 common_sched_info_def. Move compute_jump_reg_dependencies,
7132 (struct sched_deps_info_def): ... this new structure.
7133 (sched_deps_info): Declare.
7134 (struct spec_info_def): Remove weakness_cutoff, add
7135 data_weakness_cutoff and control_weakness_cutoff.
7136 (spec_info): Declare.
7137 (struct _haifa_deps_insn_data): Split from haifa_insn_data. Add
7139 (struct haifa_insn_data): Rename to struct _haifa_insn_data.
7140 (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
7141 (current_sched_info): Change type to struct haifa_sched_info.
7142 (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
7143 (h_d_i_d): New variable.
7144 (HDID): New accessor macro.
7145 (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
7146 (HID): New accessor macro. Rewrite h_i_d accessor macros through HID
7148 (IS_SPECULATION_CHECK_P): Update for selective scheduler.
7149 (enum SCHED_FLAGS): Update for selective scheduler.
7150 (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
7151 (init_dependency_caches, free_dependency_caches): Delete declarations.
7152 (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
7153 estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
7154 ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
7155 sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
7156 haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
7158 (rm_other_notes): Delete declaration.
7159 (schedule_block): Remove one argument.
7160 (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
7161 ready_element, ready_lastpos, sched_extend_ready_list,
7162 sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
7163 concat_note_lists): Export.
7164 (struct region): Move from sched-rgn.h.
7165 (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
7166 RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
7167 BLOCK_TO_BB, CONTAINING_RGN): Export.
7168 (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
7169 (current_nr_blocks, current_blocks, target_bb): Likewise.
7170 (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
7171 sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
7172 sched_rgn_local_init, extend_regions,
7173 rgn_make_new_region_out_of_new_block, compute_priorities,
7174 debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
7175 extend_rgns, deps_join rgn_setup_common_sched_info,
7176 rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
7177 dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
7178 (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
7179 increase_insn_priority): Likewise.
7180 * sched-rgn.c: Include sel-sched.h.
7181 (ref_counts): New static variable. Use it ...
7182 (INSN_REF_COUNT): ... here. Rewrite and move closer to uses.
7183 (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
7184 (sched_is_disabled_for_current_region_p): Delete static declaration.
7185 (struct region): Move to sched-int.h.
7186 (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
7187 ebb_head): Define and initialize.
7188 (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
7189 BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
7190 BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
7192 (find_single_block_region): Add new argument to indicate that EBB
7193 regions should be constructed.
7194 (debug_live): Delete declaration.
7195 (current_nr_blocks, current_blocks, target_bb):
7196 Remove static qualifiers.
7197 (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
7199 (init_regions): Delete declaration.
7200 (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
7201 rgn_estimate_number_of_insns): New.
7202 (too_large): Use estimate_number_of_insns.
7203 (haifa_find_rgns): New. Move the code from ...
7204 (find_rgns): ... here. Call either sel_find_rgns or haifa_find_rgns.
7205 (free_trg_info): New.
7206 (compute_trg_info): Allocate candidate tables here instead of ...
7207 (init_ready_list): ... here.
7208 (rgn_print_insn): Use const_rtx.
7209 (contributes_to_priority, extend_regions): Delete static declaration.
7210 (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
7211 (add_block1): Rename to rgn_add_block.
7212 (debug_rgn_dependencies): Delete static qualifier.
7213 (new_ready): Use sched_deps_info. Simplify.
7214 (rgn_common_sched_info, rgn_const_sched_deps_info,
7215 rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
7217 (region_sched_info): Rename to rgn_const_sched_info.
7218 (deps_join): New, extracted from ...
7219 (propagate_deps): ... here.
7220 (compute_block_dependences, debug_dependencies): Update for selective
7222 (free_rgn_deps, compute_priorities): New functions.
7223 (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
7224 sched_rgn_compute_dependencies): New functions.
7225 (schedule_region): Use them.
7226 (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
7227 rgn_setup_common_sched_info, rgn_setup_sched_infos):
7229 (schedule_insns): Call new functions that were split out.
7230 (rgn_make_new_region_out_of_new_block): New.
7231 (get_rgn_sched_max_insns_priority): New.
7232 (rest_of_handle_sched, rest_of_handle_sched2): Call selective
7233 scheduling when appropriate.
7234 * sched-vis.c: Include insn-attr.h.
7235 (print_value, print_pattern): Make global.
7236 (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
7237 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7238 TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
7239 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
7240 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
7241 TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
7242 hooks. Initialize them to 0.
7243 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
7244 * target.h (struct gcc_target): Add them. Rename gen_check field to
7246 * flags.h (sel_sched_switch_set): Declare.
7247 * opts.c (sel_sched_switch_set): New variable.
7248 (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
7249 pipelining is disabled from command line.
7250 (common_handle_option): Record whether selective scheduling is
7251 requested from command line.
7252 * doc/invoke.texi: Document new flags and parameters.
7253 * doc/tm.texi: Document new target hooks.
7254 * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
7256 (dfa_state_size): Do not declare locally.
7257 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
7258 * config/rs6000/rs6000.c (rs6000_init_sched_context,
7259 rs6000_alloc_sched_context, rs6000_set_sched_context,
7260 rs6000_free_sched_context): New functions.
7261 (struct _rs6000_sched_context): New.
7262 (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
7264 (rs6000_sched_finish): Do not run for selective scheduling.
7266 2008-08-31 Jan Hubicka <jh@suse.cz>
7268 * frv.c (frv_rtx_costs): Update forward declaration.
7269 * spu.c (spu_rtx_costs): Likewise.
7270 * pdp11.c: Include df.h
7271 (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
7272 * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
7273 (m68hc11_rtx_costs_1): Fix call of rtx_cost.
7274 * iq2000.c (iq2000_address_cost): Add speed argument.
7275 (iq2000_rtx_costs): Likewise.
7276 * mn10300.c (mn10300_address_cost_1): Remove speed argument;
7277 update call of mn10300_address_cost.
7278 * mcore.c: Include df.h
7279 (mcore_rtx_costs): Update prototype.
7280 * score3.c: Include df.h
7281 (score3_rtx_costs): Remove speed argument.
7282 * score7.c: Include df.h
7283 (score7_address_cost): Remove speed argument.
7284 * score-protos.h (score_address_cost): Update prototype.
7285 * score.c: Include df.h
7286 (score_rtx_costs): Update call of costs functions.
7287 * v850.c (v850_rtx_costs): Add bool argument.
7289 2008-08-31 Hans-Peter Nilsson <hp@axis.com>
7291 * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
7293 2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
7295 * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
7296 * config/i386/gthr-win32.c (__gthread_setspecific): Same.
7298 2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
7300 * mkmap-flat.awk: Add option pe_dll.
7301 * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
7302 * config/i386/t-cygwin (SHLIB_LC): Add.
7303 * config/i386/t-mingw32 (SHLIB_LC): Add.
7304 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
7305 (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
7306 (LINK_SPEC): Support libgcc_s.
7307 (LIBGCC_SPEC): Support libgcc_s.
7308 (LIBGCC_SONAME): New.
7310 2008-08-31 Jan Hubicka <jh@suse.cz>
7312 * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
7313 mistakely had old version of patch.
7315 * ipa-cp.c (ipcp_need_original_clone_p): Remove.
7316 (ipcp_estimate_growth): New.
7317 (ipcp_insert_stage): Use ipcp_estimate_growth.
7318 * profile.c (branch_prob): When reading failed, do not consider
7321 2008-08-31 Jan Hubicka <jh@suse.cz>
7323 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
7324 loop is optimized for speed.
7326 2008-08-31 Richard Guenther <rguenther@suse.de>
7329 * fold-const.c (fold_binary): Retain conversions in folding
7332 2008-08-31 Jan Hubicka <jh@suse.cz>
7334 * postreload-gcse.c (eliminate_partially_redundant_loads):
7335 Use optimize_bb_for_size_p.
7336 * predict.c (maybe_hot_frequency_p): Make inline.
7337 (maybe_hot_count_p): Break out from ...
7338 (maybe_hot_bb_p): ... this one.
7339 (maybe_hot_edge_p): Simplify.
7340 * basic-block.h (probably_cold_bb_p): Remove.
7342 2008-08-31 Jakub Jelinek <jakub@redhat.com>
7345 * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
7347 * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
7348 * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
7349 Also split V4SFmode.
7350 * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
7353 2008-08-31 Jan Hubicka <jh@suse.cz>
7355 * predict.c (PROB_VERY_LIKELY): Make small enough so things
7357 * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
7359 2008-08-31 Jakub Jelinek <jakub@redhat.com>
7362 * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
7365 * dwarf2out.c (native_encode_initializer): Subtract min_index for
7366 non-range array index. Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
7368 2008-08-31 Jan Hubicka <jh@suse.cz>
7370 * sparc.h (BRANCH_COST): Fix macro definition.
7371 * avr.c (avr_operand_rtx_cost): Add speed argument.
7372 (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
7374 2008-08-31 Richard Guenther <rguenther@suse.de>
7376 * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
7377 types instead of operands. Re-instantiate verifying of
7378 binary expression operands.
7380 2008-08-30 Jan Hubicka <jh@suse.cz>
7382 * fwprop.c (should_replace_address): Add speed attribute.
7383 (PR_OPTIMIZE_FOR_SPEED): New flag.
7384 (propagate_rtx_1): Use it.
7385 (propagate_rtx): Set it.
7386 (try_fwprop_subst): Update call of rtx_costs.
7387 (forward_propagate_and_simplify): LIkewise.
7388 * hooks.c (hook_int_rtx_bool_0): New
7389 (hook_bool_rtx_int_int_intp_false): Replace by ...
7390 (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
7391 * hooks.h (hook_int_rtx_bool_0): New
7392 (hook_bool_rtx_int_int_intp_false): Replace by ...
7393 (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
7394 * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
7395 (prepare_cmp_insn): UPdate call of rtx_cost.
7396 * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
7397 (reload_cse_simplify_operands): Update call of rtx_cost.
7398 (reload_cse_move2add): call of rtx_cost.
7399 * target.h (struct gcc_target): Update rtx_costs and address_costs.
7400 * rtlanal.c (rtx_cost): Add speed argument.
7401 (address_cost): Add speed argument
7402 (default_address_cost): Likewise.
7403 (insn_rtx_cost): Likewise.
7404 * cfgloopanal.c (seq_cost): Add speed argument.
7405 (target_reg_cost, target_spill_cost): Turn to array.
7406 (init_set_costs): Update for speed.
7407 (estimate_reg_pressure_cost): Add speed argument.
7408 * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
7409 * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
7410 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
7411 (seq_cost): Add speed argument.
7412 (computation_cost): Add speed arugment.
7413 (add_cost, multiply_by_const, get_address_cost): add speed argument.
7414 (force_expr_to_var_cost): Update for profile info.
7415 (force_var_cost): Likewise.
7416 (split_address_cost): Likewise.
7417 (ptr_difference_cost): Likewise.
7418 (difference_cost): Likewise.
7419 (get_computation_cost_at): Likewise.
7420 (determine_iv_cost): Likewise.
7421 (ivopts_global_cost_for_size): Likewise.
7422 (rewrite_use_address): Likewise.
7423 (tree_ssa_iv_optimize_loop): Initialize speed field.
7424 * cse.c (optimize_this_for_speed_p): New static var.
7425 (notreg_cost): Update call of rtx_cost.
7426 (cse_extended_basic_block): set optimize_this_for_speed_p.
7427 * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
7428 (noce_try_cmove_arith): Likewise.
7429 (noce_try_sign_mask): LIkewise.
7430 * expr.c (compress_float_constant): Update rtx_cost calls.
7431 * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
7433 (addr_to_parts): Likewise.
7434 (create_mem_ref): Likewise.
7435 * dse.c (find_shift_sequence): Add speed argument.
7436 (replace_read): Update call.
7437 * calls.c (precompute_register_parameters): Update call of rtx_cost.
7438 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
7439 * neg_cost, shift_cost, shiftadd_cost,
7440 shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
7441 mul_highpart_cost): Increase dimension.
7442 (init_expmed): Initialize for both size and speed.
7443 (expand_shift): Use profile.
7444 (synth_mult): Use profile.
7445 (choose_mult_variant): Use profile.
7446 (expand_mult): Use profile.
7447 (expand_mult_highpart_optab): Use profile.
7448 (expand_mult_highpart): Use profile.
7449 (expand_smod_pow2): Use profile.
7450 (expand_divmod): Use profile.
7451 * simplify-rtx.c (simplify_binary_operation_1): Update call of
7453 * loop-invariant.c (create_new_invariant): Use profile.
7454 (gain_for_invariant): Add speed parameter.
7455 (best_gain_for_invariant): Likewise.
7456 (find_invariants_to_move): Likewise.
7457 (move_single_loop_invariants): Set it.
7458 * target-def.h (TARGET_RTX_COSTS): Use hook.
7459 * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
7460 (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
7461 * output.h (default_address_cost): Update prototype.
7462 * combine.c (optimize_this_for_speed_p): New static var.
7463 (combine_validate_cost): Update call of rtx_cost.
7464 (combine_instructions): Set optimize_this_for_speed_p.
7465 (expand_compound_operation): Update call of rtx_cost.
7466 (make_extraction):Update call of rtx_cost.
7467 (force_to_mode):Update call of rtx_cost.
7468 (distribute_and_simplify_rtx):Update call of rtx_cost.
7469 * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
7470 (estimate_reg_pressure_cost): Update prototype.
7471 * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
7472 * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
7474 * config/alpha/alpha.c (alpha_rtx_costs): Update.
7475 (alpha_rtx_costs): Update.
7476 * config/frv/frv.c (frv_rtx_costs): Update.
7477 * config/s390/s390.c (s390_rtx_costs): Update.
7478 * config/m32c/m32c.c (m32c_memory_move_cost): Update.
7479 (m32c_rtx_costs): Update.
7480 * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
7481 (spu_rtx_costs): Update.
7482 * config/sparc/sparc.c (sparc_rtx_costs): Update.
7483 * config/m32r/m32r.c (m32r_rtx_costs): Update.
7484 * config/i386/i386.c (:ix86_address_cost): Update.
7485 (ix86_rtx_costs): Update.
7486 * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
7487 * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
7488 * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
7489 * config/crx/crx.c (crx_address_cost): Update.
7490 * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
7491 * config/stormy16/stormy16.c
7492 (xstormy16_address_cost, xstormy16_rtx_costs): Update.
7493 * config/m68hc11/m68hc11.c
7494 (m68hc11_address_cost, m68hc11_rtx_costs): Update.
7495 * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
7496 * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
7498 * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
7500 * config/ia64/ia64.c (ia64_rtx_costs): Update.
7501 * config/m68k/m68k.c (m68k_rtx_costs): Update.
7502 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
7503 * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
7504 * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
7505 (mcore_rtx_costs): update.
7506 * config/score/score3.c (score3_rtx_costs): Update.
7507 * config/score/score7.c (score7_rtx_costs): Update.
7508 * config/score/score3.h (score3_rtx_costs):Update.
7509 * config/score/score7.h (score7_rtx_costs): Update.
7510 * config/score/score.c (score_rtx_costs): Update.
7511 * config/arm/arm.c (arm_address_cost): Update.
7512 (arm_rtx_costs_1): Update.
7513 (arm_rtx_costs_1): Update.
7514 (arm_size_rtx_costs): Update.
7515 (arm_size_rtx_costs): Update.
7516 (arm_size_rtx_costs): Update.
7517 (arm_xscale_rtx_costs): Update.
7518 (arm_thumb_address_cost): Update.
7519 * config/pa/pa.c (hppa_address_cost): Update.
7520 * config/mips/mips.c (mips_rtx_costs): Update.
7521 * config/vax/vax.c (vax_address_cost): Update.
7522 * config/h8300/h8300.c (h8300_shift_costs): Update.
7523 (h8300_rtx_costs): Update.
7524 * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
7525 (v850_rtx_costs): Update.
7526 * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
7527 * config/bfin/bfin.c
7528 (bfin_address_cost): Update.
7529 (bfin_rtx_costs): Update.
7530 * stmt.c (lshift_cheap_p): Update.
7532 2008-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
7535 * expmed.c (extract_bit_field_1): Check the mode size to make
7536 sure the vector modes have the same size.
7538 2008-08-29 Michael Meissner <gnu@the-meissners.org>
7540 * dojump.c (top level): Include basic-block.h to declare
7541 optimize_insn_for_speed_p
7543 * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
7545 * opts.h (CL_SAVE): New option class for marking options that are
7546 target specific options usable in the target attribute.
7547 (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
7549 * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
7550 can easily find the target specific options that are safe to use
7551 in the attribute or pragma.
7553 * attribs.c (decl_attributes): Change #pragma GCC option to
7554 #pragma GCC target, and attribute((option(...))) to
7555 attribute((target(...))).
7557 * doc/extend.texi (target attribute): Change from option
7558 attribute. Delete push/pop/reset.
7559 (#pragma GCC target): Change from #pragma GCC option. Delete
7561 (#pragma GCC push_options): Document new pragma.
7562 (#pragma GCC pop_options): Document new pragma.
7563 (#pragma GCC reset_options): Document new pragma.
7565 * targhooks.c (default_target_option_valid_attribute_p): Add
7566 warning about port not supporting target attributes.
7567 (default_target_option_pragma_parse): New function, warn about
7568 #pragma GCC target not being supported.
7570 * targhooks.h (default_target_option_pragma_parse): Add
7573 * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
7574 TI_CURRENT_OPTION_PRAGMA.
7575 (current_target_pragma): Rename from current_option_pragma.
7577 * target.h: (struct target_option): Delete booleans for changing
7578 the optimization level on hot/cold functions. Change signature of
7579 pragma_parse hook to take a second tree.
7581 * c-tree.h (c_builtin_function_ext_scope): Add declaration.
7583 * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
7584 that the declaration is done at global scope.
7586 * langhooks.c (add_builtin_function_common): Move most of the code
7587 from add_builtin_function here, calling the hook passed in.
7588 (add_builtin_function): Call add_builtin_function_common with
7589 standard builtin hook.
7590 (add_builtin_function_ext_scope): New function to add builtins to
7593 * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
7595 (add_builtin_function_ext_scope): Add declaration.
7597 * c-pragma.c (handle_pragma_target): Rename from
7598 handle_pragma_option, #pragma GCC option is now #pragma GCC
7599 target. Move warning about port not supporting target options to
7600 default pragma parse hook. Remove push/pop/reset from this
7602 (handle_pragma_optimize): Remove push/pop/reset from this pragma.
7603 (option_stack): Delete static variable.
7604 (optimize_stack): Ditto.
7605 (optons_stack): New stack of saved target and optimization
7607 (handle_pragma_push_options): New function to handle pushing both
7608 target and optimization options.
7609 (handle_pragma_pop_options): New function to handle popping both
7610 target and optimization options.
7611 (handle_pragma_reset_options): New function to handle resetting
7612 both target and optimization options to their initial state.
7613 (init_pragma): Rename handle_pragma_option to
7614 handle_pragma_target. Add support for push_options, pop_options,
7615 and reset_options pragmas.
7617 * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
7618 default_target_option_pragma_parse.
7619 (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
7620 default_target_option_valid_attribute_p.
7621 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
7622 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
7623 (TARGET_OPTION_HOOKS): Delete the fields for whether to change
7624 optimization level on hot/cold functions.
7626 * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
7627 if the caller and callee have different optimization levels.
7629 * c-common.c (handle_target_attribute): Rename from
7630 handle_option_attribute, attribute((option(...))) is now
7631 attribute((target(...))). Move warning if the port does not
7632 support target attributes to the default hook.
7633 (handle_hot_attribute): Delete code to change the optimization
7634 level of hot functions.
7635 (handle_cold_attribute): Ditto.
7637 * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
7638 argument that is the binary tree options to use if there are no
7639 arguments. Call ix86_valid_target_attribute_tree instead of
7640 ix86_valid_option_attribute_tree.
7641 (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
7642 (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
7643 ix86_pragma_option_parse.
7645 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
7646 Rename from ix86_valid_option_attribute_tree.
7648 * config/i386/i386.c (ix86_add_new_builtins): New function to add
7649 new builtins when the ISA changes.
7650 (ix86_valid_target_attribute_tree): Rename from
7651 ix86_valid_option_attribute_tree. Change callers. If the
7652 function specified optimization options, use those as the starting
7653 point before setting up the target attributes. If the
7654 optimization options were changed in the course of setting the
7655 target attributes, record the new optimization options.
7656 (ix86_valid_target_attribute_tree_inner_p): Rename from
7657 ix86_valid_option_attribute_tree_inner_p. Change callers. Call
7658 ix86_add_new_builtins if the ISA changed.
7659 (ix86_valid_target_attribute_p): Rename from
7660 ix86_valid_option_attribute_p. Change callers.
7661 (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
7662 __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
7663 as delayed builtin functions.
7664 (struct builtin_isa): New structure to record builtin functions
7665 that should be delayed until the ISA for that function is used.
7666 (ix86_builtins_isa): Change from int to struct to track builtin
7667 functions we want to declare at some point.
7668 (def_builtin): If the front end can delay defining the builtin
7669 functions, don't create builtins for ISAs not part of the default
7671 (def_builtin_const): Ditto.
7672 (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
7673 __builtin_ia32_pcmov_v2di to be different builtin functions.
7674 (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
7675 a structure instead of an int.
7676 (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
7677 ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
7678 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
7679 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
7681 * config/ia64/ia64.h
7682 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
7683 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
7685 * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
7686 hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
7687 (LANG_HOOKS_INITIALIZER): Add
7688 LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
7690 2008-08-30 Kaz Kojima <kkojima@gcc.gnu.org>
7693 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
7694 the reload address with the index register for SFmode
7695 access with a displacement.
7697 2008-08-30 Jan Hubicka <jh@suse.cz>
7699 * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
7700 * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
7701 * dojump.c (do_jump): Likewise.
7702 * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
7703 (note-if_info): Add BRANCH_COST.
7704 (noce_try_store_flag_constants, noce_try_addcc,
7705 noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
7706 noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
7707 find_if_case_2): Use computed branch cost.
7708 * expr.h (BRANCH_COST): Update default.
7709 * predict.c (predictable_edge_p): New function.
7710 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
7711 Update BRANCH_COST call.
7712 * basic-block.h (predictable_edge_p): Declare.
7713 * config/alpha/alpha.h (BRANCH_COST): Update.
7714 * config/frv/frv.h (BRANCH_COST): Update.
7715 * config/s390/s390.h (BRANCH_COST): Update.
7716 * config/spu/spu.h (BRANCH_COST): Update.
7717 * config/sparc/sparc.h (BRANCH_COST): Update.
7718 * config/m32r/m32r.h (BRANCH_COST): Update.
7719 * config/i386/i386.h (BRANCH_COST): Update.
7720 * config/i386/i386.c (ix86_expand_int_movcc): Update use of
7722 * config/sh/sh.h (BRANCH_COST): Update.
7723 * config/pdp11/pdp11.h (BRANCH_COST): Update.
7724 * config/avr/avr.h (BRANCH_COST): Update.
7725 * config/crx/crx.h (BRANCH_COST): Update.
7726 * config/xtensa/xtensa.h (BRANCH_COST): Update.
7727 * config/stormy16/stormy16.h (BRANCH_COST): Update.
7728 * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
7729 * config/iq2000/iq2000.h (BRANCH_COST): Update.
7730 * config/ia64/ia64.h (BRANCH_COST): Update.
7731 * config/rs6000/rs6000.h (BRANCH_COST): Update.
7732 * config/arc/arc.h (BRANCH_COST): Update.
7733 * config/score/score.h (BRANCH_COST): Update.
7734 * config/arm/arm.h (BRANCH_COST): Update.
7735 * config/pa/pa.h (BRANCH_COST): Update.
7736 * config/mips/mips.h (BRANCH_COST): Update.
7737 * config/vax/vax.h (BRANCH_COST): Update.
7738 * config/h8300/h8300.h (BRANCH_COST): Update.
7739 * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
7740 * doc/invoke.texi (predictable-branch-cost-outcome): Document.
7741 * doc/tm.texi (BRANCH_COST): Update.
7743 2008-08-30 Samuel Tardieu <sam@rfc1149.net>
7746 * config/arm/arm.c (arm_optimization_options): Set
7747 flag_section_anchors to 2 instead of 1 to distinguish it from
7748 -fsection-anchors given explicitely on the command line.
7750 2008-08-30 Richard Sandiford <rdsandiford@googlemail.com>
7752 * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
7753 final insn of a split.
7755 2008-08-30 Jan Hubicka <jh@suse.cz>
7757 * postreload-gcse.c (gate_handle_gcse2): Disable for functions
7758 optimized for speed.
7759 * final.c (compute_alignments): Use optimize_bb_for_size_p.
7760 * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
7761 * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
7762 flag_gcse_after_reload_set): New static vars.
7763 (common_handle_option): Enable those flags for profile-use.
7764 (decode_options): Remove optimize_size flags that are handled
7765 on higher granuality.
7766 * tree-vectorizer.c (vectorize_loops): Use
7767 optimize_loop_nest_for_speed_p.
7768 * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
7769 * tree-predcom.c (tree_predictive_commoning): Use
7770 optimize_loop_for_speed_p.
7771 * varasm.c (assemble_start_function): Use
7772 optimize_function_for_speed_p.
7773 * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
7774 * predict.c (optimize_loop_for_speed_p): Fix walk.
7776 2008-08-30 Jan Hubicka <jh@suse.cz>
7778 * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
7780 (cgraph_decide_inlining_of_small_function): Use edge->count to detect
7781 profile presence locally.
7783 2008-08-29 Joseph Myers <joseph@codesourcery.com>
7786 * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
7787 versions before 4.0.
7789 2008-08-29 Jan Hubicka <jh@suse.cz>
7791 * tree-inline.c (insert_init_stmt): Insert sequence even when
7794 2008-08-29 Jeff Law <law@redhat.com>
7796 * mn10300.c (mn10300_secondary_reload_class): We need secondary
7797 reloads for AM33-2 if IN is a pseudo with an equivalent memory
7798 location and class is an FP register.
7800 2008-08-29 Jan Hubicka <jh@suse.cz>
7802 * see.c (see_merge_one_def_extension): Silence used uninitialized
7804 * matrix-reorg.c (check_allocation_function): Likewise.
7805 * config/i386/driver-i386.c (detect_caches_amd): Likewise.
7807 2008-08-29 Jakub Jelinek <jakub@redhat.com>
7810 * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
7811 compute new & and | in type rather than TREE_TYPE (arg0).
7813 * dwarf2out.c (fortran_common): Update comment.
7814 (gen_variable_die): Swap com_die and var_die variables in Fortran
7815 COMMON block handling code.
7817 * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
7819 * dwarf2out.c (gen_const_die): New function.
7820 (size_of_die, value_format, output_die): Output larger
7821 dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
7822 (native_encode_initializer): New function.
7823 (tree_add_const_value_attribute): Call it.
7824 (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
7826 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
7827 DECL_BY_REFERENCE decls don't pass TREE_READONLY and
7828 TREE_THIS_VOLATILE to add_type_attribute.
7830 * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
7832 (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
7835 * dwarf2out.c (loc_by_reference): New function.
7836 (add_location_or_const_value_attribute): Use it.
7839 * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
7840 as DW_TAG_variable children of DW_TAG_common_block rather than
7841 DW_TAG_member children. Put DW_AT_external to individual
7842 DW_TAG_variable DIEs, not to DW_TAG_common_block.
7844 * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
7845 loc_descriptor_from_tree_1.
7849 * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
7850 arguments to imported_module_or_decl.
7851 (debug_nothing_tree_tree): Removed.
7852 (debug_nothing_tree_tree_tree_bool): New prototype.
7853 * debug.c (do_nothing_debug_hooks): Adjust.
7854 (debug_nothing_tree_tree): Removed.
7855 (debug_nothing_tree_tree_tree_bool): New function.
7856 * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
7857 (gen_variable_die): Put all common vars for the
7858 same COMMON block under one DW_TAG_common_block.
7859 (declare_in_namespace): Return new context_die, for Fortran
7860 return the module DIE instead of adding extra declarations into
7862 (gen_type_die_with_usage): Adjust declare_in_namespace caller.
7863 (gen_namespace_die): If is_fortran (), generate DW_TAG_module
7864 instead of DW_TAG_namespace. If DECL_EXTERNAL is set, add
7866 (dwarf2out_global_decl): Don't skip Fortran global vars.
7867 (gen_decl_die): Likewise. Adjust declare_in_namespace callers.
7868 (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
7869 If NAME is non-NULL, add DW_AT_name. If CHILD is non-NULL, put
7870 DW_TAG_imported_declaration as child of previous
7871 DW_TAG_imported_module.
7872 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
7873 * sdbout.c (sdb_debug_hooks): Likewise.
7874 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7876 2008-08-29 Jan Hubicka <jh@suse.cz>
7878 * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
7880 * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
7881 * ipa-cp.c (n_cloning_candidates): New static variable.
7882 (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
7883 (ipcp_print_all_lattices): Improve debug output.
7884 (ipcp_cloning_candidate_p): New function.
7885 (ipcp_initialize_node_lattices): Use it.
7886 (ipcp_init_stage): Do only analyzis here; prettier debug output.
7887 (ipcp_propagate_stage): Prettier debug output.
7888 (ipcp_iterate_stage): Initialize latices here; prettier debug output.
7889 (ipcp_print_all_structures): Remove.
7890 (ipcp_need_redirect_p): Test !n_cloning_candidates.
7891 (ipcp_insert_stage): Prettier debug output; call
7892 cgraph_remove_unreachable_nodes before propagating.
7893 (pass_ipa_cp): Schedule function removal pass.
7894 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
7896 (cgraph_maybe_hot_edge_p): Move to ...
7897 * predict.c (cgraph_maybe_hot_edge_p) ... here.
7898 * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
7899 (common_handle_option): Set them; enable ipa-cp when profiling.
7900 * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
7901 (ipa_print_all_jump_functions): Likewise.
7902 (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
7903 (ipa_print_node_params, ipa_print_all_params): New.
7904 * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
7905 ipa_print_all_param_flags): Remove.
7906 (ipa_print_node_params, ipa_print_all_params): New.
7908 2008-08-29 Bob Wilson <bob.wilson@acm.org>
7910 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
7911 change from 2008-04-03.
7912 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
7914 2008-08-29 Vladimir Makarov <vmakarov@redhat.com>
7917 * ira-color.c (push_allocnos_to_stack): Truncate
7918 removed_splay_allocno_vec.
7920 2008-08-29 Vladimir Makarov <vmakarov@redhat.com>
7923 * ira-color (ira_fast_allocation): Don't assign hard registers to
7926 2008-08-29 Jan Hubicka <jh@suse.cz>
7929 * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
7930 for cold internal loops.
7932 2008-08-29 Richard Guenther <rguenther@suse.de>
7934 * tree-ssa-structalias.c (create_variable_info_for): Do not
7935 create fields for heap vars or vars with a noalias state.
7936 For NO_ALIAS_ANYTHING variables add a self-constraint, not one
7939 2008-08-29 Richard Guenther <rguenther@suse.de>
7941 * common.opt (ftree-store-ccp): Mark as preserved for
7942 backward compatibility.
7943 * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
7944 * tree-pass.h (pass_store_ccp): Remove.
7945 * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
7946 (first_vdef): Remove declaration.
7947 (get_value_loaded_by): Likewise.
7948 * tree-ssa-ccp.c (do_store_ccp): Remove.
7949 (get_default_value): Simplify as do_store_ccp is always false
7950 now. Do not initialize mem_ref.
7951 (set_value_varying): Likewise.
7952 (canonicalize_float_value): Likewise.
7953 (set_lattice_value): Likewise.
7954 (likely_value): Likewise.
7955 (surely_varying_stmt_p): Likewise.
7956 (ccp_initialize): Likewise.
7957 (ccp_lattice_meet): Likewise.
7958 (ccp_visit_phi_node): Likewise.
7959 (ccp_fold): Likewise.
7960 (evaluate_stmt): Likewise.
7961 (visit_assignment): Likewise.
7962 (ccp_visit_stmt): Likewise.
7963 (execute_ssa_ccp): Fold into ...
7964 (do_ssa_ccp): ... this.
7965 (do_ssa_store_ccp): Remove.
7966 (gate_store_ccp): Likewise.
7967 (pass_store_ccp): Likewise.
7968 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
7970 * tree-ssa-propagate.c (first_vdef): Remove.
7971 (get_value_loaded_by): Likewise.
7972 (replace_vuses_in): Likewise.
7973 (substitute_and_fold): Do not call replace_vuses_in.
7974 * opts.c (decode_options): Do not set flag_tree_store_ccp.
7976 2008-08-29 Richard Guenther <rguenther@suse.de>
7979 * tree-ssa-structalias.c (intra_create_variable_infos): Mark
7980 PARAM_NOALIAS tags with is_heapvar.
7981 * tree-ssa-operands.c (access_can_touch_variable): Offset
7982 based tests do not apply for heapvars. Fix offset test.
7984 2008-08-29 Jan Hubicka <jh@suse.cz>
7986 * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
7987 (-fipa-cp-clone): Enabled by default at -O3.
7988 * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
7989 make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
7991 2008-08-29 Jan Hubicka <jh@suse.cz>
7993 * tree.c (build_function_type_skip_args,
7994 build_function_decl_skip_args): New functions.
7995 * tree.h (build_function_type_skip_args,
7996 build_function_decl_skip_args): Declare.
7997 * gimple.c (giple_copy_call_skip_args): New function.
7998 (giple_copy_call_skip_args): Declare.
8000 * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
8001 * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
8002 (ipcp_node_modifiable_p): ... this one; use
8003 tree_versionable_function_p.
8004 (ipcp_create_replace_map): Improve debug output.
8005 (ipcp_need_redirect_p): Return false when not clonning.
8006 (ipcp_update_callgraph): Skip args.
8007 (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
8009 * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
8010 (save_inline_function_body): Update call of tree_function_versioning.
8011 * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
8012 * tree-inline.c (copy_arguments_for_versioning): Add skip_args
8014 (tree_function_versioning): Likewise.
8015 * tree-inline.h (tree_function_versioning): Update prototype.
8017 2008-08-29 Jan Hubicka <jh@suse.cz>
8019 * loop-unswitch.c (unswitch_single_loop): Use
8020 optimize_loop_for_speed_p.
8021 * tree-ssa-threadupdate.c (mark_threaded_blocks):
8022 Use optimize_function_for_size_p.
8023 * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
8024 * postreload-gcse.c (eliminate_partially_redundant_load):
8025 Use optimize_bb_for_size_p.
8026 * value-prof.c (gimple_divmod_fixed_value_transform,
8027 gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
8028 gimple_stringops_transform): Use optimize_bb_for_size_p.
8029 * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
8030 * final.c (compute_alignments): Use optimize_function_for_size_p.
8031 * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
8032 (fold_builtin_strcpy, fold_builtin_fputs): Use
8033 optimize_function_for_size_p.
8034 * fold-const.c (tree_swap_operands_p): Use
8035 optimize_function_for_size_p.
8036 * recog.c (relax_delay_slots): Likewise.
8037 * tree-ssa-math-opts.c (replace_reciprocal):
8038 Use optimize_bb_for_speed_p.
8039 (execute_cse_reciprocals): Use optimize_bb_for_size_p.
8040 * ipa-inline.c (cgraph_decide_recursive_inlining): Use
8041 optimize_function_for_size_p.
8042 (cgraph_decide_inlining_of_small_function): Use
8043 optimize_function_for_size_p.
8044 * global.c (find_reg): Use optimize_function_for_size_p.
8045 * opts.c (decode_options): Do not clear flag_tree_ch,
8046 flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
8047 flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
8048 work it out from profile.
8049 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
8050 optimize_loop_for_speed_p.
8051 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8053 (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
8054 * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
8055 * tree-eh.c (decide_copy_try_finally): Use
8056 optimize_function_for_size_p.
8057 * local-alloc.c (block_alloc): Pass BB pointer.
8058 (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
8059 * gcse.c (gcse_main): Use optimize_function_for_size_p.
8060 * loop-unroll.c (decide_unrolling_and_peeling):
8061 Use optimize_loop_for_size_p.
8062 (decide_peel_completely): Likewise.
8063 * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
8064 optimize_loop_for_size_p.
8065 (vect_enhance_data_refs_alignment): Likewise.
8066 * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
8067 (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
8069 * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
8070 (try_crossjump_bb): Use optimize_bb_for_size_p.
8071 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
8072 optimize_loop_for_speed_p.
8073 * bb-reorder.c (find_traces_1_round): Likewise.
8074 (copy_bb): Use optimize_bb_for_speed_p.
8075 (duplicate_computed_gotos): Likewise.
8076 * basic-block.h (optimize_loop_nest_for_size_p,
8077 optimize_loop_nest_for_speed_p): New.
8078 * stmt.c (expand_case): Use optimize_insn_for_size_p.
8080 2008-08-29 Tristan Gingold <gingold@adacore.com>
8082 * gcov.c (main): Call expandargv.
8084 2008-08-29 Jan Hubicka <jh@suse.cz>
8086 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
8088 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8090 (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
8091 * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8093 (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
8095 2008-08-29 Jan Hubicka <jh@suse.cz>
8097 * tree-pass.h (pass_strip_predict_hints): Declare.
8098 * predict.c (strip_builtin_expect): Rename to ...
8099 (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
8100 (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
8101 (tree_estimate_probability): Do not strip builtin_expect.
8102 (pass_strip_predict_hints): New pass.
8103 * tree-inline.c (expand_call_inline): When inlining cold function,
8104 predict it as unlikely.
8105 * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
8107 2008-08-29 Richard Guenther <rguenther@suse.de>
8109 PR tree-optimization/37207
8110 * tree-vrp.c (extract_range_from_binary_expr): Also try
8111 to constant fold if only one of the operands is a constant.
8113 2008-08-29 Nick Clifton <nickc@redhat.com>
8115 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
8116 the same way as SYMBOL_REFs.
8118 2008-08-28 Bob Wilson <bob.wilson@acm.org>
8120 * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
8122 2008-08-28 Adam Nemet <anemet@caviumnetworks.com>
8124 * config/mips/mips.h (ISA_HAS_BBIT): New macro.
8125 * config/mips/mips.md (branch_likely): Remove const. Fix
8127 (define_delay for type "branch"): Change to only apply for branch
8128 with likely variant.
8129 (define_delay for type "branch" and "branch_likely" no). New delay
8131 (equality_op): New code iterator.
8132 (bbv, bbinv): New code attributes.
8133 (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
8136 2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8137 Andrew Pinski <pinskia@gcc.gnu.org>
8140 * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
8142 2008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
8144 * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
8145 rule that a symbolic constant must be defined and >= 0 for the
8146 corresponding facility to be present at compile-time.
8147 * gthr-posix.c: Likewise.
8149 2008-08-28 Adam Nemet <anemet@caviumnetworks.com>
8151 * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
8152 * config/mips/mips.md (D): New mode attribute.
8153 (mulsi3, muldi3): Merge it into ...
8154 (mul<mode>3): ... new template. Use _mul3 ending for 3-op patterns.
8155 (muldi3_mul3): New pattern.
8156 (mulsi3_mult3): Rename to mulsi3_mul3.
8158 2008-08-28 Jan Hubicka <jh@suse.cz>
8160 * expmed.c (store_bit_field_1): Be prepared for movstrict expander
8162 * predict.c (always_optimize_for_size_p): Rename to ...
8163 (optimize_function_for_size): ... this one; make extern.
8164 (optimize_function_for_speed_p): New.
8165 (optimize_bb_for_size_p, optimize_bb_for_size_p,
8166 optimize_edge_for_size_p,optimize_edge_for_size_p,
8167 optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
8168 * basic-block.h (optimize_function_for_size_p,
8169 optimize_function_for_speed_p): Declare.
8170 * i386.md (optimize_size checks): Replace them by appropriate
8172 (standard_80387_constant_p, ix86_compute_frame_layout,
8173 ix86_expand_epilogue, ix86_decompose_address,
8174 print_operand, emit_i387_cw_initialization,
8175 inline_memory_move_cost, ix86_pad_returns,
8176 ix86_reorg): Replace optimize_size checks.
8178 2008-08-28 Richard Sandiford <rdsandiford@googlemail.com>
8180 * rtl.h (simplify_subreg_regno): Declare.
8181 * rtlanal.c (simplify_subreg_regno): New function, split out from...
8182 * simplify-rtx.c (simplify_subreg): ...here.
8183 * reload.c (find_reloads): Use simplify_subreg_regno instead of
8184 subreg_offset_representable_p.
8186 2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8189 * c-typeck.c (convert_for_assignment): Give a note describing what
8190 was passed and what was expected.
8192 2008-08-28 Joey Ye <joey.ye@intel.com>
8194 * doc/extend.texi: Document AVX built-in functions.
8195 * doc/invoke.texi: Document -mavx.
8197 2008-08-28 H.J. Lu <hongjiu.lu@intel.com>
8198 Joey Ye <joey.ye@intel.com>
8199 Xuepeng Guo <xuepeng.guo@intel.com>
8201 * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
8203 * config/i386/cpuid.h (bit_FMA): New.
8204 (bit_XSAVE): Likewise.
8205 (bit_OSXSAVE): Likewise.
8206 (bit_AVX): Likewise.
8208 * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
8209 define. Use ASM_OUTPUT_AVX_PREFIX.
8211 * config/i386/gmmintrin.h: New.
8213 * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
8214 (OPTION_MASK_ISA_AVX_SET): New.
8215 (OPTION_MASK_ISA_FMA_SET): Likewise.
8216 (OPTION_MASK_ISA_AVX_UNSET): Likewise.
8217 (OPTION_MASK_ISA_FMA_SET): Likewise.
8218 (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
8219 (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
8220 (pta_flags): Add PTA_AVX and PTA_FMA.
8221 (override_options): Handle PTA_AVX and PTA_FMA.
8222 (init_cumulative_args): Handle warn_avx.
8223 (classify_argument): Return 0 for COImode and OImode. Return
8224 1 and X86_64_AVX_CLASS for 256bit vector types.
8225 (examine_argument): Handle X86_64_AVX_CLASS.
8226 (construct_container): Likewise.
8227 (function_arg_advance_32): Pass OImode and 256bit vector types
8229 (function_arg_advance_64): Take a new argument to indicate if a
8230 parameter is named. Handle 256bit vector types. Return
8231 immediately for unnamed 256bit vector mode parameters.
8232 (function_arg_advance): Updated.
8233 (function_arg_32): Add comments for TImode. Handle OImode
8234 and 256bit vector types.
8235 (function_arg_64): Take a new argument to indicate if a
8236 parameter is named. Handle 256bit vector types. Return NULL
8237 for unnamed 256bit vector mode parameters.
8238 (function_arg): Updated.
8239 (setup_incoming_varargs_64): Support
8240 AVX encoding for *sse_prologue_save_insn.
8241 (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
8242 (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
8243 enabled. For all 1s in 256bit vector modes, return 3 if AVX is
8244 enabled, otherwise return -3.
8245 (standard_sse_constant_opcode): Handle AVX and 256bit vector
8247 (print_reg): Support AVX registers. Handle 'x' and 't'.
8248 Handle 'd' to duplicate the operand.
8249 (print_operand): Likewise. Also support AVX vector compare
8251 (output_387_binary_op): Support AVX.
8252 (output_fp_compare): Likewise.
8253 (ix86_expand_vector_move_misalign): Likewise.
8254 (ix86_attr_length_vex_default): New.
8255 (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
8256 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
8257 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
8258 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
8259 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
8260 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
8261 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
8262 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
8263 IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
8264 IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
8265 IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
8266 IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
8267 IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
8268 IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
8269 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
8270 IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
8271 IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
8272 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
8273 IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
8274 IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
8275 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
8276 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
8277 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
8278 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
8279 IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
8280 IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
8281 IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
8282 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
8283 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
8284 IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
8285 IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
8286 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
8287 IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
8288 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
8289 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
8290 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
8291 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
8292 IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
8293 IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
8294 IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
8295 IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
8296 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
8297 IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
8298 IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
8299 IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
8300 IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
8301 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
8302 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
8303 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
8304 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
8305 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
8306 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
8307 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
8308 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
8309 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
8310 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
8311 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
8312 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
8313 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
8314 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
8315 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
8316 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
8317 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
8318 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
8319 and IX86_BUILTIN_MOVMSKPS256,
8320 (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
8321 V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
8322 V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
8323 V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
8324 V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
8325 VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
8326 VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
8327 VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
8328 (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
8329 INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
8330 INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
8331 INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
8332 V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
8333 V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
8334 V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
8335 V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
8336 V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
8337 V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
8338 V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
8339 V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
8340 V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
8341 V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
8342 V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
8343 V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
8344 V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
8345 V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
8346 (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
8347 IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
8348 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
8349 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
8350 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
8351 IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
8352 IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
8353 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
8354 IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
8355 IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
8356 IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
8357 IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
8358 (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
8359 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
8360 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
8361 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
8362 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
8363 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
8364 IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
8365 IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
8366 IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
8367 IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
8368 IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
8369 IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
8370 IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
8371 IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
8372 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
8373 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
8374 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
8375 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
8376 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
8377 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
8379 IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
8380 IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
8381 IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
8382 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
8383 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
8384 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
8385 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
8386 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
8387 IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
8388 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
8389 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
8390 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
8391 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
8392 IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
8393 IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
8394 IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
8395 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
8396 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
8397 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
8398 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
8399 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
8400 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
8401 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
8402 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
8403 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
8404 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
8405 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
8406 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
8407 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
8408 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
8409 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
8410 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
8411 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
8412 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
8413 IX86_BUILTIN_MOVMSKPS256.
8414 (ix86_init_mmx_sse_builtins): Support AVX builtins.
8415 (ix86_expand_args_builtin): Likewise.
8416 (ix86_expand_special_args_builtin): Likewise.
8417 (ix86_hard_regno_mode_ok): Handle AVX modes.
8418 (ix86_expand_vector_init_duplicate): Likewise.
8419 (ix86_expand_vector_init_one_nonzero): Likewise.
8420 (ix86_expand_vector_init_one_var): Likewise.
8421 (ix86_expand_vector_init_concat): Likewise.
8422 (ix86_expand_vector_init_general): Likewise.
8423 (ix86_expand_vector_set): Likewise.
8424 (ix86_vector_mode_supported_p): Likewise.
8425 (x86_extended_reg_mentioned_p): Check INSN_P before using
8428 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
8429 OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
8431 * config/i386/i386.h (TARGET_AVX): New.
8432 (TARGET_FMA): Likewise.
8433 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
8434 (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
8435 (VALID_AVX256_REG_MODE): New.
8436 (AVX256_VEC_FLOAT_MODE_P): Likewise.
8437 (AVX_FLOAT_MODE_P): Likewise.
8438 (AVX128_VEC_FLOAT_MODE_P): Likewise.
8439 (AVX256_VEC_FLOAT_MODE_P): Likewise.
8440 (AVX_VEC_FLOAT_MODE_P): Likewise.
8441 (ASM_OUTPUT_AVX_PREFIX): Likewise.
8442 (ASM_OUTPUT_OPCODE): Likewise.
8443 (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
8445 (SSE_REG_MODE_P): Allow 256bit vector modes.
8446 (ix86_args): Add a warn_avx field.
8448 * config/i386/i386.md (UNSPEC_PCMP): New.
8449 (UNSPEC_VPERMIL): Likewise.
8450 (UNSPEC_VPERMIL2): Likewise.
8451 (UNSPEC_VPERMIL2F128): Likewise.
8452 (UNSPEC_MASKLOAD): Likewise.
8453 (UNSPEC_MASKSTORE): Likewise.
8454 (UNSPEC_CAST): Likewise.
8455 (UNSPEC_VTESTP): Likewise.
8456 (UNSPECV_VZEROALL): Likewise.
8457 (UNSPECV_VZEROUPPER): Likewise.
8458 (XMM0_REG): Likewise.
8459 (XMM1_REG): Likewise.
8460 (XMM2_REG): Likewise.
8461 (XMM3_REG): Likewise.
8462 (XMM4_REG): Likewise.
8463 (XMM5_REG): Likewise.
8464 (XMM6_REG): Likewise.
8465 (XMM8_REG): Likewise.
8466 (XMM9_REG): Likewise.
8467 (XMM10_REG): Likewise.
8468 (XMM11_REG): Likewise.
8469 (XMM12_REG): Likewise.
8470 (XMM13_REG): Likewise.
8471 (XMM14_REG): Likewise.
8472 (XMM15_REG): Likewise.
8474 (prefix_vex_imm8): Likewise.
8475 (prefix_vex_w): Likewise.
8476 (length_vex): Likewise.
8479 (*avx_ashlti3): Likewise.
8480 (*avx_lshrti3): Likewise.
8481 (*avx_setcc<mode>): Likewise.
8482 (*fop_<mode>_comm_mixed_avx): Likewise.
8483 (*fop_<mode>_comm_avx): Likewise.
8484 (*fop_<mode>_1_mixed_avx): Likewise.
8485 (*fop_<mode>_1_avx): Likewise.
8486 (*avx_<code><mode>3): Likewise.
8487 (*avx_ieee_smin<mode>3): Likewise.
8488 (*avx_ieee_smax<mode>3): Likewise.
8489 (mode): Add OI, V8SF and V4DF.
8490 (length): Support VEX prefix.
8491 (*cmpfp_i_mixed): Set prefix attribute.
8492 (*cmpfp_i_sse): Likewise.
8493 (*cmpfp_iu_mixed): Likewise.
8494 (*cmpfp_iu_sse): Likewise.
8495 (*movsi_1): Support AVX.
8496 (*movdi_2): Likewise.
8497 (*movdi_1_rex64): Likewise.
8498 (*movti_internal): Likewise.
8499 (*movti_rex64): Likewise.
8500 (*movsf_1): Likewise.
8501 (*movdf_nointeger): Likewise.
8502 (*movdf_integer_rex64): Likewise.
8503 (*movtf_internal): Likewise.
8504 (zero_extendsidi2_32): Likewise.
8505 (zero_extendsidi2_rex64): Likewise.
8506 (*extendsfdf2_mixed): Likewise.
8507 (*extendsfdf2_sse): Likewise.
8508 (*truncdfsf_fast_mixed): Likewise.
8509 (*truncdfsf_fast_sse): Likewise.
8510 (*truncdfsf_mixed): Likewise.
8511 (fix_trunc<mode>di_sse): Likewise.
8512 (fix_trunc<mode>si_sse): Likewise.
8513 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
8514 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
8515 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
8516 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
8517 (*rcpsf2_sse): Likewise.
8518 (*rsqrtsf2_sse): Likewise.
8519 (*sqrt<mode>2_sse): Likewise.
8520 (sse4_1_round<mode>2): Likewise.
8521 (*sse_prologue_save_insn): Disallow REX prefix for AVX.
8522 Support AVX. Set length attribute properly for AVX.
8524 * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
8525 (VECTOR_MODES (FLOAT, 32)): Likewise.
8526 (VECTOR_MODE (INT, DI, 8)): Likewise.
8527 (VECTOR_MODE (INT, HI, 32)): Likewise.
8528 (VECTOR_MODE (INT, QI, 64)): Likewise.
8529 (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
8530 (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
8531 (VECTOR_MODE (INT, DI, 4)): Removed.
8532 (VECTOR_MODE (INT, SI, 8)): Likewise.
8533 (VECTOR_MODE (INT, HI, 16)): Likewise.
8534 (VECTOR_MODE (INT, QI, 32)): Likewise.
8535 (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
8536 (INT_MODE (OI, 32)): Likewise.
8538 * config/i386/i386.opt (mavx): New.
8541 * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
8543 * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
8544 (*mov<mode>_internal_avx): New.
8545 (*movv2sf_internal_rex64_avx): Likewise.
8546 (*movv2sf_internal_avx): Likewise.
8548 * config/i386/predicates.md (const_4_to_5_operand): New.
8549 (const_6_to_7_operand): Likewise.
8550 (const_8_to_11_operand): Likewise.
8551 (const_12_to_15_operand): Likewise.
8552 (avx_comparison_float_operator): Likewise.
8554 * config/i386/sse.md (AVX256MODEI): New.
8555 (AVX256MODE): Likewise.
8556 (AVXMODEQI): Likewise.
8557 (AVXMODE): Likewise.
8558 (AVX256MODEF2P): Likewise.
8559 (AVX256MODE2P): Likewise.
8560 (AVX256MODE4P): Likewise.
8561 (AVX256MODE8P): Likewise.
8562 (AVXMODEF2P): Likewise.
8563 (AVXMODEF4P): Likewise.
8564 (AVXMODEDCVTDQ2PS): Likewise.
8565 (AVXMODEDCVTPS2DQ): Likewise.
8566 (avxvecmode): Likewise.
8567 (avxvecpsmode): Likewise.
8568 (avxhalfvecmode): Likewise.
8569 (avxscalarmode): Likewise.
8570 (avxcvtvecmode): Likewise.
8571 (avxpermvecmode): Likewise.
8572 (avxmodesuffixf2c): Likewise.
8573 (avxmodesuffixp): Likewise.
8574 (avxmodesuffixs): Likewise.
8575 (avxmodesuffix): Likewise.
8576 (vpermilbits): Likewise.
8577 (pinsrbits): Likewise.
8578 (mov<mode>): Likewise.
8579 (*mov<mode>_internal): Likewise.
8580 (push<mode>1): Likewise.
8581 (movmisalign<mode>): Likewise.
8582 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8583 (avx_movdqu<avxmodesuffix>): Likewise.
8584 (avx_lddqu<avxmodesuffix>): Likewise.
8585 (<plusminus_insn><mode>3): Likewise.
8586 (*avx_<plusminus_insn><mode>3): Likewise.
8587 (*avx_vm<plusminus_insn><mode>3): Likewise.
8588 (mul<mode>3): Likewise.
8589 (*avx_mul<mode>3): Likewise.
8590 (*avx_vmmul<mode>3): Likewise.
8591 (divv8sf3): Likewise.
8592 (divv4df3): Likewise.
8593 (avx_div<mode>3): Likewise.
8594 (*avx_div<mode>3): Likewise.
8595 (*avx_vmdiv<mode>3): Likewise.
8596 (avx_rcpv8sf2): Likewise.
8597 (*avx_vmrcpv4sf2): Likewise.
8598 (sqrtv8sf2): Likewise.
8599 (avx_sqrtv8sf2): Likewise.
8600 (*avx_vmsqrt<mode>2): Likewise.
8601 (rsqrtv8sf2): Likewise.
8602 (avx_rsqrtv8sf2): Likewise.
8603 (*avx_vmrsqrtv4sf2): Likewise.
8604 (<code><mode>3): Likewise.
8605 (*avx_<code><mode>3_finite): Likewise.
8606 (*avx_<code><mode>3): Likewise.
8607 (*avx_vm<code><mode>3): Likewise.
8608 (*avx_ieee_smin<mode>3): Likewise.
8609 (*avx_ieee_smax<mode>3): Likewise.
8610 (avx_addsubv8sf3): Likewise.
8611 (avx_addsubv4df3): Likewise.
8612 (*avx_addsubv4sf3): Likewise.
8613 (*avx_addsubv2df3): Likewise.
8614 (avx_h<plusminus_insn>v4df3): Likewise.
8615 (avx_h<plusminus_insn>v8sf3): Likewise.
8616 (*avx_h<plusminus_insn>v4sf3): Likewise.
8617 (*avx_h<plusminus_insn>v2df3): Likewise.
8618 (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
8619 (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
8620 (*avx_maskcmp<mode>3): Likewise.
8621 (avx_nand<mode>3): Likewise.
8622 (*avx_<code><mode>3): Likewise.
8623 (*avx_nand<mode>3): Likewise.
8624 (*avx_<code><mode>3): Likewise.
8625 (*avx_cvtsi2ss): Likewise.
8626 (*avx_cvtsi2ssq): Likewise.
8627 (*avx_cvtsi2sd): Likewise.
8628 (*avx_cvtsi2sdq): Likewise.
8629 (*avx_cvtsd2ss): Likewise.
8630 (avx_cvtss2sd): Likewise.
8631 (avx_cvtdq2ps<avxmodesuffix>): Likewise.
8632 (avx_cvtps2dq<avxmodesuffix>): Likewise.
8633 (avx_cvttps2dq<avxmodesuffix>): Likewise.
8634 (*avx_cvtsi2sd): Likewise.
8635 (*avx_cvtsi2sdq): Likewise.
8636 (avx_cvtdq2pd256): Likewise.
8637 (avx_cvtpd2dq256): Likewise.
8638 (avx_cvttpd2dq256): Likewise.
8639 (*avx_cvtsd2ss): Likewise.
8640 (*avx_cvtss2sd): Likewise.
8641 (avx_cvtpd2ps256): Likewise.
8642 (avx_cvtps2pd256): Likewise.
8643 (*avx_movhlps): Likewise.
8644 (*avx_movlhps): Likewise.
8645 (avx_unpckhps256): Likewise.
8646 (*avx_unpckhps): Likewise.
8647 (avx_unpcklps256): Likewise.
8648 (*avx_unpcklps): Likewise.
8649 (avx_movshdup256): Likewise.
8650 (avx_movsldup256): Likewise.
8651 (avx_shufps256): Likewise.
8652 (avx_shufps256_1): Likewise.
8653 (*avx_shufps_<mode>): Likewise.
8654 (*avx_loadhps): Likewise.
8655 (*avx_storelps): Likewise.
8656 (*avx_loadlps): Likewise.
8657 (*avx_movss): Likewise.
8658 (*vec_dupv4sf_avx): Likewise.
8659 (*vec_concatv2sf_avx): Likewise.
8660 (*vec_concatv4sf_avx): Likewise.
8661 (*vec_setv4sf_0_avx): Likewise.
8662 (*vec_setv4sf_avx): Likewise.
8663 (*avx_insertps): Likewise.
8664 (avx_vextractf128<mode>): Likewise.
8665 (vec_extract_lo_<mode>): Likewise.
8666 (vec_extract_hi_<mode>): Likewise.
8667 (vec_extract_lo_<mode>): Likewise.
8668 (vec_extract_hi_<mode>): Likewise.
8669 (vec_extract_lo_v16hi): Likewise.
8670 (vec_extract_hi_v16hi): Likewise.
8671 (vec_extract_lo_v32qi): Likewise.
8672 (vec_extract_hi_v32qi): Likewise.
8673 (avx_unpckhpd256): Likewise.
8674 (*avx_unpckhpd): Likewise.
8675 (avx_movddup256): Likewise.
8676 (*avx_movddup): Likewise.
8677 (avx_unpcklpd256): Likewise.
8678 (*avx_unpcklpd): Likewise.
8679 (avx_shufpd256): Likewise.
8680 (avx_shufpd256_1): Likewise.
8681 (*avx_punpckhqdq): Likewise.
8682 (*avx_punpcklqdq): Likewise.
8683 (*avx_shufpd_<mode>): Likewise.
8684 (*avx_storehpd): Likewise.
8685 (*avx_loadhpd): Likewise.
8686 (*avx_loadlpd): Likewise.
8687 (*avx_movsd): Likewise.
8688 (*vec_concatv2df_avx): Likewise.
8689 (*avx_<plusminus_insn><mode>3): Likewise.
8690 (*avx_<plusminus_insn><mode>3): Likewise.
8691 (*avx_mulv8hi3): Likewise.
8692 (*avxv8hi3_highpart): Likewise.
8693 (*avx_umulv8hi3_highpart): Likewise.
8694 (*avx_umulv2siv2di3): Likewise.
8695 (*avx_mulv2siv2di3): Likewise.
8696 (*avx_pmaddwd): Likewise.
8697 (*avx_mulv4si3): Likewise.
8698 (*avx_ashr<mode>3): Likewise.
8699 (*avx_lshr<mode>3): Likewise.
8700 (*avx_ashl<mode>3): Likewise.
8701 (*avx_<code><mode>3): Likewise.
8702 (*avx_eq<mode>3): Likewise.
8703 (*avx_gt<mode>3): Likewise.
8704 (*avx_nand<mode>3): Likewise.
8705 (*avx_nand<mode>3): Likewise.
8706 (*avx_<code><mode>3): Likewise.
8707 (*avx_<code><mode>3): Likewise.
8708 (*avx_packsswb): Likewise.
8709 (*avx_packssdw): Likewise.
8710 (*avx_packuswb): Likewise.
8711 (*avx_punpckhbw): Likewise.
8712 (*avx_punpcklbw): Likewise.
8713 (*avx_punpckhwd): Likewise.
8714 (*avx_punpcklwd): Likewise.
8715 (*avx_punpckhdq): Likewise.
8716 (*avx_punpckldq): Likewise.
8717 (*avx_pinsr<avxmodesuffixs>): Likewise.
8718 (*avx_pinsrq): Likewise.
8719 (*avx_loadld): Likewise.
8720 (*vec_extractv2di_1_rex64_avx): Likewise.
8721 (*vec_extractv2di_1_avx): Likewise.
8722 (*vec_dupv2di_avx): Likewise.
8723 (*vec_concatv2si_avx): Likewise.
8724 (*vec_concatv4si_1_avx): Likewise.
8725 (*vec_concatv2di_avx): Likewise.
8726 (*vec_concatv2di_rex64_avx): Likewise.
8727 (*avx_uavgv16qi3): Likewise.
8728 (*avx_uavgv8hi3): Likewise.
8729 (*avx_psadbw): Likewise.
8730 (avx_movmskp<avxmodesuffixf2c>256): Likewise.
8731 (*avx_phaddwv8hi3): Likewise.
8732 (*avx_phadddv4si3): Likewise.
8733 (*avx_phaddswv8hi3): Likewise.
8734 (*avx_phsubwv8hi3): Likewise.
8735 (*avx_phsubdv4si3): Likewise.
8736 (*avx_phsubswv8hi3): Likewise.
8737 (*avx_pmaddubsw128): Likewise.
8738 (*avx_pmulhrswv8hi3): Likewise.
8739 (*avx_pshufbv16qi3): Likewise.
8740 (*avx_psign<mode>3): Likewise.
8741 (*avx_palignrti): Likewise.
8742 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8743 (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8744 (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8745 (*avx_mpsadbw): Likewise.
8746 (*avx_packusdw): Likewise.
8747 (*avx_pblendvb): Likewise.
8748 (*avx_pblendw): Likewise.
8749 (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8750 (avx_ptest256): Likewise.
8751 (avx_roundp<avxmodesuffixf2c>256): Likewise.
8752 (*avx_rounds<ssemodesuffixf2c>): Likewise.
8753 (*avx_aesenc): Likewise.
8754 (*avx_aesenclast): Likewise.
8755 (*avx_aesdec): Likewise.
8756 (*avx_aesdeclast): Likewise.
8757 (avx_vzeroupper): Likewise.
8758 (avx_vzeroupper_rex64): Likewise.
8759 (avx_vpermil<mode>): Likewise.
8760 (avx_vpermilvar<mode>3): Likewise.
8761 (avx_vpermil2<mode>3): Likewise.
8762 (avx_vperm2f128<mode>3): Likewise.
8763 (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8764 (avx_vbroadcastss256): Likewise.
8765 (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
8766 (avx_vinsertf128<mode>): Likewise.
8767 (vec_set_lo_<mode>): Likewise.
8768 (vec_set_hi_<mode>): Likewise.
8769 (vec_set_lo_<mode>): Likewise.
8770 (vec_set_hi_<mode>): Likewise.
8771 (vec_set_lo_v16hi): Likewise.
8772 (vec_set_hi_v16hi): Likewise.
8773 (vec_set_lo_v32qi): Likewise.
8774 (vec_set_hi_v32qi): Likewise.
8775 (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8776 (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8777 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
8778 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
8779 (vec_init<mode>): Likewise.
8780 (*vec_concat<mode>_avx): Likewise.
8781 (blendbits): Support V8SF and V4DF.
8782 (sse2_movq128): Support AVX.
8783 (<sse>_movnt<mode>): Likewise.
8784 (sse2_movntv2di): Likewise.
8785 (sse_rcpv4sf2): Likewise.
8786 (sse_sqrtv4sf2): Likewise.
8787 (sse_rsqrtv4sf2): Likewise.
8788 (<sse>_comi): Likewise.
8789 (<sse>_ucomi): Likewise.
8790 (sse_cvtss2si): Likewise.
8791 (sse_cvtss2si_2): Likewise.
8792 (sse_cvtss2siq): Likewise.
8793 (sse_cvtss2siq_2): Likewise.
8794 (sse_cvttss2si): Likewise.
8795 (sse_cvttss2siq): Likewise.
8796 (sse2_cvtsd2si): Likewise.
8797 (sse2_cvtsd2si_2): Likewise.
8798 (sse2_cvtsd2siq): Likewise.
8799 (sse2_cvtsd2siq_2): Likewise.
8800 (sse2_cvttsd2si): Likewise.
8801 (sse2_cvttsd2siq): Likewise.
8802 (sse2_cvtdq2pd): Likewise.
8803 (*sse2_cvtpd2dq): Likewise.
8804 (*sse2_cvttpd2dq): Likewise.
8805 (*sse2_cvtpd2ps): Likewise.
8806 (sse2_cvtps2pd): Likewise.
8807 (sse3_movshdup): Likewise.
8808 (sse3_movsldup): Likewise.
8809 (sse_storehps): Likewise.
8810 (*sse4_1_extractps): Likewise.
8811 (sse2_storelpd): Likewise.
8812 (vec_dupv2df_sse3): Likewise.
8813 (*vec_concatv2df_sse3): Likewise.
8814 (*sse4_1_pextrb): Likewise.
8815 (*sse4_1_pextrb_memory): Likewise.
8816 (*sse2_pextrw): Likewise.
8817 (*sse4_1_pextrw_memory): Likewise.
8818 (*sse4_1_pextrd): Likewise.
8819 (*sse4_1_pextrq): Likewise.
8820 (sse2_pshufd_1): Likewise.
8821 (sse2_pshuflw_1): Likewise.
8822 (sse2_pshufhw_1): Likewise.
8823 (*sse2_storeq_rex64): Likewise.
8824 (*vec_dupv4si): Likewise.
8825 (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
8826 (sse2_pmovmskb): Likewise.
8827 (*sse2_maskmovdqu): Likewise.
8828 (*sse2_maskmovdqu_rex64): Likewise.
8829 (sse_ldmxcsr): Likewise.
8830 (sse_stmxcsr): Likewise.
8831 (abs<mode>2): Likewise.
8832 (sse4_1_movntdqa): Likewise.
8833 (sse4_1_phminposuw): Likewise.
8834 (sse4_1_extendv8qiv8hi2): Likewise.
8835 (*sse4_1_extendv8qiv8hi2): Likewise.
8836 (sse4_1_extendv4qiv4si2): Likewise.
8837 (*sse4_1_extendv4qiv4si2): Likewise.
8838 (sse4_1_extendv2qiv2di2): Likewise.
8839 (*sse4_1_extendv2qiv2di2): Likewise.
8840 (sse4_1_extendv4hiv4si2): Likewise.
8841 (*sse4_1_extendv4hiv4si2): Likewise.
8842 (sse4_1_extendv2hiv2di2): Likewise.
8843 (*sse4_1_extendv2hiv2di2): Likewise.
8844 (sse4_1_extendv2siv2di2): Likewise.
8845 (*sse4_1_extendv2siv2di2): Likewise.
8846 (sse4_1_zero_extendv8qiv8hi2): Likewise.
8847 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
8848 (sse4_1_zero_extendv4qiv4si2): Likewise.
8849 (*sse4_1_zero_extendv4qiv4si2): Likewise.
8850 (sse4_1_zero_extendv2qiv2di2): Likewise.
8851 (*sse4_1_zero_extendv2qiv2di2): Likewise.
8852 (sse4_1_zero_extendv4hiv4si2): Likewise.
8853 (*sse4_1_zero_extendv4hiv4si2): Likewise.
8854 (sse4_1_zero_extendv2hiv2di2): Likewise.
8855 (*sse4_1_zero_extendv2hiv2di2): Likewise.
8856 (sse4_1_zero_extendv2siv2di2): Likewise.
8857 (*sse4_1_zero_extendv2siv2di2): Likewise.
8858 (sse4_1_ptest): Likewise.
8859 (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
8860 (sse4_2_pcmpestri): Likewise.
8861 (sse4_2_pcmpestrm): Likewise.
8862 (sse4_2_pcmpistri): Likewise.
8863 (sse4_2_pcmpistrm): Likewise.
8865 (aeskeygenassist): Likewise.
8867 2008-08-28 Uros Bizjak <ubizjak@gmail.com>
8869 * config/i386/predicates.md (vzeroall_operation): New.
8871 * config/i386/sse.md (avx_vzeroall): New.
8872 (*avx_vzeroall): Likewise.
8874 2008-08-28 Paul Brook <paul@codesourcery.com>
8875 Mark Shinwell <shinwell@codesourcery.com>
8876 Richard Earnshaw <richard.earnshaw@arm.com>
8878 * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
8879 (TARGET_MIN_ANCHOR_OFFSET): New.
8880 (arm_override_options): Set correct anchor ranges for Thumb-1
8881 and Thumb-2 if required.
8882 (legitimize_pic_address): Handle case involving a TLS symbol
8883 reference with an addend.
8884 (arm_optimization_options): Enable section anchors at -O1 and
8886 * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
8887 * config/arm/arm-protos.h (arm_optimization_options): New.
8889 2008-08-28 Nick Clifton <nickc@redhat.com>
8891 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
8892 * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
8895 * config/v850/v850.h (IRA_COVER_CLASSES): Define.
8896 * config/v850/v850.md (return): Remove frame size restriction.
8898 * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
8900 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
8902 * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
8904 * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
8906 2008-08-28 Paul Brook <paul@codesourcery.com>
8908 * config/arm/vfp11.md: Update license notice.
8909 * config/arm/cortex-r4.md: Ditto.
8911 2008-08-28 Richard Guenther <rguenther@suse.de>
8913 PR tree-optimization/37207
8914 * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
8917 2008-08-28 Dodji Seketeli <dodji@redhat.com>
8920 * tree.c (int_fits_type_p): Don't forget unsigned integers
8921 of type sizetype which higher end word equals -1.
8923 2008-08-28 Ira Rosen <irar@il.ibm.com>
8925 * target.h (struct vectorize): Add new target builtin.
8926 * tree-vectorizer.c (destroy_loop_vec_info): Call
8927 vect_free_slp_instance instead of vect_free_slp_node.
8928 * tree-vectorizer.h (enum slp_load_perm_type): New.
8929 (struct _slp_instance): Add new fields.
8930 (SLP_INSTANCE_LOAD_PERMUTATION): New.
8931 (SLP_INSTANCE_LOADS): New.
8932 (vect_free_slp_tree): Remove.
8933 (vect_free_slp_instance): Declare.
8934 (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
8935 (vectorizable_load): Add argument.
8936 (vect_transform_slp_perm_load): New.
8937 * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
8939 (vect_get_place_in_interleaving_chain): New function.
8940 (vect_free_slp_tree): Make static.
8941 (vect_free_slp_instance): New function.
8942 (vect_build_slp_tree): Add new arguments. Allow load permutations and
8943 collect the load location in the interleaving chain.
8944 (vect_supported_slp_permutation_p): New function.
8945 (vect_supported_load_permutation_p): Likewise.
8946 (vect_analyze_slp_instance): In case of loads permutation, call
8947 vect_supported_load_permutation_p to check that the permutation is
8949 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
8950 * tree-vect-transform.c (vect_transform_stmt): Add new argument.
8951 (vect_create_mask_and_perm): New function.
8952 (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
8953 (vectorizable_load): Add an argument. Don't keep the created vectors
8954 statements in the node if permutation is required. Call
8955 vect_transform_slp_perm_load to generate the permutation.
8956 (vect_transform_stmt): Add new argument. Call vectorizable_load with
8957 additional argument.
8958 (vect_schedule_slp_instance): In case of loads permutation, allocate
8959 vectorized statements structure for all the related SLP nodes. Call
8960 vect_transform_stmt with addditional argument.
8961 (vect_transform_loop): Call vect_transform_stmt with correct arguments.
8962 * config/spu/spu.c (spu_builtin_vec_perm): New.
8963 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
8964 * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
8965 * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
8966 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
8968 2008-08-28 Chris Fairles <chris.fairles@gmail.com>
8970 * gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach,
8971 __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
8972 __gthread_cond_signal, __gthread_cond_timedwait,
8973 __gthread_cond_timedwait_recursive): New functions.
8974 * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
8976 * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
8979 2008-08-28 Richard Guenther <rguenther@suse.de>
8982 * fold-const.c (maybe_canonicalize_comparison_1): Require
8983 undefined overflow only for canonicalizing A +- CST cmp CST.
8984 Make sure to not generate new constants that are not inside
8985 their TYPE_MIN/MAX_VALUE range.
8986 (maybe_canonicalize_comparison): Remove undefined overflow
8988 (fold_binary): Remove now duplicate folding.
8990 2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
8992 * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
8993 use not updated in the last change.
8995 2008-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
8997 * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
8998 (IRA_COVER_CLASSES): Add FPUL_REGS.
9000 2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9003 * c-common.c (conversion_warning): Check for null operands.
9005 2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9008 * c-decl.c (check_for_loop_decls): Improve error message. Give
9011 2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9014 * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
9015 (convert_for_assignment): Pass corrent OPT_W* parameter to
9016 WARN_FOR_ASSIGNMENT.
9018 2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
9021 * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
9023 2008-08-27 Paul Brook <paul@codesourcery.com>
9025 * config.gcc: Loosen checks for arm uclinux eabi targets.
9027 2008-08-27 Paul Brook <paul@codesourcery.com>
9029 * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
9031 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
9033 2008-08-26 Douglas Gregor <doug.gregor@gmail.com>
9035 * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
9036 the enumerators of an ENUMERAL_TYPE.
9037 * dbxout.c (dbxout_type): Ditto.
9039 2008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
9042 * fwprop.c (fwprop): Check that the loop_father is the outer loop.
9043 (fwprop_addr): Check that the loop_father is not the outer loop.
9045 2008-08-26 Paul Brook <paul@codesourcery.com>
9047 * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
9048 Remove documentation entry for fmul type.
9049 Use fmuls to annotate single-precision multiplication patterns,
9050 fmuld to annotate double-precision multiplication patterns,
9051 fmacs to annotate single-precision multiply-accumulate patterns
9052 and fmacd to annotate double-precision multiply-accumulate patterns.
9053 * config/arm/vfp11.md: Update reservations accordingly.
9054 * config/arm/arm.md: Note that certain values of the "type"
9055 attribute are documented in vfp.md.
9056 * config/arm/arm1020e.md: Remove out of date duplicate comment.
9057 (v10_cvt): Use new fmul types.
9059 2008-08-26 Paul Brook <paul@codesourcery.com>
9061 * config/arm/vfp.md: Move pipeline description for VFP11 to...
9062 * config/arm/vfp11.md: ...here. New.
9063 * config/arm/arm.md: Include vfp11.md.
9065 2008-08-26 Hans-Peter Nilsson <hp@axis.com>
9067 * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
9068 parameter to inform call.
9070 2008-08-26 Jeff Law <law@redhat.com>
9072 * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
9073 avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
9074 preferred class when copying a constant into a partial word register.
9076 2008-08-26 Ben Elliston <bje@au.ibm.com>
9078 * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
9079 * cp/typeck.c: Likewise.
9080 * cp/tree.c: Likewise.
9081 * gimple-low.c: Likewise.
9084 2008-08-26 Vladimir Makarov <vmakarov@redhat.com>
9086 * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
9087 ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
9089 * doc/passes.texi: Describe IRA.
9091 * doc/tm.texi (IRA_COVER_CLASSES,
9092 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
9094 * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
9095 (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
9096 -fira-propagate-cost, -fno-ira-share-save-slots,
9097 -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
9099 * flags.h (ira_algorithm): New enumeration.
9100 (flag_ira_algorithm, flag_ira_verbose): New external variable
9103 * postreload.c (gate_handle_postreload): Don't do post reload
9104 optimizations unless the reload is completed.
9106 * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
9109 * tree-pass.h (pass_ira): New external variable declaration.
9111 * reload.h: Add 2008 to the Copyright.
9113 * cfgloopanal.c: Include params.h.
9114 (estimate_reg_pressure_cost): Decrease cost for IRA optimization
9117 * params.h (IRA_MAX_LOOPS_NUM): New macro.
9119 * toplev.c (ira.h): New include.
9120 (flag_ira_algorithm, flag_ira_verbose): New external variables.
9121 (backend_init_target): Call ira_init.
9122 (backend_init): Call ira_init_once.
9123 (finalize): Call finish_ira_once.
9125 * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
9126 flag_ira_share_save_slots, flag_ira_share_spill_slots): New
9129 * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
9130 may_move_out_cost): New external variable declarations.
9131 (move_table): New typedef.
9133 * caller-save.c: Include headers output.h and ira.h.
9134 (no_caller_save_reg_set): New global variable.
9135 (save_slots_num, save_slots): New variables.
9136 (reg_save_code, reg_restore_code, add_stored_regs): Add
9138 (init_caller_save): Set up no_caller_save_reg_set.
9139 (init_save_areas): Reset save_slots_num.
9140 (saved_hard_reg): New structure.
9141 (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
9142 (initiate_saved_hard_regs, new_saved_hard_reg,
9143 finish_saved_hard_regs, saved_hard_reg_compare_func): New
9145 (setup_save_areas): Add code for sharing stack slots.
9146 (all_blocks): New variable.
9147 (save_call_clobbered_regs): Process pseudo-register too.
9148 (mark_set_regs): Process pseudo-register too.
9149 (insert_one_insn): Put the insn after bb note in a empty basic
9150 block. Add insn check.
9152 * global.c (eliminable_regset): Make it external.
9153 (mark_elimination): Use DF_LR_IN for IRA.
9154 (pseudo_for_reload_consideration_p): New.
9155 (build_insn_chain): Make it external. Don't ignore spilled
9156 pseudos for IRA. Use pseudo_for_reload_consideration_p.
9157 (gate_handle_global_alloc): New function.
9158 (pass_global_alloc): Add the gate function.
9160 * opts.c (decode_options): Set up flag_ira. Print the warning for
9162 (common_handle_option): Process -fira-algorithm and -fira-verbose.
9164 * timevar.def (TV_IRA, TV_RELOAD): New passes.
9166 * regmove.c (regmove_optimize): Don't do replacement of output for
9169 * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
9170 New external variable declarations.
9172 * local-alloc.c (update_equiv_regs): Make it external. Return
9173 true if jump label rebuilding should be done. Rescan new_insn for
9175 (gate_handle_local_alloc): New function.
9176 (pass_local_alloc): Add the gate function.
9178 * alias.c (value_addr_p, stack_addr_p): New functions.
9179 (nonoverlapping_memrefs_p): Use them for IRA.
9181 * common.opt (fira, fira-algorithm, fira-coalesce,
9182 fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
9183 fira-verbose): New options.
9185 * regclass.c (reg_class_subclasses, contains_reg_of_mode,
9186 move_cost, may_move_in_cost, may_move_out_cost): Make the
9188 (move_table): Remove typedef.
9189 (init_move_cost): Make it external.
9190 (allocate_reg_info, resize_reg_info, setup_reg_classes): New
9193 * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
9194 setup_reg_classes): New function prototypes.
9195 (eliminable_regset): New external variable declaration.
9196 (build_insn_chain, update_equiv_regs): New function prototypes.
9198 * Makefile.in (IRA_INT_H): New definition.
9199 (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
9200 ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
9201 (reload1.o, toplev.o): Add dependence on ira.h.
9202 (cfgloopanal.o): Add PARAMS_H.
9203 (caller-save.o): Add dependence on output.h and ira.h.
9204 (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
9205 ira-emit.o, ira-lives.o): New entries.
9207 * passes.c (pass_ira): New pass.
9209 * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
9211 * reload1.c (ira.h): Include the header.
9212 (changed_allocation_pseudos): New bitmap.
9213 (init_reload): Initiate the bitmap.
9214 (compute_use_by_pseudos): Permits spilled registers in FROM.
9215 (temp_pseudo_reg_arr): New variable.
9216 (reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
9217 IRA. Call alter_reg with the additional parameter. Don't clear
9218 spilled_pseudos for IRA. Restore original insn chain for IRA.
9219 Clear changed_allocation_pseudos at the end of reload.
9220 (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
9221 (hard_regno_to_pseudo_regno): New variable.
9222 (count_pseudo): Check spilled pseudos. Set up
9223 hard_regno_to_pseudo_regno.
9224 (count_spilled_pseudo): Check spilled pseudos. Update
9225 hard_regno_to_pseudo_regno.
9226 (find_reg): Use better_spill_reload_regno_p. Check
9227 hard_regno_to_pseudo_regno.
9228 (alter_reg): Set up spilled_pseudos. Add a new parameter. Add
9230 (eliminate_regs_1): Use additional parameter for alter_reg.
9231 (finish_spills): Set up pseudo_previous_regs only for spilled
9232 pseudos. Call reassign_pseudos once for all spilled pseudos, pass
9233 more arguments. Don't clear live_throughout and dead_or_set for
9234 spilled pseudos. Use additional parameter for alter_reg. Call
9235 mark_allocation_change. Set up changed_allocation_pseudos.
9236 Remove sanity check.
9237 (emit_input_reload_insns, delete_output_reload): Use additional
9238 parameter for alter_reg. Call mark_allocation_change.
9239 (substitute, gen_reload_chain_without_interm_reg_p): New
9241 (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
9243 * testsuite/gcc.dg/20080410-1.c: New file.
9245 * config/s390/s390.h (IRA_COVER_CLASSES,
9246 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
9248 * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
9250 * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
9252 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9254 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
9256 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9258 * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
9260 2008-08-24 Jeff Law <law@redhat.com>
9261 * ira.c (setup_reg_class_intersect_union): Prefer smallest class
9262 when ignoring unavailable registers.
9264 2008-08-24 Jeff Law <law@redhat.com>
9265 * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
9266 FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
9267 * ira.c (setup_eliminable_regset): Check stack_realign_needed.
9268 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
9270 2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
9271 * ira-build.c (allocno_range_compare_func): Stabilize sort.
9273 2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
9274 * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
9275 * reload1.c (find_reg): Process registers in register allocation order.
9277 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
9278 * toplev.c (backend_init_target): Move ira_init call from
9280 (lang_dependent_init_target): ...to here.
9282 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
9283 * ira.c (setup_class_subset_and_memory_move_costs): Don't
9284 calculate memory move costs for NO_REGS.
9286 2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
9287 * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
9288 STACK_REGS is defined.
9290 2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
9291 * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
9293 2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
9294 * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
9296 2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
9297 * config/sh/sh.h (IRA_COVER_CLASSES): Define.
9298 * config/sh/sh.md (movsicc_true+3): Check if emit returns a
9301 2008-08-26 Victor Kaplansky <victork@il.ibm.com>
9302 Dorit Nuzman <dorit@il.ibm.com>
9304 * gcc/config/spu/spu.md (vec_extract_evenv4si,
9305 vec_extract_evenv4sf, vec_extract_evenv8hi,
9306 vec_extract_evenv16qi, vec_extract_oddv4si,
9307 vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
9308 vec_interleave_highv4sf, vec_interleave_lowv4sf,
9309 vec_interleave_highv4si, vec_interleave_lowv4si,
9310 vec_interleave_highv8hi, vec_interleave_lowv8hi,
9311 vec_interleave_highv16qi, vec_interleave_lowv16qi,
9312 vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
9314 2008-08-25 Janis Johnson <janis187@us.ibm.com>
9317 * config/rs6000/rs6000.c (optimization_options): Don't default to
9318 section anchors without toplevel reorder.
9320 2008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9322 * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
9323 (mfc_end_critical_section): Likewise.
9325 2008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9327 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
9328 all type qualifiers from element type to vector type.
9330 2008-08-25 David Daney <ddaney@avtrex.com>
9332 * config/mips/mips.md (immediate_insn): Move up in file, fix
9333 comment typo, reformat.
9334 (fetchop_bit, atomic_hiqi_op memory_barrier,
9335 sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
9336 sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
9337 sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
9338 sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
9339 sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
9340 sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
9341 sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
9342 sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
9343 sync_old_nand<mode>, sync_new_nand<mode>,
9344 sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
9345 test_and_set_12): Moved to sync.md.
9347 * config/mips/sync.md: New file.
9349 2008-08-25 Richard Henderson <rth@redhat.com>
9351 * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
9352 (regsave): Likewise.
9353 (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
9354 (output_cfi_directive): Likewise.
9355 (div_data_align): New.
9356 (output_cfi): Use it.
9358 2008-08-24 Adam Nemet <anemet@caviumnetworks.com>
9360 * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
9361 * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
9362 (TARGET_OCTEON): New macro.
9363 (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
9364 (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
9365 (ISA_HAS_POP): New macro.
9366 * config/mips/driver-native.c (host_detect_local_cpu): Handle
9368 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
9370 * config/mips/mips.md (cpu): Add octeon.
9371 (type): Add pop attribute value.
9372 (popcount<mode>2): New pattern.
9373 * doc/invoke.texi (-march=@var{arch}): Add octeon.
9375 2008-08-24 Jan Hubicka <jh@suse.cz>
9377 * doc/invoke.texi (-fipa-cp-clone): New option.
9378 (-fipa-cp): Update docs.
9379 (--param ipcp-unit-growth):New.
9380 * ipa-cp.c: Include fibheap.h, params.h
9381 (ipcp_initialize_node_lattices): When not cloning, all externally
9382 visible functions are bottom.
9383 (ipcp_need_redirect_p): Accept clones.
9384 (ipcp_insert_stage): Use cost driven heuristics.
9385 (max_count, dead_nodes): New static vars.
9386 (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
9387 ipcp_const_param_count): New functions.
9388 * common.opt (ipa-cp-clone): New command line option.
9389 * params.def (ipcp-unit-growth): New.
9391 2008-08-24 Jan Hubicka <jh@suse.cz>
9393 * tree-inline.c (tree_function_versioning): Look harder
9394 for referenced vars.
9396 2008-08-24 Razya Ladelsky <razya@il.ibm.com>
9398 PR tree-optimization/37185
9399 * matrix-reorg.c (transform_access_sites): Update changed stmt.
9401 2008-08-23 Jan Hubicka <jh@suse.cz>
9403 * ipa-cp.c (ipcp_analyze_node): New function.
9404 (ipcp_update_cloned_node): Use it.
9405 (ipcp_init_stage): Likewise.
9406 * ipa-inline.c (function_insertion_hook_holder): New static var.
9407 (analyze_function): Break out from ....
9408 (inline_generate_summary): Here; register insertion hook.
9409 (cgraph_decide_inlining): Remove hook.
9410 (add_new_function): New function.
9412 2008-08-23 Jan Hubicka <jh@suse.cz>
9414 * opts.c (decode_options): Revert accidental change enabling ipa-cp.
9416 2008-08-23 Jan Hubicka <jh@suse.cz>
9418 * ipa-cp.c (constant_val_insert): Remove.
9419 (ipcp_propagate_one_const): Remove.
9420 (ipcp_create_replace_map): Always insert replacements to the map.
9421 (ipcp_insert_stage): Do not try to insert statements by hand.
9422 * tree-inline.c (insert_init_stmt): Break out from ...
9423 (setup_one_parameter): ... here; allow NULL BB pointer.
9424 (tree_function_versioning): Use setup_one_parameter to process
9427 2008-08-23 Jan Hubicka <jh@suse.cz>
9429 * tree.c (decl_address_ip_invariant_p): New function.
9430 * tree.h (decl_address_ip_invariant_p): Declare.
9431 * gimple.c (strip_invariant_refs): Break out from ...
9432 (is_gimple_invariant_address): ... here
9433 (is_gimple_ip_invariant_address): New function.
9434 (is_gimple_ip_invariant): New function.
9435 * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
9438 * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
9439 (ipcp_lat_is_insertable): All constants are insertable.
9440 (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
9441 IPA_CONST_VALUE_REF.
9442 (ipcp_initialize_node_lattices): Propagate all types of operands.
9443 (build_const_val): Do not handle IPA_CONST_VALUE_REF.
9444 (ipcp_create_replace_map): Reformat.
9445 (ipcp_need_redirect_p): Simplify.
9446 (ipcp_insert_stage): Check that argument is used before clonning.
9447 * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
9449 (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
9450 (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
9451 (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
9452 * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
9453 (jump_func_type): Remove IPA_CONST_VALUE_REF.
9454 * tree-inline.c (tree_function_versioning): Add variables referenced
9457 2008-08-23 Jan Hubicka <jh@suse.cz>
9460 * i386.c (standard_80387_constant_p): Use optimize_size.
9462 2008-08-23 Ira Rosen <irar@il.ibm.com>
9464 PR tree-optimization/37161
9465 * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
9466 * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
9467 (vect_determine_vectorization_factor): Move the scalar type
9468 retrieval to vect_get_smallest_scalar_type.
9469 (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
9470 scalar type. Remove redundant computation.
9471 * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
9472 (vect_get_slp_defs): Take the type of RHS into account if
9473 necessary by calling vect_get_smallest_scalar_type. Call
9474 vect_get_constant_vectors with additional argument.
9476 2008-08-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9479 * doc/invoke.texi (Wwrite-strings): Clarify description.
9481 2008-08-23 Ira Rosen <irar@il.ibm.com>
9483 PR tree-optimization/37174
9484 * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
9485 def stmt is a part of the loop before accessing its stmt_vec_info.
9487 2008-08-22 Anatoly Sokolov <aesok@post.ru>
9490 * config/avr/avr.md (UNSPEC_SWAP): New constants.
9491 (*swap): New insn pattern.
9492 (*ashlqi3): Rename from ashlqi3 insn pattern.
9493 (ashlqi3): New expanders.
9494 (*lshrqi3): Rename from lshrqi3 insn pattern.
9495 (lshrqi3): New expanders.
9496 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
9497 lshrqi3_const5, lshrqi3_const6): New splitters.
9498 (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
9499 lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
9502 2008-08-22 Richard Guenther <rguenther@suse.de>
9504 PR tree-optimization/37078
9505 * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
9506 [+INF, +INF] ranges.
9508 2008-08-22 Richard Guenther <rguenther@suse.de>
9510 PR tree-optimization/37143
9511 * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
9512 a conversion statement instead of a copy.
9514 2008-08-22 Uros Bizjak <ubizjak@gmail.com>
9517 * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
9518 CCCmode, CCOmode and CCSmode destination modes.
9521 * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
9522 from different units in a single alternative.
9523 (*vec_extractv2sf_1): Ditto.
9524 (*vec_extractv2si_0): Ditto.
9525 (*vec_extractv2si_1): Ditto.
9526 * config/i386/sse.md (sse2_storehpd): Ditto.
9527 (sse2_storelpd): Ditto.
9528 (sse2_loadhpd): Ditto.
9529 (sse2_loadlpd): Ditto.
9532 * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
9533 (popcountsi2): Ditto.
9534 (clzdi2_abm): Ditto.
9535 (popcountdi2): Ditto.
9536 (clzhi2_abm): Ditto.
9537 (popcounthi2): Ditto.
9539 2008-08-22 Richard Guenther <rguenther@suse.de>
9543 * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
9544 if the multiplication does not overflow.
9546 2008-08-21 Nathan Sidwell <nathan@codesourcery.com>
9548 * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
9550 2008-08-21 Richard Henderson <rth@redhat.com>
9552 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
9553 spurrious comma from test.
9554 * configure: Rebuild.
9556 2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9559 * builtins.c (fold_builtin_next_arg): Add warning about undefined
9562 2008-08-21 Aldy Hernandez <aldyh@redhat.com>
9564 * c-tree.h (grokfield): New argument.
9565 * c-decl.c (grokfield): Handle new location argument.
9566 * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
9568 2008-08-21 Richard Guenther <rguenther@suse.de>
9570 * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
9572 2008-08-21 Jan Hubicka <jh@suse.cz>
9574 * cgraph.c (first_cgraph_function_insertion_hook): New variable.
9575 (cgraph_add_function_insertion_hook,
9576 cgraph_remove_function_insertion_hook,
9577 cgraph_call_function_insertion_hooks): New functions.
9578 * cgraph.h (cgraph_add_function_insertion_hook,
9579 cgraph_remove_function_insertion_hook,
9580 cgraph_call_function_insertion_hooks): Declare.
9581 * ipa-reference.c (function_insertion_hook_holder): New variable.
9582 (check_operand, look_for_address_of): When checking late, do not care
9583 about module bitmaps.
9584 (add_new_function): New function.
9585 (generate_summary): Register hooks; zero module bitmaps.
9586 (propagate): Unregister hooks.
9587 * ipa-pure-const.c (function_insertion_hook_holder): New variable.
9588 (add_new_function): New function.
9589 (generate_summary): Register hook.
9590 (propagate): Remove hook.
9592 * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
9594 * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
9595 * ipa-cp.c (ipcp_update_cloned_node): New function.
9596 (build_const_val): Handle functions correctly; bring type logic
9597 into sync with tree-inline.c
9598 (ipcp_init_stage): Take care of computing stuff needed by
9599 indirect inlining; update clones.
9600 (ipcp_generate_summary): Break out of ipcp_driver.
9601 (ipcp_driver): Do only execution and transformation.
9602 (pass_ipa_cp): Make IPA_PASS.
9603 * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
9605 * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
9606 ipcp, some info is already available.
9607 * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
9608 * tree-inline.c (remap_ssa_name): Unshare expression.
9610 2008-08-21 Richard Guenther <rguenther@suse.de>
9612 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9613 a PHI ask VN if it is already available.
9614 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9615 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
9617 2008-08-21 Richard Guenther <rguenther@suse.de>
9620 * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
9621 makes sure to produce a result of the correct type.
9623 2008-08-21 Jan Hubicka <jh@suse.cz>
9624 Backport from LTO branch:
9626 2008-05-05 Kenneth Zadeck <zadeck@naturalbridge.com>
9627 Jan Hubicka <jh@suse.cz>
9630 (init_state, finish_state, set_function_state, generate_summary):
9632 (scan_stmt): Renamed from scan_function. Changed to keep state in
9633 local static vars rather than cgraph aux field.
9634 (propagate): Renamed from static_execute. Changed to keep state in
9635 local static vars rather than cgraph aux field.
9636 (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
9637 * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
9639 2008-07-15 Kenneth Zadeck <zadeck@naturalbridge.com>
9641 * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
9642 * ipa-reference.c (init_function_info, generate_summary,
9643 propagate): New functions.
9644 (analyze_function): Call init_function_info.
9645 (static_execute): Stripped into generate_summary and propagate.
9646 (pass_ipa_reference): Made into ipa_opt_pass.
9648 2008-08-21 Richard Guenther <rguenther@suse.de>
9650 PR tree-optimization/37181
9651 * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
9653 (extract_range_from_unary_expr): Likewise.
9655 2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9657 * diagnostic.c (pedwarn_at): Rename as pedwarn.
9659 * toplev.h (pedwarn_at): Likewise.
9660 * builtins.c: Update all calls to pedwarn.
9661 * c-lex.c: Likewise.
9662 * toplev.c: Likewise.
9663 * c-tree.h: Likewise.
9664 * c-decl.c: Likewise.
9665 * c-errors.c: Likewise.
9666 * c-typeck.c: Likewise.
9667 * c-common.c: Likewise.
9668 * c-parser.c: Likewise.
9670 2008-08-20 Joseph Myers <joseph@codesourcery.com>
9673 * config/sparc/sparc.c (function_arg_slotno): Handle structure
9674 with MODE_VECTOR_INT mode.
9676 2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9679 * tree-ssa.c (warn_uninit): Do not warn for variables that can be
9680 initialized outside the current module.
9681 (warn_uninitialized_var): Ignore left-hand side when walking the
9682 trees. Ignore address expressions. Examine VUSE operands in gimple
9683 statements with a variable declaration on the right-hand side.
9685 2008-08-20 Richard Sandiford <rdsandiford@googlemail.com>
9688 * rtlanal.c (subreg_offset_representable_p): Revert last change.
9690 2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9693 * c-common.c (conversion_warning): Do not warn if applying bit-and
9694 operator to unsigned constant that fits in the target type.
9696 2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9699 * c-common.c (conversion_warning): Do not warn for artificial
9702 2008-08-20 Richard Guenther <rguenther@suse.de>
9704 * tree-vrp.c (op_with_constant_singleton_value_range): New function.
9705 (extract_range_from_binary_expr): Fall back to constant propagation.
9706 (extract_range_from_unary_expr): Likewise.
9708 2008-08-20 Richard Guenther <rguenther@suse.de>
9710 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
9711 with TREE_THIS_VOLATILE on shared nodes.
9712 (fold_stmt_r): Likewise.
9714 2008-08-20 Jakub Jelinek <jakub@redhat.com>
9717 * c-parser.c (c_parser_attributes): For keywords use canonical
9718 spelling for attr_name.
9720 2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9722 * value-prof.c (check_counter): Revert wrong call to error.
9724 2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9726 * profile.c: Update calls to inform.
9727 * value-prof.c: Update calls to inform.
9729 2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9731 * diagnostic.c (inform): Add an explicit location_t parameter.
9732 * toplev.h (inform): Update declaration.
9733 * builtins.c: Update all calls to inform.
9734 * c-common.c: Likewise.
9735 * c-decl.c: Likewise.
9736 * c-opts.c: Likewise.
9737 * c-pch.c: Likewise.
9738 * c-pragma.c: Likewise.
9739 * c-typeck.c: Likewise.
9740 * coverage.c: Likewise.
9742 * toplev.c: Likewise.
9743 * tree-cfg.c: Likewise.
9744 * tree-ssa.c: Likewise.
9746 2008-08-20 H.J. Lu <hongjiu.lu@intel.com>
9749 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
9750 V2DI mode, for SSE4.1, use movq instead of vector set if the
9751 second element is zero and inter-unit moves are OK.
9753 2008-08-20 Richard Guenther <rguenther@suse.de>
9755 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
9756 properly handle conversion/copy chains after tuplification.
9758 2008-08-20 Richard Guenther <rguenther@suse.de>
9760 * passes.c (init_optimization_passes): Move the second
9761 forwprop pass before alias computation. Remove the second
9762 DCE pass. Remove the first dominator and phi copy/const
9765 2008-08-20 Nick Clifton <nickc@redhat.com>
9767 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
9768 support of this feature. Do not assume that a sufficiently new
9769 assembler will support the feature regardless of the target type.
9770 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
9771 * configure: Regenerate.
9773 2008-08-20 Richard Guenther <rguenther@suse.de>
9775 * tree-vrp.c (found_in_subgraph): Remove.
9776 (live): New global static.
9777 (live_on_edge): New function.
9778 (blocks_visited): Remove.
9779 (register_edge_assert_for_2): Use live_on_edge.
9780 (find_conditional_asserts): Remove code dealing with
9781 found_in_subgraph. Do not walk the CFG.
9782 (find_switch_asserts): Likewise.
9783 (find_assert_locations_1): Renamed from find_assert_locations.
9784 Move finding assert locations for conditional and switch
9785 statements first. Update live bitmap. Do not walk the CFG.
9786 (find_assert_locations): New function.
9787 (insert_range_assertions): Remove entry of CFG walk.
9788 Adjust call to find_assert_locations.
9789 * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
9790 that only can appear because of fake exit edges but assert we
9791 never try to insert on those.
9792 (fini_pre): Do not remove fake exit edges here...
9793 (execute_pre): ...but here, before committing edge inserts.
9795 2008-08-19 Richard Guenther <rguenther@suse.de>
9797 * passes.c (init_optimization_passes): Exchange store-ccp
9800 2008-08-19 Rafael Espíndola <espindola@google.com>
9802 * varasm.c (weak_decls): Move earlier in the file.
9803 (assemble_external): Add weak decls to the weak_decls list.
9804 (declare_weak): Don't add decls to the weak_decls list.
9806 2008-08-19 H.J. Lu <hongjiu.lu@intel.com>
9809 * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
9810 before (sse2_shufpd_<mode>).
9812 2008-08-19 Jakub Jelinek <jakub@redhat.com>
9815 * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
9816 * tree.c (block_nonartificial_location): Likewise.
9818 2008-08-19 Richard Guenther <rguenther@suse.de>
9820 PR tree-optimization/35972
9821 PR tree-optimization/23094
9822 * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
9824 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
9825 handle MISALIGNED_INDIRECT_REF.
9826 (get_ref_from_reference_ops): New helper.
9827 (vn_reference_lookup_pieces): Walk the use-def chain using the
9828 alias-oracle if requested.
9829 * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
9830 walking the use-def chain.
9831 (compute_avail): But not here.
9832 (create_component_ref_by_pieces_1): Properly handle
9833 MISALIGNED_INDIRECT_REF.
9834 (do_regular_insertion): Handle fully redundant
9835 expressions after PHI-translation also for SSA_NAME values, not
9836 only constants. Correctly use edoubleprime for that.
9838 2008-08-19 Ira Rosen <irar@il.ibm.com>
9840 * tree-vectorizer.c (supportable_widening_operation): Support
9841 multi-step conversion, return the number of steps in such conversion
9842 and the required intermediate types.
9843 (supportable_narrowing_operation): Likewise.
9844 * tree-vectorizer.h (vect_pow2): New function.
9845 (supportable_widening_operation): Change argument types.
9846 (supportable_narrowing_operation): Likewise.
9847 (vectorizable_type_promotion): Add an argument.
9848 (vectorizable_type_demotion): Likewise.
9849 * tree-vect-analyze.c (vect_analyze_operations): Call
9850 vectorizable_type_promotion and vectorizable_type_demotion with
9851 additional argument.
9852 (vect_get_and_check_slp_defs): Detect patterns.
9853 (vect_build_slp_tree): Add an argument, don't fail in case of multiple
9855 (vect_analyze_slp_instance): Don't fail in case of multiple types.
9856 Call vect_build_slp_tree with correct arguments. Calculate unrolling
9857 factor according to the smallest type in the loop.
9858 (vect_detect_hybrid_slp_stmts): Include statements from patterns.
9859 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
9860 supportable_widening_operation with correct arguments.
9861 * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
9862 operands lists according to the number of vector statements in left
9863 or right node, if exists.
9864 (vect_gen_widened_results_half): Remove unused argument.
9865 (vectorizable_conversion): Call supportable_widening_operation,
9866 supportable_narrowing_operation, and vect_gen_widened_results_half
9867 with correct arguments.
9868 (vectorizable_assignment): Change documentation, support multiple
9870 (vectorizable_operation): Likewise.
9871 (vect_get_loop_based_defs): New function.
9872 (vect_create_vectorized_demotion_stmts): Likewise.
9873 (vectorizable_type_demotion): Support loop-aware SLP and general
9874 multi-step conversion. Call vect_get_loop_based_defs and
9875 vect_create_vectorized_demotion_stmts for transformation.
9876 (vect_create_vectorized_promotion_stmts): New function.
9877 (vectorizable_type_promotion): Support loop-aware SLP and general
9878 multi-step conversion. Call vect_create_vectorized_promotion_stmts
9880 (vectorizable_store): Change documentation, support multiple
9882 (vectorizable_load): Likewise.
9883 (vect_transform_stmt): Pass SLP_NODE to
9884 vectorizable_type_promotion and vectorizable_type_demotion.
9885 (vect_schedule_slp_instance): Move here the calculation of number
9886 of vectorized statements for each node from...
9887 (vect_schedule_slp): ... here.
9888 (vect_transform_loop): Call vect_schedule_slp without the last
9891 2008-08-19 Dorit Nuzman <dorit@il.ibm.com>
9894 * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
9895 to == in assert statement.
9896 (vectorizable_reduction): Fix typo.
9898 2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
9901 * value-prof.c (check_counter): Dereference pointer to overall
9902 count when printing it.
9904 2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
9906 * profile.h: Really add it.
9908 2008-08-18 H.J. Lu <hongjiu.lu@intel.com>
9910 * mcf.c: Really add it.
9912 2008-08-18 Paul Yuan <yingbo.com@gmail.com>
9913 Vinodha Ramasamy <vinodha@google.com>
9915 * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
9917 * value-prof.c (check_counter): Fix the counter if
9918 flag_profile_correction is true.
9919 (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
9920 tree_mod_subtract_transform):
9921 Follow check_counter parameter change.
9922 * common.opt (fprofile-correction): New option.
9924 * profile.h: Likewise.
9925 * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
9926 (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
9927 is_inconsistent, set_bb_counts, read_profile_edge_counts): New
9929 (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
9930 flag_profile_correction is set.
9932 2008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
9934 * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
9936 2008-08-18 Tomas Bily <tbily@suse.cz>
9938 * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
9939 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
9941 * tree-data-ref.c (split_constant_offset_1): Likewise.
9942 * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
9943 * tree-sra.c (sra_walk_expr): Likewise.
9944 * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
9945 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
9946 * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
9947 * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
9949 * gimple.c (gimple_assign_unary_nop_p): Likewise.
9950 * tree-vect-transform.c (vectorizable_type_demotion)
9951 (vectorizable_type_promotion): Likewise.
9952 * tree-inline.c (expand_call_inline):
9953 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
9954 (forward_propagate_addr_expr_1, forward_propagate_comparison)
9955 (tree_ssa_forward_propagate_single_use_vars): Likewise.
9956 * expr.c (expand_expr_real_1): Likewise.
9957 * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
9958 (gimple_assign_unary_useless_conversion_p): Likewise.
9959 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9960 * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
9961 * fold-const.c (fold_unary): Likewise.
9962 * tree.h (CONVERT_EXPR_P): Likewise.
9963 * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
9964 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
9966 (register_edge_assert_for_2, extract_range_from_unary_expr)
9967 (register_edge_assert_for_1): Likewise.
9969 2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9971 * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
9972 dconst_third_ptr, dconst_sqrt2_ptr): Declare.
9973 (enum real_value_const): Delete.
9974 (get_real_const): Delete.
9975 * real.c (get_real_const): Delete.
9976 (dconst_e_ptr): Define.
9977 (dconst_third_ptr): Define.
9978 (dconst_sqrt2_ptr): Define.
9979 * builtins.c: Update all callers.
9981 2008-08-18 Richard Guenther <rguenther@suse.de>
9983 * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
9984 statement iterator after statement removal.
9986 2008-08-18 Andreas Tobler <a.tobler@schweiz.org>
9988 * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
9989 (detect_processor_freebsd): Likewise.
9990 (host_detect_local_cpu): Call newly added functions for FreeBSD.
9992 2008-08-18 Richard Guenther <rguenther@suse.de>
9994 * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
9995 and loads have the correct types.
9997 2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10000 * c-opts.c (cpp_opts): Remove static.
10001 * c-parser.c (cpp_opts): Declare it extern.
10002 (disable_extension_diagnostics): Handle cpp options.
10003 (enable_extension_diagnostics): Likewise.
10005 2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10007 * diagnostics.c (permerror_at): Rename as permerror.
10008 (permerror): Delete.
10009 * toplev.h: Likewise.
10011 2008-08-18 Richard Guenther <rguenther@suse.de>
10013 * passes.c (init_optimization_passes): Remove cleanup_cfg1,
10014 sdse1 and addressables2 passes. Replace dce1 with cddce1.
10015 Move call_cdce before build_alias. Move copyrename2,
10016 cunrolli and ccp2 beafore build_alias. Re-add addressable2
10017 right after final inlining.
10018 * tree-cfg.c (build_gimple_cfg): Do not dump function here.
10019 (pass_build_cfg): But instead via TODO_dump_func.
10021 2008-08-18 Richard Guenther <rguenther@suse.de>
10023 * tree-sra.c (generate_element_init_1): Deal with NULL constructor
10025 (scalarize_init): If we failed to generate some initializers
10026 do not generate zeros for not instantiated members. Instead
10027 rely on the copy out.
10028 * tree-ssa-operands.c (get_addr_dereference_operands): Warn
10029 about missing flow-sensitive alias info only if we have
10032 2008-08-17 Nick Clifton <nickc@redhat.com>
10034 * doc/extend.texi (Function Attributes): Fix typo in description
10035 if hot function attribute.
10037 2008-08-17 Daniel Jacobowitz <dan@codesourcery.com>
10038 Richard Sandiford <rdsandiford@googlemail.com>
10040 * doc/install.texi (--with-mips-plt): Document.
10041 * doc/invoke.texi (-mplt, -mno-plt): Document.
10042 * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
10043 and handle ${with_mips_plt}.
10044 * config/mips/mips.opt (mplt): New option.
10045 * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
10046 (TARGET_ABICALLS_PIC2): Likewise.
10047 (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
10048 (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
10049 (ASM_SPEC): Use !mabi=* instead of !mabi*.
10050 (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
10051 to decide whether to output ".option picX" directives.
10052 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
10053 Pass -call_nonpic rather than -KPIC for -mplt.
10054 (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
10055 on the command line. Also remove it when -mabi=64 is used without
10057 * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
10058 * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
10059 TARGET_ABICALLS_PIC0.
10060 (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
10062 (mips16_build_function_stub): Only output ".option pic" directives
10063 and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1.
10064 (mips16_build_call_stub): Fix comment and remove redundant
10065 ".set at"/"set .noat" directives.
10066 (mips_function_rodata_section): Use the default behaviour for
10067 TARGET_ABSOLUTE_ABICALLS.
10068 (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
10069 (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
10070 (mips_restore_gp): Do nothing if the current function doesn't use
10072 (mips_expand_prologue): Only save $gp if the current function uses it.
10073 Use a normal move for TARGET_ABICALLS_PIC0.
10074 (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
10076 2008-08-17 Richard Sandiford <rdsandiford@googlemail.com>
10078 * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
10079 of function when handling GLOBAL_POINTER_REGNUM.
10081 2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
10084 * common.opt (-fstack-check): Do not declare the variable here.
10085 (-fstack-check=): New option variant.
10086 * doc/invoke.texi (Code Gen Options): Document it.
10087 * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
10088 (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
10089 (STACK_CHECK_STATIC_BUILTIN): New macro.
10090 * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
10091 * opts.c: Include expr.h.
10092 (common_handle_option) <OPT_fold_stack_check_>: New case.
10093 <OPT_fstack_check>: Likewise.
10094 * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
10095 consistently in the test for variable-sized types. Adjust for
10096 new behaviour of flag_stack_check.
10097 * explow.c: Include except.h.
10098 (allocate_dynamic_stack_space): Do not take into account
10099 STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
10100 * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
10101 for variable-sized parameters. Treat all parameters whose size is
10102 greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
10103 stack checking is enabled.
10104 * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
10105 size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
10106 if generic stack checking is enabled.
10107 (expand_function_end): Adjust for new behaviour of flag_stack_check.
10108 * reload1.c (reload): Likewise.
10109 * stmt.c (expand_decl): Assert that all automatic variables have
10110 fixed size at this point and remove dead code.
10111 * flags.h (stack_check_type): New enumeration type.
10112 (flag_stack_check): Declare.
10113 * toplev.c (flag_stack_check): New global variable.
10114 * Makefile.in (opts.o): Add dependency on EXPR_H.
10115 (explow.o): Add dependency on except.h.
10117 2008-08-16 Andy Hutchinson <hutchinsonandy@aim.com>
10119 * config/avr/avr.c (avr_override_options): Reduce value of
10120 PARAM_INLINE_CALL_COST.
10122 2008-08-15 Eric Botcazou <ebotcazou@adacore.com>
10124 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
10125 to BLKmode, try to fetch an inner memory reference. Use 'mode' in
10126 lieu of TYPE_MODE (type) throughout.
10128 2008-08-15 Joseph Myers <joseph@codesourcery.com>
10130 * config/arm/arm.c (add_minipool_backward_ref): Check for
10131 8-byte-aligned entries in second case of forcing insertion after a
10132 particular entry. Change third case to avoid inserting
10133 non-8-byte-aligned entries before 8-byte-aligned ones.
10135 2008-08-15 Richard Guenther <rguenther@suse.de>
10137 * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
10138 strip components for unknown size accesses.
10140 2008-08-15 Wolfgang Gellerich <gellerich@de.ibm.com>
10142 * config/s390/2097.md New file.
10143 * config/s390/s390.md ("z10prop" attribute): Define none,
10144 z10_super, z10_super_E1, z10_super_A1, z10_super_c,
10145 z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
10146 z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
10147 possible values and apply them to insns as appropriate.
10148 ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
10149 ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
10150 fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
10151 fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
10152 ("bfp" mode attribute): Removed. Every occurence replaced
10154 * config/s390/s390.c (struct "z10_cost"): Updated entries.
10155 * config/s390/2084.md (insn_reservation "x_itof"): Updated
10158 2008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10161 * c-parser.c (c_lex_one_token): Do not store the canonical spelling
10164 2008-08-14 Dorit Nuzman <dorit@il.ibm.com>
10166 * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
10167 additional argument. Support reduction when duplication is needed due
10168 to data-types of different sizes in the loop.
10169 (get_initial_def_for_induction): Fix printout.
10170 (vect_get_vec_def_for_stmt_copy): Support case where the
10171 vec_stmt_for_operand is a phi node.
10172 (vectorizable_reduction): Support reduction when duplication is needed
10173 due to data-types of different sizes in the loop.
10174 (vectorizable_call): Remove restriction to not vectorize in case we
10175 have data-types of different sizes in the loop.
10176 (vectorizable_conversion): Likewise.
10177 (vectorizable_operation): Likewise.
10178 (vectorizable_type_demotion): Likewise.
10179 (vectorizable_type_promotion): Likewise.
10180 (vectorizable_induction): Add restriction to not vectorize in case
10181 we have data-types of different sizes in the loop.
10183 2008-08-14 Christophe Saout <christophe@saout.de>
10184 Uros Bizjak <ubizjak@gmail.com>
10187 * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
10188 (*vec_concatv2di_rex64_sse4_1): Ditto.
10189 (*vec_concatv2di_rex64_sse): Ditto.
10191 2008-08-14 Jakub Jelinek <jakub@redhat.com>
10193 PR middle-end/37103
10194 * fold-const.c (fold_widened_comparison): Do not allow
10195 sign changes that change the result even if shorter type
10196 is wider than arg1_unw's type.
10198 2008-08-13 Kazu Hirata <kazu@codesourcery.com>
10200 * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
10201 Skip if the multilib testing specifies -march that does not
10202 agree with the one specified in the testcase.
10204 2008-08-13 Joseph Myers <joseph@codesourcery.com>
10206 * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
10207 zero extend SImode values being converted to TFmode before passing
10210 2008-08-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10212 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
10213 __PPU__ when targeting the Cell/B.E. PPU processor.
10215 2008-08-13 Eric Botcazou <ebotcazou@adacore.com>
10217 * gimple.h (gimple_call_set_chain): Accept SSA variables.
10218 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
10219 Rematerialize the static chain, if any.
10220 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
10223 2008-08-13 H.J. Lu <hongjiu.lu@intel.com>
10225 * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
10226 (new_loc_descr): Likewise.
10227 (add_loc_descr): Likewise.
10228 (size_of_loc_descr): Likewise.
10229 (size_of_locs): Likewise.
10230 (output_loc_operands): Likewise.
10231 (output_loc_sequence): Likewise.
10232 (new_reg_loc_descr): New.
10233 (build_cfa_loc): Use it.
10234 (build_cfa_aligned_loc): Likewise.
10235 (one_reg_loc_descriptor): Likewise.
10236 (based_loc_descr): Likewise.
10238 2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10241 * doc/invoke.texi (Wmain): Update.
10242 * c-decl.c (start_decl): warn_main is only 0 or 1.
10243 (start_function): Likewise. Fix formatting.
10244 (finish_function): Delete redundant warning.
10245 * c.opt (Wmain): Add Var(warn_main) and Init(-1).
10246 * c-opts (c_common_handle_option): -Wall only has effect if
10247 warn_main is uninitialized. OPT_Wmain is automatically
10248 handled. -pedantic also enables Wmain.
10249 (c_common_post_options): Handle all logic for Wmain here.
10250 * c-common.c (warn_main): Delete.
10251 (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
10252 * c-common.h (warn_main): Delete.
10254 2008-08-13 H.J. Lu <hongjiu.lu@intel.com>
10256 PR middle-end/36701
10257 * expr.c (emit_group_store): Allocate stack temp with the
10258 largest alignment when copying from register to stack.
10260 2008-08-13 Richard Guenther <rguenther@suse.de>
10262 * tree.h (maybe_fold_offset_to_address): Declare.
10263 * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
10264 (ccp_fold): Handle pointer conversions the same as fold_stmt.
10265 Likewise for POINTER_PLUS_EXPR.
10266 (maybe_fold_offset_to_reference): Enable disabled code.
10267 (maybe_fold_offset_to_address): New function.
10268 (fold_stmt_r): Use it.
10269 (fold_gimple_assign): Likewise.
10270 * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
10271 (gimplify_expr): Likewise.
10273 2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10275 * toplev.h (pedwarn_at): Fix declaration.
10277 2008-08-13 Joseph Myers <joseph@codesourcery.com>
10279 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
10280 LINK_SPEC): Use %R in -Y P argument.
10282 2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10285 * diagnostic.c (pedwarn_at): New.
10286 * toplev.h (pedwarn_at): Declare.
10287 * c-tree.h (build_enumerator): Update declaration.
10288 * c-decl.c (finish_enum): Update comment.
10289 (build_enumerator): Take a location parameter. Give a pedwarn but do
10290 not perform any conversion.
10291 * c-parser.c (c_parser_enum_specifier): Set correct location for
10294 2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10297 * c-common.c (conversion_warning): Use a switch. Ignore boolean
10298 expressions except for conversions to signed:1 bitfields. Handle
10299 COND_EXPR with constant operands.
10301 2008-08-13 Richard Guenther <rguenther@suse.de>
10303 PR tree-optimization/15255
10304 * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
10305 (struct oecount_s): New struct and VEC types.
10306 (cvec): New global.
10307 (oecount_hash): New function.
10308 (oecount_eq): Likewise.
10309 (oecount_cmp): Likewise.
10310 (zero_one_operation): New function.
10311 (build_and_add_sum): Likewise.
10312 (undistribute_ops_list): Perform un-distribution of multiplication
10313 and division on the chain of summands.
10314 (should_break_up_subtract): Also break up subtracts for factors.
10315 (reassociate_bb): Delete dead visited statements.
10316 Call undistribute_ops_list. Re-sort and optimize if it did something.
10317 * passes.c (init_optimization_passes): Move DSE before
10319 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
10322 2008-08-12 Janis Johnson <janis187@us.ibm.com>
10324 * doc/invoke.texi (-fipa-pta): Say the option is experimental.
10326 * doc/invoke.texi: Revert unintended checkin.
10328 2008-08-12 Nathan Froyd <froydnj@codesourcery.com>
10331 * gcc.c (include_spec_function): Tweak call to find_a_file.
10333 2008-08-12 Jakub Jelinek <jakub@redhat.com>
10335 PR middle-end/37014
10336 * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
10337 and TRUTH_ORIF_EXPR.
10338 * dojump.c (do_jump): Likewise.
10340 PR tree-optimization/37084
10341 * tree-inline.c (copy_bb): Call gimple_regimplify_operands
10342 if id->regimplify, don't assume stmt is a cast assignment.
10344 2008-08-12 Anatoly Sokolov <aesok@post.ru>
10346 * final.c (final_scan_insn): Use app_enable/app_disable functions.
10348 2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10351 * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
10354 2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10356 * defaults.h (TARGET_FLOAT_FORMAT): Remove.
10357 (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
10359 * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
10360 * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
10361 * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
10362 * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
10363 * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
10365 * doc/tm.texi (Storage Layout): Remove documentation for
10366 TARGET_FLOAT_FORMAT.
10368 * simplify-rtx.c (simplify_binary_operation_1): Replace
10369 TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
10371 2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10373 * real.h (struct real_format): New member has_sign_dependent_rounding.
10374 * real.c (ieee_single_format, mips_single_format, motorola_single_format,
10375 spu_single_format, ieee_double_format, mips_double_format,
10376 motorola_double_format, ieee_extended_motorola_format,
10377 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
10378 ieee_extended_intel_96_round_53_format, ibm_extended_format,
10379 mips_extended_format, ieee_quad_format, mips_quad_format,
10380 vax_f_format, vax_d_format, vax_g_format): Initialize it.
10381 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
10383 * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
10384 MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
10385 * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
10386 MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
10387 (ROUND_TOWARDS_ZERO): Likewise.
10389 * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
10390 (FLOAT_MODE_FORMAT): New macro.
10391 (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
10392 (MODE_COMPOSITE_P): ... this new macro.
10393 (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
10394 MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
10395 * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
10397 * flags.h: Include "real.h".
10399 * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
10400 REAL_MODE_FORMAT_COMPOSITE_P.
10401 * simplify-rtx.c (simplify_const_binary_operation): Likewise.
10403 * doc/tm.texi (Storage Layout): Remove documentation of
10404 MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
10405 MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of
10406 ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
10407 they only apply to libgcc2.a.
10409 2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10411 * config/spu/float_disf.c: New file.
10412 * config/spu/float_unsdisf.c: New file.
10413 * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
10414 (LIB2FUNCS_EXCLUDE): Define.
10416 2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10417 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
10419 * real.h (struct real_format): New member round_towards_zero.
10420 * real.c (round_for_format): Respect fmt->round_towards_zero.
10421 (ieee_single_format, mips_single_format, motorola_single_format,
10422 spu_single_format, ieee_double_format, mips_double_format,
10423 motorola_double_format, ieee_extended_motorola_format,
10424 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
10425 ieee_extended_intel_96_round_53_format, ibm_extended_format,
10426 mips_extended_format, ieee_quad_format, mips_quad_format,
10427 vax_f_format, vax_d_format, vax_g_format): Initialize it.
10428 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
10430 * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
10431 real_format to choose rounding mode when calling MPFR functions.
10432 (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
10433 (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
10435 * real.h (real_to_decimal_for_mode): Add prototype.
10436 * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
10437 Respect target rounding mode when generating decimal representation.
10438 (real_to_decimal): New stub for backwards compatibility.
10439 * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
10440 real_to_decimal_for_mode instead of real_to_decimal.
10442 * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
10444 2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10445 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
10447 * real.c (spu_single_format): New variable.
10448 * real.h (spu_single_format): Declare.
10450 * config/spu/spu.c (spu_override_options): Install SFmode format.
10451 (spu_split_immediate): Use integer mode to operate on pieces of
10452 floating-point values in all cases.
10454 * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
10455 ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
10456 ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
10458 2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10460 * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
10462 2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10464 * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
10466 2008-08-12 Jakub Jelinek <jakub@redhat.com>
10469 * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
10470 on the VAR_DECL instead of TYPE_READONLY on its type.
10472 2008-08-12 Ira Rosen <irar@il.ibm.com>
10474 * tree-vectorizer.c: Depend on langhooks.h.
10475 (supportable_widening_operation): Add two arguments. Support double
10477 (supportable_narrowing_operation): Likewise.
10478 * tree-vectorizer.h (supportable_widening_operation): Add two
10480 (supportable_narrowing_operation): Likewise.
10481 * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
10482 supportable_widening_operation with correct arguments.
10483 * tree-vect-transform.c (vectorizable_conversion): Likewise.
10484 (vectorizable_type_demotion): Support double type conversions.
10485 (vectorizable_type_promotion): Likewise.
10486 * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
10488 2008-08-11 Michael Matz <matz@suse.de>
10490 * i386/i386.c (override_options): Move initialisation from
10491 flag_schedule_insns_after_reload to here from ...
10492 (optimization_options): ... here.
10494 2008-08-11 Jakub Jelinek <jakub@redhat.com>
10496 PR rtl-optimization/36998
10497 * dwarf2out.c (compute_barrier_args_size_1,
10498 compute_barrier_args_size): Temporarily remove assertions.
10500 2008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10502 PR middle-end/20644
10503 * tree-ssa.c (struct walk_data): Add new flag
10504 warn_possibly_uninitialized.
10505 (warn_uninitialized_var): Use it.
10506 (warn_uninitialized_vars): New.
10507 (execute_early_warn_uninitialized): Call it.
10508 (execute_late_warn_uninitialized): Likewise.
10510 2008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
10512 PR middle-end/36238
10513 * reload1.c (gen_reload): Guard calls to get_secondary_mem
10514 for memory subregs.
10516 2008-08-09 Jan Hubicka <jh@suse.cz>
10519 * optabs.c (maybe_emit_unop_insn): Remove produced code if
10521 (expand_fix): Be prepared for expansion to fail.
10522 (expand_sfix_optab): Remove instructions if expansion failed.
10524 2008-08-09 Anatoly Sokolov <aesok@post.ru>
10526 * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
10527 avr31 architecture.
10528 * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
10529 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10531 2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
10533 * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
10534 mips/t-libgcc-mips16 to tmake_file.
10535 * config/mips/mips-protos.h (mips_call_type): New enum.
10536 (mips_pic_base_register, mips_got_load): Declare.
10537 (mips_restore_gp): Take an rtx argument.
10538 (mips_use_pic_fn_addr_reg_p): Declare.
10539 (mips_expand_call): Replace the sibcall_p argument with
10540 a mips_call_type argument. Add a lazy_p parameter.
10541 (mips_split_call): Declare.
10542 * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
10543 (MIPS16_PIC_TEMP): Likewise.
10544 (reg_class): Delete M16_NA_REGS.
10545 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
10546 (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
10547 (mips_split_hi_p): Declare.
10548 * config/mips/mips.c (mips_split_hi_p): New array.
10549 (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
10550 (mips_got_symbol_type_p): New function.
10551 (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
10552 (mips16_stub_function_p): New function.
10553 (mips16_local_function_p): Likewise.
10554 (mips_use_pic_fn_addr_reg_p): Likewise.
10555 (mips_cannot_force_const_mem): Return false for HIGHs.
10556 Extend CONST_INT and symbolic handling to MIPS16, using
10557 mips_symbol_insns to check that the base symbol type is a
10558 legitimate constant. Reject GOT-based constants if
10559 TARGET_MIPS16_PCREL_LOADS.
10560 (mips_const_insns): Check targetm.cannot_force_const_mem when
10561 decomposing a symbolic base and a large offset.
10562 (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
10563 When calling a function that needs $25 from MIPS16 code,
10564 move the target address into $25 separately and add a USE
10566 (mips16_gp_pseudo_reg): Insert the initializer immediately
10567 before the first real insn.
10568 (mips_pic_base_register, mips_got_load): New functions.
10569 (mips_split_symbol): Generalize the name of the LO_SUM_OUT
10570 parameter to LOW_OUT. Say that it can be any valid SET_SRC
10571 when splitting a load-address operation. Split SYMBOL_GOT_DISP
10572 constants and highs of SYMBOL_GOT_PAGE_OFST constants.
10573 (mips_call_tls_get_addr): Update the call to mips_expand_call,
10574 also passing NULL_RTX rather than const0_rtx as the aux argument.
10575 (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
10576 instead of TARGET_EXPLICIT_RELOCS.
10577 (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
10578 (mips_load_call_address): Replace the sibcall_p argument with
10579 a mips_call_type argument. Use mips_got_load.
10580 (mips16_local_alias): New structure.
10581 (mips16_local_aliases): New variable.
10582 (mips16_local_aliases_hash): New function.
10583 (mips16_local_aliases_eq): Likewise.
10584 (mips16_local_alias): Likewise.
10585 (mips16_stub_function): Likewise.
10586 (mips16_build_function_stub): Create a local alias for the target
10587 function. Handle TARGET_ABICALLS. For PIC abicalls, emit a
10588 .cpload directive and an R_MIPS_NONE relocation for the target
10589 function, then load the alias rather than the function itself.
10590 Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
10591 (mips16_copy_fpr_return_value): Use mips16_stub_function and
10592 mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol.
10593 (mips16_build_call_stub): Replace the FN parameter with an
10594 FN_PTR parameter. Force the address into a register if it
10595 isn't a call_insn_operand; don't rely on the caller to do this.
10596 If a call to a locally-defined and locally-binding MIPS16
10597 function must be made indirectly, redirect the call to the
10598 function's local alias. Use mips16_stub_function_p,
10599 mips16_stub_function, mips_expand_call and use_reg.
10600 Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
10601 Use explicit %hi and %lo accesses where possible.
10602 Use MIPS_CALL to generate the correct code form of a
10603 jal instruction. Add clobbers of $18 instead of uses.
10604 Update the call to mips_emit_call_insn.
10605 (mips_expand_call): Replace the SIBCALL_P argument with a
10606 mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
10607 Take a LAZY_P parameter. Call mips16_build_call_stub first,
10608 allowing it to modify the call address. Update the calls to
10609 mips_load_call_address and mips_emit_call_insn.
10610 (mips_split_call): New function.
10611 (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if
10612 !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of
10613 SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
10614 (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
10615 (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
10617 (mips_cprestore_slot): New function.
10618 (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16
10619 and use mips_cprestore_slot.
10620 (mips_output_function_prologue): Handle TARGET_MIPS16 for
10622 (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
10623 then use a copygp_mips16 instruction to set up $28.
10624 (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
10625 (mips16_lay_out_constants): Call split_all_insns_noflow.
10626 (mips_reorg_process_insns): Explicitly set all_noreorder_p to
10627 false if TARGET_MIPS16.
10628 (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
10629 (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the
10630 mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
10631 (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
10632 MIPS16 code. Allow MIPS16 o32 PIC.
10633 (mips_override_options): Allow MIPS16 o32 PIC.
10634 * config/mips/mips.md: Lower CONST_GP_P moves into register moves
10635 after reload if TARGET_USE_GOT.
10636 (UNSPEC_COPYGP): New constant.
10637 (length): Use a default length of 8 for MIPS16 GOT loads.
10638 (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
10639 (*got_page<mode>): Check mips_split_hi_p.
10640 (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
10641 (unspec_got<mode>, unspec_call<mode>): New expanders.
10642 (load_got<mode>, load_call<mode>): Remove the length attributes.
10643 Use a got attribute instead of a type attribute.
10644 (copygp_mips16): New insn.
10645 (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
10646 (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
10647 (sibcall, sibcall_value, call, call_value): Update the calls
10648 to mips_expand_call.
10649 (call_internal, call_value_internal): Use mips_split_call.
10650 (call_value_multiple_internal): Likewise.
10651 (call_split): Move after call_internal (the insn it is split from).
10652 (call_internal_direct, call_value_internal_direct): Turn into
10653 define_insn_and_splits. Split if TARGET_SPLIT_CALLS.
10654 (call_direct_split, call_value_direct_split): New patterns.
10655 * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
10656 and use M16_REGS instead of M16_NA_REGS.
10657 * config/mips/predicates.md (const_call_insn_operand): Replace
10658 the TARGET_ABSOLUTE_ABICALLS-based check with a more general
10659 mips_use_pic_fn_addr_reg_p check.
10660 (move_operand): Reject HIGHs if mips_split_hi_p.
10661 * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
10662 (__mips16_floatunsisf): Inline __mips16_floatsisf.
10663 (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
10664 * config/mips/libgcc-mips16.ver: New file.
10665 * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
10666 $(srcdir)/config/mips/libgcc-mips16.ver.
10668 2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
10670 * config/mips/mips.c (mips_unspec_address_offset): Move earlier
10672 (mips_unspec_address, mips_unspec_offset_high): Likewise.
10673 (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
10674 (mips16_cfun_returns_in_fpr_p): Likewise.
10676 2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
10678 * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
10679 * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
10680 rather than 4 to PC.
10682 2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
10684 * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
10685 (FUNCTION_PROFILER): Save the static chain pointer into $2
10686 beforehand and restore it aftewards.
10687 (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target
10688 address directly into $25 and call the function through $25;
10689 do not clobber $3. Pad the DImode version to cover the space
10690 left by the deleted $25 <- $3 move.
10691 (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
10692 the removal of the $25 <- $3 move.
10693 (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
10694 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
10696 2008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
10697 Daniel Jacobowitz <dan@codesourcery.com>
10699 * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
10700 * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
10701 (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
10702 * config/mips/mips.c (mips_start_function_definition): New function.
10703 (mips_end_function_definition): Likewise.
10704 (mips_output_function_prologue): Use mips_start_function_definition.
10705 (mips_output_function_epilogue): Use mips_end_function_definition.
10706 (build_mips16_function_stub): Use mips_start_function_definition
10707 and mips_end_function_definition.
10708 (build_mips16_call_stub): Likewise.
10710 2008-08-09 Richard Guenther <rguenther@suse.de>
10712 * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
10713 * gimple.h (gimple_call_fn): Adjust comment.
10714 (gimple_call_set_fndecl): New function.
10715 (gimple_call_fndecl): Adjust for GIMPLE_CALL no
10716 longer having bare FUNCTION_DECL operand.
10717 (gimple_call_return_type): Likewise.
10718 * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
10720 * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
10721 (gimple_mod_pow2): Likewise.
10722 (gimple_mod_subtract): Likewise.
10723 (gimple_ic): Likewise.
10724 (gimple_stringop_fixed_value): Likewise.
10725 (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
10726 longer having bare FUNCTION_DECL operand.
10727 * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
10728 * omp-low.c (optimize_omp_library_calls): Likewise.
10729 * cgraphunit.c (update_call_expr): Likewise.
10730 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
10731 (execute_convert_to_rsqrt): Likewise.
10732 * cfgexpand.c (gimple_to_tree): Simplify.
10733 (release_stmt_tree): Fix for GIMPLE_CALL no longer having
10734 bare FUNCTION_DECL operand.
10735 * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
10736 (convert_gimple_call): Use gimple_call_fndecl.
10737 * c-common.c (c_warn_unused_result): Likewise.
10739 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10742 * c-typeck.c (digest_init): Call verify_sequence_points from here.
10743 (c_finish_return): Likewise.
10744 (c_start_case): Likewise.
10745 * c-common.c (warn_for_collisions_1): Use explicit location in warning.
10746 * c-parser.c (c_parser_condition): New. Call
10747 verify_sequence_points.
10748 (c_parser_paren_condition): Call c_parser_condition.
10749 (c_parser_for_statement): Call c_parser_condition.
10751 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10754 * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
10755 * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
10756 Moved from diagnostic.h
10757 (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
10759 (emit_diagnostic): New.
10760 (warning0, pedwarn0): Delete.
10761 (warning, warning_at, pedwarn, permerror): Return bool.
10762 * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
10763 Moved to diagnostic.c.
10764 (struct diagnostic_context): Use correct type for
10765 classify_diagnostic.
10766 (diagnostic_report_diagnostic): Update declaration.
10767 (emit_diagnostic): Declare.
10768 * errors.c (warning): Return bool.
10769 * errors.h (warning): Update declaration.
10770 * toplev.h (warning0, pedwarn0): Delete.
10771 (warning, warning_at, pedwarn, permerror): Return bool.
10772 * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
10773 * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
10774 inform. Update all calls.
10775 (diagnose_mismatched_decls): Check return value of warning/pedwarn
10776 before giving informative note.
10777 (implicit_decl_warning): Likewise.
10778 * c-typeck.c (build_function_call): Likewise.
10779 * tree-sssa.c (warn_uninit): Likewise.
10780 * builtins.c (gimplify_va_arg_expr): Likewise.
10782 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10785 * doc/invoke.texi (-Wextra): Move warning from here...
10786 (-Wuninitialized): ... to here.
10788 2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10791 * flags.h (set_Wunused): Delete
10792 * toplev.c (process_options): Handle Wunused flags here.
10793 * opts.c (maybe_warn_unused_parameter): Delete.
10794 (common_handle_option): Replace set_Wunused by warn_unused.
10795 (set_Wextra): Do not handle Wunused-parameter here.
10796 (set_Wunused): Delete.
10797 * c-opts.c (c_common_handle_option): Replace set_Wunused by
10799 * common.opt (Wunused): Add Var and Init.
10800 (Wunused-function): Likewise.
10801 (Wunused-label): Likewise.
10802 (Wunused-parameter): Likewise.
10803 (Wunused-value): Likewise.
10804 (Wunused-variable): Likewise.
10806 2008-08-08 Peter Bergner <bergner@vnet.ibm.com>
10808 * doc/invoke.texi: Add cpu_type power7.
10809 * config.in (HAVE_AS_VSX): New.
10810 * config.gcc: Add cpu_type power7.
10811 * configure.ac (HAVE_AS_VSX): Check for assembler support of the
10813 * configure: Regenerate.
10814 * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
10816 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
10817 (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
10818 (EXTRA_SPECS): Add asm_cpu_power7 spec string.
10820 2008-08-08 Dorit Nuzman <dorit@il.ibm.com>
10822 * tree-vect-transform.c (vectorizable_conversion): Pass the integral
10823 type to vectorize.builtin_conversion.
10824 (vectorizable_conversion): Likewise.
10825 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
10826 integral type as input.
10827 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
10829 (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
10830 and ALTIVEC_BUILTIN_VCTSXS.
10831 (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
10834 2008-08-08 Richard Guenther <rguenther@suse.de>
10836 * tree-ssa-ccp.c (likely_value): Calls are not all varying.
10837 (surely_varying_stmt_p): Calls are varying only if they are
10838 non-builtin and not indirect or have no result.
10839 (ccp_fold): Re-instantiate code before the tuples merge.
10841 2008-08-08 Richard Guenther <rguenther@suse.de>
10843 PR tree-optimization/37056
10844 * gimple.h (gimple_assign_rhs_class): New helper function.
10845 * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
10846 unary operations properly.
10848 2008-08-07 Jan Hubicka <jh@suse.cz>
10850 * i386.h (ix86_size_cost): Declare.
10851 (ix86_cur_cost): New function macro.
10852 * i386.md (peepholes expanding size and splitters): Predicate by
10853 optimize_insn_for_speed_p.
10854 (peepholes reduce size and splitters): Predicate by
10855 optimize_insn_for_size_p.
10856 * i386.c (ix86_size_cost): Rename from ...
10857 (size_cost): This one.
10858 (override_options): Update.
10859 (decide_alg): Likewise.
10860 (ix86_expand_clear): Use RTL profile.
10861 (ix86_pad_returns): Use RTL profile.
10863 2008-08-07 Jan Hubicka <jh@suse.cz>
10865 * recog.c (split_all_insns): Set RTL profile
10866 (peephole2_optimize): Likewise.
10867 * function.c (thread_prologue_and_epilogue_insns): Likewise.
10868 * combine.c (combine_instructions): Likewise.
10870 2008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10872 * c-common.c (c_common_reswords): Also warn about keyword "bool".
10874 2008-08-07 Bob Wilson <bob.wilson@acm.org>
10876 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
10877 value in a6 after the set_frame_ptr insn.
10879 2008-08-07 Richard Henderson <rth@redhat.com>
10882 * gcc.c (cpp_options): Pass along -g*.
10884 2008-08-07 Joseph Myers <joseph@codesourcery.com>
10886 * config/arm/arm.c (output_move_neon): Update comment describing
10887 big-endian vector layout.
10888 (arm_assemble_integer): Do not handle big-endian NEON vectors
10890 * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
10891 neon_vget_lane<mode>_sext_internal,
10892 neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
10893 element indices for big-endian.
10895 2008-08-07 Richard Henderson <rth@redhat.com>
10897 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
10898 * configure, config.in: Rebuild.
10899 * debug.h (dwarf2out_do_cfi_asm): Declare.
10900 * c-cppbuiltin.c (c_cpp_builtins): Use it.
10901 * dwarf2out.c (dwarf2out_do_cfi_asm): New.
10902 (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
10903 dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
10905 2008-08-07 Joseph Myers <joseph@codesourcery.com>
10907 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
10908 movv2si_internal): Combine into mov<mode>_internal.
10909 (movv2si_internal_2): Remove.
10911 2008-08-07 Jan Hubicka <jh@suse.cz>
10914 * i386.md (single stringop patterns): Enable unconditionally.
10916 2008-08-07 H.J. Lu <hongjiu.lu@intel.com>
10919 * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
10921 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
10922 (bdesc_args): Add IX86_BUILTIN_MOVQ128.
10924 * config/i386/sse.md (sse2_movq128): New.
10926 * doc/extend.texi: Document __builtin_ia32_movq128.
10928 2008-08-07 Richard Guenther <rguenther@suse.de>
10930 PR middle-end/37042
10931 * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
10932 pointers can access anything.
10934 2008-08-06 Jan Hubicka <jh@suse.cz>
10936 * optabs.c (emit_unop_insn): Break out to ...
10937 (maybe_emit_unop_insn): ... this one.
10938 (expand_sfix_optab): Use maybe variant.
10939 * optabs.h (maybe_emit_unop_insn): Declare.
10941 * i386.md (mov0 patterns): Enable by default.
10942 (FP conversion expanders): Disable expansion of code expanding
10943 sequences when instruction should be optimized for size.
10944 (single strinop patterns): Enable when optimizing for size.
10945 (string expanders): Disable expanding of code expanding sequences
10946 when optimizning instruction for size.
10947 * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
10949 (ix86_fp_comparison_sahf_cost): Likewise.
10950 (ix86_expand_branch): Likewise.
10951 (ix86_expand_ashl_const): Likewise.
10952 (ix86_split_ashl): Likewise.
10953 (ix86_expand_strlen): Likewise.
10954 (ix86_emit_fp_unordered_jump): Likewie.
10956 2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10958 * c-common.c: Fix typo.
10959 (c_common_reswords): Activate more C++ keyword warnings.
10961 * matrix-reorg.c (compute_offset): Avoid C++ keywords.
10963 2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10966 * diagnostic.c (permerror_at): New.
10967 * toplev.h (permerror_at): Declare.
10969 2008-08-06 Victor Kaplansky <victork@il.ibm.com>
10970 Ira Rosen <irar@il.ibm.com>
10972 * tree-vect-transform.c (vect_model_simple_cost): Return
10973 immediately if stmt is pure SLP.
10974 (vect_model_store_cost): Ditto.
10975 (vect_model_load_cost): Ditto.
10976 (vectorizable_store): Remove PURE_SLP check before call
10977 to vect_model_store_cost.
10978 (vect_model_store_cost): When checking whether stmt describe
10979 strided access, add a check that it is not slp_node.
10981 2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10984 * c-common.c (warn_for_sign_compare): New. Handle separately the
10985 case that 'constant' is zero.
10986 * c-typeck.c (build_binary_op): Move code to c-common.c
10988 2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10990 * config/alpha/alpha.c (alpha_preferred_reload_class,
10991 alpha_secondary_reload, alpha_emit_set_const_1, function_value,
10992 alpha_output_mi_thunk_osf): Avoid C++ keywords.
10993 * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
10994 * config/arm/arm.md: Likewise.
10995 * config/avr/avr-protos.h (preferred_reload_class,
10996 test_hard_reg_class, avr_simplify_comparison_p,
10997 out_shift_with_cnt, class_max_nregs): Likewise.
10998 * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
10999 output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
11000 preferred_reload_class, test_hard_reg_class): Likewise.
11001 * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
11002 bfin_memory_move_cost, bfin_secondary_reload,
11003 bfin_output_mi_thunk): Likewise.
11004 * config/crx/crx.c (crx_secondary_reload_class,
11005 crx_memory_move_cost): Likewise.
11006 * config/frv/frv-protos.h (frv_secondary_reload_class,
11007 frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
11008 * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
11009 frv_secondary_reload_class, frv_class_likely_spilled_p,
11010 frv_class_max_nregs): Likewise.
11011 * config/h8300/h8300.c (h8300_classify_operand,
11012 h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
11014 * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
11015 * config/ia64/ia64.c (ia64_preferred_reload_class,
11016 ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
11017 * config/iq2000/iq2000.c (gen_int_relational): Likewise.
11018 * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
11020 * config/m68hc11/m68hc11.c (preferred_reload_class,
11021 m68hc11_memory_move_cost): Likewise.
11022 * config/mcore/mcore.c (mcore_secondary_reload_class,
11023 mcore_reload_class): Likewise.
11024 * config/mips/mips.c (mips_hard_regno_mode_ok_p,
11025 mips_class_max_nregs, mips_cannot_change_mode_class,
11026 mips_preferred_reload_class, mips_secondary_reload_class,
11027 mips_output_mi_thunk): Likewise.
11028 * config/mmix/mmix.c (mmix_preferred_reload_class,
11029 mmix_preferred_output_reload_class, mmix_secondary_reload_class):
11031 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
11033 * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
11034 pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
11035 * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
11036 * config/rs6000/rs6000.c (paired_expand_vector_init,
11037 rs6000_secondary_reload_class, rs6000_output_mi_thunk,
11038 compare_section_name, rs6000_memory_move_cost): Likewise.
11039 * config/s390/s390.c (s390_emit_compare_and_swap,
11040 s390_preferred_reload_class, s390_secondary_reload,
11041 legitimize_pic_address, legitimize_tls_address,
11042 legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
11043 s390_class_max_nregs): Likewise.
11044 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
11045 * config/s390/s390.md: Likewise.
11046 * config/score/score-protos.h (score_secondary_reload_class,
11047 score_preferred_reload_class): Likewise.
11048 * config/score/score.c (score_preferred_reload_class,
11049 score_secondary_reload_class): Likewise.
11050 * config/score/score3.c (score3_output_mi_thunk,
11051 score3_preferred_reload_class, score3_secondary_reload_class,
11052 score3_hard_regno_mode_ok): Likewise.
11053 * config/score/score3.h (score3_preferred_reload_class,
11054 score3_secondary_reload_class): Likewise.
11055 * config/score/score7.c (score7_output_mi_thunk,
11056 score7_preferred_reload_class, score7_secondary_reload_class,
11057 score7_hard_regno_mode_ok): Likewise.
11058 * config/score/score7.h (score7_preferred_reload_class,
11059 score7_secondary_reload_class): Likewise.
11060 * config/sh/sh.c (prepare_move_operands, output_far_jump,
11061 output_branchy_insn, add_constant, gen_block_redirect,
11062 sh_insn_length_adjustment, sh_cannot_change_mode_class,
11063 sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
11064 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
11065 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
11066 xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
11067 xstormy16_preferred_reload_class): Likewise.
11068 * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
11069 xtensa_expand_atomic, override_options,
11070 xtensa_preferred_reload_class, xtensa_secondary_reload_class):
11072 * reorg.c (try_merge_delay_insns): Likewise.
11073 * tree.c (merge_dllimport_decl_attributes): Likewise.
11075 * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
11077 2008-08-06 Michael Matz <matz@suse.de>
11079 * Makefile.in (write_entries_to_file): Quote words.
11080 * gengtype.c: (read_input_line): Skip over leading white-space.
11082 2008-08-06 Marc Gauthier <marc@tensilica.com>
11084 * config.gcc: Match more processor names for Xtensa.
11085 * configure.ac: Likewise.
11086 * doc/install.texi (Specific): Likewise.
11087 * configure: Regenerate.
11089 2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11091 * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
11092 * calls.c (avoid_likely_spilled_reg): Likewise.
11093 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
11094 * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
11095 * config/i386/i386.c (ix86_expand_special_args_builtin,
11096 ix86_secondary_reload): Likewise.
11097 * except.c (struct eh_region, gen_eh_region_catch,
11098 remove_unreachable_regions, duplicate_eh_regions,
11099 assign_filter_values, build_post_landing_pads,
11100 sjlj_find_directly_reachable_regions, remove_eh_handler,
11101 reachable_next_level, foreach_reachable_handler,
11102 can_throw_internal_1, can_throw_external_1,
11103 collect_one_action_chain): Likewise.
11104 * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
11105 * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
11106 * function.c (update_temp_slot_address, instantiate_new_reg,
11107 instantiate_virtual_regs_in_rtx,
11108 instantiate_virtual_regs_in_insn): Likewise.
11109 * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
11110 * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
11111 gimplify_cleanup_point_expr): Likewise.
11112 * ipa-cp.c (ipcp_lattice_changed): Likewise.
11113 * passes.c (next_pass_1): Likewise.
11114 * print-tree.c (print_node_brief, print_node): Likewise.
11115 * profile.c (branch_prob): Likewise.
11116 * tree-dump.c (dump_register): Likewise.
11117 * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
11119 * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
11120 copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
11121 copy_edges_for_bb, copy_cfg_body, copy_tree_r,
11122 copy_arguments_for_versioning, copy_static_chain): Likewise.
11123 * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
11124 add_new_name_mapping, register_new_name_mapping): Likewise.
11125 * tree-mudflap.c (mf_xform_derefs): Likewise.
11126 * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
11127 get_init_expr, combine_chains): Likewise.
11128 * tree-pretty-print.c (dump_generic_node): Likewise.
11129 * tree-ssa-structalias.c (create_variable_info_for): Likewise.
11130 * tree-vrp.c (simplify_cond_using_ranges): Likewise.
11131 * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
11132 * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
11134 2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
11136 PR middle-end/37010
11137 * calls.c (expand_call): Use the biggest preferred stack
11140 2008-08-06 Michael Matz <matz@suse.de>
11143 * reload.c (push_reload): Merge in,out,in_reg,out_reg members
11144 for reused reload, instead of overwriting them.
11146 2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
11148 PR middle-end/37009
11149 * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
11150 for incoming stack boundary.
11152 * function.c (assign_parm_find_entry_rtl): Update
11153 parm_stack_boundary.
11155 * function.h (rtl_data): Add parm_stack_boundary.
11157 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
11158 parm_stack_boundary for incoming stack boundary.
11160 2008-08-06 Joseph Myers <joseph@codesourcery.com>
11162 * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
11163 for unrepresentable subregs or treat them as equal to other regs
11164 or subregs with the same register number.
11166 2008-08-06 Aldy Hernandez <aldyh@redhat.com>
11168 PR middle-end/35432
11169 * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
11172 2008-08-06 Jan Hubicka <jh@suse.cz>
11174 * predict.c (maybe_hot_frequency_p): When profile is absent, all
11175 frequencies might be hot.
11177 2008-08-06 Andreas Krebbel <krebbel1@de.ibm.com>
11179 * reload.c (find_reloads): Force constants into literal pool
11180 also if they are wrapped in a SUBREG.
11182 2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
11185 * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
11186 * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
11187 Don't allow predicated instructions for data speculation.
11188 * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
11191 2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
11193 * haifa-sched.c (extend_global): Split to extend_global_data and
11194 extend_region_data. Update all uses.
11195 (extend_all): Rename to extend_block_data.
11197 2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
11199 * sched-rgn.c (new_ready): Check if instruction can be
11200 speculatively scheduled before attempting speculation.
11201 (debug_rgn_dependencies): Remove wrongful assert.
11203 2008-08-05 Bob Wilson <bob.wilson@acm.org>
11205 * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
11207 2008-08-05 Bob Wilson <bob.wilson@acm.org>
11209 * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
11210 (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
11211 va_size, and type_size.
11213 2008-08-04 Jason Merrill <jason@redhat.com>
11216 * tree-ssa.c (useless_type_conversion_p_1): Call langhook
11217 if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
11219 2008-08-05 Richard Henderson <rth@redhat.com>
11221 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
11222 * configure: Rebuild.
11224 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
11227 * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
11228 instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
11231 2008-08-05 Richard Henderson <rth@redhat.com>
11233 * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
11234 * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
11235 * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
11236 * common.opt (fdwarf2-cfi-asm): New.
11237 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
11238 * config.in, configure: Rebuild.
11239 * dwarf2asm.c (dw2_asm_output_data_raw): New.
11240 (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
11242 (dw2_force_const_mem): Externalize.
11243 * dwarf2asm.h: Update.
11244 * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
11245 generate a real label.
11246 (output_cfi_directive): New.
11247 (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
11248 (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
11249 (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
11251 (dwarf2out_end_epilogue): Emit .cfi_endproc.
11252 (output_loc_operands_raw, output_loc_sequence_raw): New.
11253 (output_cfa_loc_raw): New.
11255 2008-08-05 Paul Brook <paul@codesourcery.com>
11257 * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
11258 * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
11259 (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
11260 (arm_file_start): Add FPUTYPE_VFP3D16. Rename vfp3 to vfpv3.
11261 * config/arm/arm.h (TARGET_VFPD32): Define.
11262 (TARGET_VFP3): Use TARGET_VFPD32.
11263 (fputype): Add FPUTYPE_VFP3D16.
11264 (LAST_VFP_REGNUM): Use TARGET_VFPD32.
11265 * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
11266 * config/arm/arm-cores.def: Add cortex-r4f.
11267 * config/arm/arm-tune.md: Regenerate.
11269 2008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11271 * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
11272 Reword some comments throughout the file.
11274 (MFC_MIN_DMA_LIST_ELEMENTS): New define.
11275 (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
11276 (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
11277 MFC_MIN_DMA_LIST_ELEMENTS.
11278 (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
11279 MFC_MAX_DMA_LIST_ELEMENTS.
11281 (MFC_START_ENABLE): Remove PPU-only define.
11282 (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
11283 (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
11285 (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
11286 (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
11287 (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
11288 (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
11289 (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
11290 (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
11291 (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
11293 (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
11294 (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
11295 (mfc_sdcrt, mfc_sdcrtst): Likewise.
11296 (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
11298 (spu_read_machine_status): Fix typo.
11300 2008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11302 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
11303 SUBREG of multi-word hard register.
11304 * config/spu/spu.c (valid_subreg): Likewise.
11305 (adjust_operand): Handle SUBREGs of multi-word hard registers.
11307 2008-08-04 Richard Guenther <rguenther@suse.de>
11309 * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
11310 the candidate with the stripped base if that base is different
11311 from the original base even for offset zero.
11313 2008-08-04 Richard Guenther <rguenther@suse.de>
11315 PR middle-end/36691
11316 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
11317 check for no_overflow.
11319 2008-08-04 Richard Guenther <rguenther@suse.de>
11321 * tree-vect-transform.c (vectorizable_call): Fix tuplification.
11323 2008-08-04 Paul Brook <paul@codesourcery.com>
11325 * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
11326 (arm_order_regs_for_local_alloc): New function.
11327 * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
11329 * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
11331 2008-08-04 H.J. Lu <hongjiu.lu@intel.com>
11334 * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
11335 instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
11336 (ix86_expand_epilogue): Likewise.
11338 2008-08-04 H.J. Lu <hongjiu.lu@intel.com>
11340 * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
11343 2008-08-03 Uros Bizjak <ubizjak@gmail.com>
11345 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
11346 to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
11347 (*movv2sf_internal_rex64): Ditto.
11349 2008-08-03 Jan Hubicka <jh@suse.cz>
11351 * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
11352 expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
11353 * expmed.c (expand_smod_pow2): Likewise.
11355 2008-08-03 Uros Bizjak <ubizjak@gmail.com>
11358 * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
11359 alternative 0 of operand 1.
11360 (*vec_concatv2di_rex64_sse): Ditto.
11361 (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
11363 (*sse2_storeq_rex64): Penalize allocation of "r" registers.
11364 * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
11365 of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
11366 (*movv2sf_internal_rex64): Ditto.
11368 2008-08-02 Richard Guenther <rguenther@suse.de>
11371 * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
11372 (ssedoublesizemode): New mode attribute.
11373 (sse_shufps): Call gen_sse_shufps_v4sf.
11374 (sse_shufps_1): Macroize.
11375 (sse2_shufpd): Call gen_Sse_shufpd_v2df.
11376 (sse2_shufpd_1): Macroize.
11377 (vec_extract_odd, vec_extract_even): New expanders.
11378 (vec_interleave_highv4sf, vec_interleave_lowv4sf,
11379 vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
11380 * i386.c (ix86_expand_vector_init_one_nonzero): Call
11381 gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
11382 (ix86_expand_vector_set): Likewise.
11383 (ix86_expand_reduc_v4sf): Likewise.
11385 2008-08-01 Doug Kwan <dougkwan@google.com>
11387 * matrix-reorg.c: Re-enable all code.
11388 (struct malloc_call_data): Change CALL_STMT to gimple type.
11389 (collect_data_for_malloc_call): Tuplify.
11390 (struct access_site_info): Change STMT to gimple type.
11391 (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
11392 and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
11393 (struct free_info): Change STMT to gimple type.
11394 (struct matrix_access_phi_node): Change PHI to gimple type.
11395 (get_inner_of_cast_expr): Remove.
11396 (may_flatten_matrices_1): Tuplify.
11397 (may_flatten_matrices): Ditto.
11398 (mark_min_matrix_escape_level): Ditto.
11399 (ssa_accessed_in_tree): Refactor statement RHS related code into ...
11400 (ssa_accessed_in_call_rhs): New
11401 (ssa_accessed_in_assign_rhs): New
11402 (record_access_alloc_site_info): Tuplify.
11403 (add_allocation_site): Ditto.
11404 (analyze_matrix_allocation_site): Ditto.
11405 (analyze_transpose): Ditto.
11406 (get_index_from_offset): Ditto.
11407 (update_type_size): Ditto.
11408 (analyze_accesses_for_call_expr): Tuplify and renamed into ...
11409 (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
11410 (analyze_accesses_for_phi_node): Tuplify.
11411 (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
11412 (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
11413 (analyze_matrix_accesses): Tuplify.
11414 (check_var_data): New call-back type for check_var_notmodified_p.
11415 (check_var_notmodified_p): Tuplify and use call-back struct to
11416 return statement found.
11417 (can_calculate_expr_before_stmt): Factor out statement related code
11419 (can_calculate_stmt_before_stmt): New.
11420 (check_allocation_function): Tuplify.
11421 (find_sites_in_func): Ditto.
11422 (record_all_accesses_in_func): Ditto.
11423 (transform_access_sites): Ditto.
11424 (transform_allocation_sites): Ditto.
11425 (matrix_reorg): Re-enable.
11426 (gate_matrix_reorg): Re-enable.
11428 2008-08-01 Jakub Jelinek <jakub@redhat.com>
11430 * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
11431 for labels for which it hasn't been set yet. If it has been set,
11432 stop walking insns and continue with next worklist item.
11433 (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
11434 if the only BARRIER is at the very end of a function.
11436 2008-08-01 H.J. Lu <hongjiu.lu@intel.com>
11438 * cfgexpand.c (expand_stack_alignment): Assert that
11439 stack_realign_drap and drap_rtx must match.
11441 * function.c (instantiate_new_reg): If DRAP is used to realign
11442 stack, replace virtual_incoming_args_rtx with internal arg
11445 2008-08-01 Richard Guenther <rguenther@suse.de>
11447 * tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free
11448 loop information only if we initialized it.
11449 (execute_pre): Call fini_pre with in_fre.
11450 * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
11451 if we do not unroll because we hit max-completely-peeled-insns.
11452 Use our estimation for consistency, do allow shrinking.
11454 2008-08-01 H.J. Lu <hongjiu.lu@intel.com>
11456 * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
11457 with MIN_STACK_BOUNDARY.
11458 (ix86_update_stack_boundary): Likewise.
11459 (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
11462 * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
11463 (MIN_STACK_BOUNDARY): This.
11465 2008-08-01 Richard Guenther <rguenther@suse.de>
11467 PR middle-end/36997
11468 * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
11470 2008-08-01 Richard Guenther <rguenther@suse.de>
11472 PR tree-optimization/36988
11473 * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
11474 do not matter if that doesn't change volatile qualification.
11476 2008-08-01 Paolo Bonzini <bonzini@gnu.org>
11478 * configure.ac: Do not generate libada-mk. Do not subst
11479 host_cc_for_libada.
11480 * libada-mk.in: Remove.
11481 * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
11482 * configure: Regenerate.
11484 2008-08-01 Basile Starynkevitch <basile@starynkevitch.net>
11486 * tree-pass.h: Added comment about not dumping passes with name
11487 starting with star in struct opt_pass.
11488 * passes.c (register_dump_files_1): Don't do dump for a pass with
11489 name starting with star.
11490 * doc/passes.texi (Pass manager): Mention pass names and special
11491 meaning of star prefix to avoid dump.
11493 2008-07-31 Adam Nemet <anemet@caviumnetworks.com>
11495 * config.gcc (mipsisa64r2*-*-linux*): New configuration. Set ISA
11497 * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
11498 (ISA_MIPS64R2): New macro.
11499 (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
11500 (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
11501 ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
11502 ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
11503 ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
11504 ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
11505 ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
11506 (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
11507 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
11508 Move up to keep list alphabetically sorted.
11509 (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
11510 * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
11512 * doc/invoke.texi (MIPS Options): Add -mips64r2.
11513 (-march=@var{arch}): Add mips64r2.
11515 2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
11517 * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
11519 2008-07-31 Steve Ellcey <sje@cup.hp.com>
11521 * expr.c (expand_assignment): Check for complete type.
11523 2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
11526 * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
11528 * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
11529 for stack alignment.
11531 * function.h (rtl_data): Add stack_realign_tried. Update comments.
11533 2008-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
11535 * config/sh/sh.c (sh_canonical_va_list_type): Remove.
11536 (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
11538 2008-07-31 Jakub Jelinek <jakub@redhat.com>
11540 PR rtl-optimization/36419
11541 * dwarf2out.c (barrier_args_size): New variable.
11542 (compute_barrier_args_size, compute_barrier_args_size_1): New
11544 (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
11545 if not called yet in the current function, use barrier_args_size
11546 array to find the new args_size value.
11547 (dwarf2out_frame_debug): Free and clear barrier_args_size.
11549 2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
11552 * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
11555 2008-07-31 H.J. Lu <hongjiu.lu@intel.com>
11558 * dwarf2out.c (dwarf2out_args_size_adjust): New.
11559 (dwarf2out_stack_adjust): Use it.
11560 (dwarf2out_frame_debug_expr): Likewise.
11562 2008-07-31 Richard Guenther <rguenther@suse.de>
11564 PR tree-optimization/36978
11565 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
11566 the generated condition.
11568 2008-07-31 Richard Guenther <rguenther@suse.de>
11570 * passes.c (init_optimization_passes): Always call
11571 pass_early_warn_uninitialized.
11572 * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
11573 * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
11574 * doc/passes.texi (Warn for uninitialized variables): Adjust.
11576 2008-07-31 Jakub Jelinek <jakub@redhat.com>
11579 * builtins.c (maybe_emit_free_warning): New function.
11580 (expand_builtin): Process BUILT_IN_FREE even at -O0. Call
11581 maybe_emit_free_warning for BUILT_IN_FREE.
11584 * dwarf2out.c (get_context_die): New function.
11585 (force_decl_die, force_type_die): Use it.
11586 (dwarf2out_imported_module_or_decl): Likewise. If base_type_die
11587 returns NULL, force generation of DW_TAG_typedef and put that into
11590 PR preprocessor/36649
11591 * c-pch.c (c_common_read_pch): Save and restore
11592 line_table->trace_includes across PCH restore.
11594 2008-07-30 Eric Botcazou <ebotcazou@adacore.com>
11597 * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
11599 2008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
11602 * final.c (call_from_call_insn): Handle COND_EXEC.
11604 2008-07-30 H.J. Lu <hongjiu.lu@intel.com>
11606 * builtins.c (std_gimplify_va_arg_expr): Replace
11607 PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
11608 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
11610 2008-07-30 Joey Ye <joey.ye@intel.com>
11611 H.J. Lu <hongjiu.lu@intel.com>
11613 * builtins.c (expand_builtin_setjmp_receiver): Replace
11614 virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
11615 (expand_builtin_apply_args_1): Likewise.
11616 (expand_builtin_longjmp): Need DRAP for stack alignment.
11617 (expand_builtin_apply): Likewise.
11619 * caller-save.c (setup_save_areas): Call assign_stack_local_1
11620 instead of assign_stack_local to allow alignment reduction.
11622 * calls.c (emit_call_1): Need DRAP for stack alignment if
11624 (expand_call): Replace virtual_incoming_args_rtx with
11625 crtl->args.internal_arg_pointer.
11626 * stmt.c (expand_nl_goto_receiver): Likewise.
11628 * cfgexpand.c (get_decl_align_unit): Estimate stack variable
11629 alignment and store to stack_alignment_estimated and
11630 max_used_stack_slot_alignment.
11631 (expand_one_var): Likewise.
11632 (expand_stack_alignment): New function.
11633 (tree_expand_cfg): Initialize max_used_stack_slot_alignment
11634 and stack_alignment_estimated fields in rtl_data. Call
11635 expand_stack_alignment at end.
11637 * defaults.h (INCOMING_STACK_BOUNDARY): New.
11638 (MAX_STACK_ALIGNMENT): Likewise.
11639 (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
11640 (SUPPORTS_STACK_ALIGNMENT): Likewise.
11642 * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
11643 stack alignment when generating virtual registers.
11645 * function.c (assign_stack_local): Renamed to ...
11646 (assign_stack_local_1): This. Add a parameter to indicate
11647 if it is OK to reduce alignment.
11648 (assign_stack_local): Use it.
11649 (instantiate_new_reg): Instantiate virtual incoming args rtx
11650 to vDRAP if stack realignment and DRAP is needed.
11651 (assign_parms): Collect parameter/return type alignment and
11652 contribute to stack_alignment_estimated.
11653 (locate_and_pad_parm): Likewise.
11654 (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
11655 with crtl->args.internal_arg_pointer.
11657 * function.h (rtl_data): Add new field drap_reg,
11658 max_used_stack_slot_alignment, stack_alignment_estimated,
11659 stack_realign_needed, need_drap, stack_realign_processed and
11660 stack_realign_finalized.
11661 (stack_realign_fp): New macro.
11662 (stack_realign_drap): Likewise.
11664 * global.c (compute_regsets): Frame pointer is needed when
11665 stack is realigned. Can eliminate frame pointer when stack is
11666 realigned and dynamic realigned argument pointer isn't used.
11668 * reload1.c (update_eliminables): Frame pointer is needed
11669 when stack is realigned.
11670 (init_elim_table): Can eliminate frame pointer when stack is
11671 realigned and dynamic realigned argument pointer isn't used.
11673 * rtl.h (assign_stack_local_1): Declare new funtion.
11675 * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
11676 (TARGET_GET_DRAP_RTX): Likewise.
11677 (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
11678 TARGET_GET_DRAP_RTX.
11680 * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
11682 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
11683 STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
11685 2008-07-30 Xuepeng Guo <xuepeng.guo@intel.com>
11686 H.J. Lu <hongjiu.lu@intel.com>
11688 * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
11689 vdrap_reg, stack_realign and drap_reg_saved.
11690 (add_cfi): Don't allow redefining CFA when DRAP is used.
11691 (reg_save): Handle stack alignment.
11692 (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
11693 alignment. Don't generate DWARF information for (set fp sp)
11695 (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
11697 (int_loc_descriptor): Move prototype forward. Also define if
11698 DWARF2_UNWIND_INFO is true.
11699 (output_cfa_loc): Handle DW_CFA_expression.
11700 (build_cfa_aligned_loc): New.
11701 (based_loc_descr): Update assert for stack realign. For local
11702 variables, use sp+offset when stack is aligned without drap and
11703 fp+offset when stack is aligned with drap. For arguments, use
11704 cfa+offset when drap is used to align stack.
11706 2008-07-30 Joey Ye <joey.ye@intel.com>
11707 H.J. Lu <hongjiu.lu@intel.com>
11709 * config/i386/i386.c (ix86_force_align_arg_pointer_string):
11711 (ix86_gen_andsp): New.
11712 (ix86_user_incoming_stack_boundary): Likewise.
11713 (ix86_default_incoming_stack_boundary): Likewise.
11714 (ix86_incoming_stack_boundary): Likewise.
11715 (ix86_can_eliminate): Likewise.
11716 (find_drap_reg): Likewise.
11717 (ix86_update_stack_boundary): Likewise.
11718 (ix86_get_drap_rtx): Likewise.
11719 (ix86_finalize_stack_realign_flags): Likewise.
11720 (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
11721 (TARGET_GET_DRAP_RTX): Likewise.
11722 (override_options): Overide option value for new options.
11723 (ix86_function_ok_for_sibcall): Remove check for
11724 force_align_arg_pointer.
11725 (ix86_handle_cconv_attribute): Likewise.
11726 (ix86_function_regparm): Likewise.
11727 (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
11728 (ix86_va_start): Replace virtual_incoming_args_rtx with
11729 crtl->args.internal_arg_pointer.
11730 (ix86_select_alt_pic_regnum): Check DRAP register.
11731 (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
11732 (ix86_compute_frame_layout): Compute frame layout wrt stack
11734 (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
11735 (ix86_expand_prologue): Decide if stack realignment is needed
11736 and generate prologue code accordingly.
11737 (ix86_expand_epilogue): Generate epilogue code wrt stack
11738 realignment is really needed or not.
11740 * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
11741 (ABI_STACK_BOUNDARY): Likewise.
11742 (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
11743 (STACK_REALIGN_DEFAULT): Likewise.
11744 (INCOMING_STACK_BOUNDARY): Likewise.
11745 (MAX_STACK_ALIGNMENT): Likewise.
11746 (ix86_incoming_stack_boundary): Likewise.
11747 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
11748 (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
11749 (CAN_ELIMINATE): Defined with ix86_can_eliminate.
11750 (machine_function): Remove force_align_arg_pointer.
11752 * config/i386/i386.md (BX_REG): New.
11753 (R13_REG): Likewise.
11755 * config/i386/i386.opt (mforce_drap): New.
11756 (mincoming-stack-boundary): Likewise.
11757 (mstackrealign): Add Init(-1).
11759 * config/i386/i386-protos.h (ix86_can_eliminate): New
11761 2008-07-30 H.J. Lu <hongjiu.lu@intel.com>
11763 * doc/extend.texi: Update force_align_arg_pointer.
11765 * doc/invoke.texi: Document -mincoming-stack-boundary. Update
11768 * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
11769 (INCOMING_STACK_BOUNDARY): Likewise.
11770 (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
11771 (TARGET_GET_DRAP_RTX): Likewise.
11773 2008-07-30 Andreas Schwab <schwab@suse.de>
11775 PR rtl-optimization/36929
11776 * dse.c (replace_inc_dec): Use emit_insn_before instead of
11777 add_insn_before and fix argument order.
11778 (replace_inc_dec_mem): Handle NULL rtx.
11780 2008-07-30 Andrew Jenner <andrew@codesourcery.com>
11782 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
11784 (arm_compute_initial_elimination_offset): Use it.
11785 (arm_compute_save_reg_mask): Include static chain save slot when
11786 calculating alignment.
11787 (arm_get_frame_offsets): Ditto.
11788 (thumb1_compute_save_reg_mask): Ensure we have a low register saved
11789 that we can use to decrement the stack when the stack decrement
11790 could be too big for an immediate value in a single insn.
11791 (thumb1_expand_prologue): Avoid using r12 for stack decrement.
11793 2008-07-30 Richard Guenther <rguenther@suse.de>
11795 PR tree-optimization/36967
11796 * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
11797 Release defs of statements we remove.
11799 2008-07-30 Nathan Froyd <froydnj@codesourcery.com>
11801 * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
11802 instead of NULL_RTVEC.
11804 2008-07-30 Nathan Froyd <froydnj@codesourcery.com>
11808 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
11811 2008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
11813 * final.c (call_from_call_insn): New.
11814 (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
11816 2008-07-30 Paolo Bonzini <bonzini@gnu.org>
11818 * configure.ac: Substitute ADA_CFLAGS.
11819 * configure: Regenerate.
11820 * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
11821 * Makefile.in: Remove mention of X_* variables.
11822 * config/pa/x-ada-hpux10: Remove.
11823 * config/pa/x-ada: Remove.
11825 * doc/fragments.texi: Update.
11827 2008-07-30 Olivier Hainque <hainque@adacore.com>
11829 * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
11830 * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
11831 __dso_handle explicitly here.
11833 2008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11836 * c-typeck.c (build_binary_op): Encapsulate code into...
11837 * c-common.c (shorten_binary_op): ...this new function.
11838 (conversion_warning): Use the new function. Handle non-negative
11839 constant in bitwise-and.
11840 * c-common.h (shorten_binary_op): Declare.
11842 2008-07-30 Olivier Hainque <hainque@adacore.com>
11844 * scan.c (make_sstring_space): Add explicit conversions of
11845 allocator's return value.
11846 * fix-header.c (recognized_function): Likewise.
11848 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11850 * doc/cpp.texi: Update to GFDL 1.2.
11851 * doc/gcc.texi: Do not list GPL as Invariant Section.
11852 * doc/gccint.texi: Likewise. Update copyright years.
11853 * doc/install.texi: Update copyright years.
11855 2008-07-30 Alan Modra <amodra@bigpond.net.au>
11858 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
11859 a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
11861 2008-07-29 Jan Hubicka <jh@suse.cz>
11863 * c-decl.c (merge_decls): Do not handle DECL_INLINE.
11864 (grokdeclarator): Likewise.
11865 * langhooks.c (lhd_warn_unused_global_decl): Use
11866 DECL_DECLARED_INLINE_P.
11867 * print-tree.c (print_node): Remove DECL_INLINE check.
11869 2008-07-29 Richard Guenther <rguenther@suse.de>
11871 PR tree-optimization/36945
11872 * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
11873 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
11874 Record invariant addresses un-decomposed.
11875 (copy_reference_ops_from_call): Record reference call
11876 arguments properly. Simplify.
11877 * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
11878 helper split out from ...
11879 (create_component_ref_by_pieces): ... here. Simplify.
11880 Prepare for recursive invocation for call arguments.
11881 (create_expression_by_pieces): Adjust call to
11882 create_component_ref_by_pieces.
11883 (compute_avail): Process operand 2 of reference ops.
11885 2008-07-29 Richard Guenther <rguenther@suse.de>
11887 * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
11889 2008-07-29 Jakub Jelinek <jakub@redhat.com>
11891 * c-format.c (check_format_types): Revert unwanted checkin.
11893 2008-07-29 Jan Hubicka <jh@suse.cz>
11895 * flags.h (flag_really_no_inline): Remove.
11896 * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
11897 * toplev.c (flag_really_no_inline): Remove.
11898 * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
11899 * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
11900 (cgraph_decide_inlining_incrementally): Likewise.
11901 (compute_inline_parameters): Likewise.
11902 * opts.c (decode_options): Simplify.
11903 * c-opts.c (c_common_post_options): Do not set flag_no_inline.
11904 * common.opt (finline): Initialize to 1.
11905 * tree-inline.c (inlinable_function_p): Check flag_no_inline.
11907 2008-07-29 Jan Hubicka <jh@suse.cz>
11909 * predict.c (always_optimize_for_size_p): New function.
11910 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
11911 optimize_edge_for_size_p, optimize_edge_for_speed_p,
11912 optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
11914 (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
11915 * function.c (prepare_function_start): Set default profile.
11916 * function.h (rtl_data): Add maybe_hot_insn_p.
11917 * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
11918 (construct_exit_block): Likewise.
11919 (tree_expand_cfg): Likewise.
11921 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
11922 optimize_edge_for_size_p, optimize_edge_for_speed_p,
11923 optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
11924 (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
11927 2008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11930 * c-decl.c (merge_decls): Merge USED flags.
11932 2008-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
11934 * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
11935 valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
11936 next_stack, lab_false and lab_over trees.
11938 2008-07-28 Richard Guenther <rguenther@suse.de>
11940 PR tree-optimization/36957
11941 * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
11942 (useless_type_conversion_p): Remove.
11943 (types_compatible_p): Remove.
11944 * gimple.h (tree_ssa_useless_type_conversion): Declare.
11945 (useless_type_conversion_p): Declare.
11946 (types_compatible_p): Declare.
11947 (gimple_expr_type): Return the base type only if it is
11948 trivially convertible to the subtype.
11950 2008-07-28 Andreas Tobler <a.tobler@schweiz.org>
11952 * configure.ac: Use the m4_do macro to concatenate the warnings into
11953 one string in ACX_PROG_CC_WARNING_OPTS,
11954 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
11955 ACX_PROG_CC_WARNINGS_ARE_ERRORS.
11956 * configure: Regenerate.
11958 2008-07-28 Richard Guenther <rguenther@suse.de>
11960 * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
11961 (insert_fake_stores): Remove.
11962 (realify_fake_stores): Likewise.
11963 (execute_pre): Remove dead code.
11964 * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
11965 (find_func_aliases): Deal with it here instead.
11966 Re-enable gcc_unreachable call.
11968 2008-07-28 Richard Guenther <rguenther@suse.de>
11970 Merge from gimple-tuples-branch.
11972 * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
11973 * gimple.def: New file.
11974 * gsstruct.def: Likewise.
11975 * gimple-iterator.c: Likewise.
11976 * gimple-pretty-print.c: Likewise.
11977 * tree-gimple.c: Removed. Merged into ...
11978 * gimple.c: ... here. New file.
11979 * tree-gimple.h: Removed. Merged into ...
11980 * gimple.h: ... here. New file.
11982 * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
11983 * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
11984 --enable-checking=gimple flag.
11985 * config.in: Likewise.
11986 * configure: Regenerated.
11988 * tree-ssa-operands.h: Tuplified.
11989 * tree-vrp.c: Likewise.
11990 * tree-loop-linear.c: Likewise.
11991 * tree-into-ssa.c: Likewise.
11992 * tree-ssa-loop-im.c: Likewise.
11993 * tree-dump.c: Likewise.
11994 * tree-complex.c: Likewise.
11995 * cgraphbuild.c: Likewise.
11996 * tree-ssa-threadupdate.c: Likewise.
11997 * tree-ssa-loop-niter.c: Likewise.
11998 * tree-pretty-print.c: Likewise.
11999 * tracer.c: Likewise.
12000 * gengtype.c: Likewise.
12001 * tree-loop-distribution.c: Likewise.
12002 * tree-ssa-loop-unswitch.c: Likewise.
12003 * cgraph.c: Likewise.
12004 * cgraph.h: Likewise.
12005 * tree-ssa-loop-manip.c: Likewise.
12006 * value-prof.c: Likewise.
12007 * tree-ssa-loop-ch.c: Likewise.
12008 * tree-tailcall.c: Likewise.
12009 * value-prof.h: Likewise.
12010 * tree.c: Likewise.
12011 * tree.h: Likewise.
12012 * tree-pass.h: Likewise.
12013 * ipa-cp.c: Likewise.
12014 * tree-scalar-evolution.c: Likewise.
12015 * tree-scalar-evolution.h: Likewise.
12016 * target.h: Likewise.
12017 * lambda-mat.c: Likewise.
12018 * tree-phinodes.c: Likewise.
12019 * diagnostic.h: Likewise.
12020 * builtins.c: Likewise.
12021 * tree-ssa-alias-warnings.c: Likewise.
12022 * cfghooks.c: Likewise.
12023 * fold-const.c: Likewise.
12024 * cfghooks.h: Likewise.
12025 * omp-low.c: Likewise.
12026 * tree-ssa-dse.c: Likewise.
12027 * ipa-reference.c: Likewise.
12028 * tree-ssa-uncprop.c: Likewise.
12029 * toplev.c: Likewise.
12030 * tree-gimple.c: Likewise.
12031 * tree-gimple.h: Likewise.
12032 * tree-chrec.c: Likewise.
12033 * tree-chrec.h: Likewise.
12034 * tree-ssa-sccvn.c: Likewise.
12035 * tree-ssa-sccvn.h: Likewise.
12036 * cgraphunit.c: Likewise.
12037 * tree-ssa-copyrename.c: Likewise.
12038 * tree-ssa-ccp.c: Likewise.
12039 * tree-ssa-loop-ivopts.c: Likewise.
12040 * tree-nomudflap.c: Likewise.
12041 * tree-call-cdce.c: Likewise.
12042 * ipa-pure-const.c: Likewise.
12043 * c-format.c: Likewise.
12044 * tree-stdarg.c: Likewise.
12045 * tree-ssa-math-opts.c: Likewise.
12046 * tree-ssa-dom.c: Likewise.
12047 * tree-nrv.c: Likewise.
12048 * tree-ssa-propagate.c: Likewise.
12049 * ipa-utils.c: Likewise.
12050 * tree-ssa-propagate.h: Likewise.
12051 * tree-ssa-alias.c: Likewise.
12052 * gimple-low.c: Likewise.
12053 * tree-ssa-sink.c: Likewise.
12054 * ipa-inline.c: Likewise.
12055 * c-semantics.c: Likewise.
12056 * dwarf2out.c: Likewise.
12057 * expr.c: Likewise.
12058 * tree-ssa-loop-ivcanon.c: Likewise.
12059 * predict.c: Likewise.
12060 * tree-ssa-loop.c: Likewise.
12061 * tree-parloops.c: Likewise.
12062 * tree-ssa-address.c: Likewise.
12063 * tree-ssa-ifcombine.c: Likewise.
12064 * matrix-reorg.c: Likewise.
12065 * c-decl.c: Likewise.
12066 * tree-eh.c: Likewise.
12067 * c-pretty-print.c: Likewise.
12068 * lambda-trans.c: Likewise.
12069 * function.c: Likewise.
12070 * langhooks.c: Likewise.
12071 * ebitmap.h: Likewise.
12072 * tree-vectorizer.c: Likewise.
12073 * function.h: Likewise.
12074 * langhooks.h: Likewise.
12075 * tree-vectorizer.h: Likewise.
12076 * ipa-type-escape.c: Likewise.
12077 * ipa-type-escape.h: Likewise.
12078 * domwalk.c: Likewise.
12079 * tree-if-conv.c: Likewise.
12080 * profile.c: Likewise.
12081 * domwalk.h: Likewise.
12082 * tree-data-ref.c: Likewise.
12083 * tree-data-ref.h: Likewise.
12084 * tree-flow-inline.h: Likewise.
12085 * tree-affine.c: Likewise.
12086 * tree-vect-analyze.c: Likewise.
12087 * c-typeck.c: Likewise.
12088 * gimplify.c: Likewise.
12089 * coretypes.h: Likewise.
12090 * tree-ssa-phiopt.c: Likewise.
12091 * calls.c: Likewise.
12092 * tree-ssa-coalesce.c: Likewise.
12093 * tree.def: Likewise.
12094 * tree-dfa.c: Likewise.
12095 * except.c: Likewise.
12096 * except.h: Likewise.
12097 * cfgexpand.c: Likewise.
12098 * tree-cfgcleanup.c: Likewise.
12099 * tree-ssa-pre.c: Likewise.
12100 * tree-ssa-live.c: Likewise.
12101 * tree-sra.c: Likewise.
12102 * tree-ssa-live.h: Likewise.
12103 * tree-predcom.c: Likewise.
12104 * lambda.h: Likewise.
12105 * tree-mudflap.c: Likewise.
12106 * ipa-prop.c: Likewise.
12107 * print-tree.c: Likewise.
12108 * tree-ssa-copy.c: Likewise.
12109 * ipa-prop.h: Likewise.
12110 * tree-ssa-forwprop.c: Likewise.
12111 * ggc-page.c: Likewise.
12112 * c-omp.c: Likewise.
12113 * tree-ssa-dce.c: Likewise.
12114 * tree-vect-patterns.c: Likewise.
12115 * tree-ssa-ter.c: Likewise.
12116 * tree-nested.c: Likewise.
12117 * tree-ssa.c: Likewise.
12118 * lambda-code.c: Likewise.
12119 * tree-ssa-loop-prefetch.c: Likewise.
12120 * tree-inline.c: Likewise.
12121 * tree-inline.h: Likewise.
12122 * tree-iterator.c: Likewise.
12123 * tree-optimize.c: Likewise.
12124 * tree-ssa-phiprop.c: Likewise.
12125 * tree-vect-transform.c: Likewise.
12126 * tree-object-size.c: Likewise.
12127 * tree-outof-ssa.c: Likewise.
12128 * cfgloop.c: Likewise.
12129 * system.h: Likewise.
12130 * tree-profile.c: Likewise.
12131 * cfgloop.h: Likewise.
12132 * c-gimplify.c: Likewise.
12133 * c-common.c: Likewise.
12134 * tree-vect-generic.c: Likewise.
12135 * tree-flow.h: Likewise.
12136 * c-common.h: Likewise.
12137 * basic-block.h: Likewise.
12138 * tree-ssa-structalias.c: Likewise.
12139 * tree-switch-conversion.c: Likewise.
12140 * tree-ssa-structalias.h: Likewise.
12141 * tree-cfg.c: Likewise.
12142 * passes.c: Likewise.
12143 * ipa-struct-reorg.c: Likewise.
12144 * ipa-struct-reorg.h: Likewise.
12145 * tree-ssa-reassoc.c: Likewise.
12146 * cfgrtl.c: Likewise.
12147 * varpool.c: Likewise.
12148 * stmt.c: Likewise.
12149 * tree-ssanames.c: Likewise.
12150 * tree-ssa-threadedge.c: Likewise.
12151 * langhooks-def.h: Likewise.
12152 * tree-ssa-operands.c: Likewise.
12153 * config/alpha/alpha.c: Likewise.
12154 * config/frv/frv.c: Likewise.
12155 * config/s390/s390.c: Likewise.
12156 * config/m32c/m32c.c: Likewise.
12157 * config/m32c/m32c-protos.h: Likewise.
12158 * config/spu/spu.c: Likewise.
12159 * config/sparc/sparc.c: Likewise.
12160 * config/i386/i386.c: Likewise.
12161 * config/sh/sh.c: Likewise.
12162 * config/xtensa/xtensa.c: Likewise.
12163 * config/stormy16/stormy16.c: Likewise.
12164 * config/ia64/ia64.c: Likewise.
12165 * config/rs6000/rs6000.c: Likewise.
12166 * config/pa/pa.c: Likewise.
12167 * config/mips/mips.c: Likewise.
12169 2008-07-28 Simon Baldwin <simonb@google.com>
12171 * c-pragma.c (handle_pragma_message): New function.
12172 (init_pragma): Register handle_pragma_message.
12173 * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
12176 2008-07-27 Victor Kaplansky <victork@il.ibm.com>
12178 PR tree-optimization/35252
12179 * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
12180 REALPART_EXPR to be considered as same load operation.
12182 2008-07-27 Eric Botcazou <ebotcazou@adacore.com>
12184 PR tree-optimization/36830
12185 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
12186 (expressions_equal_p): Return false if only one operand is null.
12188 2008-07-26 Gerald Pfeifer <gerald@pfeifer.com>
12190 * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
12191 version requirements.
12193 2008-07-26 Olivier Hainque <hainque@adacore.com>
12195 * collect2.c (symkind): New enum. Symbol kinds we care about.
12196 (is_ctor_dtor): Return symkind instead of int. Adjust prototype,
12197 code and head comment accordingly.
12198 (scan_prog_file): Use symkind names instead of bare integers.
12200 2008-07-25 Jan Hubicka <jh@suse.cz>
12202 * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
12204 * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
12205 (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
12206 * dojump.c (clear_pending_stack_adjust): Likewise.
12207 * print-tree.c (print_node): Ignore DECL_INLINE.
12208 * tree-inline.c (inlinable_function_p): Likewise.
12210 2008-07-25 Michael Meissner <gnu@the-meissners.org>
12212 * doc/extend.texi (hot attribute): Document that the hot attribute
12213 turns on -O3 for some ports.
12214 (cold attribute): Document that the cold attribute turns on -Os
12217 * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
12218 reflect function specific option support.
12220 * target.h (struct target_option_hooks): Add fields to say whether
12221 the cold attribute implies -Os and the hot attribute implies -O3.
12223 * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
12224 By default, do not turn on -Os for cold functions.
12225 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
12226 not turn on -O3 for hot functions.
12228 * c-common.c (handle_hot_attribute): Use target hook to determine
12229 if hot functions should enable -O3.
12230 (handle_cold_attribute): Use target hook to determine if cold
12231 functions should enable -Os.
12233 * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
12234 (override_options): Move disable scheduling to
12235 optimization_options.
12236 (optimization_options): Disable scheduling here, not
12238 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12239 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12241 * config/ia64/ia64.c (ia64_override_options): Move setting
12242 scheduling flags to ia64_optimization_options.
12243 (ia64_optimization_options): Disable scheduling options here, and
12244 not in ia64_override_options.
12245 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12246 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12248 2008-07-25 H.J. Lu <hongjiu.lu@intel.com>
12251 * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
12253 2008-07-25 Martin Jambor <mjambor@suse.cz>
12255 PR tree-optimization/36926
12256 * ipa-prop.c (ipa_analyze_call_uses): Call
12257 ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
12259 2008-07-25 Joseph Myers <joseph@codesourcery.com>
12261 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
12262 movv2si_internal): Add mem = reg alternative.
12264 2008-07-25 Andreas Tobler <a.tobler@schweiz.org>
12267 * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
12268 DEFAULT_PCC_STRUCT_RETURN to 127.
12270 2008-07-24 Jan Hubicka <jh@suse.cz>
12272 * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
12273 (build_cgraph_edges): Likewise.
12274 * cgraph.c (cgraph_node): Do not update assembler hash.
12275 (cgraph_remove_node): Drop non-unit-at-a-time code.
12276 * tree-pass.h (pass_O0_always_inline): Remove.
12277 * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
12278 * toplev.c (process_options): Flag unit-at-a-time does not imply
12279 no section anchors.
12280 * cgraphunit.c: Update comments.
12281 (decide_is_function_needed): Drop non-unit-at-a-time mode.
12282 (cgraph_assemble_pending_functions): Remove.
12283 (cgraph_reset_node): Drop non-unit-at-a-time code.
12284 (cgraph_finalize_function): Likewise.
12285 (cgraph_analyze_function): Likewise.
12286 (cgraph_finalize_compilation_unit): Likewise.
12287 (cgraph_expand_function): Likewise.
12288 (cgraph_optimize): Likesise.
12289 (save_inline_function_body): Likewise.
12290 * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
12291 * tree-ssa-alias.c (maybe_be_aliased): Likewise.
12292 * ipa-inline.c: Update comments.
12293 (enum inlining_mode): remove INLINE_SPEED.
12294 (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
12295 (cgraph_mark_inline_edge): Likewise.
12296 (try_inline): Likewise.
12297 (cgraph_decide_inlining_incrementally): Likewise.
12298 (cgraph_gate_inlining): Remove.
12299 (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
12300 (cgraph_gate_early_inlining): Likewise.
12301 (gate_inline_passes): Remove.
12302 (pass_inline_parameters, pass_ipa_inline): Remove gates.
12303 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12304 pass_O0_always_inline): Remove.
12305 * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
12306 * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
12307 * opts.c (no_unit_at_a_time_default): Remove.
12308 (decode_options): Remove flag_unit_at_a_time reset and warning.
12309 * opts.h (no_unit_at_a_time_default): Remove.
12310 * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
12311 early in GNU dialect.
12312 (merge_decls): Update comment; drop unit-at-a-time check.
12313 (finish_decl): Likewise.
12314 (grok_declaration): Remove flag_inline_trees code.
12315 (finish_functions): Return on function returning non-void on all
12317 * ipa-tye-escape.c (gate_type_escape_vars): Remove.
12318 * cfgexpand.c (expand_one_static_var): Remove.
12319 (expand_one_var): Remove expand_one_static_var call.
12320 (expand_used_vars_for_block): Remove flag_unit_a_time check.
12321 * c-opts.c (c_common_post_options): Remove flag_inline_trees code
12322 and flag_unit_at_a-time compatibility checks.
12323 * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
12324 * tree-inline.c (flag_inline_trees): Remove.
12325 (inlinable_function_p): Don't check it.
12326 (expand_call_inline): Remove non-unit-at-a-time code.
12327 * tree-inline.h (flag_inline_trees): Remove.
12328 * tree-optimize.c (execute_early_local_optimizations): Remove
12329 unit-at-a-time checks.
12330 (tree_rest_of_compilation): Likewise.
12331 * combine.c (setup_incoming_promotions): Likewise.
12332 * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
12333 * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
12334 * passes.c (pass_inline_parameters): Update comments; remove
12335 O0_alwaysinline pass.
12336 (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
12337 (execute_one_pass): Likewise.
12338 * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
12339 (ix86_function_sseregparm): Likewise.
12340 * arm.c (arm_function_in_section_p): Likewise.
12341 * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
12342 * varpool.c: Update comments.
12343 (decide_is_variable_needed): Remove unit-at-a-time checks.
12344 (varpool_finalize_decl): Likewise.
12346 2008-07-24 Kaz Kojima <kkojima@gcc.gnu.org>
12348 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
12349 to 2 instead of -1.
12350 (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
12352 2008-07-24 Kai Tietz <kai.tietz@onevision.com>
12354 * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
12355 imp symbol extension.
12357 2008-07-23 Ian Lance Taylor <iant@google.com>
12359 * tree-vrp.c (infer_value_range): Ignore asm statements when
12360 looking for memory accesses for -fdelete-null-pointer-checks.
12362 2008-07-24 Ben Elliston <bje@au.ibm.com>
12364 * config/spu/spu-c.c (__vector_keyword): New variable.
12365 (vector_keyword): Likewise.
12366 (spu_categorize_keyword): New function.
12367 (spu_macro_to_expand): Likewise.
12368 (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
12369 compiling an ISO C dialect.
12371 2008-07-24 Ben Elliston <bje@au.ibm.com>
12373 * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
12374 conventional usage.
12376 2008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
12378 * configure: Regenerate.
12379 * configure.ac: Require texinfo 4.7.
12380 * doc/install.texi: Document texinfo 4.7 requirement.
12382 2008-07-23 Martin Jambor <mjambor@suse.cz>
12384 * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
12385 rather than for DECL_SAVED_TREE.
12386 * ipa-prop.c: Include diagnostic.h.
12387 (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
12389 (ipa_detect_param_modifications): Function rewritten from scratch.
12390 (ipa_compute_jump_functions): Changed accesses to modification flags.
12391 (ipa_free_node_params_substructures): Update flags destruction.
12392 (ipa_node_duplication_hook): Update flags duplication.
12393 (ipa_print_all_params_modified): Updated flag access.
12394 * ipa-prop.h (struct ipa_param_flags): New structure.
12395 (struct ipa_node_params): New field modification_analysis_done,
12396 modified_flags changed into param_flags.
12397 (ipa_is_ith_param_modified): Changed to use new flags.
12398 * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
12400 * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
12401 ipa-cp.c and split into two functions.
12402 (ipa_print_node_jump_functions): New function.
12403 (compute_scalar_jump_functions): New function.
12404 (type_like_member_ptr_p): New function.
12405 (compute_pass_through_member_ptrs): New function.
12406 (fill_member_ptr_cst_jump_function): New function.
12407 (determine_cst_member_ptr): New function.
12408 (compute_cst_member_ptr_arguments): New function.
12409 (ipa_compute_jump_functions): Complete rewrite.
12410 * ipa-prop.h (enum jump_func_type): Make explicit that we depend
12411 on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
12412 (struct ipa_member_ptr_cst): New structure.
12413 (union jump_func_value): New field member_cst.
12414 * ipa-cp.c (ipcp_lat_is_insertable): New function.
12415 (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
12416 jump function types.
12417 (ipcp_print_all_lattices): Slight fprintf rearrangement.
12418 (ipcp_print_all_structures): Call ipa_print_all_jump_functions
12419 instead of ipcp_print_all_jump_functions.
12420 (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
12421 only for replacable scalars.
12423 * doc/invoke.texi (Optimize options): Add description of
12424 -findirect-inlining.
12425 * common.opt (flag_indirect_inlining): New flag.
12426 * opts.c (decode_options): Set flag_indirect_inlining when
12429 * ipa-inline.c: Include ipa-prop.h.
12430 (inline_indirect_intraprocedural_analysis): New function.
12431 (inline_generate_summary): Allocate parameter and argument info
12432 structures, call inline_indirect_intraprocedural_analysis on each
12433 node when doing indirect inlining and deallocate indirect inlining
12434 data structures in the end.
12435 * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
12436 (free_all_ipa_structures_after_iinln): New function.
12437 (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
12439 * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
12441 * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
12442 (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
12443 of computing the frequency separately.
12444 (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
12445 of computing the frequency separately.
12446 * ipa-cp.c (ipcp_print_all_structures): Replace a call to
12447 ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
12448 * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
12449 (ipa_get_stmt_member_ptr_load_param): New function.
12450 (ipa_is_ssa_with_stmt_def): New function.
12451 (ipa_note_param_call): New function.
12452 (ipa_analyze_call_uses): New function.
12453 (ipa_analyze_stmt_uses): New function.
12454 (ipa_analyze_params_uses): New function.
12455 (ipa_free_node_params_substructures): Also free the param_calls linked
12457 (ipa_node_duplication_hook): Also duplicate the param_calls
12459 (ipa_print_node_param_flags): New function.
12460 (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
12461 (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
12462 * ipa-prop.h (struct ipa_param_flags): New field called.
12463 (struct ipa_param_call_note): New structure.
12464 (struct ipa_node_params): New fields param_calls and
12465 uses_analysis_done.
12466 (ipa_is_ith_param_called): New function.
12467 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
12468 ipa_analyze_params_uses and dump parameter flags.
12470 * ipa-inline.c (cgraph_decide_recursive_inlining): Call
12471 ipa_propagate_indirect_call_infos if performing indirect inlining,
12472 pass a new parameter new_edges to it.
12473 (add_new_edges_to_heap): New fucntion.
12474 (cgraph_decide_inlining_of_small_functions): New vector
12475 new_indirect_edges for newly found indirect edges , call
12476 ipa_propagate_indirect_call_infos after inlining.
12477 (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
12478 inlining if performing indirect inlining. Call
12479 free_all_ipa_structures_after_iinln when doing so too.
12480 (inline_generate_summary): Do not call
12481 free_all_ipa_structures_after_iinln here.
12482 * ipa-prop.c (update_jump_functions_after_inlining): New function.
12483 (print_edge_addition_message): New function.
12484 (update_call_notes_after_inlining): New function.
12485 (propagate_info_to_inlined_callees): New function.
12486 (ipa_propagate_indirect_call_infos): New function.
12487 * ipa-prop.h: Include cgraph.h
12488 (struct ipa_param_call_note): Fields reordered, new field processed.
12489 * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
12490 flag indirect_call.
12491 * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
12492 rediscovered call statements.
12493 * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
12494 (dump_cgraph_node): Dump also the indirect_call flag.
12495 (cgraph_clone_edge): Copy also the indirect_call flag.
12496 * tree-inline.c (copy_bb): Do not check for fndecls from call
12497 expressions, check for edge availability when moving clones.
12498 (get_indirect_callee_fndecl): New function.
12499 (expand_call_inline): If callee declaration is not apprent from
12500 the statement, try calling get_indirect_callee_fndecl. Do not
12501 issue warnings or call sorry when not inlinings an indirect edge.
12502 * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
12504 * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
12505 bit more frandly to matching.
12506 * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
12507 * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
12508 * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
12510 2008-07-23 Michael Meissner <gnu@the-meissners.org>
12513 * opth-gen.awk: Suppress function specific features when building
12515 * optc-gen.awk: Ditto.
12517 2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12520 * diagnostic.c (pedwarn): Add opt parameter.
12522 * c-tree.h (pedwarn_init): Add opt parameter.
12523 (pedwarn_c90): Likewise.
12524 (pedwarn_c99): Likewise.
12525 * c-errors.c (pedwarn_c99): Likewise.
12526 (pedwarn_c90): Likewise.
12527 * toplev.h (pedwarn): Update declaration.
12528 (pedwarn0): Declare.
12529 * c-lex.c: All calls to pedwarn changed.
12530 * builtins.c: All calls to pedwarn changed.
12531 * toplev.c: All calls to pedwarn changed.
12532 * c-decl.c: All calls to pedwarn changed.
12533 * c-typeck.c: All calls to pedwarn changed.
12534 * c-common.c: All calls to pedwarn changed.
12535 * c-parser.c: All calls to pedwarn changed.
12537 2008-07-23 Michael Meissner <gnu@the-meissners.org>
12538 Karthik Kumar <karthikkumar@gmail.com>
12540 * attribs.c (file scope): Include c-common.h.
12541 (decl_attributes): Add support for #pragma GCC optimize and
12542 #pragma GCC option.
12544 * targhooks.c (default_can_inline_p): New function that is the
12545 default for the TARGET_CAN_INLINE_P target hook.
12547 * targhooks.h (default_can_inline_p): Add declaration.
12549 * tree.c (cl_optimization_node): New static tree for building
12550 OPTIMIZATION_NODE tree.
12551 (cl_target_option_node): New static tree for building
12552 TARGET_OPTION_NODE tree.
12553 (cl_option_hash_table): New hash table for hashing
12554 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12555 (cl_option_hash_hash): New function to provide the hash value for
12556 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12557 (cl_option_hash_eq): New function to provide an equality test for
12558 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12559 (tree_code_size): Add support for OPTIMIZATION_NODE and
12560 TARGET_OPTION_NODE trees.
12561 (tree_code_structure): Add support for OPTIMIZATION_NODE and
12562 TARGET_OPTION_NODE trees.
12563 (build_optimization_node): Build a tree that has all of the
12564 current optimization options.
12565 (build_target_option_node): Build a tree that has the target
12566 options that might be changed on a per function basis.
12568 * tree.h (file scope): Include options.h.
12569 (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
12570 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
12571 (TREE_OPTIMIZATION): Ditto.
12572 (TREE_TARGET_SPECIFIC): Ditto.
12573 (struct tree_function_decl): Add fields for remembering the
12574 current optimization options and target specific options.
12575 (struct tree_optimization_option): New tree variant that remembers
12576 the optimization options.
12577 (struct tree_target_option): New tree variant that remembers the
12578 target specific flags that might change for compiling a particular
12580 (union tree_node): Include tree_optimization_option and
12581 tree_target_option fields.
12582 (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
12583 TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
12584 TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
12585 TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
12586 TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
12587 optimization and target options.
12588 (optimization_default_node): New macro to refer to global_trees
12590 (optimization_current_node): Ditto.
12591 (optimization_cold_node): Ditto.
12592 (optimization_hot_node): Ditto.
12593 (target_option_default_node): Ditto.
12594 (target_option_current_node): Ditto.
12595 (current_option_pragma): Ditto.
12596 (current_optimize_pragma): Ditto.
12598 * target.h (struct gcc_target): Add valid_option_attribute_p,
12599 target_option_save, target_option_restore, target_option_print,
12600 target_option_pragma_parse, and can_inline_p hooks.
12602 * toplev.h (parse_optimize_options): Add declaration.
12603 (fast_math_flags_struct_set_p): Ditto.
12605 * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
12606 adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
12609 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
12610 tree_can_inline_p hook to see if one function can inline another.
12611 (cgraph_decide_inlining): Ditto.
12612 (cgraph_decide_inlining_incrementally): Ditto.
12614 * opts.c (decode_options): Add support for running multiple times
12615 to allow functions with different target or optimization options
12616 than was specified on the command line.
12617 (fast_math_flags_struct_set_p): New function that is similar to
12618 fast_math_flags_set_p, except it uses the values in the
12619 cl_optimization structure instead of global variables.
12621 * optc-gen.awk: Add support for TargetSave to allow a back end to
12622 declare new fields that need to be saved when using function
12623 specific options. Include flags.h and target.h in the options.c
12624 source. Add support for Save to indicate which options can be set
12625 for individual functions. Generate cl_optimize_save,
12626 cl_optimize_restore, cl_optimize_print, cl_target_option_save,
12627 cl_target_option_restore, cl_target_option_print functions to
12628 allow functions to use different optimization or target options.
12630 * opt-functions.awk (var_type_struct): Return the type used for
12631 storing the field in a structure.
12633 * opth-gen.awk: Add support for TargetSave to allow a back end to
12634 declare new fields that need to be saved when using function
12635 specific options. Add support for Save to indicate which options
12636 can be set for individual functions. Only generate one extern for
12637 Mask fields. Generate cl_optimization and cl_target_option
12638 structures to remember optimization and target options.
12640 * treestruct.def (TS_OPTIMIZATION): Add support for garbage
12641 collecting new tree nodes.
12642 (TS_TARGET_OPTION): Ditto.
12644 * c-decl.c (merge_decls): Merge function specific target and
12645 optimization options.
12647 * function.c (invoke_set_current_function_hook): If the function
12648 uses different optimization options, change the global variables
12651 * coretypes.h (struct cl_optimization): Add forward reference.
12652 (struct cl_target_option): Ditto.
12654 * c-pragma.c (option_stack): New static vector to remember the
12655 current #pragma GCC option stack.
12656 (handle_pragma_option): New function to support #pragma GCC option
12657 to change target options.
12658 (optimize_stack): New static vector to remember the current
12659 #pragma GCC optimize stack.
12660 (handle_pragma_optimize): New function to support #pragma GCC
12661 optimize to change optimization options.
12662 (init_pragma): Add support for #pragma GCC optimize and #pragma
12665 * tree.def (OPTIMIZATION_NODE): New tree code for remembering
12666 optimization options.
12667 (TARGET_OPTION_NODE): New tree code for remembering certain target
12670 * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
12671 TARGET_OPTION_NODE trees.
12673 * common.opt (-O): Add Optimization flag.
12675 (-fmath-errno): Ditto.
12676 (-falign-functions): Add UInteger flag to make sure flag gets full
12677 int in cl_optimization structure.
12678 (-falign-jumps): Ditto.
12679 (-falign-labels): Ditto.
12680 (-falign-loops): Ditto.
12681 (-fsched-stalled-insns): Ditto.
12682 (-fsched-stalled-insns-dep): Ditto.
12684 * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
12686 (TARGET_OPTION_SAVE): Ditto.
12687 (TARGET_OPTION_RESTORE): Ditto.
12688 (TARGET_OPTION_PRINT): Ditto.
12689 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
12690 (TARGET_CAN_INLINE_P): Ditto.
12691 (TARGET_INITIALIZER): Add new hooks.
12693 * tree-inline.c (tree_can_inline_p): New function to determine
12694 whether one function can inline another. Check if the functions
12695 use compatible optimization options, and also call the backend
12698 * tree-inline.h (tree_can_inline_p): Add declaration.
12700 * c-common.c (c_common_attribute): Add support for option and
12701 optimize attributes.
12702 (handle_option_attribute): Add support for the option attribute to
12703 allow the user to specify different target options for compiling a
12705 (handle_optimize_attribute): Add support for the optimize
12706 attribute to allow the user to specify different optimization
12707 options for compiling a specific function.
12708 (handle_hot_attribute): Turn on -O3 optimization for this one
12709 function if it isn't the default optimization level.
12710 (handle_cold_attribute): Turn on -Os optimization for this one
12711 function if it insn't the default optimization.
12712 (const_char_p): New const char * typedef.
12713 (optimize_args): New static vector to remember the optimization
12715 (parse_optimize_options): New function to set up the optimization
12716 arguments from either the optimize attribute or #pragma GCC optimize.
12718 * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
12719 (builtin_define_std): Ditto.
12721 * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
12722 Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
12723 (x86_64-*-*): Ditto.
12725 * Makefile.in (TREE_H): Add options.h.
12726 (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
12728 * doc/extend.texi (option attribute): Document new attribute.
12729 (optimize attribute): Ditto.
12730 (hot attribute): Document hot attribute sets -O3.
12731 (cold attribute): Document cold attribute sets -Os.
12732 (#pragma GCC option): Document new pragma.
12733 (#pragma GCC optimize): Ditto.
12735 * doc/options.texi (TargetSave): Document TargetSave syntax.
12736 (UInteger): Document UInteger must be used for certain flags.
12737 (Save): Document Save option to create target specific options
12738 that can be saved/restored on a function specific context.
12740 * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
12741 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
12743 * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
12744 (TARGET_OPTION_SAVE): Ditto.
12745 (TARGET_OPTION_RESTORE): Ditto.
12746 (TARGET_OPTION_PRINT): Ditto.
12747 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
12748 (TARGET_CAN_INLINE_P): Ditto.
12750 * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
12752 (-mfpmath=both): Ditto.
12754 2008-07-23 Michael Meissner <gnu@the-meissners.org>
12755 Karthik Kumar <karthikkumar@gmail.com>
12757 * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
12758 (TARGET_POPCNT): Ditto.
12759 (TARGET_SAHF): Ditto.
12760 (TARGET_AES): Ditto.
12761 (TARGET_PCLMUL): Ditto.
12762 (TARGET_CMPXCHG16B): Ditto.
12763 (TARGET_RECIP): Move switch into target_flags.
12764 (TARGET_FUSED_MADD): Ditto.
12765 (ix86_arch_features): Make an unsigned char type.
12766 (ix86_tune_features): Ditto.
12767 (OVERRIDE_OPTIONS): Add bool argument to override_options call.
12768 (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
12769 (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
12771 * config/i386/i386.opt (arch): New TargetSave field to define
12772 fields that need to be saved for function specific option support.
12775 (branch_cost): Ditto.
12776 (ix86_isa_flags_explicit): Ditto.
12777 (tune_defaulted): Ditto.
12778 (arch_specified): Ditto.
12779 (-m128-long-double): Add Save flag to save option for target
12780 specific option support.
12782 (-maccumulate-outgoing-args): Ditto.
12783 (-malign-double): Ditto.
12784 (-malign-stringops): Ditto.
12785 (-mfancy-math-387): Ditto.
12786 (-mhard-float): Ditto.
12787 (-mieee-fp): Ditto.
12788 (-minline-all-stringops): Ditto.
12789 (-minline-stringops-dynamically): Ditto.
12790 (-mms-bitfields): Ditto.
12791 (-mno-align-stringops): Ditto.
12792 (-mno-fancy-math-387): Ditto.
12793 (-mno-push-args): Ditto.
12794 (-mno-red-zone): Ditto.
12795 (-mpush-args): Ditto.
12796 (-mred-zone): Ditto.
12798 (-msseregparm): Ditto.
12799 (-mstack-arg-probe): Ditto.
12811 (-mno-sse4): Ditto.
12814 (-mrecip): Move flag into target_flags.
12816 (-mno-fused-madd): Ditto.
12817 (-mfused-madd): Ditto.
12818 (-mabm): Move flag into ix86_isa_flags.
12825 * config/i386/i386-c.c: New file for #pragma support.
12826 (ix86_target_macros_internal): New function to #define or #undef
12827 target macros based when the user uses the #pragma GCC option to
12828 change target options.
12829 (ix86_pragma_option_parse): New function to add #pragma GCC option
12831 (ix86_target_macros): Move defining the target macros here from
12832 TARGET_CPU_CPP_BUILTINS in i386.h.
12833 (ix86_register_pragmas): Register the #pragma GCC option hook. If
12834 defined, initialize any subtarget #pragmas.
12836 * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
12837 REGISTER_TARGET_PRAGMAS.
12839 * config/i386/t-i386: New file for x86 dependencies.
12840 (i386.o): Make dependencies mirror the include files used.
12841 (i386-c.o): New file, add dependencies.
12843 * config/i386/i386-protos.h (override_options): Add bool argument.
12844 (ix86_valid_option_attribute_tree): Add declaration.
12845 (ix86_target_macros): Ditto.
12846 (ix86_register_macros): Ditto.
12848 * config/i386/i386.c (ix86_tune_features): Move initialization of
12849 the target masks to initial_ix86_tune_features to allow functions
12850 to have different target options. Make type unsigned char,
12851 instead of unsigned int.
12852 (initial_ix86_tune_features): New static vector to hold processor
12853 masks for the tune variables.
12854 (ix86_arch_features): Move initialization of the target masks to
12855 initial_ix86_arch_features to allow functions to have different
12856 target options. Make type unsigned char, instead of unsigned int.
12857 (initial_ix86_arch_features): New static vector to hold processor
12858 masks for the arch variables.
12859 (enum ix86_function_specific_strings): New enum to describe the
12860 string options used for attribute((option(...))).
12861 (ix86_target_string): New function to return a string that
12862 describes the target options.
12863 (ix86_debug_options): New function to print the current options in
12865 (ix86_function_specific_save): New function hook to save the
12866 function specific global variables in the cl_target_option structure.
12867 (ix86_function_specific_restore): New function hook to restore the
12868 function specific variables from the cl_target_option structure to
12869 the global variables.
12870 (ix86_function_specific_print): New function hook to print the
12871 target specific options in the cl_target_option structure.
12872 (ix86_valid_option_attribute_p): New function hook to validate
12873 attribute((option(...))) arguments.
12874 (ix86_valid_option_attribute_tree): New function that is common
12875 code between attribute((option(...))) and #pragma GCC option
12876 support that parses the options and returns a tree holding the options.
12877 (ix86_valid_option_attribute_inner_p): New helper function for
12878 ix86_valid_option_attribute_tree.
12879 (ix86_can_inline_p): New function hook to decide if one function
12880 can inline another on a target specific basis.
12881 (ix86_set_current_function); New function hook to switch target
12882 options if the user used attribute((option(...))) or #pragma GCC
12884 (ix86_tune_defaulted): Move to static file scope from
12886 (ix86_arch_specified): Ditto.
12887 (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
12889 (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
12890 (OPTION_MASK_ISA_ABM_SET): Ditto.
12891 (OPTION_MASK_ISA_POPCNT_SET): Ditto.
12892 (OPTION_MASK_ISA_CX16_SET): Ditto.
12893 (OPTION_MASK_ISA_SAHF_SET): Ditto.
12894 (OPTION_MASK_ISA_AES_UNSET): Ditto.
12895 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
12896 (OPTION_MASK_ISA_ABM_UNSET): Ditto.
12897 (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
12898 (OPTION_MASK_ISA_CX16_UNSET): Ditto.
12899 (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
12900 (struct ptt): Move to static file scope from override_options.
12901 (processor_target_table): Ditto.
12902 (cpu_names): Ditto.
12903 (ix86_handle_option): Add support for options that are now isa options.
12904 (override_options): Add support for declaring functions that
12905 support different target options than were specified on the
12906 command line. Move struct ptt, processor_target_table, cpu_names,
12907 ix86_tune_defaulted, ix86_arch_specified to static file scope.
12908 Add bool argument. Fix up error messages so the appropriate error
12909 is given for either command line or attribute.
12910 (ix86_previous_fndecl): New static to remember previous function
12911 declaration to see if we need to change target options.
12912 (ix86_builtins_isa): New array to record the ISA of each builtin
12914 (def_builtin): Always create the builtin function, even if the
12915 current ISA doesn't support it.
12916 (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
12917 tests for those builtins.
12918 (ix86_init_builtins): Remove TARGET_MMX test for calling
12919 ix86_init_mmx_sse_builtins.
12920 (ix86_expand_builtin): If the current ISA doesn't support a given
12921 builtin, signal an error.
12922 (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
12923 (TARGET_SET_CURRENT_FUNCTION): Ditto.
12924 (TARGET_OPTION_SAVE): Ditto.
12925 (TARGET_OPTION_RESTORE): Ditto.
12926 (TARGET_OPTION_PRINT): Ditto.
12927 (TARGET_CAN_INLINE_P): Ditto.
12929 2008-07-22 Rafael Ávila de Espíndola <espindola@google.com>
12931 * c-typeck.c (build_external_ref): Don't call assemble_external.
12932 * final.c (output_operand): Call assemble_external.
12934 2008-07-21 DJ Delorie <dj@redhat.com>
12936 * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
12937 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
12939 2008-07-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12941 * config/spu/spu.md ("div<mode>3"): Convert into expander, move
12942 original insn and splitter contents into ...
12943 ("*div<mode>3_fast"): ... this new pattern. Enable only if
12944 flag_unsafe_math_optimizations. Add dummy scratch register.
12945 ("*div<mode>3_adjusted"): New insn and splitter. Enable only if
12946 !flag_unsafe_math_optimizations. Returns number with next
12947 highest magnitude if this is still less or equal to the true
12948 quotient in magnitude.
12950 2008-07-21 Rafael Ávila de Espíndola <espindola@google.com>
12952 * Makefile.in: Replace toplev.h with TOPLEV_H.
12953 * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
12954 * c-lex.c (fe_file_change): Don't set in_system_header.
12955 * c-parser.c (c_token): Remove in_system_header.
12956 (c_lex_one_token): Don't set in_system_header.
12957 (c_parser_set_source_position_from_token): Don't set in_system_header.
12958 * diagnostic.c (diagnostic_report_diagnostic): Use location from
12961 * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
12962 * flags.h (in_system_header): Remove.
12963 * function.c (saved_in_system_header): Remove.
12964 (push_cfun): Don't set in_system_header.
12965 (pop_cfun): Don't set in_system_header.
12966 (push_struct_function): Don't set in_system_header.
12967 * input.h (expanded_location): Add sysp.
12968 (in_system_header_at): New.
12969 (in_system_header): New.
12970 * toplev.c (in_system_header): Remove.
12971 * toplev.h: Include input.h
12973 * tree-cfg.c (execute_warn_function_return): Call warning_at.
12974 * tree-ssa.c (warn_uninit): Call warning_at.
12975 (warn_uninitialized_var): Update calls to warn_uninit.
12976 (warn_uninitialized_phi): Update calls to warn_uninit.
12977 * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
12978 (expand_location): Initialize xloc.sysp.
12979 * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
12980 (tree_decl_with_vis): Remove in_system_header_flag.
12982 2008-07-21 Andreas Krebbel <krebbel1@de.ibm.com>
12985 * recog.c (asm_operand_ok): Change the order of the extra
12986 memory constraint checks.
12988 2008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
12991 * tree-switch-conversion.c (build_one_array): Call
12992 varpool_mark_needed_node and varpool_finalize_decl
12993 instead of assemble_variable.
12995 2008-07-19 Jan Hubicka <jh@suse.cz>
12997 * cgraph.c (cgraph_add_new_function): Do early local passes.
12998 * tree-nrv.c (gate_pass_return_slot): New gate.
12999 (pass_nrv): Add the gate.
13000 * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
13002 (coalesce_ssa_name): Coalesce SSA names.
13003 * tree-ssa-live.c (remove_unused_locals): Be more conservative when
13004 not optimizing so unused user vars remains visible.
13005 * common.opt (flag_tree_ter): Always enable by default.
13006 * tree-ssa-ter.c: Include flags.h
13007 (is_replaceable_p): Check that locations match; when aliasing
13008 is missing be conservative about loads.
13009 * tree-optimize.c (gate_init_datastructures): Remove.
13010 (pass_init_datastructures): New.
13011 * passes.c: Reorder passes so we always go into SSA.
13013 2008-07-19 Jan Hubicka <jh@suse.cz>
13015 * doc/extend.texi (flatten attribute): Remove note about
13017 * doc/invoke.texi (--combine): Likewise.
13018 (-finline-functions-called-once): Update levels when enabled.
13019 (-funit-at-a-time): Document new behaviour.
13020 (-ftoplevel-reorder): Document that it is enabled -O0 and imply
13021 -fno-section-anchors when disabled explicitly.
13022 (inline params): They are not ignored now.
13023 (precompiled headers): Remove unit-at-a-time as being incompatible.
13024 * opts.c (decode_options): Handle unit-at-a-time as alias;
13025 imply -fno-section-anchors when toplevel reorder is disabled
13027 * common.opt (ftoplevel-reorder): Set default value to 2.
13028 (funit-at-a-time): Set default value to 1.
13029 * config/rs6000/rs6000.c (optimization_options): Set section anchors
13032 2008-07-19 Jan Hubicka <jh@suse.cz>
13034 * builtins.c (expand_builtin_int_roundingfn,
13035 expand_builtin_int_roundingfn_2): Do not take subtarget argument;
13038 2008-07-19 Richard Guenther <rguenther@suse.de>
13041 * tree-ssa-sccvn.h (get_constant_value_id): Declare.
13042 * tree-ssa-sccvn.c (get_constant_value_id): New function.
13043 * tree-ssa-pre.c (get_expr_value_id): For newly created
13044 constant value-ids make sure to add the expression to its
13047 2008-07-19 Jakub Jelinek <jakub@redhat.com>
13049 PR middle-end/36877
13050 * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
13051 return value of the builtin is ignored.
13053 2008-07-19 Olivier Hainque <hainque@adacore.com>
13055 * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
13056 bits, a C conformant malloc implementation has to provide.
13057 * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
13059 2008-07-19 Joseph Myers <joseph@codesourcery.com>
13063 * reload.c (find_reloads_subreg_address): Only reload address if
13064 reloaded == 0, not for reloaded != 1.
13067 2008-07-16 Joseph Myers <joseph@codesourcery.com>
13068 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
13069 (m32c_legitimate_address_p): Handle "++rii" addresses created by
13070 m32c_legitimize_reload_address.
13072 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
13073 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
13074 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
13076 2008-07-19 Olivier Hainque <hainque@adacore.com>
13078 * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
13079 argument, saying whether nested array are to be collapsed
13080 into a single array type DIE with multiple subscripts.
13081 (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
13082 issues, centralize the nested array types collapsing control and
13083 disable the transformation for Ada.
13085 2008-07-18 Uros Bizjak <ubizjak@gmail.com>
13088 * config/i386/i386.md (x86_64_shift_adj_1): Rename from
13090 (x86_64_shift_adj_2): New expander.
13091 (x86_64_shift_adj_3): Ditto.
13092 * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
13093 to split TImode operands.
13094 (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
13095 (ix86_split_lshr): Ditto.
13097 2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
13099 * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
13100 and __CHAR32_TYPE__.
13101 * c-typeck.c (digest_init): Support char16_t and char32_t.
13102 (set_nonincremental_init_from_string): Idem.
13104 2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
13106 PR middle-end/36859
13107 * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
13108 PREFERRED_STACK_BOUNDARY.
13109 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
13111 2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
13113 PR middle-end/36858
13114 * function.c (locate_and_pad_parm): Cap boundary earlier.
13116 2008-07-17 Julian Brown <julian@codesourcery.com>
13118 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
13119 no-op for targets which don't use DLLs.
13121 2008-07-17 Martin Jambor <mjambor@suse.cz>
13123 * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
13124 that nodes are relevant by examining the node->analyzed flag.
13125 (ipcp_init_stage): Check which nodes are relevant, assert that the
13126 relevant ones are also required.
13127 (ipcp_propagate_stage): Check on the side arrays are properly
13129 (ipcp_print_all_jump_functions): Make sure not to touch any node
13130 that is not analyzed or an edge that does not have a corresponding
13131 entry in the on-the-side vectors.
13132 (ipcp_function_scale_print): Likewise.
13133 (ipcp_update_callgraph): Check that the node is relevant.
13134 (ipcp_insert_stage): Check that the node is relevant. Check there is
13135 an info for every node and edge.
13136 * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
13137 (ipa_print_all_tree_maps): Likewise and a new variable info.
13138 (ipa_print_all_params_modified): Likewise.
13139 * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
13141 2008-07-17 Roman Zippel <zippel@linux-m68k.org>
13144 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
13146 2008-07-17 Paolo Bonzini <bonzini@gnu.org>
13148 PR rtl-optimization/36753
13149 * fwprop.c (use_killed_between): Don't shortcut
13150 single-definition global registers.
13152 2008-07-16 Jan Hubicka <jh@suse.cz>
13154 * cgraph.h (varpool_empty_needed_queue): Declare.
13155 * cgraphunit.c (output_in_order): Mark all variables as needed;
13157 * varpool.c (varpool_assemble_node): Update debug queue.
13158 (varpool_assemble_pending_decls): Don't do it here.
13159 (varpool_empty_needed_queue): New function.
13161 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13163 * recog.c (peephole2_optimize): Fix formatting.
13165 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13167 * c-pch.c (get_ident): Avoid C++ keywords.
13168 * combine-stack-adj.c (single_set_for_csa): Likewise.
13169 * final.c (asm_insn_count, final_scan_insn, alter_subreg,
13170 output_asm_insn): Likewise.
13171 * reload.c (push_secondary_reload, find_reusable_reload,
13172 push_reload, combine_reloads, find_reloads,
13173 debug_reload_to_stream): Likewise.
13174 * reload.h (struct reload): Likewise.
13175 * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
13176 allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
13177 emit_output_reload_insns): Likewise.
13178 * targhooks.c (default_secondary_reload): Likewise.
13179 * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
13181 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13183 * recog.c (validate_change_1, validate_change,
13184 validate_unshare_change, validate_replace_rtx_1, struct
13185 funny_match, constrain_operands, peephole2_optimize): Avoid C++
13187 * reload.c (push_secondary_reload, secondary_reload_class,
13188 scratch_reload_class, find_valid_class, find_reusable_reload,
13189 push_reload, find_dummy_reload, find_reloads_address_1,
13190 find_reloads_address_part, find_equiv_reg): Likewise.
13191 * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
13192 choose_reload_regs): Likewise.
13193 * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
13195 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
13196 * sched-ebb.c (add_deps_for_risky_insns): Likewise.
13197 * sched-rgn.c (concat_INSN_LIST): Likewise.
13198 * stor-layout.c (mode_for_size, mode_for_size_tree,
13199 smallest_mode_for_size): Likewise.
13201 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13203 * cfg.c (dump_reg_info): Avoid C++ keywords.
13204 * dwarf2asm.c (dw2_force_const_mem,
13205 dw2_asm_output_encoded_addr_rtx): Likewise.
13206 * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
13207 * expmed.c (expand_shift): Likewise.
13208 * global.c (find_reg): Likewise.
13209 * graph.c (draw_edge): Likewise.
13210 * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
13211 * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
13212 widen_clz, widen_bswap, expand_parity, expand_unop,
13213 emit_cmp_and_jump_insn_1): Likewise.
13214 * postreload.c (reload_cse_simplify_operands): Likewise.
13215 * ra.h (add_neighbor): Likewise.
13216 * reg-stack.c (remove_regno_note, change_stack): Likewise.
13217 * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
13218 record_reg_classes, copy_cost, record_address_regs,
13219 invalid_mode_change_p): Likewise.
13220 * regrename.c (regrename_optimize, scan_rtx_reg,
13221 dump_def_use_chain, find_oldest_value_reg,
13222 replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
13224 2008-07-16 David Edelsohn <edelsohn@gnu.org>
13226 * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
13227 MASK_POWERPC64 for power4 in previous commit.
13229 2008-07-16 Olivier Hainque <hainque@adacore.com>
13231 * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
13232 instead of bare conversion to cast const-ness away.
13234 2008-07-16 Anatoly Sokolov <aesok@post.ru>
13236 * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
13237 XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
13238 * config/xtensa/xtensa.c (xtensa_function_value): New function.
13239 (TARGET_FUNCTION_VALUE): Define.
13241 2008-07-16 David Edelsohn <edelsohn@gnu.org>
13243 * config/rs6000/rs6000.c (processor_target_table): Add
13244 MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
13246 2008-07-16 Joseph Myers <joseph@codesourcery.com>
13249 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
13250 (m32c_legitimate_address_p): Handle "++rii" addresses created by
13251 m32c_legitimize_reload_address.
13253 2007-07-16 Rafael Ávila de Espíndola <espindola@google.com>
13255 * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
13256 DECL_IN_SYSTEM_HEADER in sync.
13258 2008-07-15 Daniel Berlin <dberlin@dberlin.org>
13260 * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
13261 * tree-ssa-pre.c (pre_expr_eq): Ditto
13262 (get_constant_for_value_id): Take a type as an argument.
13263 (fully_constant_expression): Pass in type.
13264 (find_or_generate_expression): Short circuit constant case.
13265 (create_expression_by_pieces): Remove special casing of
13267 (do_regular_insertion): Short circuit constant case.
13268 (do_partial_partial_insertion): Ditto.
13270 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
13273 * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
13275 2008-07-15 Bob Wilson <bob.wilson@acm.org>
13277 * config/xtensa/libgcc-xtensa.ver: New file.
13278 * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
13280 2008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13282 * df-problems.c (df_set_note): Avoid C++ keywords.
13283 * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
13284 * dse.c (record_store, remove_useless_values): Likewise.
13285 * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
13286 gen_reg_rtx_offset, operand_subword, change_address_1,
13287 change_address, adjust_address_1, offset_address,
13288 widen_memory_access, emit_copy_of_insn_after): Likewise.
13289 * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
13290 * fwprop.c (should_replace_address, propagate_rtx_1,
13291 propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
13293 * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
13294 gcse_emit_move_after, update_ld_motion_stores): Likewise.
13295 * lcm.c (compute_insert_delete, pre_edge_lcm,
13296 compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
13297 * lower-subreg.c (resolve_reg_notes): Likewise.
13298 * mode-switching.c (optimize_mode_switching): Likewise.
13300 2008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13302 * bt-load.c (add_btr_def, migrate_btr_def,
13303 branch_target_load_optimize): Avoid C++ keywords.
13304 * caller-save.c (insert_restore, insert_save, insert_one_insn):
13306 * combine.c (subst, simplify_set, make_extraction,
13307 make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
13308 * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
13309 fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
13311 2008-07-15 Richard Guenther <rguenther@suse.de>
13313 PR middle-end/36369
13314 * c-common.c (strict_aliasing_warning): Do not warn for
13315 TYPE_REF_CAN_ALIAS_ALL pointers.
13316 (c_common_get_alias_set): may_alias types are not special.
13317 * tree.c (build_pointer_type_for_mode): Look up the may_alias
13318 attribute and set can_ref_all accordingly.
13319 (build_reference_type_for_mode): Likewise.
13320 * doc/extend.texi (may_alias): Clarify.
13322 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
13325 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
13326 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
13328 2008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
13331 * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
13332 gcc_assert, instead call output_operand_lossage.
13334 2008-07-15 Kai Tietz <kai.tietz@onevision.com>
13336 * builtins.c (std_canonical_va_list): Treat structure based
13339 2008-07-15 Ben Elliston <bje@au.ibm.com>
13341 * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
13343 2007-07-14 Rafael Ávila de Espíndola <espindola@google.com>
13345 * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
13348 2008-07-14 Jan Hubicka <jh@suse.cz>
13350 * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
13351 * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
13352 fix predicates and constraints.
13353 * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
13354 * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
13356 2008-07-14 Doug Kwan <dougkwan@google.com>
13358 * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
13359 additional option file arm/eabi.opt.
13360 * config/arm/eabi.h (File): New configuration file for EABI targets.
13361 * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
13362 SUBSUBTARGET_EXTRA_SPECS.
13363 (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
13364 * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
13365 from STARTFILE_SPEC so that it can be referenced in an override.
13366 (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
13367 (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
13368 can be referenced in an override.
13369 (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
13370 * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
13371 so that it can be referenced in an override.
13372 (LINK_SPEC): Use BPABI_LINK_SPEC.
13373 * config/arm/eabi.opt (File): New.
13375 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13377 * Makefile.in (TARGET_DEF_H): Add targhooks.h.
13378 (FIXED_VALUE_H): New variable.
13379 (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
13380 input.h, fixed-value.h.
13381 (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
13382 (BASIC_BLOCK_H): Use $(BITMAP_H).
13383 (FUNCTION_H): Add varray.h.
13384 (IPA_REFERENCE_H): Use $(BITMAP_H).
13385 (CGRAPH_H): Add $(BASIC_BLOCK_H).
13386 (DF_H): Use $(BITMAP_H).
13387 (GGC_H): Add statistics.h.
13388 (INSN_ADDR_H): New.
13389 (INSN_ATTR_H): Use it.
13390 (SYSTEM_H): Add safe-ctype.h, filenames.h.
13392 (SYMTAB_H): Add $(OBSTACK_H).
13393 (CPP_INTERNAL_H): New.
13394 (TREE_DUMP_H): Add tree-pass.h.
13395 (TREE_FLOW_H): Use $(BITMAP_H)
13396 (PRETTY_PRINT_H): Use $(INPUT_H).
13397 (EBITMAP_H): Rename from typo-ed EBIMAP_H.
13400 (many object files): Fix lots of header dependencies throughout.
13402 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13404 * Makefile.in (write_entries_to_file, write_entries_to_file_split):
13406 (s-gtyp-input): Use them to write tmp-gi.list.
13407 (echo_to_gi.list): Remove.
13409 2008-07-14 Richard Guenther <rguenther@suse.de>
13411 * tree-ssa-sccvn.c (pre_info): Remove.
13412 (switch_to_PRE_table): Likewise.
13413 (free_scc_vn): Do not clear SSA_NAME_VALUE. Do not free pre_info.
13414 (set_hashtable_value_ids): Do not create value-ids for the
13416 (run_scc_vn): Remove double test. Remove bogus special-case
13417 in value-number printing.
13418 * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
13419 * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
13421 * tree-flow-inline.h (get_value_handle): Remove.
13422 * tree-flow.h (get_value_handle): Remove.
13424 2008-07-14 Martin Jambor <mjambor@suse.cz>
13426 * tree-switch-conversion.c (gen_inbound_check): Make sure the type
13427 in which we generate arithmetics is not a subrange.
13429 2008-07-14 Martin Jambor <mjambor@suse.cz>
13431 * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
13433 2008-07-14 Richard Guenther <rguenther@suse.de>
13435 * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
13437 2008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
13440 * config/s390/s390.c: (s390_secondary_reload): Add a secondary
13441 reload for symbol refs moved to r0 with -fPIC.
13442 (legitimize_pic_address): Use the target register as temporary
13444 (emit_symbolic_move): Adjust comment.
13445 * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
13448 2008-07-14 Ben Elliston <bje@au.ibm.com>
13450 * c-common.h (C_CPP_HASHNODE): New macro.
13451 * coretypes.h (struct cpp_token): Forward declare.
13452 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
13453 the context-sensitive keyword method.
13454 * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
13455 __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
13456 expand_bool_pixel): New.
13457 (altivec_categorize_keyword): New function.
13458 (init_vector_keywords): New function.
13459 (rs6000_macro_to_expand): Likewise.
13460 (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
13461 compiling an ISO C dialect.
13463 2008-07-13 Daniel Berlin <dberlin@dberlin.org>
13465 * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
13466 (create_expression_by_pieces): Fix typo.
13467 (do_regular_insertion): Use debug counter here too.
13469 2008-07-14 Hans-Peter Nilsson <hp@axis.com>
13472 * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
13473 CONST_OK_FOR_LETTER_P. All port-local users changed.
13474 (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
13475 implement Kp matching power-of-two.
13476 (CONSTRAINT_LEN): Define to match.
13477 * config/cris/cris.md: Replace all use of constraint K with Kc.
13478 ("*btst*): Use Kp for operand 0 of last alternative.
13480 2008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13483 * tree-call-cdce.c (check_target_format): Accept MIPS single, double
13486 2008-07-13 Jan Hubicka <jh@suse.cz>
13488 * tree.c (decl_assembler_name_equal): Expect assembler name of decl
13491 2008-07-13 Richard Guenther <rguenther@suse.de>
13493 PR middle-end/36811
13494 * langhooks.c (lhd_print_error_function): Deal with recursive
13497 2008-07-12 Jan Hubicka <jh@suse.cz>
13499 * cgraph.c (assembler_name_hash): New static var.
13500 (hash_node_by_assembler_name, eq_assembler_name): New.
13501 (cgraph_node_for_asm): Use hashtable.
13502 (cgraph_remove_node): Maintain hashtable.
13503 (change_decl_assembler_name): Sanity check that names are not changing
13504 after aliasing was processed.
13505 * cgraph.h (varpoon_node): Add next GGC marker.
13506 * tree.c (decl_assembler_name_equal): Constify.
13507 (decl_assembler_name_hash): New.
13508 * tree.h (decl_assembler_name_equal): Constify.
13509 (decl_assembler_name_hash): Update.
13511 2008-07-12 David Daney <ddaney@avtrex.com>
13513 * config/mips/driver-native.c (host_detect_local_cpu): Handle
13514 sb1 and r5000 cpus.
13516 2008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13518 * doc/md.texi: Document the MIPS "v" constraint.
13519 * config/mips/mips.h (reg_class): Revert last change.
13520 (REG_CLASS_NAMES): Likewise.
13521 (REG_CLASS_CONTENTS): Likewise.
13522 * config/mips/mips.c (mips_regno_to_class): Likewise.
13523 * config/mips/constraints.md (v): Likewise, but add documentation.
13524 Add a comment to say that this constraint should not be used in
13527 2008-07-11 DJ Delorie <dj@redhat.com>
13529 * config/h8300/h8300.md (length): Fix branch offset limit.
13531 2008-07-11 Anatoly Sokolov <aesok@post.ru>
13533 * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
13534 * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
13535 (avr_hard_regno_scratch_ok): New function.
13536 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
13537 * config/avr/avr.md (all peepholes that request a scratch register):
13538 Remove avr_peep2_scratch_safe use.
13540 2008-07-11 Tom Tromey <tromey@redhat.com>
13541 Ian Lance Taylor <iant@google.com>
13543 * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
13544 (struct c_common_resword): Define.
13545 (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
13546 (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
13547 (c_common_reswords, num_c_common_reswords): Declare.
13548 * c-common.c (c_common_reswords): New global const array.
13549 (num_c_common_reswords): New const int.
13550 * c-parser.c (struct resword, reswords): Don't define.
13551 (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
13552 (c_parse_init): Clarify mask code. Use c_common_reswords rather
13553 than reswords. If warning about C++ keywords, give them a special
13555 (c_lex_one_token): Warn about C++ keywords. Call
13556 objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
13557 (c_parser_external_declaration): Look for RID_xxx rather than
13558 RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
13559 (c_parser_statement_after_labels): Likewise.
13560 (c_parser_objc_class_instance_variables): Likewise.
13561 (c_parser_objc_class_declaration): Likewise.
13562 (c_parser_objc_try_catch_statement): Likewise.
13563 * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
13564 (declspecs_add_type): Likewise.
13566 2008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
13568 * ggc-page.c (alloc_page):
13569 Substituting xmalloc, xcalloc with
13570 XNEWVEC and XCNEWVAR macros which add the
13573 2008-07-11 Richard Guenther <rguenther@suse.de>
13575 PR tree-optimization/36765
13576 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
13577 aliases from HEAP vars to SMTs.
13579 2008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13581 * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
13582 * configure.ac (loose_warn): Move -Wc++-compat from here...
13583 (strict_warn): ...to here.
13584 * configure: Regenerate.
13586 2008-07-10 Joseph Myers <joseph@codesourcery.com>
13588 * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
13589 i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
13590 m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
13591 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
13592 excluding more specific h8300-*-* and sh-*-* targets.
13594 2008-07-10 Daniel Berlin <dberlin@dberlin.org>
13596 * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
13597 (eliminate): Ditto.
13598 (execute_pre): Call loop_optimizer_finalize in early exit.
13600 2008-07-10 Jakub Jelinek <jakub@redhat.com>
13602 PR middle-end/36790
13603 * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
13604 uids in the bitmap, not just VAR_DECL uids.
13606 PR rtl-optimization/36419
13607 * combine-stack-adj.c (adjust_frame_related_expr): New function.
13608 (combine_stack_adjustments_for_block): Call it if needed. Delete
13610 * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
13611 DW_CFA_GNU_args_size if CSA pass merged some adjustments into
13612 prologue sp adjustment.
13614 2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
13617 * opts.c (print_ignored_options): Report postponed diagnostics for
13618 unknown -Wno-* options as warnings, not errors.
13619 (postpone_unknown_option_error): Renamed to...
13620 (postpone_unknown_option_warning): ... this.
13622 2008-07-09 Doug Kwan <dougkwan@google.com>
13625 2008-07-08 Doug Kwan <dougkwan@google.com>
13627 * config/arm/arm.opt (mandroid): New option.
13628 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
13629 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
13631 (CC1PLUS_SPEC): Same.
13633 (STARTFILE_SPEC): Same.
13634 (ENDFILE_SPEC): Same.
13635 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
13638 2008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
13641 * config/mips/mips.h (reg_class): Remove V1_REG.
13642 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
13643 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
13644 instead of V1_REGS.
13645 (mips_get_tp): New function.
13646 (mips_legitimize_tls_address): Use it.
13647 * config/mips/constraints.md (v): Delete.
13648 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
13649 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
13650 After reload, split into a move and ...
13651 (*tls_get_tp_<mode>_split): ...this new instruction.
13653 2008-07-09 David Daney <ddaney@avtrex.com>
13655 * config/mips/driver-native.c: Include coretypes.h and tm.h.
13657 2008-07-09 Jakub Jelinek <jakub@redhat.com>
13659 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
13660 (push_gimplify_context): Don't allocate temp_htab nor c itself here.
13662 (pop_gimplify_context): Check c->temp_htab instead of optimize whether
13663 htab_delete should be called. Don't free c.
13664 (lookup_tmp_var): Create temp_htab lazily.
13665 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
13666 gimplify_body, force_gimple_operand): Adjust push_gimplify_context
13668 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
13669 lower_omp_ordered, lower_omp_critical, lower_omp_for,
13670 create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
13671 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
13672 * tree-sra.c (generate_element_init): Likewise.
13673 * tree-mudflap.c (execute_mudflap_function_ops,
13674 execute_mudflap_function_decls): Likewise.
13675 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
13676 * tree-gimple.h (struct gimplify_ctx): New type.
13677 (push_gimplify_context): Adjust prototype.
13679 2008-07-09 Daniel Berlin <dberlin@dberlin.org>
13681 * tree-ssa-pre.c (phi_translate_1): Update placement of
13682 add_to_value calls.
13684 2008-07-09 Anatoly Sokolov <aesok@post.ru>
13686 * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
13687 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
13688 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
13689 * targhooks.c (default_hard_regno_scratch_ok): New function.
13690 * targhooks.h (default_hard_regno_scratch_ok): Declare function.
13691 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
13692 * recog.c: Include "target.h".
13693 (peep2_find_free_register): Add check for global regs. Add target
13695 * Makefile.in (recog.o): Depend on target.h.
13697 2008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
13699 * config/sh/sh.c (sh_canonical_va_list_type): New.
13700 (TARGET_CANONICAL_VA_LIST_TYPE): Define.
13702 2008-07-09 Raksit Ashok <raksit@google.com>
13704 * doc/invoke.texi (Option Summary): Mention new option
13705 -Wdisallowed-function-list=...
13706 (Warning Options): Document -Wdisallowed-function-list=...
13707 * common.opt (Wdisallowed-function-list=): New flag.
13708 * flags.h (warn_disallowed_functions): External definition of new
13709 boolean warning flag.
13710 (warn_if_disallowed_function_p): Declare new function.
13711 * opts.c (warning_disallowed_functions): New static variable.
13712 (warn_disallowed_functions): New boolean warning flag.
13713 (warn_if_disallowed_function_p): New function.
13714 (add_comma_separated_to_vector): Rename
13715 add_instrument_functions_exclude_list to this.
13716 (common_handle_option): Handle new option. Rename calls to
13717 add_instrument_functions_exclude_list into calls to
13718 add_comma_separated_to_vector.
13719 * c-parser.c (c_parser_postfix_expression_after_primary): New warning
13720 based on flag warn_disallowed_functions.
13722 2008-07-09 Christian Bruel <christian.bruel@st.com>
13724 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
13725 instead of get_attr_length.
13727 2008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13729 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
13731 * genemit.c (gen_insn): Likewise.
13732 * gengtype.c (note_def_vec): Likewise.
13733 * gengtype.h (note_def_vec): Likewise.
13734 * genoutput.c (struct data, output_insn_data, process_template,
13735 gen_expand, gen_split, note_constraint): Likewise.
13736 * genrecog.c (new_decision, add_to_sequence, factor_tests,
13737 make_insn_sequence): Likewise.
13738 * gensupport.c (record_insn_name): Likewise.
13740 2008-07-08 Doug Kwan <dougkwan@google.com>
13742 * config/arm/arm.opt (mandroid): New option.
13743 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
13744 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
13746 (CC1PLUS_SPEC): Same.
13748 (STARTFILE_SPEC): Same.
13749 (ENDFILE_SPEC): Same.
13750 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
13753 2008-07-08 Raksit Ashok <raksit@google.com>
13755 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
13756 (set_storage_via_setmem): Fix expected_align parameter.
13757 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
13758 missing from the list.
13759 * doc/md.texi (movmem): Explicitly state that expected alignment is
13760 to be expressed in bytes.
13761 (setmem): Explicitly state that expected alignment is to be expressed
13764 2008-07-08 Joseph Myers <joseph@codesourcery.com>
13766 * reload.c (find_reloads_subreg_address): Do not require validity
13767 of address in original mode before reloading address.
13769 2008-07-07 Tianwei Sheng <tianweis@google.com>
13771 * df-core.c (df_remove_problem): Adjust the access to avoid out of
13772 bounds array access.
13774 2008-07-08 Jakub Jelinek <jakub@redhat.com>
13776 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
13778 2008-07-05 Daniel Berlin <dberlin@dberlin.org>
13780 Fix PR tree-optimization/23455
13781 Fix PR tree-optimization/35286
13782 Fix PR tree-optimization/35287
13783 * Makefile.in (OBJS-common): Remove tree-vn.o.
13784 (tree-vn.o): Remove.
13785 * dbgcnt.def: Add treepre_insert debug counter.
13786 * gcc/tree-flow.h (add_to_value): Updated for other changes.
13787 (debug_value_expressions): Ditto.
13788 (print_value_expressions): Ditto.
13789 * tree-pretty-print.c (dump_generic_node): Updated for
13790 VALUE_HANDLE removal.
13791 * tree-ssa-dom.c (record_equality): Ditto.
13792 (cprop_operand): Ditto.
13793 (lookup_avail_expr): Ditto.
13794 * tree-ssa-threadedge.c
13795 (record_temporary_equivalences_from_stmts_at_dest): Ditto.
13796 (simplify_control_stmt_condition): Ditto.
13797 * tree.c (tree_code_size): Ditto.
13798 (tree_node_structure): Ditto.
13799 (iterative_hash_expr): Ditto.
13801 * tree.h (VALUE_HANDLE_ID): Ditto.
13802 (VALUE_HANDLE_EXPR_SET): Ditto.
13803 (struct tree_value_handle): Ditto.
13804 (union tree_node): Ditto.
13805 * treestruct.def: Ditto.
13806 * tree-vn.c: Removed.
13807 * tree-ssa-pre.c: Rewritten entirely.
13808 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
13809 (constant_value_ids): Ditto.
13810 (vn_nary_op_t): Moved to header.
13812 (vn_reference_op_t): Ditto
13813 (vn_reference_t): Ditto.
13814 (next_value_id): New variable.
13815 (VN_INFO): Add an assert.
13816 (vn_constant_eq): New function.
13817 (vn_constant_hash): Ditto.
13818 (get_or_alloc_constant_value_id): Ditto.
13819 (value_id_constant_p): Ditto.
13820 (vn_reference_compute_hash): De-staticify.
13821 (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
13822 Disable some code with a FIXME. Remove VALUE_HANDLE use.
13823 (valueize_refs): Update opcode if it changes from ssa name to constant.
13824 (vn_reference_lookup_1): Add new argument.
13825 (vn_reference_lookup): Ditto.
13826 (vn_reference_lookup_pieces): New function.
13827 (vn_reference_insert): Add return type. Modify to deal with value ids.
13828 (vn_reference_insert_pieces): New function.
13829 (vn_nary_op_compute_hash): De-staticify.
13830 (vn_nary_op_eq): Ditto.
13831 (vn_nary_op_lookup_pieces): New function.
13832 (vn_nary_op_lookup): Add new argument.
13833 (vn_nary_op_insert_pieces): New function.
13834 (vn_nary_op_insert): Add return type. Modify to deal with value ids.
13835 (vn_phi_insert): Ditto.
13836 (visit_unary_op): Update for callee changes.
13837 (visit_binary_op): Ditto.
13838 (visit_reference_op_load): Ditto.
13839 (visit_reference_op_store): Ditto.
13840 (init_scc_vn): Init next_value_id, constant_to_value_id and
13841 constant_value_ids.
13842 (free_scc_vn): Free them.
13843 (set_hashtable_value_ids): New function.
13844 (run_scc_vn): Use it.
13845 (get_max_value_id): New function.
13846 (get_next_value_id): Ditto.
13847 (expressions_equal_p): Moved from tree-vn.c
13848 (sort_vuses): Ditto.
13849 (sort_vuses_heap): Ditto.
13850 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
13852 * tree.c (iterative_hash_hashval_t): Made non-static
13853 * tree.h (iterative_hash_hashval_t): Declare it.
13855 2008-07-08 Martin Jambor <mjambor@suse.cz>
13857 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
13858 instead of ipa_create_node_params.
13859 (ipcp_driver): Allocate infos with ipa_check_create_node_params and
13860 ipa_check_create_edge_args, free them with
13861 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
13863 * ipa-prop.c: Include flags.h and tree-inline.h.
13864 (ipa_node_params_vector): New variable.
13865 (ipa_edge_args_vector): New variable.
13866 (edge_removal_hook_holder): New variable.
13867 (node_removal_hook_holder): New variable.
13868 (edge_duplication_hook_holder): New variable.
13869 (node_duplication_hook_holder): New variable.
13870 (ipa_detect_param_modifications): Check for presence of modified flags.
13871 (ipa_compute_jump_functions): Check for presence of jump functions.
13872 (ipa_free_edge_args_substructures): New function.
13873 (ipa_create_node_params): Removed.
13874 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
13875 (ipa_free_node_params_substructures): New function.
13876 (ipa_free_all_node_params): Changed to deallocate the on-the-side
13878 (ipa_edge_removal_hook): New function.
13879 (ipa_node_removal_hook): New function.
13880 (duplicate_array): New function.
13881 (ipa_edge_duplication_hook): New function.
13882 (ipa_node_duplication_hook): New function.
13883 (ipa_register_cgraph_hooks): New function.
13884 (ipa_unregister_cgraph_hooks): New function.
13885 (free_all_ipa_structures_after_ipa_cp): New function.
13887 * ipa-prop.h: Include vec.h.
13888 (ipa_node_params_t): New typedef with vector types for it.
13889 (ipa_edge_args_t): New typedef with vector types for it.
13890 (IPA_NODE_REF): Changed to access an on-the-side vector.
13891 (IPA_EDGE_REF): Changed to access an on-the-side vector.
13892 (ipa_check_create_node_params): New function.
13893 (ipa_check_create_edge_args): New function.
13895 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
13898 2008-07-07 Tom Tromey <tromey@redhat.com>
13900 * configure, config.in: Rebuilt.
13901 * configure.ac: Don't check for scandir or alphasort.
13903 2008-07-07 Joseph Myers <joseph@codesourcery.com>
13905 * config/arm/arm.c (arm_init_neon_builtins): Register built-in
13906 types immediately after creating them.
13908 2008-07-07 Joseph Myers <joseph@codesourcery.com>
13910 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
13912 2008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
13914 * tree-ssa-structalias.c (compute_points_to_sets): Add call to
13915 dump_constraint_graph.
13916 (dump_constraint_edge): New function.
13917 (dump_constraint_graph): New function.
13918 (debug_constraint_graph): New function.
13919 (dump_constraint): Removed useless comparison.
13920 * tree-ssa-structalias.h (dump_constraint_edge): Declare.
13921 (dump_constraint_graph): Declare.
13922 (debug_constraint_graph): Declare.
13923 * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
13925 2008-07-07 Kai Tietz <kai.tietz@onevision.com>
13927 * config/i386/i386.c (is_va_list_char_pointer): New.
13928 (ix86_va_start): Replace compare with ms_va_list_type_node
13929 by is_va_list_char_pointer.
13930 (ix86_gimplify_va_arg): Likewise.
13932 2008-07-07 Martin Jambor <mjambor@suse.cz>
13934 * cgraph.c (cgraph_edge_max_uid): New variable.
13935 (struct cgraph_edge_hook_list): New type.
13936 (struct cgraph_node_hook_list): New type.
13937 (struct cgraph_2edge_hook_list): New type.
13938 (struct cgraph_2node_hook_list): New type.
13939 (first_cgraph_edge_removal_hook): New variable.
13940 (first_cgraph_node_removal_hook): New variable.
13941 (first_cgraph_edge_duplicated_hook): New variable.
13942 (first_cgraph_node_duplicated_hook): New variable.
13943 (cgraph_add_edge_removal_hook): New function.
13944 (cgraph_remove_edge_removal_hook): New function.
13945 (cgraph_call_edge_removal_hooks): New function.
13946 (cgraph_add_node_removal_hook): New function.
13947 (cgraph_remove_node_removal_hook): New function.
13948 (cgraph_call_node_removal_hooks): New function.
13949 (cgraph_add_edge_duplication_hook): New function.
13950 (cgraph_remove_edge_duplication_hook): New function.
13951 (cgraph_call_edge_duplication_hooks): New function.
13952 (cgraph_add_node_duplication_hook): New function.
13953 (cgraph_remove_node_duplication_hook): New function.
13954 (cgraph_call_node_duplication_hooks): New function.
13955 (cgraph_create_edge): Assign to edge uid.
13956 (cgraph_remove_edge): Call edge removal hooks.
13957 (cgraph_node_remove_callees): Call edge removal hooks.
13958 (cgraph_node_remove_callers): Call edge removal hooks.
13959 (cgraph_remove_node): Call node removal hooks.
13960 (cgraph_clone_edge): Call edge duplication hooks.
13961 (cgraph_clone_node): Call node duplication hooks.
13963 * cgraph.h (cgraph_edge): New field uid.
13964 (cgraph_edge_hook): New type.
13965 (cgraph_node_hook): New type.
13966 (cgraph_2edge_hook): New type.
13967 (cgraph_2node_hook): New type.
13969 2008-07-07 Andreas Tobler <a.tobler@schweiz.org>
13971 * config.in: Regenerate.
13973 2008-07-07 Vladimir Prus <vladimir@codesourcery.com>
13975 * gcc.c (print_sysroot): New.
13976 (option_map, display_help, process_command): Handle the
13977 -print-sysroot option.
13978 (main): Print the sysroot if requested.
13979 * doc/invoke.texi (Debugging Options): Document -print-sysroot.
13981 2008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13984 * unwind-pe.h (size_of_encoded_value): add attribute unused.
13986 2008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
13988 * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
13989 (assign_parm_setup_block_p): Also check mode of entry_parm.
13991 2008-07-07 Richard Guenther <rguenther@suse.de>
13993 * tree-ssa-structalias.h (set_used_smts): Remove.
13994 * tree-ssa-structalias.c (used_smts): Likewise.
13995 (set_used_smts): Likewise.
13996 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
13997 call to set_used_smts.
13999 2008-07-07 Richard Guenther <rguenther@suse.de>
14001 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
14002 (new_var_info): Set it to false.
14003 (solution_set_add): Correctly handle pointers outside a var and
14005 (type_safe): Treat variables with is_full_var properly.
14006 (do_sd_constraint): Likewise.
14007 (do_ds_constraint): Likewise.
14008 (process_constraint): Remove zeroing offset for !use_field_sensitive.
14009 (get_constraint_for_ptr_offset): New function.
14010 (get_constraint_for_component_ref): For addresses at least include
14011 the last field of the variable. Handle is_full_vars properly.
14012 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
14013 (handle_ptr_arith): Remove.
14014 (find_func_aliases): Simplify assignment handling.
14015 (create_function_info_for): For parameter and result varinfos set
14017 (create_variable_info_for): Set is_full_var flag whenever we
14018 just created a single varinfo for a decl.
14019 (init_alias_vars): Initialize use_field_sensitive from
14020 max-fields-for-field-sensitive parameter.
14022 2008-07-07 Richard Guenther <rguenther@suse.de>
14024 PR tree-optimization/36713
14025 * tree-flow-inline.h (is_call_used): New function.
14026 * tree-nrv.c (dest_safe_for_nrv_p): Use it.
14027 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
14028 * tree-outof-ssa.c (create_temp): Set call-used flag if required.
14030 2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
14032 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
14034 2008-07-07 Mark Shinwell <shinwell@codesourcery.com>
14036 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
14038 2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
14039 Nathan Sidwell <nathan@codesourcery.com>
14041 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
14042 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
14044 * config/m68k/t-linux: New.
14045 * doc/install.texi: Document m68k-*-linux is now multilibbed by
14048 2008-07-07 Nathan Sidwell <nathan@codesourcery.com>
14050 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
14051 * config/m68k/m68k-devices.def: Remove multilibs that only differ
14054 2008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14056 * gcc.c (execute): Fix -Wc++-compat warning.
14058 2008-07-06 H.J. Lu <hongjiu.lu@intel.com>
14061 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
14062 constant for little endian.
14064 2008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
14066 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
14067 mips_base_mips16 instead of TARGET_MIPS16.
14068 (mips_base_mips16): Declare.
14069 * config/mips/mips.c (mips_base_mips16): Make global.
14070 (was_mips16_p): Remove GTY marker.
14071 (was_mips16_pch_p): New variable.
14072 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
14073 (mips_override_options): Force to non-MIPS16 mode initially.
14074 Do not complain about MIPS16 PIC incompatibilities here.
14075 Only allow -mgpopt if -mexplicit-relocs is in force for
14078 2008-07-06 Andreas Tobler <a.tobler@schweiz.org>
14080 * configure.ac: Check for caddr_t, define to char * if not defined.
14081 * configure: Regenerate.
14082 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
14083 (mmap_gt_pch_use_address): Likewise.
14084 * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
14086 2008-07-06 Richard Guenther <rguenther@suse.de>
14088 * tree-ssa-structalias.c (struct variable_info): Remove has_union.
14089 (new_var_info): Deal with it.
14090 (solution_set_add): Likewise.
14091 (bitpos_of_field): Make signed, fix.
14092 (struct fieldoff): Remove type and decl fields. Make size field
14093 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
14095 (fieldoff_compare): Deal with it.
14096 (push_fields_onto_fieldstack): Remove has_union argument, glob
14097 adjacent non-pointer fields together.
14098 (create_function_info_for): Do not set has_union.
14099 (create_variable_info_for): Simplify.
14101 2008-07-06 Kai Tietz <kai.tietz@onevision.com>
14103 * config.gcc (extra_headers): Add cross-stdarg.h for target
14104 x86_64-*-* and i?86-*-*.
14105 * config/i386/cross-stdarg.h: New.
14106 * builtins.c (std_fn_abi_va_list): New.
14107 (std_canonical_va_list_type): New.
14108 (stabilize_va_list): Replace va_list_type_node use by
14109 mtarget.canonical_va_list_type.
14110 (gimplify_va_arg_expr): Likewise.
14111 (expand_builtin_va_copy): Replace va_list_type_node use by
14112 mtarget.fn_abi_va_list.
14113 * tree-sra.c (is_va_list_type): New helper.
14114 (decl_can_be_decomposed_p): Replace
14115 va_list_type_node use by is_va_list_type.
14116 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
14117 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
14118 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
14119 * config/i386/i386-protos.h (ix86_get_valist_type): New.
14120 (ix86_enum_va_list): New.
14121 * config/i386/i386.c (sysv_va_list_type_node): New.
14122 (ms_va_list_type_node): New.
14123 (ix86_function_type_abi): Remove sorry.
14124 (ix86_build_builtin_va_list_abi): New.
14125 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
14126 for 64-bit targets.
14127 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
14128 (ix86_init_builtins_va_builtins_abi): New.
14129 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
14130 for 64-bit targets.
14131 (ix86_handle_abi_attribute): New.
14132 (attribute_spec): Add sysv_abi and ms_abi.
14133 (ix86_fn_abi_va_list): New.
14134 (ix86_canonical_va_list_type): New.
14135 (ix86_enum_va_list): New.
14136 (TARGET_FN_ABI_VA_LIST): New.
14137 (TARGET_CANONICAL_VA_LIST_TYPE): New.
14138 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
14139 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
14140 (TARGET_CANONICAL_VA_LIST_TYPE): New.
14141 (TARGET_ENUM_VA_LIST): New.
14142 * expr.h (std_fn_abi_va_list): New.
14143 (std_canonical_va_list_type): New.
14144 * target-def.h (TARGET_FN_ABI_VA_LIST): New.
14145 (TARGET_CANONICAL_VA_LIST_TYPE): New.
14146 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
14147 TARGET_CANONICAL_VA_LIST_TYPE.
14148 * target.h (struct gcc_target): Add fn_abi_va_list hook
14149 and canonical_va_list_type hook.
14151 2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
14153 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
14154 integral and pointer types.
14156 2008-07-04 Roger Sayle <roger@eyesopen.com>
14158 * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
14159 the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
14161 2008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
14164 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
14166 2008-07-04 Jakub Jelinek <jakub@redhat.com>
14168 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
14169 build_gimple_modify_stmt.
14170 (build_arrays, gen_inbound_check): Likewise. Force RHS to be
14171 gimple operand. Use fold_build* instead of build*.
14173 2008-07-04 Richard Guenther <rguenther@suse.de>
14175 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
14176 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
14177 properly to compute the reachability set if we do field-sensitive PTA.
14178 * invoke.texi (max-fields-for-field-sensitive): Document default.
14179 * opts.c (decode_options): Set max-fields-for-field-sensitive to
14180 100 for optimize >= 2.
14182 2008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14184 * ggc-zone.c (lookup_page_table_if_allocated,
14185 set_page_table_entry, zone_find_object_size, alloc_small_page,
14186 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
14187 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
14188 -Wc++-compat and/or -Wcast-qual warnings.
14190 2008-07-04 Alan Modra <amodra@bigpond.net.au>
14193 * config/rs6000/rs6000.md (call, call_value): Don't arrange for
14194 pic_offset_table_rtx to be marked as used here.
14195 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
14196 TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
14197 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
14198 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
14199 !TARGET_SECURE_PLT.
14201 2008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14203 * alloc-pool.c (hash_descriptor, eq_descriptor,
14204 alloc_pool_descriptor): Fix -Wc++-compat warnings.
14205 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
14207 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
14208 loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
14209 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
14210 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
14213 2008-07-03 Eric Botcazou <ebotcazou@adacore.com>
14215 * tree-flow.h (loop_only_exit_p): Declare.
14216 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
14217 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
14218 the number of iterations if it is constant. Otherwise, if this is the
14219 only possible exit of the loop, use the conservative estimate on the
14220 number of iterations of the entire loop if available.
14222 2008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
14224 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
14225 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
14226 Add synchronization functions.
14227 * config/sync.c: New file.
14228 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
14229 (LIBGCC_SYNC_CFLAGS): Likewise.
14231 2008-07-03 Uros Bizjak <ubizjak@gmail.com>
14234 * config/i386/i386.md (mode): Add TF to "mode" attribute.
14235 (*pushtf_sse): New insn pattern.
14236 (pushtf splitters): New splitters.
14238 2008-07-03 Michael Meissner <gnu@the-meissners.org>
14240 PR middle-end/35736
14241 * predict.c (build_predict_expr): Use void_type_node for the tree
14242 type, instead of NULL_TREE.
14244 2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
14246 * config/i386/i386.c (contains_aligned_value_p): Return true
14248 (ix86_data_alignment): Align TCmode to 128bits.
14249 (ix86_local_alignment): Likewise.
14251 2008-07-03 Andrew Haley <aph@redhat.com>
14254 * vec.h (VEC_TA): New.
14255 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
14256 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
14257 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
14258 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
14259 (C_COMMON_FIXED_TYPES): Remove first arg.
14260 (C_COMMON_FIXED_MODE_TYPES): Likewise.
14261 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
14262 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
14263 not to use empty macro arguments.
14265 2008-07-02 Joseph Myers <joseph@codesourcery.com>
14267 * config/alpha/vms_tramp.asm, config/arm/crti.asm,
14268 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
14269 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
14270 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
14271 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
14272 config/i386/sol2-gc1.asm, config/ia64/crti.asm,
14273 config/ia64/crtn.asm, config/m68hc11/larith.asm,
14274 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
14275 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
14276 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
14277 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
14278 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
14279 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
14280 config/rs6000/e500crtres64gpr.asm,
14281 config/rs6000/e500crtres64gprctr.asm,
14282 config/rs6000/e500crtrest32gpr.asm,
14283 config/rs6000/e500crtrest64gpr.asm,
14284 config/rs6000/e500crtresx32gpr.asm,
14285 config/rs6000/e500crtresx64gpr.asm,
14286 config/rs6000/e500crtsav32gpr.asm,
14287 config/rs6000/e500crtsav64gpr.asm,
14288 config/rs6000/e500crtsav64gprctr.asm,
14289 config/rs6000/e500crtsavg32gpr.asm,
14290 config/rs6000/e500crtsavg64gpr.asm,
14291 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
14292 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
14293 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
14294 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
14295 config/sparc/sol2-cn.asm: Remove .file directives.
14297 2008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
14299 * resource.c (mark_referenced_resources): Look inside
14300 UNSPEC_VOLATILEs and ASM_INPUTs.
14302 2008-07-02 Ian Lance Taylor <iant@google.com>
14304 * rtlanal.c (add_reg_note): New function.
14305 * rtl.h (add_reg_note): Declare.
14306 * auto-inc-dec.c (attempt_change): Use add_reg_note.
14307 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
14308 * builtins.c (expand_builtin_longjmp): Likewise.
14309 (expand_builtin_nonlocal_goto): Likewise.
14310 * calls.c (emit_call_1, expand_call): Likewise.
14311 * cfgexpand.c (add_reg_br_prob_note): Likewise.
14312 * cfglayout.c (fixup_reorder_chain): Likewise.
14313 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
14314 (commit_one_edge_insertion): Likewise.
14315 * combine.c (move_deaths, distribute_notes): Likewise.
14316 * df-problems.c (df_set_note): Likewise.
14317 * emit-rtl.c (link_cc0_insns, try_split): Likewise.
14318 (set_unique_reg_note): Likewise.
14319 (emit_copy_of_insn_after): Likewise.
14320 * expr.c (expand_expr_real): Likewise.
14321 * gcse.c (add_label_notes): Likewise.
14322 * haifa-sched.c (create_check_block_twin): Likewise.
14323 * jump.c (mark_jump_label_1): Likewise.
14324 * loop-doloop.c (add_test, doloop_modify): Likewise.
14325 * loop-unswitch.c (compare_and_jump_seq): Likewise.
14326 * lower-subreg.c (move_eh_region_note): Likewise.
14327 * optabs.c (emit_libcall_block): Likewise.
14328 * predict.c (predict_insn): Likewise.
14329 (combine_predictions_for_insn): Likewise.
14330 * recog.c (peephole2_optimize): Likewise.
14331 * regmove.c (try_auto_increment): Likewise.
14332 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
14333 * reload.c (find_reloads): Likewise.
14334 * reload1.c (fixup_eh_region_note): Likewise.
14335 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
14336 * reorg.c (delete_prior_computation): Likewise.
14337 (delete_computation, dbr_schedule): Likewise.
14338 * config/pa/pa.c (legitimize_pic_address): Likewise.
14339 * config/sh/sh.c (sh_reorg): Likewise.
14341 2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
14344 * config/libgcc-glibc.ver: Add %exclude.
14345 * config/m32r/libgcc-glibc.ver: Likwise.
14346 * config/s390/libgcc-glibc.ver: Likwise.
14347 * config/sh/libgcc-glibc.ver: Likwise.
14348 * config/sparc/libgcc-sparc-glibc.ver: Likwise.
14350 * config/i386/libgcc-glibc.ver: New.
14352 * config/i386/libgcc-x86_64-glibc.ver: Removed.
14354 2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
14356 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
14357 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
14358 i[34567]86-*-linux*, x86_64-*-linux*. Add
14359 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
14360 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
14361 x86_64-*-linux*. Add i386/t-linux to tmake_file for
14362 i[34567]86-*-linux*, x86_64-*-linux*.
14364 * libgcc-std.ver: Add empty GCC_4.4.0.
14366 * mkmap-symver.awk: Support multiple versions per symbol.
14368 * config/i386/i386.c (ix86_init_builtins): Always define
14369 __builtin_fabsq and __builtin_copysignq with fallbacks.
14370 (ix86_expand_builtin): Emit normal call for __builtin_fabsq
14371 and __builtin_copysignq if SSE2 isn't available.
14373 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
14374 (LIBGCC2_TF_CEXT): Likwise.
14375 (TF_SIZE): Likwise.
14377 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
14379 * config/i386/sfp-machine.h: Moved to libgcc.
14381 * config/i386/sfp-machine.h: New.
14382 * config/i386/t-linux: Likwise.
14384 * config/i386/t-darwin: Remove softfp_wrap_start and
14386 * config/i386/t-darwin64: Likewise.
14388 * config/i386/t-fprules-softfp64: Renamed to ...
14389 * config/i386/t-fprules-softfp: This.
14391 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
14392 and softfp_wrap_end.
14394 2008-07-02 Jason Merrill <jason@redhat.com>
14396 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
14398 * tree.c (ctor_to_list): New fn.
14399 * tree.h: Declare it.
14400 (CONSTRUCTOR_ELT): New macro.
14401 (CONSTRUCTOR_NELTS): New macro.
14403 2008-07-02 Richard Guenther <rguenther@suse.de>
14405 * tree-ssa-structalias.c (struct variable_info): Reorder
14406 to fill padding on 64bit hosts. Make collapsed_to an int.
14407 (get_varinfo_fc): Deal with that.
14408 (new_var_info): Likewise.
14409 (collapse_rest_of_var): Likewise.
14411 2008-07-02 Joshua Sumali <jsumali@redhat.com>
14413 * doc/install.texi (--enable-java-home): Document.
14414 (--enable-aot-compile-rpm): Likewise.
14415 (--with-arch-directory): Likewise.
14416 (--with-os-directory): Likewise.
14417 (--with-origin-name): Likewise.
14418 (--with-arch-suffix): Likewise.
14419 (--with-jvm-root-dir): Likewise.
14420 (--with-jvm-jar-dir): Likewise.
14421 (--with-python-dir): Likewise.
14423 2008-07-02 Richard Guenther <rguenther@suse.de>
14425 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
14426 from decls explicitly. Merge operand checking from tuples.
14428 2008-07-02 Martin Jambor <mjambor@suse.cz>
14430 * tree-switch-conversion.c: Included timevar.h which I forgot before.
14432 2008-07-02 Martin Jambor <mjambor@suse.cz>
14434 * tree-switch-conversion.c: Included timevar.h
14435 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
14437 * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
14439 2008-07-02 Martin Jambor <mjambor@suse.cz>
14441 * tree-switch-conversion.c: Corrected various comments and
14443 (build_constructors): Fixed minor formatting mistakes.
14445 * invoke.texi (Optimize Options): Corrected the
14446 switch-conversion-max-branch-ratio parameter.
14448 2008-07-02 Mark Shinwell <shinwell@codesourcery.com>
14450 * final.c (asm_insn_count): Return zero for an empty asm body.
14452 2008-07-02 Richard Guenther <rguenther@suse.de>
14454 * bitmap.h (bitmap_set_bit): Return bool.
14455 (bitmap_clear_bit): Likewise.
14456 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
14457 write to the bitmap if it would.
14458 (bitmap_clear_bit): Likewise.
14459 * tree-ssa-structalias.c (add_implicit_graph_edge): Use
14460 bitmap_set_bit return value.
14461 (add_pred_graph_edge): Likewise.
14462 (add_graph_edge): Likewise.
14463 (do_sd_constraint): Likewise.
14464 (do_ds_constraint): Likewise.
14466 2008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14468 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
14469 Fix -Wc++-compat and/or -Wcast-qual warnings.
14470 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
14471 gen_regparm_prefix): Likewise.
14472 * vmsdbgout.c (write_modbeg, lookup_filename,
14473 vmsdbgout_source_line, vmsdbgout_init): Likewise.
14475 2008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
14477 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
14478 defaults.h definition apply.
14480 2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
14482 * function.c (assign_parm_remove_parallels): New.
14483 (assign_parm_setup_block_p): Do not return true for non-BLKmode
14485 (assign_parm_setup_block): Do not handle them.
14486 (assign_parm_setup_reg, assign_parm_setup_stack): Call
14487 assign_parm_remove_parallels.
14489 2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
14491 * c-typeck.c (convert_for_assignment): Use
14492 vector_targets_convertible_p.
14493 * c-common.c (vector_targets_convertible_p): New.
14494 * c-common.h (vector_targets_convertible_p): New prototype.
14495 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
14496 opaque_p_V2SI_type_node.
14498 2008-07-01 Steve Ellcey <sje@cup.hp.com>
14500 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
14503 2008-07-01 Uros Bizjak <ubizjak@gmail.com>
14505 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
14506 TFmode constants via two element DImode vector for hosts with
14507 HOST_BITS_PER_WIDE_INT < 64.
14508 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
14509 also for HOST_BITS_PER_WIDE_INT < 64.
14511 2008-07-01 Richard Guenther <rguenther@suse.de>
14513 PR tree-optimization/36666
14514 * tree-ssa-structalias.c (get_constraint_for_1): Declare.
14515 (get_constraint_exp_from_ssa_var): Split into ...
14516 (get_constraint_exp_for_temp): ... this ...
14517 (get_constraint_for_ssa_var): ... and that.
14518 Return constraint expressions for all touched sub-fields
14519 if the results address is not taken.
14520 (process_constraint): Remove assertion that aggregate
14521 assignments do not happen at this place.
14522 (get_constraint_for_component_ref): Add address_p argument.
14523 Return constraint expressions for all touched sub-fields
14524 if the results address is not taken.
14525 (do_deref): Use get_constraint_exp_for_temp.
14526 (get_constraint_for_1): Rename from ...
14527 (get_constraint_for): ... this. Add the old function as wrapper.
14528 (do_structure_copy): Use get_constraint_for_1.
14530 2008-07-01 Martin Jambor <mjambor@suse.cz>
14532 * Makefile.in (tree-switch-conversion.o): Add.
14533 (OBJS-common): Add tree-swtch-conversion.o.
14534 * passes.c (init_optimization_passes): Add pass_convert_switch.
14535 * tree-pass.h: (pass_convert_switch): Add.
14536 * tree-switch-conversion.c: New file.
14537 * gcc.dg/tree-ssa/cswtch.c: New testcase.
14538 * common.opt (ftree-cswtch): New option.
14539 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
14540 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
14541 * opts.c (decode_options): Set flag_tree_switch_conversion when
14542 optimization level is >= 2.
14543 * doc/invoke.texi (Optimize Options): Added description of
14544 -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
14546 2008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14548 * config/darwin-driver.c (darwin_default_min_version): Fix
14549 -Wc++-compat warnings.
14551 2008-06-30 Uros Bizjak <ubizjak@gmail.com>
14553 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
14556 2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
14558 * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
14560 2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
14562 PR rtl-optimization/34744
14563 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
14564 (df_scan_free_internal): Free data structures not
14565 allocated in storage pools.
14566 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
14567 (df_refs_add_to_chains): Use df_scan_free_ref_vec and
14568 df_scan_free_mws_vec.
14569 * dse.c (dse_step6): Free offset_map_p and offset_map_n
14572 2008-06-30 H.J. Lu <hongjiu.lu@intel.com>
14574 * config/i386/i386.c (contains_aligned_value_p): Return true
14576 (ix86_function_arg_boundary): Return its natural boundary
14578 (return_in_memory_32): Don't check TDmode.
14579 (ix86_split_to_parts): Support splitting into 4 parts and
14580 support TFmode for 32bit target.
14581 (ix86_split_long_move): Support splitting into 4 parts.
14582 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
14584 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
14585 (ix86_init_builtins): Here.
14586 (ix86_scalar_mode_supported_p): Always return true for TFmode.
14587 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
14588 'q' and 'w', respectively.
14590 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
14592 (movtf_internal): Likewise.
14593 (<code>tf2): Likewise.
14594 (*absnegtf2_sse): Likewise.
14595 (copysign<mode>3): Likewise.
14596 (copysign<mode>3_const): Likewise.
14597 (copysign<mode>3_var): Likewise.
14598 (define_split UNSPEC_COPYSIGN): Likewise.
14599 * config/i386/sse.md (*nandtf3): Likewise.
14600 (<code>tf3): Likewise.
14601 (*<code>tf3): Likewise.
14603 2008-06-30 Joey Ye <joey.ye@intel.com>
14604 H.J. Lu <hongjiu.lu@intel.com>
14606 * global.c (compute_regsets): Set frame_pointer_needed here.
14607 * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
14609 2008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
14611 * doc/install.texi (specific): Expand Windows build notes.
14613 2008-06-30 Ira Rosen <irar@il.ibm.com>
14615 PR tree-optimization/36648
14616 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
14617 number of prolog iterations by step. Fix the comment.
14619 2008-06-30 Richard Guenther <rguenther@suse.de>
14621 PR middle-end/36671
14622 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
14623 handle calls from ECF_MALLOC functions.
14624 (handle_pure_call): ECF_MALLOC functions do not return
14626 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
14628 2008-06-29 Andreas Schwab <schwab@suse.de>
14630 * config/m68k/m68k.c (print_operand): Always print a float
14632 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
14633 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
14636 * config/rs6000/x-linux64: Remove never used file.
14638 2008-06-29 Richard Guenther <rguenther@suse.de>
14640 * tree-ssa-structalias.h (compute_points_to_sets): Adjust
14642 (struct alias_info): Move ...
14643 * tree-ssa-alias.c: ... here.
14644 (update_alias_info): Declare.
14645 (compute_may_aliases): Call it.
14646 (update_alias_info): New function.
14647 * tree-ssa-structalias.c (update_alias_info): Move ...
14648 * tree-ssa-alias.c (update_alias_info_1): ... here.
14649 * tree-ssa-structalias.c (process_constraint_1): Remove
14650 unused from_call argument. Rename to ...
14651 (process_constraint): ... this. Delete old wrapper.
14652 (make_constraint_to): Adjust callers.
14653 (handle_const_call): Likewise.
14654 (handle_pure_call): Likewise.
14655 (init_base_vars): Likewise.
14656 (handle_lhs_call): Likewise. Remove unnecessary constraint.
14657 (find_func_aliases): We don't need structure copies for
14659 (make_constraint_from_anything): Remove.
14660 (create_variable_info_for): For globals make constraints
14661 from escaped, not from anything.
14662 (compute_points_to_sets): Do not call update_alias_info.
14663 (ipa_pta_execute): Use make_constraint_from.
14665 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14667 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
14668 (bitmap.o-warn, dominance.o-warn): New.
14669 * configure.ac (cxx_compat_warn): Delete.
14670 (loose_warn): Add -Wcast-qual and -Wc++-compat.
14671 * system.h: Remove #pragma diagnostic for -Wcast-qual and
14673 * configure: Regenerate.
14675 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
14678 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14680 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
14681 * df-scan.c (df_notes_rescan): Likewise.
14682 * ggc-page.c (set_page_table_entry): Likewise.
14683 * intl.c (gcc_gettext_width): Likewise.
14684 * varasm.c (get_unnamed_section, get_noswitch_section,
14685 get_section): Likewise.
14687 2008-06-28 Andrew Jenner <andrew@codesourcery.com>
14689 * regrename.c (build_def_use): Don't copy RTX.
14691 2008-06-28 Sandra Loosemore <sandra@codesourcery.com>
14693 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
14694 (Type Attributes): Fix nesting of @table and @subsection. Adjust
14695 punctuation. Use @ref instead of @xref.
14696 (Function Names): Remove stray @display/@end display.
14697 (C++ Attributes): Use @ref instead of @xref.
14698 (Deprecated Features): Fix punctuation around @xref.
14699 (Backwards Compatibility): Likewise.
14700 * doc/rtl.texi (Incdec): Remove stray @table/@end table.
14702 2008-06-28 Joseph Myers <joseph@codesourcery.com>
14704 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
14705 constants for E500 double.
14707 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14709 * doc/rtl.texi (const_vector): Document const_fixed as legitimate
14710 element type of const_vector.
14712 2008-06-28 Uros Bizjak <ubizjak@gmail.com>
14714 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
14715 Remove FLAGS_REG clobber from expander pattern.
14716 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
14717 (anddi3, andsi3, andhi3, andqi3): Ditto.
14718 (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
14719 (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
14720 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
14721 (ashlsi3, ashlhi3, ashlqi3): Ditto.
14722 (ashrsi3, ashrhi3, ashrqi3): Ditto.
14723 (lshrsi3, lshrhi3, lshrqi3): Ditto.
14724 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
14725 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
14727 2008-06-28 Richard Guenther <rguenther@suse.de>
14729 * tree-ssa-structalias.c (callused_id, var_callused,
14730 callused_tree): Add.
14731 (handle_pure_call): New function.
14732 (find_func_aliases): Call it.
14733 (find_what_p_points_to): Handle the call-used set.
14734 (clobber_what_escaped): Likewise.
14735 (compute_call_used_vars): New function.
14736 (init_base_vars): Init the call-used variable.
14737 (do_sd_constraint): Do not propagate the solution from CALLUSED
14738 but use CALLUSED as a placeholder.
14739 (solve_graph): Likewise.
14740 * tree-flow-inline.h (gimple_call_used_vars): New function.
14741 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
14742 (compute_call_used_vars): Declare.
14743 * tree-ssa-alias.c (set_initial_properties): Call
14744 compute_call_used_vars.
14745 (reset_alias_info): Clear call-used variables.
14746 (add_call_clobber_ops): Assert we are not called for const/pure
14747 functions. Remove handling of them.
14748 (add_call_read_ops): Handle pure functions by adding the
14749 call-used set of variables as VUSEs.
14750 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
14751 (delete_tree_ssa): Free it.
14752 * tree-dfa.c (remove_referenced_var): Clear the var from the
14755 2008-06-28 Kai Tietz <kai.tietz@onevision.com>
14757 * tree.c (build_varargs_function_type_list): New.
14758 (build_function_type_list_1): New.
14759 (build_function_type_list): Use build_function_type_list_1.
14760 * tree.h (build_varargs_function_type_list): New.
14762 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14765 * config/spu/spu.c (spu_builtin_splats): Do not generate
14766 invalid CONST_VECTOR expressions.
14767 (spu_expand_vector_init): Likewise.
14769 2008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
14771 * optabs.c (libfunc_decls): New variable.
14772 (libfunc_decl_hash, libfunc_decl_eq): New functions.
14773 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
14774 for the same function twice.
14776 2008-06-27 Uros Bizjak <ubizjak@gmail.com>
14778 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
14779 ix86_expand_binary_operator directly.
14780 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
14782 (*ashrti3_1): Ditto.
14783 (*lshrti3_1): Ditto.
14784 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
14785 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
14786 using only one splitter. Conditionaly execute splitter before or
14787 after peephole2 pass.
14788 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
14789 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
14790 Use only one alternative in asm template.
14791 (x86_64_shld): Compress operand 2 constraints. Use only one alternative
14793 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
14794 "J" operand constraint for operand 2.
14795 (*ashldi3_cconly_rex64): Ditto.
14796 (*ashrdi3_cmp_rex64): Ditto.
14797 (*ashrdi3_cconly_rex64): Ditto.
14798 (*lshrdi3_cmp_rex64): Ditto.
14799 (*lshrdi3_cconly_rex64): Ditto.
14800 * config/i386/predicates.md (const_1_to_63_operand): New predicate.
14801 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
14802 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
14805 2008-06-27 Jakub Jelinek <jakub@redhat.com>
14807 * gimplify.c (omp_is_private): Don't return true if decl is not
14808 already private on #pragma omp for or #pragma omp parallel for.
14811 * tree-cfg.c (struct move_stmt_d): Replace block field with
14812 orig_block and new_block fields.
14813 (move_stmt_r): Only set TREE_BLOCK to p->new_block if
14814 if it used to be NULL, p->orig_block or if p->orig_block is NULL.
14815 (move_block_to_fn): Replace vars_map and new_label_map arguments
14816 with struct move_stmt_d pointer.
14817 (replace_block_vars_by_duplicates): New function.
14818 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
14819 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
14820 all subblocks of ORIG_BLOCK to the new function. Call
14821 replace_block_vars_by_duplicates.
14822 * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
14823 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
14824 BLOCK of the new function. Adjust move_sese_region_to_fn caller.
14825 Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
14826 (expand_omp): Temporarily set input_location to the location of
14827 region's controlling stmt.
14828 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
14829 BIND_EXPR, push ctx->block_vars and gimplification vars into
14830 the BIND_EXPR and its block's BLOCK_VARS instead of directly
14831 into dest function.
14832 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
14833 there are any BLOCK_VARS.
14834 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
14835 OMP_PARALLEL or OMP_TASK stmt.
14836 (lower_omp): Save and restore input_location around the lower_omp_1
14839 2008-06-27 Richard Guenther <rguenther@suse.de>
14841 PR tree-optimization/36400
14842 PR tree-optimization/36373
14843 PR tree-optimization/36344
14844 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
14845 var_nonlocal, nonlocal_tree, nonlocal_id): New globals
14846 (update_alias_info): Remove call clobbering code.
14847 (make_constraint_to): New helper function.
14848 (make_escape_constraint): Likewise.
14849 (handle_rhs_call): Use it on all pointer containing arguments.
14850 Also mark the static chain escaped.
14851 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
14852 instead of ANYTHING.
14853 (make_constraint_from): New helper split out from ...
14854 (make_constraint_from_anything): ... here.
14855 (find_func_aliases): Add constraints for escape sites.
14856 (intra_create_variable_infos): Make constraints from NONLOCAL
14858 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
14860 (clobber_what_p_points_to): Remove.
14861 (clobber_what_escaped): New function.
14862 (init_base_vars): Init NONLOCAL and ESCAPED.
14863 (do_sd_constraint): Do not propagate the solution from ESCAPED
14864 but use ESCAPED as a placeholder.
14865 (solve_graph): Likewise.
14866 * tree-flow.h (clobber_what_p_points_to): Remove.
14867 (clobber_what_escaped): Declare.
14868 * tree-ssa-alias.c (set_initial_properties): Call it.
14869 Remove code clobbering escaped pointers.
14871 2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
14873 * function.c (allocate_struct_function): Only allocate a unique
14874 funcdef_no if the decl is nonzero.
14876 2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
14878 * config/mips/mips-protos.h (mips_split_const_insns): Declare.
14879 * config/mips/mips.c (mips_split_const_insns): New function.
14880 * config/mips/mips.md (move_type): New attribute.
14881 (mode): Move attribute definition earlier in file. Add "TI" and "TF".
14882 (dword_mode): New attribute.
14883 (type): Avoid long line. Map "move_type"s to "type"s,
14884 choosing "multi" for doubleword moves if appropriate.
14885 Swap MTC/MFC comments to match their declaration order.
14886 (extended_mips16): Default to "yes" if "move_type" is "sll0",
14887 "type" is "branch" or "jal" is "direct".
14888 (length): Handle "extended_mips16" first. Make the default
14889 "0" for "ghost" instructions. Set the length from "move_type".
14890 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
14891 of "type", with "sll0" for the register alternative. Remove the
14892 "extended_mips16" attribute.
14893 (zero_extendsidi2, *clear_upper32): Use "move_type" instead
14894 of "type", with "shift_shift" for the register alternative.
14895 Remove the "length" attribute.
14896 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
14897 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
14898 of "type", with "andi" for the register alternative.
14899 (*zero_extendqihi2): Likewise.
14900 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
14901 of "andi" instead of a "type" of "arith".
14902 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
14904 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
14905 (mov_<store>r, *mov<mode>_ra): Likewise.
14906 (extendsidi2): Use "move_type" instead of "type", with "move"
14907 for the register alternative.
14908 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
14909 of "type", with "signext" for the register alternative.
14910 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
14911 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
14912 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
14913 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
14914 (floatdisf2, *branch_equality<mode>_mips16): Likewise.
14915 (unnamed branch insn): Likewise.
14916 (*movdi_gp32_fp64): Fold into...
14917 (*movdi_32bit): ...here.
14918 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
14919 (*movdf_hardfloat): ...this new pattern.
14920 (*movdf_softfloat): Remove redundant FPR alternatives.
14921 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
14922 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
14923 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
14924 the "move" attribute.
14925 (*movdi_32bit): Use "move_type" instead of "type" and remove the
14926 "length" attribute. Use "fpload" and "fpstore" instead of "load"
14927 and "store" for COP loads and stores.
14928 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
14929 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
14930 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
14931 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
14932 (*movtf_mips16, *movv2sf): Likewise.
14933 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
14934 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
14935 (mfhc1<mode>): Use "move_type" instead of "move".
14936 (*low<mode>_mips16): Use "extended_mips16" instead of "length".
14937 (loadgp_blockage): Remove the "length" attribute.
14938 (blockage, set_got_version, update_got_version): Likewise.
14939 (call_internal): Remove the "extended_mips16" attribute.
14940 (call_value_internal, call_value_multiple_internal): Likewise.
14941 * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
14943 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
14944 the "length" attribute.
14946 2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14948 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
14949 -Wcast-qual warnings.
14950 * c-pragma.c (dpm_eq, handle_pragma_push_macro,
14951 handle_pragma_pop_macro): Likewise.
14952 * collect2.c (resolve_lib_name): Likewise.
14953 * config/arc/arc.c (arc_init): Likewise.
14954 * config/arm/arm.c (neon_builtin_compare,
14955 locate_neon_builtin_icode): Likewise.
14956 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
14957 * config/bfin/bfin.c (bfin_init_machine_status,
14958 bfin_optimize_loop): Likewise.
14959 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
14960 * config/cris/cris.c (cris_init_expanders): Likewise.
14961 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
14962 * config/darwin.c (machopic_indirection_eq,
14963 machopic_indirection_name, machopic_output_indirection): Likewise.
14964 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
14965 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
14966 frv_optimize_membar): Likewise.
14967 * config/i386/cygwin.h (mingw_scan,
14968 GCC_DRIVER_HOST_INITIALIZATION): Likewise.
14969 * config/i386/cygwin1.c (mingw_scan): Likewise.
14970 * config/i386/i386.c (machopic_output_stub): Likewise.
14971 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
14972 i386_pe_unique_section): Likewise.
14973 * config/ia64/ia64.c (ia64_init_machine_status,
14974 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
14976 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
14977 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
14978 * config/m68k/m68k.c (m68k_handle_option,
14979 m68k_sched_md_init_global): Likewise.
14980 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
14981 mcore_unique_section): Likewise.
14982 * config/mips/mips.c (mips_block_move_straight,
14983 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
14985 * config/mmix/mmix.c (mmix_init_machine_status,
14986 mmix_encode_section_info): Likewise.
14987 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
14988 * config/rs6000/rs6000.c (rs6000_init_machine_status,
14989 print_operand_address, output_toc, redefine_groups,
14990 rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
14991 * config/s390/s390.c (s390_init_machine_status): Likewise.
14992 * config/score/score.c (score_block_move_straight,
14993 score_block_move_loop_body): Likewise.
14994 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
14995 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
14996 * emit-rtl.c (find_auto_inc): Likewise.
14997 * gcc.c (translate_options, process_command): Likewise.
14998 * reorg.c (dbr_schedule): Likewise.
14999 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
15000 * xcoffout.c (xcoffout_declare_function): Likewise.
15002 2008-06-27 Daniel Berlin <dberlin@dberlin.org>
15004 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
15005 ipa-pta working again.
15007 2008-06-27 David Edelsohn <edelsohn@gnu.org>
15009 * config/rs6000/t-aix52: Append large data option to LDFLAGS for
15012 2008-06-27 Edmar Wienskoski <edmar@freescale.com>
15014 * config.gcc (powerpc*-*-*): Add new core e500mc.
15015 * config/rs6000/e500mc.md: New file.
15016 * config/rs6000/rs6000.c (processor_costs): Add new costs for
15018 (rs6000_override_options): Add e500mc case to
15019 processor_target_table. Altivec and Spe options not allowed
15020 with e500mc. Add isel instruction to e500mc by
15021 default. Initialize rs6000_cost for e500mc.
15022 (rs6000_issue_rate): Set issue rate for e500mc.
15023 * config/rs6000/rs6000.h (processor_type): Add
15024 PROCESSOR_PPCE500MC.
15025 (ASM_CPU_SPEC): Add e500mc.
15026 Set TARGET_ISEL to rs6000_isel.
15027 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
15028 (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
15029 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
15031 * doc/invoke.texi: Add e500mc to list of cpus.
15033 2008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
15036 * c-lex.c (lex_charconst): Initialize unsignedp.
15038 2008-06-27 Olivier Hainque <hainque@adacore.com>
15040 * gimplify.c (gimplify_modify_expr_to_memset): Assert our
15041 documented assumptions.
15043 2008-06-26 H.J. Lu <hongjiu.lu@intel.com>
15045 * dwarf2out.c: Remove trailing white spaces. Break long line
15048 2008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
15050 * libfuncs.h (LTI_synchronize): New libfunc_index.
15051 (synchronize_libfunc): Declare.
15052 * builtins.c (expand_builtin_synchronize): Consider using
15053 synchronize_libfunc before falling back on an asm blockage.
15054 * config/mips/mips.c: Include libfuncs.h
15055 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
15057 2008-06-26 Nathan Froyd <froydnj@codesourcery.com>
15059 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
15060 parameter. Copy stack_reg to r11 where appropriate.
15061 (no_global_regs_above): Add gpr parameter.
15062 (rs6000_stack_info): Only add padding for SPE save area if we
15063 are saving SPE GPRs and CR.
15064 (saveres_routine_syms): New variable.
15065 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
15067 (rs6000_savres_routine_sym): New function.
15068 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
15070 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
15071 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
15072 Tweak FPR out-of-line saving.
15073 (rs6000_make_savres_rtx): New function.
15074 (rs6000_use_multiple_p): New function.
15075 (rs6000_savres_strategy): New function.
15076 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
15077 out-of-line if appropriate.
15078 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
15079 if we are optimizing for size.
15080 (GP_SAVE_INLINE): Define.
15081 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
15082 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
15083 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
15084 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
15085 (*save_fpregs_<mode>): Add use of r11.
15086 (*restore_gpregs_<mode>): New insn.
15087 (*return_and_restore_gpregs_<mode>): New insn.
15088 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
15090 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
15091 (*restore_gpregs_spe): New insn.
15092 (*return_and_restore_gpregs_spe): New insn.
15093 * config/rs6000/predicates.md (save_world_operation): Fix check.
15095 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
15097 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
15098 this point, so assert that.
15100 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
15102 * cfganal.c: Include vec.h and vecprim.h.
15103 (compute_idf): Import from...
15104 * tree-into-ssa (compute_idf): ...here.
15105 * basic-block.h (compute_idf): Export.
15107 2008-06-26 Joseph Myers <joseph@codesourcery.com>
15109 * c-decl.c (merge_decls): Use !current_function_decl to check for
15110 extern declaration of C99 inline function being at file scope.
15112 2008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
15114 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
15116 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15118 * alias.c (record_alias_subset, init_alias_analysis): Fix
15119 -Wc++-compat and/or -Wcast-qual warnings.
15120 * attribs.c (lookup_attribute_spec): Likewise.
15121 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
15122 copy_bb, connect_traces,
15123 find_rarely_executed_basic_blocks_and_cr): Likewise.
15124 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
15125 note_btr_set, migrate_btr_defs): Likewise.
15126 * builtins.c (result_vector, expand_builtin_memcpy,
15127 expand_builtin_mempcpy_args, expand_builtin_strncpy,
15128 builtin_memset_read_str, expand_builtin_printf,
15129 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
15131 * caller-save.c (mark_set_regs): Likewise.
15132 * calls.c (expand_call, emit_library_call_value_1): Likewise.
15133 * cgraph.c (cgraph_edge): Likewise.
15134 * combine.c (likely_spilled_retval_1): Likewise.
15135 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
15136 htab_counts_entry_del, get_coverage_counts): Likewise.
15137 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
15138 new_cselib_val): Likewise.
15139 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
15140 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
15142 * df-core.c (df_compact_blocks): Likewise.
15143 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
15144 * df-scan.c (df_grow_reg_info, df_ref_create,
15145 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
15146 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
15147 df_record_entry_block_defs, df_record_exit_block_uses,
15148 df_bb_verify): Likewise.
15149 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
15150 DF_REF_EXTRACT_MODE_CONST): New.
15151 * dominance.c (get_immediate_dominator, get_dominated_by,
15152 nearest_common_dominator, root_of_dom_tree,
15153 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
15154 -Wc++-compat and/or -Wcast-qual warnings.
15155 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
15156 record_store, replace_read, check_mem_read_rtx, scan_insn,
15157 dse_step1, dse_record_singleton_alias_set): Likewise.
15158 * dwarf2asm.c (dw2_force_const_mem): Likewise.
15160 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15162 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
15163 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
15164 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
15165 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
15166 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
15167 add_ranges_num, add_ranges_by_labels, file_info_cmp,
15168 file_name_acquire, output_file_names, add_const_value_attribute,
15169 premark_used_types_helper, file_table_eq, file_table_hash,
15170 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
15171 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
15172 -Wcast-qual warnings.
15173 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
15174 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
15175 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
15176 gen_reg_rtx, start_sequence, init_emit): Likewise.
15177 * et-forest.c (et_new_occ, et_new_tree): Likewise.
15178 * except.c (init_eh_for_function, gen_eh_region,
15179 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
15180 arh_to_landing_pad, arh_to_label, add_action_record,
15181 add_call_site, switch_to_exception_section): Likewise.
15182 * expmed.c (synth_mult): Likewise.
15183 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
15184 store_expr): Likewise.
15185 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
15187 * function.c (assign_stack_temp_for_type,
15188 allocate_struct_function, match_asm_constraints_1): Likewise.
15189 * gcov-io.c (gcov_allocate): Likewise.
15190 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
15191 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
15192 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
15193 record_one_set, insert_expr_in_table, insert_set_in_table,
15194 dump_hash_table, compute_hash_table_work, alloc_hash_table,
15195 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
15196 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
15197 -Wcast-qual warnings.
15199 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15201 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
15202 -Wcast-qual warnings.
15203 * gcc.c (process_command): Likewise.
15204 * genattrtab.c (oballoc): Use XOBNEW.
15205 (oballocvec): Define.
15206 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
15207 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
15208 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
15209 -Wc++-compat and/or -Wcast-qual warnings.
15210 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
15211 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
15212 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
15213 gen_presence_absence_set, gen_automaton, gen_regexp_el,
15214 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
15215 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
15216 add_excls, process_presence_absence_names,
15217 process_presence_absence_patterns, add_presence_absence,
15218 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
15219 get_free_state, add_arc, get_free_automata_list_el,
15220 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
15221 transform_3, cache_presence, create_ainsns, create_automata,
15222 create_state_ainsn_table, dfa_insn_code_enlarge,
15223 output_trans_func, output_min_issue_delay_func,
15224 output_dead_lock_func, output_reset_func,
15225 output_get_cpu_unit_code_func, output_dfa_start_func,
15226 expand_automata): Likewise.
15227 * genextract.c (gen_insn): Likewise.
15228 * gengtype-lex.l: Likewise.
15229 * gengtype.c (read_input_list, adjust_field_type,
15230 process_gc_options): Likewise.
15231 * genoutput.c (note_constraint): Likewise.
15232 * genpreds.c (mangle, add_constraint): Likewise.
15233 * genrecog.c (process_define_predicate, new_decision,
15234 add_to_sequence): Likewise.
15235 * gensupport.c (record_insn_name): Likewise.
15237 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15239 * config/i386/driver-i386.c (detect_caches_amd,
15240 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
15241 and/or -Wcast-qual warnings.
15242 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
15243 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
15244 gt_pch_save): Likewise.
15245 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
15246 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
15247 * global.c (compute_regsets): Likewise.
15248 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
15249 finish_graph_dump_file): Likewise.
15250 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
15251 unlink_bb_notes): Likewise.
15252 * integrate.c (get_hard_reg_initial_val): Likewise.
15253 * ipa-prop.c (ipa_push_func_to_list): Likewise.
15254 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
15255 * local-alloc.c (update_equiv_regs): Likewise.
15256 * loop-invariant.c (check_invariant_table_size,
15257 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
15259 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
15260 altered_reg_used, mark_altered): Likewise.
15261 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
15262 insert_var_expansion_initialization,
15263 combine_var_copies_in_loop_exit, apply_opt_in_copies,
15264 release_var_copies): Likewise.
15265 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
15266 analyze_matrix_decl, add_allocation_site, analyze_transpose,
15267 analyze_accesses_for_phi_node, check_var_notmodified_p,
15268 check_allocation_function, find_sites_in_func,
15269 record_all_accesses_in_func, transform_access_sites,
15270 transform_allocation_sites): Likewise.
15271 * omp-low.c (new_omp_region, create_omp_child_function_name,
15272 check_omp_nesting_restrictions, check_combined_parallel,
15273 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
15274 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
15275 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
15276 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
15278 * opts-common.c (prune_options): Likewise.
15279 * opts.c (add_input_filename, print_filtered_help,
15280 get_option_state): Likewise.
15281 * params.c (add_params): Likewise.
15282 * passes.c (set_pass_for_id, next_pass_1,
15283 do_per_function_toporder, pass_fini_dump_file): Likewise.
15284 * postreload.c (reload_cse_simplify_operands): Likewise.
15285 * predict.c (tree_predicted_by_p, tree_predict_edge,
15286 clear_bb_predictions, combine_predictions_for_bb): Likewise.
15288 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15290 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
15292 * recog.c (check_asm_operands, validate_change_1): Likewise.
15293 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
15294 subst_asm_stack_regs): Likewise.
15295 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
15296 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
15297 * regmove.c (reg_is_remote_constant_p): Likewise.
15298 * regrename.c (regrename_optimize, scan_rtx_reg,
15299 kill_clobbered_value, kill_set_value, kill_autoinc_value):
15301 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
15302 regstat_compute_calls_crossed): Likewise.
15303 * reload1.c (init_reload, new_insn_chain,
15304 has_nonexceptional_receiver, reload, copy_reloads,
15305 calculate_needs_all_insns, init_elim_table): Likewise.
15306 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
15307 * rtl.c (shallow_copy_rtx_stat): Likewise.
15308 * rtlanal.c (parms_set): Likewise.
15309 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
15310 sbitmap_resize, sbitmap_vector_alloc): Likewise.
15311 * sched-ebb.c (earliest_block_with_similiar_load,
15312 add_deps_for_risky_insns): Likewise.
15313 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
15314 schedule_region): Likewise.
15315 * see.c (eq_descriptor_pre_extension,
15316 hash_descriptor_pre_extension, hash_del_pre_extension,
15317 eq_descriptor_properties, hash_descriptor_properties,
15318 hash_del_properties, see_seek_pre_extension_expr,
15319 see_initialize_data_structures, see_print_register_properties,
15320 see_print_pre_extension_expr, see_delete_merged_def_extension,
15321 see_delete_unmerged_def_extension, see_emit_use_extension,
15322 see_pre_delete_extension, see_map_extension, see_commit_changes,
15323 see_analyze_merged_def_local_prop,
15324 see_analyze_merged_def_local_prop,
15325 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
15326 see_set_prop_merged_def, see_set_prop_unmerged_def,
15327 see_set_prop_unmerged_use, see_print_one_extension,
15328 see_merge_one_use_extension, see_merge_one_def_extension,
15329 see_store_reference_and_extension, see_update_uses_relevancy,
15330 see_update_defs_relevancy): Likewise.
15331 * statistics.c (hash_statistics_hash, hash_statistics_eq,
15332 hash_statistics_free, curr_statistics_hash): Likewise.
15333 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
15334 expand_asm_operands, expand_return, case_bit_test_cmp,
15335 expand_case): Likewise.
15336 * stor-layout.c (start_record_layout): Likewise.
15337 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
15338 gt_pch_save_stringpool): Likewise.
15339 * tree-data-ref.c (hash_stmt_vertex_info,
15340 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
15341 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
15343 2008-06-25 Uros Bizjak <ubizjak@gmail.com>
15346 * config/i386/i386.md : Change constraints of HImode and QImode
15347 immediate operands from "i" to "n". Change SImode "ni" constraint to
15348 "i" and SImode "rmi" constraint to "g". Remove all constraints
15349 from const0_operand and const1_operand predicated operands.
15350 (i): Change QImode and HImode attribute from "i" to "n".
15351 (*subqi_2): Change HImode operands to QImode.
15354 2008-06-25 Olivier Hainque <hainque@adacore.com>
15356 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
15359 2008-06-25 Richard Guenther <rguenther@suse.de>
15361 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
15362 not overflow the result type.
15364 2008-06-25 Richard Guenther <rguenther@suse.de>
15366 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
15367 (vn_lookup): Likewise.
15369 2008-06-25 Richard Guenther <rguenther@suse.de>
15371 PR tree-optimization/35518
15372 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
15373 * tree-sra.c (instantiate_element): Use fold_build3 to build
15375 (try_instantiate_multiple_fields): Likewise.
15377 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
15379 * config/rs6000/rs6000.md: Change all string instruction's clobber to
15382 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
15384 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
15385 use_backchain_to_restore_sp to true
15386 if the offset of the link register save area would go over the 32k - 1
15387 offset limit of the load
15390 2008-06-25 Hans-Peter Nilsson <hp@axis.com>
15392 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
15393 anchor for the type-punning blurb. Cross-reference "Structures
15394 unions enumerations and bit-fields implementation". Provide a
15395 cast-through-pointer example. Make final sentence self-contained.
15396 * doc/implement-c.texi (Structures unions enumerations and
15397 bit-fields implementation): Cross-reference the type-punning blurb
15398 in the -fstrict-aliasing documentation.
15400 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
15402 PR middle-end/36594
15403 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
15404 the memory instead of the memory itself for the save area.
15406 2008-06-24 Olivier Hainque <hainque@adacore.com>
15407 Nicolas Roche <roche@adacore.com>
15409 * gengtype.c (srcdir_len): size_t instead of int.
15410 (get_file_realbasename): New function. For F a filename, the real
15411 basename of F, with all the path components stripped.
15412 (get_file_srcdir_relative_path): New function. For F a filename, the
15413 relative path to F from $(srcdir).
15414 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
15415 get_file_realbasename. Adjust the head comment.
15416 (get_prefix_langdir_index): New function. For F a filename, return the
15417 lang_dir_names[] relative index of the language directory that is
15419 (get_file_langdir): For F a filename, return the name of the language
15420 directory where F is located.
15421 (get_file_gtfilename): New function. The gt- output file name for an
15423 (get_output_file_with_visibility): Replace in-line computations with
15424 uses of get_file_gtfilename and get_prefix_langdir_index.
15425 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
15427 2008-06-24 Jakub Jelinek <jakub@redhat.com>
15429 PR tree-optimization/36504
15430 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
15431 references without base address.
15433 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
15435 PR middle-end/36584
15436 * calls.c (expand_call): Increase alignment for recursive functions.
15438 2008-06-23 Anatoly Sokolov <aesok@post.ru>
15440 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
15441 (TARGET_FUNCTION_VALUE): New define.
15442 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
15443 * config/avr/avr.h (FUNCTION_VALUE): Remove.
15445 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
15447 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
15448 (fmod<mode>3): Ditto.
15449 (remainderxf3): Ditto.
15450 (remainder<mode>3): Ditto.
15452 2008-06-23 Jakub Jelinek <jakub@redhat.com>
15455 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
15456 REG is a hard register.
15458 PR tree-optimization/36508
15459 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
15460 499, don't check it at all in release compilers.
15462 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
15464 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
15465 together with SSE_TARGET_MATH to disable insn pattern.
15466 (*fop_<MODEF:mode>_2_i387): Ditto.
15467 (*fop_<MODEF:mode>_3_i387): Ditto.
15469 2008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
15471 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
15473 2008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
15475 PR middle-end/34906
15476 * gimplify.c (gimplify_asm_expr): Check the return code of
15477 parse_output_constraint call, set function return and is_inout
15478 value if it failed.
15480 2008-06-22 Ian Lance Taylor <iant@google.com>
15482 * c-lex.c (narrowest_unsigned_type): Change itk to int.
15483 (narrowest_signed_type): Likewise.
15484 * c-typeck.c (c_common_type): Change local variable mclass to enum
15486 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
15487 tcc_comparison, not the tree code itself.
15488 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
15489 (c_expand_expr): Cast modifier to enum expand_modifier.
15490 * c-common.h (C_RID_CODE): Add casts.
15491 (C_SET_RID_CODE): Define.
15492 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
15493 (c_lex_one_token): Add cast to avoid warning.
15494 (c_parser_objc_type_name): Rename local typename to type_name.
15495 (check_no_duplicate_clause): Change code parameter to enum
15497 (c_parser_omp_var_list_parens): Change kind parameter to enum
15499 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
15500 c_parser_omp_list_var_parens.
15501 (c_parser_omp_threadprivate): Likewise.
15502 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
15503 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
15504 * c-format.c (NO_FMT): Define.
15505 (printf_length_specs): Use NO_FMT.
15506 (asm_fprintf_length_specs): Likewise.
15507 (gcc_diag_length_specs): Likewise.
15508 (scanf_length_specs): Likewise.
15509 (strfmon_length_specs): Likewise.
15510 (gcc_gfc_length_specs): Likewise.
15511 (printf_flag_specs): Change 0 to STD_C89.
15512 (asm_fprintf_flag_specs): Likewise.
15513 (gcc_diag_flag_specs): Likewise.
15514 (gcc_cxxdiag_flag_specs): Likewise.
15515 (scanf_flag_specs): Likewise.
15516 (strftime_flag_specs): Likewise.
15517 (strfmon_flag_specs): Likewise.
15518 (print_char_table): Likewise.
15519 (asm_fprintf_char_table): Likewise.
15520 (gcc_diag_char_table): Likewise.
15521 (gcc_tdiag_char_table): Likewise.
15522 (gcc_cdiag_char_table): Likewise.
15523 (gcc_cxxdiag_char_table): Likewise.
15524 (gcc_gfc_char_table): Likewise.
15525 (scan_char_table): Likewise.
15526 (time_char_table): Likewis.
15527 (monetary_char_table): Likewise.
15528 * c-format.h (BADLEN): Likewise.
15530 2008-06-21 Ian Lance Taylor <iant@google.com>
15532 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
15533 Define END_OF_BASE_TREE_CODES around inclusion.
15534 * tree.c (tree_code_type): New global array.
15535 (tree_code_length, tree_code_name): Likewise.
15536 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
15537 $(lang_tree_files).
15538 (all-tree.def, s-alltree): New targets.
15539 (gencheck.h, s-gencheck): Remove.
15540 (tree.o): Depend upon all-tree.def.
15541 (build/gencheck.o): Remove gencheck.h dependency.
15542 (mostlyclean): Don't remove gencheck.h.
15543 * c-common.h (enum c_tree_code): Remove.
15544 * c-lang.c (tree_code_type): Remove.
15545 (tree_code_length, tree_code_name): Remove.
15546 * gencheck.c (tree_codes): Include all-tree.def, rather than
15547 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
15549 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
15551 * cp/cp-tree.h (enum cplus_tree_code): Remove.
15552 (operator_name_info): Size to MAX_TREE_CODES.
15553 (assignment_operator_name_info): Likewise.
15554 * cp/cp-lang.c (tree_code_type): Remove.
15555 (tree_code_length, tree_code_name): Remove.
15556 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
15557 (assignment_operator_name_info): Likewise.
15558 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
15560 * cp/mangle.c (write_expression): Likewise.
15561 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
15562 * fortran/f95-lang.c (tree_code_type): Remove.
15563 (tree_code_length, tree_code_name): Remove.
15564 * java/java-tree.h (enum java_tree_code): Remove.
15565 * java/lang.c (tree_code_type): Remove.
15566 (tree_code_length, tree_code_name): Remove.
15567 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
15568 * objc/objc-act.h (enum objc_tree_code): Remove.
15569 * objc/objc-lang.c (tree_code_type): Remove.
15570 (tree_code_length, tree_code_name): Remove.
15571 * objcp/objcp-lang.c (tree_code_type): Remove.
15572 (tree_code_length, tree_code_name): Remove.
15573 * ada/ada-tree.h (enum gnat_tree_code): Remove.
15574 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
15575 * ada/misc.c (tree_code_type): Remove.
15576 (tree_code_length, tree_code_name): Remove.
15578 2008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
15580 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
15581 the grand_bitmap_obstack.
15583 2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15585 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
15586 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
15587 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
15588 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
15589 move_stmt_r, new_label_mapper): Likewise.
15590 * tree-complex.c (cvc_lookup): Likewise.
15591 * tree-dfa.c (create_function_ann): Likewise.
15592 * tree-dump.c (dump_register): Likewise.
15593 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
15594 find_phi_replacement_condition): Likewise.
15595 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
15596 tree_function_versioning): Likewise.
15597 * tree-into-ssa.c (cmp_dfsnum): Likewise.
15598 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
15599 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
15600 get_nonlocal_debug_decl, convert_nonlocal_reference,
15601 convert_nonlocal_omp_clauses, get_local_debug_decl,
15602 convert_local_reference, convert_local_omp_clauses,
15603 convert_nl_goto_reference, convert_nl_goto_receiver,
15604 convert_tramp_reference, convert_call_expr): Likewise.
15605 * tree-outof-ssa.c (contains_tree_r): Likewise.
15606 * tree-parloops.c (reduction_phi, initialize_reductions,
15607 eliminate_local_variables_1, add_field_for_reduction,
15608 add_field_for_name, create_phi_for_local_result,
15609 create_call_for_reduction_1, create_loads_for_reductions,
15610 create_stores_for_reduction, create_loads_and_stores_for_name):
15612 * tree-phinodes.c (allocate_phi_node): Likewise.
15613 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
15614 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
15615 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
15616 * tree-ssa-coalesce.c (compare_pairs): Likewise.
15617 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
15618 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
15619 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
15620 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
15621 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
15622 vn_nary_op_insert): Likewise.
15623 * tree-ssa.c (redirect_edge_var_map_add,
15624 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
15625 * tree-vectorizer.c (vectorize_loops): Likewise.
15626 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
15627 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
15628 tree_cons_stat, build1_stat, build_variant_type_copy,
15629 decl_init_priority_lookup, decl_fini_priority_lookup,
15630 decl_priority_info, decl_restrict_base_lookup,
15631 decl_restrict_base_insert, decl_debug_expr_lookup,
15632 decl_debug_expr_insert, decl_value_expr_lookup,
15633 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
15634 type_hash_add, get_file_function_name, tree_check_failed,
15635 tree_not_check_failed, tree_range_check_failed,
15636 omp_clause_range_check_failed, build_omp_clause,
15637 build_vl_exp_stat): Likewise.
15638 * value-prof.c (gimple_histogram_value,
15639 gimple_duplicate_stmt_histograms): Likewise.
15640 * var-tracking.c (attrs_list_insert, attrs_list_copy,
15641 unshare_variable, variable_union_info_cmp_pos, variable_union,
15642 dataflow_set_different_1, dataflow_set_different_2,
15643 vt_find_locations, variable_was_changed, set_variable_part,
15644 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
15645 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
15646 section_entry_hash, object_block_entry_eq,
15647 object_block_entry_hash, create_block_symbol,
15648 initialize_cold_section_name, default_function_rodata_section,
15649 strip_reg_name, set_user_assembler_name, const_desc_eq,
15650 build_constant_desc, output_constant_def, lookup_constant_def,
15651 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
15652 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
15653 default_internal_label): Likewise.
15654 * varray.c (varray_init, varray_grow): Likewise.
15655 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
15657 2008-06-20 Uros Bizjak <ubizjak@gmail.com>
15659 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
15660 operators for "test" insn. Macroize insn using SWI mode macro.
15661 (*jcc_fused_2): Ditto.
15662 (*jcc_fused_3): Macroize insn using SWI mode macro.
15663 (*jcc_fused_4): Ditto.
15665 2008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
15667 * tree-ssa-pre.c: Fix typo in comment.
15668 (init_antic, fini_antic): Add explicit funtions for
15669 initializing and deinitializing ANTIC and AVAIL sets.
15670 (create_expression_by_pieces): Fix typo in comment.
15671 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
15672 (execute_pre): Eventually dump details about ANTIC_IN.
15674 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15676 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
15677 * gcc.c (translate_options, init_spec, store_arg, read_specs,
15678 add_to_obstack, file_at_path, find_a_file, execute,
15679 add_preprocessor_option, add_assembler_option, add_linker_option,
15680 process_command, insert_wrapper, do_option_spec, do_self_spec,
15681 spec_path, do_spec_1, is_directory, main, used_arg,
15682 getenv_spec_function): Likewise.
15683 * tlink.c (symbol_hash_lookup, file_hash_lookup,
15684 demangled_hash_lookup, symbol_push, file_push, frob_extension):
15687 2008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
15689 * doc/rtl.texi: Updated subreg section.
15691 2008-06-19 Jakub Jelinek <jakub@redhat.com>
15694 * cgraphunit.c (cgraph_process_new_functions): Don't clear
15695 node->needed and node->reachable.
15696 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
15697 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
15698 (expand_task_call): Don't call expand_task_copyfn.
15699 (expand_task_copyfn): Renamed to...
15700 (finalize_task_copyfn): ... this.
15702 2008-06-19 Jan Hubicka <jh@suse.cz>
15704 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
15705 clobbering framepointer.
15707 2008-06-19 Jan Hubicka <jh@suse.cz>
15709 * tree-optimize.c (execute_early_local_optimizations): Set
15710 cgraph_state only at first invocation.
15712 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15714 * system.h (-Wc++-compat): Activate as a warning, no an error.
15716 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
15718 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
15719 instead of "#" in insn asm template.
15720 (*jcc_fused_2): Ditto.
15722 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
15724 * config/i386/i386.h (ix86_tune_indices)
15725 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
15726 (TARGET_FUSE_CMP_AND_BRANCH): New define.
15727 * config/i386/i386.md (*jcc_fused_1): New insn pattern
15728 (*jcc_fused_2): Ditto.
15729 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
15730 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
15731 (print operand): Handle 'E' and 'e' code.
15733 2008-06-19 Anatoly Sokolov <aesok@post.ru>
15735 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
15736 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15737 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15739 2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
15741 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
15743 (cgraph_expand_function): Use local copy of decl.
15744 (cgraph_expand_all_functions): Remove redundant initialization of
15746 (cgraph_optimize): Reword internal_error message.
15748 2008-06-19 Chung-Lin Tang <ctang@marvell.com>
15750 * arm-protos.h (arm_return_in_memory): Remove public
15751 arm_return_in_memory() prototype.
15752 * arm.c (arm_return_in_memory): Add static prototype, add target
15753 hook macro, change definition and comments.
15754 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
15756 2008-06-19 Ben Elliston <bje@au.ibm.com>
15758 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
15759 real.c: Remove references to IEEE 754R.
15760 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
15761 * doc/libgcc.texi (Decimal float library routines): Likewise.
15763 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15765 * targhooks.h (struct gcc_target): New member unwind_word_mode.
15766 (default_unwind_word_mode): Add prototype.
15767 * targhooks.c (default_unwind_word_mode): New function.
15768 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
15769 instead of word_mode.
15770 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
15771 (TARGET_INITIALIZER): Use it.
15773 * c-common.c (handle_mode_attribute): Support "unwind_word"
15775 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
15777 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
15778 word_mode to access SjLj_Function_Context member "data".
15779 (sjlj_emit_dispatch_table): Likewise. Also, perform type
15780 conversion from targetm.eh_return_filter_mode () to
15781 targetm.unwind_word_mode () if they differ.
15783 * builtin-types.def (BT_UNWINDWORD): New primitive type.
15784 (BT_FN_UNWINDWORD_PTR): New function type.
15785 (BT_FN_WORD_PTR): Remove.
15786 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
15787 * except.c (expand_builtin_extend_pointer): Convert pointer to
15788 targetm.unwind_word_mode () instead of word_mode.
15790 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
15791 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
15792 (spu_unwind_word_mode): New function.
15793 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
15794 (TARGET_UNWIND_WORD_MODE): Define.
15795 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
15797 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15799 * config/spu/spu.c (reg_align): Remove.
15800 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
15801 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
15802 (spu_split_store): Likewise.
15804 2008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
15806 * gcc/tree-vn.c: Fix typo in comment.
15808 2008-06-18 Jan Hubicka <jh@suse.cz>
15810 * cgraphunit.c (cgraph_optimize): Output debug info when doing
15811 toplevel reorder too.
15813 2008-06-18 Jan Hubicka <jh@suse.cz>
15815 * c-opts.c (c_common_post_options): PCH is not compatible with
15817 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
15818 -fno-toplevel-reorder by default now.
15820 2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15822 PR documentation/30739
15823 * doc/install.texi (Prerequisites): Document dependency on awk.
15825 2008-06-18 Uros Bizjak <ubizjak@gmail.com>
15826 Ian Lance Taylor <iant@google.com>
15828 PR rtl-optimization/35604
15829 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
15830 only want to change jump destinations, not eventual label comparisons.
15832 2008-06-16 Jan Hubicka <jh@suse.cz>
15834 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
15836 (cgraph_analyze_function): Likewise.
15838 2008-06-16 Jan Hubicka <jh@suse.cz>
15840 * cgraph.h (cgraph_mark_if_needed): New function.
15841 * cgraphunit.c (cgraph_mark_if_needed): New function.
15842 * c-decl.c (duplicate_decl): Use it.
15844 2008-06-16 Jan Hubicka <jh@suse.cz>
15846 * cgraph.c (cgraph_add_new_function): When in expansion state, do
15849 2008-06-16 Jan Hubicka <jh@suse.cz>
15851 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
15853 2008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
15854 Kazu Hirata <kazu@codesourcery.com>
15855 Maxim Kuvyrkov <maxim@codesourcery.com
15857 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
15858 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
15859 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
15860 EXTRA_SPEC_FUNCTIONS.
15861 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
15862 (DRIVER_SELF_SPECS): Adjust.
15863 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
15864 * config/mips/st.h, config/mips/t-st: New.
15865 * config/mips/driver-native.c, config/mips/x-native: New.
15866 * doc/invoke.texi (MIPS): Document 'native' value for -march and
15869 2008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
15871 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
15873 (ISA_HAS_FP_CONDMOVE): New macro.
15874 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
15875 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
15876 (ISA_HAS_NMADD3_NMSUB3): New macro.
15877 * config/mips/mips.c (mips_rtx_costs): Update.
15878 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
15879 compiling for ST Loongson 2E/2F.
15880 (madd<mode>): Rename to madd4<mode>. Update.
15881 (madd3<mode>): New pattern.
15882 (msub<mode>): Rename to msub4<mode>. Update.
15883 (msub3<mode>): New pattern.
15884 (nmadd<mode>): Rename to nmadd4<mode>. Update.
15885 (nmadd3<mode>): New pattern.
15886 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
15887 (nmadd3<mode>_fastmath): New pattern.
15888 (nmsub<mode>): Rename to nmsub4<mode>. Update.
15889 (nmsub3<mode>): New pattern.
15890 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
15891 (nmsub3<mode>_fastmath): New pattern.
15892 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
15894 2008-06-18 Steven Bosscher <steven@gcc.gnu.org>
15896 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
15897 (DF_REF_INSN_INFO): New.
15898 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
15899 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
15900 with a NULL DF_REF_INSN_INFO.
15901 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
15903 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
15904 DF_INSN_INFO_EQ_USES): New.
15905 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
15906 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
15907 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
15908 * df-core.c: Update comment for above changes.
15909 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
15910 DF_INSN_UID_* macros.
15911 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
15912 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
15913 insn rtx. Update all callers.
15914 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
15915 df_ref_create_structure, df_insn_refs_collect): Likewise.
15916 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
15917 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
15918 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
15919 macros to access the insn refs.
15920 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
15921 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
15922 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
15923 for accessing the refs.
15924 (try_fwprop_subst): Likewise.
15925 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
15926 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
15927 for accessing the refs.
15928 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
15929 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
15930 to look at the insn refs.
15931 (record_uses): Likewise.
15932 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
15934 (mark_artificial_uses): Don't mark_insn for artificial refs.
15935 (mark_reg_rependencies): Likewise.
15937 * doc/rtl.texi: Remove documentation of ADDRESSOF.
15939 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15941 * configure: Regenerate.
15943 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
15945 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
15946 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15947 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15949 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
15951 * config/avr/avr.c (avr_mcu_t): Add attiny167.
15952 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15953 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15955 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
15957 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
15958 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15959 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15961 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
15963 * tree-ssa-sccvn.c: Fix format of comments.
15965 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
15967 * cgraph.c: Remove unneeded forward declarations of eq_node()
15970 2008-06-17 Steven Bosscher <steven@gcc.gnu.org>
15972 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
15974 (see_update_relevancy): Likewise.
15975 * fwprop.c (try_fwprop_subst): Likewise.
15976 * rtlanal.c (noop_move_p): Likewise.
15977 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
15978 notes to non-existing libcall blocks.
15979 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
15981 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
15982 (dead_libcall_p): Remove.
15983 (delete_trivially_dead_insns): Don't use it.
15984 * web.c (union_defs): Remove comment about keeping nops.
15985 * gcse.c (hash_scan_insn): Don't take libcall pointers.
15986 (compute_hash_table_work): Don't track libcall notes.
15987 (do_local_cprop): Don't take libcall pointers. Don't update
15989 (adjust_libcall_notes): Deleted.
15990 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
15991 ever have existed in the first place).
15992 (replace_store_insn): Don't try to remove libcall notes.
15993 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
15994 (resolve_reg_notes): Don't call them.
15995 (resolve_simple_move): Likewise.
15996 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
15997 Don't remove REG_RETVAL notes.
15998 * emit-rtl.c (try_split): Don't update libcall notes.
15999 (emit_copy_of_insn_after): Dito.
16000 * cselib.c (cselib_current_insn_in_libcall): Remove.
16001 (cselib_process_insn): Don't set/clear it.
16002 (new_elt_loc_list): Don't record it.
16003 (cselib_init): Don't initialize it.
16004 * cselib.c (struct elt_loc_list): Remove in_libcall field.
16005 * loop-invariant.c (find_invariant_insn): Don't look for libcall
16007 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
16008 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
16009 (init_deps): Don't initialize it.
16010 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
16011 * combine.c (delete_noop_moves): Don't update libcall notes.
16012 (can_combine_p): Remove now pointless #if 0 block.
16013 (try_combine): Remove another obsolete #if 0 block.
16014 (distribute_notes): Don't distribute libcall notes.
16015 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
16016 * dce.c (libcall_dead_p): Remove.
16017 (delete_unmarked_insns): Don't handle libcall blocks.
16018 (preserve_libcall_for_dce): Remove.
16019 (prescan_insns_for_dce): Don't special-case libcall block insns.
16020 * reload1 (reload): Don't handle libcall notes.
16021 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
16024 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
16026 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
16027 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16028 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16030 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
16032 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
16033 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16034 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16036 2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16038 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
16040 2008-06-16 Ira Rosen <irar@il.ibm.com>
16042 PR tree-optimization/36493
16043 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
16044 the arguments list. Use VECTYPE to create vector pointer.
16045 (vectorizable_store): Fail if accesses through a pointer to vectype
16046 do not alias the original memory reference operands.
16047 Call vect_create_data_ref_ptr without the removed argument.
16048 (vectorizable_load): Likewise.
16049 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
16052 2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
16055 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
16056 reg_equiv_constant.
16058 2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
16060 * config/mips/loongson2ef.md: New file.
16061 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
16062 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
16063 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
16064 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
16065 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
16067 (loongson2ef.md): New include.
16068 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
16069 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
16070 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
16071 (loongson_gt_<mode>, loongson_extract_halfword)
16072 (loongson_insert_halfword_0, loongson_insert_halfword_2)
16073 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
16074 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
16075 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
16076 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
16077 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
16078 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
16079 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
16080 (vec_interleave_low<mode>): Define type attribute.
16081 * config/mips/mips.c (mips_ls2): New static variable.
16082 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
16083 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
16084 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
16085 Implement target scheduling hooks.
16086 (mips_multipass_dfa_lookahead): Update to handle tuning for
16088 (mips_sched_init): Initialize data for Loongson scheduling.
16089 (mips_ls2_variable_issue): New static function.
16090 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
16092 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
16093 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
16094 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
16095 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
16096 Handle ST Loongson 2E/2F cores.
16097 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
16099 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16101 * omp-low.c (extract_omp_for_data): Fix comment typo.
16104 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16106 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
16107 FIXME note about gcc/config.guess.
16108 * doc/options.texi (Option file format): Remove non-ASCII bytes.
16109 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
16110 * doc/cppopts.texi: Likewise.
16111 * doc/extend.texi: Likewise.
16112 * doc/gcc.texi: Likewise.
16113 * doc/gccint.texi: Likewise.
16114 * doc/gcov.texi: Likewise.
16115 * doc/gty.texi: Likewise.
16116 * doc/hostconfig.texi: Likewise.
16117 * doc/install.texi: Likewise.
16118 * doc/invoke.texi: Likewise.
16119 * doc/loop.texi: Likewise.
16120 * doc/makefile.texi: Likewise.
16121 * doc/md.texi: Likewise.
16122 * doc/passes.texi: Likewise.
16123 * doc/tm.texi: Likewise.
16124 * doc/tree-ssa.texi: Likewise.
16125 * doc/trouble.texi: Likewise.
16127 2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
16128 Nathan Sidwell <nathan@codesourcery.com>
16129 Maxim Kuvyrkov <maxim@codesourcery.com>
16130 Richard Sandiford <rdsandiford@googlemail.com>
16132 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
16133 * config/mips/mips-protos.h (mips_expand_vector_init): New.
16134 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
16136 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
16137 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
16138 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
16140 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
16141 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
16142 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
16143 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
16144 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
16145 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
16146 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
16147 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
16148 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
16149 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
16150 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
16151 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
16152 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
16153 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
16154 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
16155 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
16156 (mips_builtins): Add Loongson builtins.
16157 (mips_loongson_2ef_bdesc): New.
16158 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
16159 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
16160 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
16161 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
16163 (mips_expand_vector_init): New.
16164 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
16165 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
16167 * config/mips/mips.md: Add unspec numbers for Loongson
16168 builtins. Include loongson.md.
16169 (MOVE64): Include Loongson vector modes.
16170 (SPLITF): Include Loongson vector modes.
16171 (HALFMODE): Handle Loongson vector modes.
16172 * config/mips/loongson.md: New.
16173 * config/mips/loongson.h: New.
16174 * config.gcc: Add loongson.h header for mips*-*-* targets.
16175 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
16177 2008-06-14 Joseph Myers <joseph@codesourcery.com>
16179 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
16180 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
16181 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
16182 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
16183 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
16184 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
16185 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
16186 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
16187 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
16188 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
16189 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
16190 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
16191 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
16192 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
16193 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
16194 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
16195 Remove use_fixproto=yes.
16196 (ia64*-*-hpux*): Remove comment about using fixproto.
16197 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
16199 2008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16201 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
16203 * configure: Regenerate.
16205 2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
16207 PR middle-end/36520
16208 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
16209 before evaluating it.
16211 2008-06-13 Jakub Jelinek <jakub@redhat.com>
16214 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
16215 nested inline functions.
16216 (start_decl, start_function): Don't invert DECL_EXTERNAL
16217 for nested inline functions.
16219 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
16221 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
16222 splits that must be made for correctness.
16224 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
16226 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
16227 (AVAIL_NON_MIPS16): Likewise.
16228 (mips_builtin_description): Replace target_flags with a predicate.
16229 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
16230 (dspr2_32): New availability predicates.
16231 (MIPS_BUILTIN): New macro.
16232 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
16233 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
16234 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
16235 Replace the TARGET_FLAGS parameters with AVAIL parameters.
16236 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
16237 (mips_dsp_32only_bdesc): Merge into...
16238 (mips_builtins): ...this new array.
16239 (mips_bdesc_map, mips_bdesc_arrays): Delete.
16240 (mips_init_builtins): Update after above changes.
16241 (mips_expand_builtin_1): Merge into...
16242 (mips_expand_builtin): ...here and update after above changes.
16244 2008-06-12 Paul Brook <paul@codesourcery.com>
16246 * longlong.h (__arm__): Define count_leading_zeros.
16247 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
16248 (clzsi2, clzdi2): New functions.
16249 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
16250 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
16251 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
16252 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
16253 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
16254 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
16255 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
16256 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
16257 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
16258 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
16260 2008-06-12 Kazu Hirata <kazu@codesourcery.com>
16262 * config/m68k/m68k.c (m68k_tune_flags): New.
16263 (override_options): Compute m68k_tune_flags.
16264 (MULL_COST, MULW_COST): Update for various variants of CFV2.
16265 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
16267 2008-06-12 Jakub Jelinek <jakub@redhat.com>
16269 PR middle-end/36506
16270 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
16272 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
16274 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
16275 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
16277 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
16279 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
16280 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
16282 2008-06-12 Jakub Jelinek <jakub@redhat.com>
16284 PR middle-end/36506
16285 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
16288 2008-06-12 Richard Guenther <rguenther@suse.de>
16290 PR tree-optimization/36345
16291 * tree-flow.h (struct ptr_info_def): Align escape_mask,
16292 add memory_tag_needed flag.
16293 (may_alias_p): Declare.
16294 * tree-ssa-alias.c (may_alias_p): Export.
16295 (set_initial_properties): Use memory_tag_needed flag.
16296 (update_reference_counts): Likewise.
16297 (reset_alias_info): Reset memory_tag_needed flag.
16298 (create_name_tags): Check memory_tag_needed flag.
16299 (dump_points_to_info_for): Dump it.
16300 * tree-ssa-structalias.c (struct variable_info): Remove
16301 directly_dereferenced flag.
16302 (new_var_info): Do not initialize it.
16303 (process_constraint_1): Do not set it.
16304 (update_alias_info): Set is_dereferenced flag.
16305 (set_uids_in_ptset): Use may_alias_p.
16306 (set_used_smts): Check memory_tag_needed flag.
16307 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
16308 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
16309 memory_tag_needed flag.
16310 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
16311 from broken design.
16313 2008-06-12 Kai Tietz <kai.tietz@onevision.com>
16315 * config/i386/i386.c (ix86_compute_frame_layout): Disable
16316 red zone for w64 abi.
16317 (ix86_expand_prologue): Likewise.
16318 (ix86_force_to_memory): Likewise.
16319 (ix86_free_from_memory): Likewise.
16321 2008-06-11 Edmar Wienskoski <edmar@freescale.com>
16324 * config/rs6000/rs6000.c (rs6000_override_options): Set
16325 rs6000_isel conditionally to the absence of comand line override.
16326 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16327 Remove duplicate rs6000_isel setting.
16328 * config/rs6000/eabispe.h: Ditto.
16330 2008-06-11 Richard Guenther <rguenther@suse.de>
16332 * alias.c (get_alias_set): Use the element alias-set for arrays.
16333 (record_component_aliases): For arrays and vectors do nothing.
16334 * c-common.c (strict_aliasing_warning): Handle the cases
16335 of alias set zero explicitly.
16336 * Makefile.in (dfp.o-warn): Add -Wno-error.
16338 2008-06-11 Joseph Myers <joseph@codesourcery.com>
16340 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
16342 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
16343 tune_32 tune_64 to supported_defaults. Allow values not
16344 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
16345 x86_64. Do not override cpu_32 or cpu_64 values from target name.
16346 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
16347 with_cpu_64 to generic for 64-bit-supporting configurations, not
16348 with_cpu. Remove FIXMEs.
16349 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
16350 --with-arch-64, --with-tune-32, --with-tune-64): Document.
16351 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
16352 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
16353 arch_32 and arch_64.
16355 2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
16356 Olivier Hainque <hainque@adacore.com>
16358 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
16359 Use DECL_SIZE_UNIT to retrieve the size of the field.
16361 2008-06-11 Joseph Myers <joseph@codesourcery.com>
16363 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
16364 with function calls after declarations. Lay out
16365 neon_float_type_node before further use.
16367 2008-06-11 Richard Guenther <rguenther@suse.de>
16369 * tree-flow.h (may_point_to_global_var): Declare.
16370 * tree-ssa-alias.c (may_point_to_global_var): New function.
16371 * tree-ssa-sink.c (is_hidden_global_store): Use it.
16373 2008-06-10 Kazu Hirata <kazu@codesourcery.com>
16375 * configure.ac: Teach that fido supports .debug_line.
16376 * configure: Regenerate.
16378 2008-06-10 Tom Tromey <tromey@redhat.com>
16380 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
16383 2008-06-10 Joseph Myers <joseph@codesourcery.com>
16385 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
16386 (encode_decimal64, decode_decimal64, encode_decimal128,
16387 decode_decimal128): Reverse order of 32-bit parts of value if host
16388 and target endianness differ.
16390 2008-06-10 Vinodha Ramasamy <vinodha@google.com>
16392 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
16393 Avoid division by 0.
16394 (tree_mod_pow2_value_transform): Likewise.
16395 (tree_ic_transform): Likewise.
16396 (tree_stringops_transform): Likewise.
16397 (tree_mod_subtract_transform): Likewise.
16398 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
16399 (copy_edges_for_bb): Likewise.
16400 (initialize_cfun): Likewise.
16402 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
16404 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
16405 nonmemory_operand. Add "N" operand constraint.
16407 (*jcc_btdi_mask_rex64): New instruction and split pattern.
16408 (*jcc_btsi_mask): Ditto.
16409 (*jcc_btsi_mask_1): Ditto.
16411 2008-06-10 Joseph Myers <joseph@codesourcery.com>
16413 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
16414 TYPE_CANONICAL for copied element type.
16416 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
16419 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
16420 Add m_CORE2 and m_GENERIC.
16421 * config/i386/predicates.md (bt_comparison_operator): New predicate.
16422 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
16424 (*jcc_btdi_rex64): New instruction and split pattern.
16425 (*jcc_btsi): Ditto.
16426 (*jcc_btsi_1): Ditto.
16427 (*btsq): Fix Intel asm dialect operand order.
16431 2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
16433 PR middle-end/36447
16434 * simplify-rtx.c (simplify_subreg): Add check for shift count
16437 2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
16439 * doc/md.texi: Synchronize with later constraints.md change.
16440 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
16441 with a C implementation.
16442 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
16444 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
16445 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
16446 when moving to and from MD_REGNUM.
16447 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
16448 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
16449 Handle byte and halfword moves.
16450 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
16452 * config/mips/constraints.md (h): Turn into NO_REGS.
16453 (l, x): Update documentation.
16454 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
16455 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
16456 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
16457 (HILO): New mode iterator.
16459 (any_div): New code iterator.
16460 (u): Extend code attribute to div and udiv.
16461 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
16462 d_operand in the splitters. Remove redundant CONST_INT checks.
16463 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
16464 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
16465 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
16466 accordingly, using normal moves instead of unspecs to move LO into
16467 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
16468 (<u>mulsidi3): Handle expansion in C code.
16469 (<u>mulsidi3_32bit_internal): Rename to...
16470 (<u>mulsidi3_32bit): ...this.
16471 (<u>mulsidi3_32bit_r4000): Fix insn separator.
16472 (*<u>mulsidi3_64bit): Rename to...
16473 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
16474 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
16475 to set LO and HI to the multiplication result. Use a normal move
16476 for MFLO and an unspec for MFHI.
16477 (*<u>mulsidi3_64bit_parts): Replace with...
16478 (<u>mulsidi3_64bit_hilo): ...this new instruction.
16479 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
16480 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
16481 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
16482 instead of HI. Split the instruction into a separate multiplication
16483 and MFHI if !TARGET_FIX_R4000.
16484 (<su>muldi3_highpart): Likewise.
16485 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
16486 and the "=h" clobber.
16487 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
16488 (<u>mulditi3): New expander.
16489 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
16490 (madsi): Remove "=h" clobber.
16491 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
16492 Force the modulus result to be a GPR and split the instruction into
16493 a division followed by an MFHI after reload.
16494 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
16495 (*lea_high64): Use d_operand in the define_peephole2. Likewise
16496 the MIPS16 HIGH define_split.
16497 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
16498 of acc<->gpr moves to "multi".
16499 (*movdi_64bit): Replace the single "x" alternative with
16500 alternatives for moving into and out of "a".
16501 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
16502 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
16503 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
16504 Use d_operand in the splitters. Remove redundant CONST_INT checks.
16505 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
16506 (movti): New expander.
16507 (*movti, *movti_mips16): New insns.
16508 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
16509 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
16510 (mthi<GPR:mode>_<HILO:mode>): Likewise.
16511 * config/mips/predicates.md (fpr_operand): Delete.
16512 (d_operand): New predicate.
16514 2008-06-09 Michael Meissner <michael.meissner@amd.com>
16516 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
16517 failure on some Bourne shells.
16518 (x86_64-*-*): Ditto.
16520 2008-06-09 Kai Tietz <kai.tietz@onevision.com>
16522 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
16524 2008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
16526 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
16527 (sparc-sun-solaris2*): Likewise.
16529 2008-06-09 Arnaud Charlet <charlet@adacore.com
16531 * doc/install.texi: Update requirements to build the Ada compiler.
16533 2008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
16535 * df-scan.c (struct df_scan_problem_data): Remove the
16536 mw_link_pool alloc pool.
16537 (df_scan_free_internal): Don't free it.
16538 (df_scan_alloc): Don't allocate it.
16539 * df.h (struct df_link): Update comment.
16541 2008-06-08 Nathan Sidwell <nathan@codesourcery.com>
16543 * except.h: Correct checks for when SJLJ exceptions must be used.
16545 2008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16547 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
16550 2008-06-08 Joseph Myers <joseph@codesourcery.com>
16552 PR tree-optimization/36218
16553 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
16554 configure for the build system.
16555 (BUILD_LDFLAGS): Define.
16556 * configure: Regenerate.
16557 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
16559 2008-07-08 Anatoly Sokolov <aesok@post.ru>
16562 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
16563 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
16564 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
16566 2008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
16568 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
16570 2008-06-07 Joseph Myers <joseph@codesourcery.com>
16572 * config.gcc (Obsolete configurations): Remove list of
16574 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
16575 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
16576 targets matched by those patterns.
16577 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
16578 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
16579 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
16580 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
16581 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
16582 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
16583 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
16584 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
16585 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
16586 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
16587 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
16588 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
16589 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
16590 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
16591 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
16592 Make code for Solaris 7 and greater unconditional for Solaris.
16593 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
16594 Remove --with-* handling.
16595 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
16596 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
16597 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
16598 LINK_OS_WINDISS_SPEC): Remove.
16599 * config/rs6000/sysv4.opt (mwindiss): Remove.
16600 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
16601 * configure: Regenerate.
16602 * doc/cpp.texi: Don't mention BeOS.
16603 * doc/extend.texi (interrupt): Don't mention MS1.
16604 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
16605 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
16606 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
16607 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
16608 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
16610 * doc/invoke.texi (MT Options): Remove.
16611 (-mwindiss): Remove.
16612 (CRIS Options): Remove cris-axis-aout references.
16613 (HPPA Options): Don't mention hppa1.1-*-pro.
16614 * doc/md.texi: (MorphoTech family): Remove.
16615 * libgcc2.c: Don't handle UWIN.
16616 * config/alpha/t-unicosmk: Remove.
16617 * config/alpha/unicosmk.h: Remove.
16618 * config/arm/kaos-arm.h: Remove.
16619 * config/arm/kaos-strongarm.h: Remove.
16620 * config/arm/strongarm-coff.h: Remove.
16621 * config/arm/strongarm-elf.h: Remove.
16622 * config/arm/strongarm-pe.h: Remove.
16623 * config/arm/t-strongarm-pe: Remove.
16624 * config/arm/t-xscale-coff: Remove.
16625 * config/arm/t-xscale-elf: Remove.
16626 * config/arm/xscale-coff.h: Remove.
16627 * config/arm/xscale-elf.h: Remove.
16628 * config/chorus.h: Remove.
16629 * config/cris/aout.h: Remove.
16630 * config/cris/aout.opt: Remove.
16631 * config/cris/t-aout: Remove.
16632 * config/i386/beos-elf.h: Remove.
16633 * config/i386/kaos-i386.h: Remove.
16634 * config/i386/ptx4-i.h: Remove.
16635 * config/i386/sco5.h: Remove.
16636 * config/i386/sco5.opt: Remove.
16637 * config/i386/sysv4-cpp.h: Remove.
16638 * config/i386/sysv5.h: Remove.
16639 * config/i386/t-beos: Remove.
16640 * config/i386/t-sco5: Remove.
16641 * config/i386/t-uwin: Remove.
16642 * config/i386/uwin.asm: Remove.
16643 * config/i386/uwin.h: Remove.
16644 * config/kaos.h: Remove.
16645 * config/mips/windiss.h: Remove.
16646 * config/mt: Remove directory.
16647 * config/pa/pa-osf.h: Remove.
16648 * config/pa/pa-pro-end.h: Remove.
16649 * config/pa/t-pro: Remove.
16650 * config/ptx4.h: Remove.
16651 * config/rs6000/beos.h: Remove.
16652 * config/rs6000/kaos-ppc.h: Remove.
16653 * config/rs6000/t-beos: Remove.
16654 * config/rs6000/windiss.h: Remove.
16655 * config/sh/kaos-sh.h: Remove.
16656 * config/sol2-6.h: Remove.
16657 * config/sparc/sol26-sld.h: Remove.
16658 * config/sparc/sysv4-only.h: Remove.
16659 * config/vax/bsd.h: Remove.
16660 * config/vax/t-memfuncs: Remove.
16661 * config/vax/ultrix.h: Remove.
16662 * config/vax/vaxv.h: Remove.
16663 * config/windiss.h: Remove.
16665 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
16667 PR rtl-optimization/36438
16668 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
16669 for vector shifts with constant scalar shift operands.
16671 2008-06-06 Sandip Matte <sandip@rmicorp.com>
16673 * doc/invoke.texi: Document -march=xlr.
16674 * config/mips/xlr.md: New file.
16675 * config/mips/mips.md: Include it.
16677 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
16678 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
16679 (mips_rtx_cost_data): Likewise.
16681 2008-06-06 Nathan Froyd <froydnj@codesourcery.com>
16683 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
16684 PRE_INC and PRE_DEC cases.
16686 2008-06-06 Jakub Jelinek <jakub@redhat.com>
16688 PR rtl-optimization/36419
16689 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
16690 the emitting jump insn.
16693 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
16694 is not bool, boolify the whole *expr_p and convert to the desired type.
16696 2008-06-06 Jakub Jelinek <jakub@redhat.com>
16698 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
16699 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
16700 Add omp_private_outer_ref hook, add another argument to
16701 omp_clause_default_ctor hook.
16702 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
16703 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
16704 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
16705 hook_tree_tree_tree_tree_null.
16706 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
16707 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
16708 * hooks.c (hook_tree_tree_tree_tree_null): New function.
16709 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
16710 * tree.def (OMP_TASK): New tree code.
16711 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
16712 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
16713 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
16714 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
16715 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
16716 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
16717 OMP_CLAUSE_COLLAPSE_EXPR): Define.
16718 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
16719 (OMP_DIRECTIVE_P): Add OMP_TASK.
16720 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
16721 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
16722 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
16723 and OMP_CLAUSE_UNTIED entries.
16724 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
16726 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
16727 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
16728 * tree-pretty-print.c (dump_omp_clause): Handle
16729 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
16730 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
16731 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
16732 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
16733 warning about unsigned iterators. Change decl/init/cond/incr
16734 arguments to TREE_VECs, check arguments for all collapsed loops.
16735 (c_finish_omp_taskwait): New function.
16736 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
16738 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
16739 default_function_array_conversion on init. Add par_clauses argument.
16740 If decl is present in parallel's lastprivate clause, change it to
16741 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
16742 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
16743 collapse count in clauses.
16744 (c_parser_omp_for, c_parser_omp_parallel): Adjust
16745 c_parser_omp_for_loop callers.
16746 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
16747 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
16748 (c_parser_omp_clause_name): Handle collapse and untied clauses.
16749 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
16751 (c_parser_omp_clause_schedule): Handle schedule(auto).
16752 Include correct location in the error message.
16753 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
16754 and PRAGMA_OMP_CLAUSE_UNTIED.
16755 (OMP_TASK_CLAUSE_MASK): Define.
16756 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
16757 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
16758 * tree-nested.c (convert_nonlocal_omp_clauses,
16759 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
16760 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
16761 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
16762 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
16764 (conver_nonlocal_reference, convert_local_reference,
16765 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
16766 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
16767 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
16768 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
16769 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
16770 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
16771 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
16772 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
16773 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
16775 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
16776 * c-common.h (c_finish_omp_taskwait): New prototype.
16777 * gimple-low.c (lower_stmt): Handle OMP_TASK.
16778 * tree-parloops.c (create_parallel_loop): Create 1 entry
16779 vectors for OMP_FOR_{INIT,COND,INCR}.
16780 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
16781 (make_edges): Handle OMP_TASK.
16782 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
16783 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
16784 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
16785 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
16786 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
16787 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
16788 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
16789 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
16790 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
16791 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
16792 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
16793 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
16794 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
16795 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
16796 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
16797 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
16798 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
16799 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
16800 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
16801 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
16802 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
16803 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
16804 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
16805 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
16806 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
16807 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
16808 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
16809 original iterator is present in lastprivate clause or if
16810 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
16811 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
16812 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
16813 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
16814 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
16815 if it is set, lookup var in outer contexts too. Handle
16816 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
16817 to be implicitly determined firstprivate for task regions.
16818 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
16819 if it is set, lookup var in outer contexts too. Set
16820 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
16821 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
16822 OMP_CLAUSE_UNTIED. Take region_type as last argument
16823 instead of in_parallel and in_combined_parallel.
16824 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
16826 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
16827 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
16828 (new_omp_context): Set default_kind to
16829 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
16830 (omp_region_type): New enum.
16831 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
16832 fields, add region_type.
16833 (new_omp_context): Take region_type as argument instead of is_parallel
16834 and is_combined_parallel.
16835 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
16836 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
16837 ctx->is_combined_parallel checks.
16838 (gimplify_omp_task): New function.
16839 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
16841 * omp-low.c (extract_omp_for_data): Use schedule(static)
16842 for schedule(auto). Handle pointer and unsigned iterators.
16843 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
16844 Add loops argument. Extract data for collapsed OMP_FOR loops.
16845 (expand_parallel_call): Assert sched_kind isn't auto,
16846 map runtime schedule to index 3.
16847 (struct omp_for_data_loop): New type.
16848 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
16849 Add loop, loops, collapse and iter_type fields.
16850 (workshare_safe_to_combine_p): Disallow combined for if
16851 iter_type is unsigned long long. Don't combine collapse > 1 loops
16852 unless all bounds and steps are constant. Adjust extract_omp_for_data
16854 (expand_omp_for_generic): Handle pointer, unsigned and long long
16855 iterators. Handle collapsed OMP_FOR loops. Adjust
16856 for struct omp_for_data changes. If libgomp function doesn't return
16857 boolean_type_node, add comparison of the return value with 0.
16858 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
16859 pointer, unsigned and long long iterators. Adjust for struct
16860 omp_for_data changes.
16861 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
16862 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
16863 unsigned long long. Allocate loops array, pass it to
16864 extract_omp_for_data. For collapse > 1 loops use always
16865 expand_omp_for_generic.
16866 (omp_context): Add sfield_map and srecord_type fields.
16867 (is_task_ctx, lookup_sfield): New functions.
16868 (use_pointer_for_field): Use is_task_ctx helper. Change first
16869 argument's type from const_tree to tree. Clarify comment.
16870 In OMP_TASK disallow copy-in/out sharing.
16871 (build_sender_ref): Call lookup_sfield instead of lookup_field.
16872 (install_var_field): Add mask argument. Populate both record_type
16873 and srecord_type if needed.
16874 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
16876 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
16877 and DECL_FIELD_OFFSET.
16878 (scan_sharing_clauses): Adjust install_var_field callers. For
16879 firstprivate clauses on explicit tasks allocate the var by value in
16880 record_type unconditionally, rather than by reference.
16881 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
16882 Use is_taskreg_ctx instead of is_parallel_ctx.
16883 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
16884 (create_omp_child_function_name): Add task_copy argument, use
16885 *_omp_cpyfn* names if it is true.
16886 (create_omp_child_function): Add task_copy argument, if true create
16887 *_omp_cpyfn* helper function.
16888 (scan_omp_parallel): Adjust create_omp_child_function callers.
16889 Rename parallel_nesting_level to taskreg_nesting_level.
16890 (scan_omp_task): New function.
16891 (lower_rec_input_clauses): Don't run constructors for firstprivate
16892 explicit task vars which are initialized by *_omp_cpyfn*.
16893 Pass outer var ref to omp_clause_default_ctor hook if
16894 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
16895 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
16896 OMP_CLAUSE_REDUCTION_INIT.
16897 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
16898 avoid duplicate setting of fields. Handle
16899 OMP_CLAUSE_PRIVATE_OUTER_REF.
16900 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
16901 copy-out if TREE_READONLY, only copy-in.
16902 (expand_task_copyfn): New function.
16903 (expand_task_call): New function.
16904 (struct omp_taskcopy_context): New type.
16905 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
16907 (lower_omp_parallel): Rename to...
16908 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
16909 Call create_task_copyfn if srecord_type is needed. Adjust
16911 (task_shared_vars): New variable.
16912 (check_omp_nesting_restrictions): Warn if work-sharing,
16913 barrier, master or ordered region is closely nested inside OMP_TASK.
16914 Add warnings for barrier if closely nested inside of work-sharing,
16915 ordered, or master region.
16916 (scan_omp_1): Call check_omp_nesting_restrictions even for
16917 GOMP_barrier calls. Rename parallel_nesting_level to
16918 taskreg_nesting_level. Handle OMP_TASK.
16919 (lower_lastprivate_clauses): Even if some lastprivate is found on a
16920 work-sharing construct, continue looking for them on parent parallel
16922 (lower_omp_for_lastprivate): Add lastprivate clauses
16923 to the beginning of dlist rather than end. Adjust for struct
16924 omp_for_data changes.
16925 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
16926 not after it. Handle collapsed OMP_FOR loops, adjust for
16927 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
16928 (get_ws_args_for): Adjust extract_omp_for_data caller.
16929 (scan_omp_for): Handle collapsed OMP_FOR
16930 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
16931 (lower_omp_single_simple): If libgomp function doesn't return
16932 boolean_type_node, add comparison of the return value with 0.
16933 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
16934 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
16935 (parallel_nesting_level): Rename to...
16936 (taskreg_nesting_level): ... this.
16937 (is_taskreg_ctx): New function.
16938 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
16939 of is_parallel_ctx.
16940 (execute_lower_omp): Rename parallel_nesting_level to
16941 taskreg_nesting_level.
16942 (expand_omp_parallel): Rename to...
16943 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
16944 Call omp_task_call for OMP_TASK regions.
16945 (expand_omp): Adjust caller, handle OMP_TASK.
16946 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
16948 * bitmap.c (bitmap_default_obstack_depth): New variable.
16949 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
16950 if argument is NULL and bitmap_default_obstack is already initialized.
16951 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
16953 * matrix-reorg.c (matrix_reorg): Likewise.
16955 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
16957 * config/i386/i386.md (*indirect_jump): Macroize using P
16958 mode iterator. Remove !TARGET_64BIT from insn constraints.
16959 (*tablejump_1): Ditto.
16960 (*indirect_jump_rex64): Remove insn pattern.
16961 (*tablejump_1_rex64): Ditto.
16962 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
16963 and eh_return_si insn patterns.
16965 2008-06-06 Richard Guenther <rguenther@suse.de>
16967 * tree-ssa-structalias.c (merge_smts_into): Remove.
16968 (find_what_p_points_to): Do not bother to compute the
16969 points-to set for pt_anything pointers.
16970 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
16971 for pt_anything pointers is ok.
16973 2008-06-06 Jan Hubicka <jh@suse.cz>
16975 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
16977 2008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16979 * cgraph.c: Fix typos in comments.
16980 (cgraph_availability_names): Fix string typo.
16981 * fold-const.c: Fix typos in comments.
16982 (fold_binary): Fix typo in warning.
16983 * genautomata.c: Fix typos in comments.
16984 (check_presence_pattern_sets): Fix typo in local variable.
16985 (output_description): Fix typo in output.
16986 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
16987 * hwint.h: Likewise.
16988 * matrix-reorg.c (check_allocation_function): Likewise.
16989 * omega.c (smooth_weird_equations): Likewise.
16990 * auto-inc-dec.c: Fix typos in comments.
16991 * bb-reorder.c: Likewise.
16992 * builtins.c: Likewise.
16993 * c-common.c: Likewise.
16994 * c-cppbuiltin.c: Likewise.
16995 * c-parser.c: Likewise.
16996 * c-pretty-print.c: Likewise.
16997 * cfgcleanup.c: Likewise.
16998 * cfgexpand.c: Likewise.
16999 * cfghooks.c: Likewise.
17000 * cfglayout.c: Likewise.
17001 * cfgloopmanip.c: Likewise.
17002 * cgraphunit.c: Likewise.
17003 * coverage.c: Likewise.
17004 * dbxout.c: Likewise.
17005 * df-byte-scan.c: Likewise.
17006 * df-core.c: Likewise.
17007 * df-problems.c: Likewise.
17008 * df-scan.c: Likewise.
17010 * dominance.c: Likewise.
17011 * domwalk.c: Likewise.
17013 * dwarf2out.c: Likewise.
17014 * emit-rtl.c: Likewise.
17015 * et-forest.c: Likewise.
17016 * function.c: Likewise.
17017 * function.h: Likewise.
17019 * gcov-io.c: Likewise.
17020 * gcov.c: Likewise.
17021 * gcse.c: Likewise.
17022 * genattrtab.c: Likewise.
17023 * ggc-page.c: Likewise.
17024 * gimplify.c: Likewise.
17025 * gthr-lynx.h: Likewise.
17026 * haifa-sched.c: Likewise.
17027 * ipa-cp.c: Likewise.
17028 * ipa-inline.c: Likewise.
17029 * ipa-prop.h: Likewise.
17030 * ipa-pure-const.c: Likewise.
17031 * ipa-struct-reorg.c: Likewise.
17032 * ipa-struct-reorg.h: Likewise.
17033 * ipa-type-escape.c: Likewise.
17035 * loop-doloop.c: Likewise.
17036 * mips-tfile.c: Likewise.
17037 * mkmap-flat.awk: Likewise.
17038 * mkmap-symver.awk: Likewise.
17039 * modulo-sched.c: Likewise.
17040 * omp-low.c: Likewise.
17041 * optabs.c: Likewise.
17042 * optabs.h: Likewise.
17043 * opts.c: Likewise.
17044 * passes.c: Likewise.
17045 * postreload-gcse.c: Likewise.
17046 * postreload.c: Likewise.
17047 * predict.c: Likewise.
17048 * pretty-print.h: Likewise.
17049 * profile.c: Likewise.
17050 * protoize.c: Likewise.
17051 * ra-conflict.c: Likewise.
17052 * real.c: Likewise.
17053 * recog.c: Likewise.
17054 * regclass.c: Likewise.
17055 * regs.h: Likewise.
17056 * reload.c: Likewise.
17057 * rtl-error.c: Likewise.
17058 * rtlanal.c: Likewise.
17059 * scan.h: Likewise.
17060 * sched-rgn.c: Likewise.
17062 * stmt.c: Likewise.
17063 * target.h: Likewise.
17064 * tree-dfa.c: Likewise.
17065 * tree-eh.c: Likewise.
17066 * tree-flow-inline.h: Likewise.
17067 * tree-inline.c: Likewise.
17068 * tree-into-ssa.c: Likewise.
17069 * tree-loop-distribution.c: Likewise.
17070 * tree-nested.c: Likewise.
17071 * tree-parloops.c: Likewise.
17072 * tree-pass.h: Likewise.
17073 * tree-pretty-print.c: Likewise.
17074 * tree-profile.c: Likewise.
17075 * tree-scalar-evolution.c: Likewise.
17076 * tree-sra.c: Likewise.
17077 * tree-ssa-alias-warnings.c: Likewise.
17078 * tree-ssa-ccp.c: Likewise.
17079 * tree-ssa-coalesce.c: Likewise.
17080 * tree-ssa-dom.c: Likewise.
17081 * tree-ssa-dse.c: Likewise.
17082 * tree-ssa-forwprop.c: Likewise.
17083 * tree-ssa-live.c: Likewise.
17084 * tree-ssa-live.h: Likewise.
17085 * tree-ssa-loop-im.c: Likewise.
17086 * tree-ssa-loop-ivopts.c: Likewise.
17087 * tree-ssa-loop-niter.c: Likewise.
17088 * tree-ssa-loop-prefetch.c: Likewise.
17089 * tree-ssa-phiopt.c: Likewise.
17090 * tree-ssa-phiprop.c: Likewise.
17091 * tree-ssa-sccvn.c: Likewise.
17092 * tree-ssa-ter.c: Likewise.
17093 * tree-ssa-threadupdate.c: Likewise.
17094 * tree-ssa.c: Likewise.
17095 * tree-vect-analyze.c: Likewise.
17096 * tree-vect-transform.c: Likewise.
17097 * tree-vectorizer.c: Likewise.
17098 * tree-vn.c: Likewise.
17099 * tree-vrp.c: Likewise.
17100 * tree.c: Likewise.
17101 * tree.def: Likewise.
17102 * tree.h: Likewise.
17103 * unwind-dw2-fde.c: Likewise.
17104 * unwind.inc: Likewise.
17105 * value-prof.c: Likewise.
17106 * vmsdbgout.c: Likewise.
17108 2008-06-05 David Edelsohn <edelsohn@gnu.org>
17110 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
17111 always place FP constants in the TOC for TARGET_POWERPC64.
17112 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
17114 2008-06-05 Joseph Myers <joseph@codesourcery.com>
17116 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
17117 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
17118 enable for TARGET_E500_DOUBLE.
17119 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
17120 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
17121 floating-point modes like integer modes for E500 double.
17122 (rs6000_legitimate_offset_address_p): Likewise.
17123 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
17124 addressing for DDmode for E500 double.
17125 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
17126 modes as using 64-bits of registers for E500 double.
17127 (spe_build_register_parallel): Do not handle DDmode or TDmode.
17128 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
17129 specially for E500 double.
17130 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
17131 TDmode for E500 double.
17132 (rs6000_gimplify_va_arg): Only handle SDmode in registers
17133 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
17134 (rs6000_split_multireg_move): Do not handle TDmode specially for
17136 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
17137 using 64-bit registers for E500 double.
17138 (emit_frame_save): Do not handle DDmode specially for E500 double.
17139 (gen_frame_mem_offset): Likewise.
17140 (rs6000_function_value): Do not call spe_build_register_parallel
17141 for DDmode or TDmode.
17142 (rs6000_libcall_value): Likewise.
17143 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
17144 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
17147 2008-06-04 H.J. Lu <hongjiu.lu@intel.com>
17149 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
17152 2008-06-04 Junjie Gu <jgu@tensilica.com>
17154 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
17155 comparison for frame pointers.
17157 2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
17160 * config/avr/avr.h (PUSH_ROUNDING): Remove.
17162 2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
17165 * builtins.c (expand_builtin_signbit): Don't take lowpart when
17166 register is already smaller or equal to required mode.
17168 2008-06-04 Xinliang David Li <davidxl@google.com>
17170 * tree-call-cdce.c: New file.
17171 (cond_dead_built_in_calls): New static variable.
17172 (input_domain): New struct.
17173 (check_pow): New function.
17174 (check_builtin_call): Ditto.
17175 (check_target_format): Ditto.
17176 (is_call_dce_candidate): Ditto.
17177 (gen_one_condition): Ditto.
17178 (gen_conditions_for_domain): Ditto.
17179 (get_domain): Ditto.
17180 (gen_conditions_for_pow_cst_base): Ditto.
17181 (gen_conditions_for_pow_int_base): Ditto.
17182 (gen_conditions_for_pow): Ditto.
17183 (get_no_error_domain): Ditto.
17184 (gen_shrink_wrap_conditions): Ditto.
17185 (shrink_wrap_one_built_in_call): Ditto.
17186 (shink_wrap_conditional_dead_built_in_calls): Ditto.
17187 (tree_call_cdce): Ditto.
17188 (gate_call_cdce): Ditto.
17189 (pass_call_cdce): New gimple pass.
17190 * passes.c: (init_optimization_passes): New pass.
17191 * tree-pass.h: New pass declaration.
17192 * opts.c (decode_options): New flag setting.
17193 * common.opt: Add -ftree-builtin-call-dce flag.
17194 * Makefile.in: Add new source file.
17195 * tempvar.def: New tv_id.
17196 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
17198 2008-06-04 Richard Guenther <rguenther@suse.de>
17200 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
17201 (is_call_clobbered): Always check var_ann->call_clobbered.
17202 (mark_call_clobbered): Always set var_ann->call_clobbered.
17203 (clear_call_clobbered): Always clear var_ann->call_clobbered.
17204 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
17205 (reset_alias_info): Clear call clobbering info on MTAGs and
17207 (set_pt_anything): Set pt_global_mem.
17208 (create_tag_raw): Adjust comment.
17209 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
17211 2008-06-04 Joseph Myers <joseph@codesourcery.com>
17212 Maxim Kuvyrkov <maxim@codesourcery.com>
17214 * config/m68k/m68k.opt (mxgot): New option.
17215 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
17216 (m68k_output_addr_const_extra): New.
17217 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
17218 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
17219 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
17220 * doc/invoke.texi (M680x0 Options): Document -mxgot.
17222 2008-06-04 Richard Guenther <rguenther@suse.de>
17224 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
17225 negative or non-representable offsets.
17227 2008-06-03 H.J. Lu <hongjiu.lu@intel.com>
17229 * config/i386/i386.c (ix86_gen_leave): New.
17230 (ix86_gen_pop1): Likewise.
17231 (ix86_gen_add3): Likewise.
17232 (ix86_gen_sub3): Likewise.
17233 (ix86_gen_sub3_carry): Likewise.
17234 (ix86_gen_one_cmpl2): Likewise.
17235 (ix86_gen_monitor): Likewise.
17236 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
17237 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
17238 ix86_gen_one_cmpl2 and ix86_gen_monitor.
17239 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
17240 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
17241 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
17242 (ix86_expand_epilogue): Updated.
17243 (print_operand): Handle integer register operand for 'z'.
17244 (ix86_expand_strlensi_unroll_1): Likewise.
17245 (ix86_expand_strlen): Likewise.
17246 (ix86_expand_builtin): Likewise.
17247 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
17248 mov{q}/mov{l} and add{q}/add{l}.
17250 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
17252 * config/i386/i386.md (P): New mode iterator.
17253 (SFmode push_operand splitter): Macroize DImode and SImode pushes
17254 using P mode iterator.
17255 (DFmode push_operand splitter): Ditto.
17256 (XFmode push_operand splitter): Ditto.
17257 (DFmode float_extend SFmode push_operand splitter): Ditto.
17258 (XFmode float_extend SFmode push_operand splitter): Do not generate
17259 SImode pushes for 64bit target. Macroize Dimode and SImode
17260 pushes using P mode iterator.
17261 (XFmode float_extend DFmode push_operand splitter): Ditto.
17263 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
17265 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
17266 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
17267 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
17268 return type to int.
17269 (ix86_call_abi_override): Remove check for call_used_regs.
17271 2008-06-03 Richard Guenther <rguenther@suse.de>
17273 * tree-ssa-structalias.c (find_func_aliases): Add constraints
17274 for the lhs of calls if the return type contains pointers.
17276 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
17278 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
17279 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
17280 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
17281 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
17282 of cfun and DEFAULT_ABI to deceide abi mode.
17283 (DEFAULT_ABI): New.
17284 (REG_PARM_STACK_SPACE): Removed.
17285 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
17286 (STACK_BOUNDARY): Use default target to deceide stack boundary.
17287 * config/i386/i386-protos.h (ix86_cfun_abi): New.
17288 (ix86_function_abi): Likewise.
17289 (ix86_function_type_abi): Likewise.
17290 (ix86_call_abi_override): Likewise.
17291 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
17292 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
17293 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
17294 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
17296 (X86_64_REGPARM_MAX): New.
17297 (X86_64_SSE_REGPARM_MAX): New.
17298 (X64_REGPARM_MAX): New.
17299 (X64_SSE_REGPARM_MAX): New.
17300 (X86_32_REGPARM_MAX): New.
17301 (X86_32_SSE_REGPARM_MAX): New.
17302 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
17303 (ix86_function_regparm): Handle user calling abi.
17304 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
17305 by DEFAULT_ABI versus SYSV_ABI check.
17306 (ix86_reg_parm_stack_space): New.
17307 (ix86_function_type_abi): New.
17308 (ix86_call_abi_override): New.
17309 (ix86_function_abi): New.
17310 (ix86_cfun_abi): New.
17311 (init_cumulative_args): Call abi specific initialization.
17312 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
17313 (function_arg_64): Extend SSE_REGPARM_MAX check.
17314 (function_arg (): Remove TARGET_64BIT_MS_ABI.
17315 (ix86_pass_by_reference): Likewise.
17316 (ix86_function_value_regno_p): Likewise.
17317 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
17318 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
17319 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
17320 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
17321 (setup_incoming_varargs_64): Adjust regparm for call abi.
17322 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
17323 (ix86_va_start): Likewise.
17324 (ix86_gimplify_va_arg): Likewise.
17325 (ix86_expand_prologue): Likewise.
17326 (output_pic_addr_const): Likewise.
17327 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
17328 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
17329 (x86_output_mi_thunk): Likewise.
17330 (x86_function_profiler): Likewise.
17331 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
17332 (SYSV_ABI, MS_ABI): New constants.
17333 (DEFAULT_ABI): New.
17334 (init_regs): Add prototype of function in regclass.c file.
17335 (OVERRIDE_ABI_FORMAT): New.
17336 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
17337 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
17338 (OUTGOING_REG_PARM_STACK_SPACE): New.
17339 (ix86_reg_parm_stack_space): New prototype.
17340 (CUMULATIVE_ARGS): Add call_abi member.
17341 (machine_function): Add call_abi member.
17342 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
17343 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
17345 2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
17348 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
17349 (avr_builtin_setjmp_frame_value): New function.
17350 * config/avr/avr.md (nonlocal_goto_receiver): Define.
17351 (nonlocal_goto): Define.
17353 2008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
17355 * config/mips/mips.c (mips_emit_loadgp): Return early if
17356 there is nothing do to, otherwise emit a blockage if
17357 !TARGET_EXPLICIT_RELOCS || crtl->profile.
17358 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
17360 2008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17362 * configure.ac: Drop unneeded backslash ending up in config.in.
17363 * acinclude.m4: Likewise.
17364 * config.in: Regenerate.
17366 2008-05-26 Jan Hubicka <jh@suse.cz>
17368 * predict.c (maybe_hot_frequency_p): Break out of...
17369 (maybe_hot_bb_p): ... here.
17370 (maybe_hot_edge_p): New.
17371 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
17372 * basic-block.h (maybe_hot_edge_p): Declare.
17374 2008-05-31 Uros Bizjak <ubizjak@gmail.com>
17376 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
17377 (*cmpfp_<mode>_cc): Ditto.
17378 (*fp_jcc_8<mode>_387): Ditto.
17379 (*fop_<MODEF:mode>_2_i387): Ditto.
17380 (*fop_<MODEF:mode>_3_i387): Ditto.
17381 (*fop_xf_2_i387): Ditto.
17382 (*fop_xf_3_i387): Ditto.
17384 2008-06-02 Tomas Bily <tbily@suse.cz>
17386 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
17388 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
17390 * config/mips/mips.c (mips_valid_offset_p): New function.
17391 (mips_valid_lo_sum_p): Likewise.
17392 (mips_classify_address): Use them.
17393 (mips_force_address): New function.
17394 (mips_legitimize_address): Use it.
17395 * config/mips/mips.md (MOVE128): New mode iterator.
17396 (movtf): Require TARGET_64BIT. Remove empty strings.
17397 (*movtf_internal): Rename to...
17398 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
17399 of "R" and use {,fp}{load,store} attributes instead of "multi".
17400 Use a separate define_split.
17401 (*movtf_mips16): New pattern.
17403 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
17405 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
17406 * config/mips/mips.c (mips_expand_before_return): New function.
17407 (mips_expand_epilogue): Call it.
17408 * config/mips/mips.md (return): Turn into a define_expand.
17409 (*return): New insn.
17411 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
17413 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
17414 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
17415 functions. Do not emit uses and clobbers of CONCATs; individually
17416 use and clobber their operands.
17417 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
17418 gen_clobber, emit_use and gen_use.
17419 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
17420 (expand_builtin_return): Likewise.
17421 * cfgbuild.c (count_basic_blocks): Likewise.
17422 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
17423 * explow.c (emit_stack_restore): Likewise.
17424 * expmed.c (extract_bit_field_1): Likewise.
17425 * expr.c (convert_move, emit_move_complex_parts): Likewise.
17426 (emit_move_multi_word, store_constructor): Likewise.
17427 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
17428 (thread_prologue_and_epilogue_insns): Likewise.
17429 * lower-subreg.c (resolve_simple_move): Likewise.
17430 * optabs.c (widen_operand, expand_binop): Likewise.
17431 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
17432 * reload.c (find_reloads): Likewise.
17433 * reload1.c (eliminate_regs_in_insn): Likewise.
17434 * stmt.c (expand_nl_goto_receiver): Likewise.
17435 * config/alpha/alpha.md (builtin_longjmp): Likewise.
17436 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
17437 * config/arm/arm.c (arm_load_pic_register): Likewise.
17438 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
17439 * config/arm/arm.md (untyped_return): Likewise.
17440 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
17441 * config/avr/avr.c (expand_prologue): Likewise.
17442 * config/bfin/bfin.c (do_unlink): Likewise.
17443 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
17444 * config/cris/cris.c (cris_expand_prologue): Likewise.
17445 * config/darwin.c (machopic_indirect_data_reference): Likewise.
17446 (machopic_legitimize_pic_address): Likewise.
17447 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
17448 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
17449 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
17450 (ix86_expand_convert_uns_didf_sse): Likewise.
17451 (ix86_expand_vector_init_general): Likewise.
17452 * config/ia64/ia64.md (eh_epilogue): Likewise.
17453 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
17454 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
17455 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
17456 (config/iq2000/iq2000.c): Likewise.
17457 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
17458 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
17459 (builtin_longjmp): Likewise.
17460 * config/mn10300/mn10300.md (call, call_value): Likewise.
17461 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
17462 * config/pdp11/pdp11.md (abshi2): Likewise.
17463 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
17464 * config/s390/s390.c (s390_emit_prologue): Likewise.
17465 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
17466 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
17467 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
17468 * config/sh/sh.c (prepare_move_operands): Likewise.
17469 (output_stack_adjust, sh_expand_epilogue): Likewise.
17470 (sh_set_return_address, sh_expand_t_scc): Likewise.
17471 * config/sparc/sparc.c (load_pic_register): Likewise.
17472 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
17473 * config/spu/spu.c (spu_expand_epilogue): Likewise.
17474 * config/v850/v850.c (expand_epilogue): Likewise.
17476 2008-05-31 Anatoly Sokolov <aesok@post.ru>
17478 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
17479 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
17480 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
17481 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
17482 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
17483 stack pointer register.
17484 (output_movhi): Remove code for interrupt specific writing to the
17485 stack pointer register.
17487 2008-05-31 Richard Guenther <rguenther@suse.de>
17489 PR tree-optimization/34244
17490 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
17491 (tree_expr_nonzero_warnv_p): Likewise.
17492 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
17493 ssa_name_nonnegative_p.
17494 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
17495 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
17496 not tree_expr_nonzero_warnv_p.
17498 PR tree-optimization/36262
17500 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
17502 PR tree-optimization/34244
17503 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
17504 (record_numbers_of_iterations): New function.
17505 (execute_vrp): Cache the numbers of iterations of loops.
17506 * tree-scalar-evolution.c (scev_reset_except_niters):
17508 (scev_reset): Use scev_reset_except_niters.
17509 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
17511 2008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
17513 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
17514 __WORKAROUND_RETS when appropriate.
17516 2008-05-31 Uros Bizjak <ubizjak@gmail.com>
17518 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
17519 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
17521 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
17522 *fop_df_comm_sse insn patterns using MODEF mode iterator.
17523 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
17524 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
17525 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
17526 *fop_df_1_mixed insn patterns using MODEF mode iterator.
17527 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
17528 *fop_df_1_sse insn patterns using MODEF mode iterator.
17529 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
17530 *fop_df_1_i387 insn patterns using MODEF mode iterator.
17531 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
17532 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
17533 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
17534 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
17535 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
17536 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
17537 (*fop_xf_4_i387): Use <MODE> for mode attribute.
17538 (*fop_xf_5_i387): Ditto.
17539 (*fop_xf_6_i387): Ditto.
17541 2008-05-30 Richard Guenther <rguenther@suse.de>
17543 * builtins.c (build_string_literal): Avoid generating
17544 a non-gimple_val result.
17546 2008-05-30 DJ Delorie <dj@redhat.com>
17548 * exec-tool.in: Use an environment variable (private) instead of a
17549 file (shared) as a semaphore, so as to not break parallel builds.
17551 2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
17553 * optabs.c (maybe_encapsulate_block): Remove.
17554 (emit_libcall_block): Adjust accordingly.
17555 * optabs.h (maybe_encapsulate_block): Remove prototype.
17557 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
17558 Don't use maybe_encapsulate_block.
17560 2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
17562 * config/rs6000/rs6000.c (rs6000_legitimize_address,
17563 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
17564 rtx is a SYMBOL_REF before calling get_pool_constant.
17566 2008-05-30 Eric Botcazou <ebotcazou@adacore.com>
17568 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
17570 2008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
17572 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
17573 rather than OS names to choose INO_T_EQ definition.
17574 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
17575 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
17577 2008-05-29 Daniel Franke <franke.daniel@gmail.com>
17580 * config/darwin-f.c: New.
17581 * config/t-darwin: Added rule to build darwin-f.o.
17582 * config.gcc: Defined new variable, fortran_target_objs.
17583 (*-*-darwin*): Set fortran_target_objs.
17584 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
17585 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
17586 * configure: Regenerated.
17588 2008-05-29 H.J. Lu <hongjiu.lu@intel.com>
17591 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
17592 canonical type if needed.
17594 2008-05-29 Eric Botcazou <ebotcazou@adacore.com>
17596 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
17598 2008-05-29 Richard Guenther <rguenther@suse.de>
17600 PR tree-optimization/36343
17601 PR tree-optimization/36346
17602 PR tree-optimization/36347
17603 * tree-flow.h (clobber_what_p_points_to): Declare.
17604 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
17605 pointed-to variable is dereferenced is irrelevant to whether
17606 the pointer can access the pointed-to variable.
17607 (clobber_what_p_points_to): New function.
17608 * tree-ssa-alias.c (set_initial_properties): Use it.
17609 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
17610 call clobber check for NMTs.
17612 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
17614 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
17615 for printing gcov_type.
17617 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
17619 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
17620 and the eh region information.
17621 * value-prof.c (gimple_move_stmt_histograms): New function.
17622 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
17624 2008-05-28 Andreas Tobler <a.tobler@schweiz.org>
17626 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
17628 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
17630 * value-prof.c (tree_ic_transform): Print counts.
17631 * tree-profile.c (tree_gen_ic_func_profiler):
17632 Clear __gcov_indreict_call_callee variable to avoid misattribution
17635 2008-05-28 Rafael Espíndola <espindola@google.com>
17637 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
17640 2008-05-28 Richard Guenther <rguenther@suse.de>
17642 PR tree-optimization/36339
17643 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
17644 and clobbering code out of the loop.
17646 2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
17648 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
17651 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
17652 s390_contiguous_bitmask_p, s390_symref_operand_p,
17653 s390_check_symref_alignment, s390_reload_larl_operand,
17654 s390_reload_symref_address): New functions.
17655 (s390_branch_condition_mnemonic): Support compare and branch
17657 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
17658 and 'W' constraints.
17659 (s390_secondary_reload): Add secondary reloads for unaligned
17660 symbol refs or symbol refs to floating point or QI/TI mode
17662 (legitimate_address_p): Accept symbol references as addresses.
17663 (s390_expand_insv): Use rotate and insert selected bits
17664 instruction for insv when building for z10.
17665 (print_operand_address): Handle symbol ref addresses.
17666 (print_operand): Output modifier 'c' added for signed byte values.
17667 (s390_encode_section_info): Mark symbol refs with
17668 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
17670 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
17671 (length attribute): RRF, RRR have 4 byte length.
17672 (FPALL, INTALL): New mode iterators added.
17673 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
17674 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
17675 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
17676 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
17677 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
17678 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
17679 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
17680 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
17682 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
17683 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
17684 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
17685 reload<INTALL:mode><P:mode>_toreg_z10,
17686 reload<FPALL:mode><P:mode>_tomem_z10,
17687 reload<FPALL:mode><P:mode>_toreg_z10,
17688 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
17689 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
17690 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
17691 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
17693 (movmem, clrmem, cmpmem): New splitters added.
17695 * config/s390/predicates.md (larl_operand): Use
17696 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
17697 SYMBOL_REF_ALIGN1_P.
17698 (s390_signed_integer_comparison,
17699 s390_unsigned_integer_comparison): New predicates.
17701 * config/s390/s390-protos.h (s390_check_symref_alignment,
17702 s390_contiguous_bitmask_p, s390_reload_larl_operand,
17703 s390_reload_symref_address,
17704 s390_compare_and_branch_condition_mask): Prototypes added.
17706 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
17707 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
17708 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
17710 2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
17712 * config/s390/s390.c (z10_cost): New cost function for z10.
17713 (s390_handle_arch_option, override_options): Support -march=z10 switch.
17714 (s390_issue_rate): Adjust issue rate for z10.
17715 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
17716 (processor_flags): Add PF_Z10.
17717 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
17718 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
17719 * gcc/config.gcc: Add z10.
17721 2008-05-28 Richard Guenther <rguenther@suse.de>
17723 PR tree-optimization/36291
17724 * tree-flow. h (struct gimple_df): Remove var_anns member.
17725 * tree-flow-inline.h (gimple_var_anns): Remove.
17726 (var_ann): Simplify.
17727 * tree-dfa.c (create_var_ann): Simplify.
17728 (remove_referenced_var): Clear alias info from var_anns of globals.
17729 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
17730 (delete_tree_ssa): Clear alias info from var_anns of globals.
17731 Do not free var_anns.
17732 (var_ann_eq): Remove.
17733 (var_ann_hash): Likewise.
17735 2008-05-28 Mark Shinwell <shinwell@codesourcery.com>
17737 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
17738 and loongson2f entries.
17739 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
17740 * config/mips/mips.h (processor_type): Add Loongson-2E
17741 and Loongson-2F entries.
17742 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
17743 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
17744 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
17745 * doc/invoke.texi (MIPS Options): Document loongson2e
17746 and loongson2f processor names.
17748 2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
17752 * config/i386/i386.c (ix86_function_arg_boundary): Use
17753 alignment of canonical type.
17754 (ix86_expand_vector_move): Check unaligned memory access for
17757 2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
17759 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
17760 Moved to the front of file.
17762 2008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
17763 H.J. Lu <hongjiu.lu@intel.com>
17765 * dwarf2out.c (current_fde): New.
17767 (lookup_cfa:): Likewise.
17768 (dwarf2out_end_epilogue): Likewise.
17769 (dwarf2out_note_section_used): Likewise.
17771 2008-05-27 Michael Matz <matz@suse.de>
17774 * c.opt (Wenum-compare): New warning option.
17775 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
17777 2008-05-27 Michael Matz <matz@suse.de>
17779 PR middle-end/36326
17780 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
17782 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
17783 into memory as tail calls.
17785 2008-05-27 Richard Guenther <rguenther@suse.de>
17787 PR tree-optimization/36339
17788 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
17789 pointers cause all addressable variables to be call clobbered.
17791 2008-05-27 Richard Guenther <rguenther@suse.de>
17793 PR tree-optimization/36245
17794 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
17796 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
17798 * config/s390/s390.md: Replace all occurences of the 'm'
17799 constraint with 'RT'.
17801 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
17803 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
17805 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
17807 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
17808 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
17809 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
17811 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
17813 * reload.c: (find_reloads): Skip alternatives according to the
17814 "enabled" attribute. Constify the constraint variable.
17815 * recog.c (get_attr_enabled): Add default implementation.
17816 (extract_insn): Set the alternative_enabled_p array
17817 in the recog_data struct.
17818 (preprocess_constraints, constrain_operands): Skip
17819 alternatives according to the "enabled" attribute
17820 * recog.h (struct recog_data): New field alternative_enabled_p.
17821 (skip_alternative): New inline function.
17822 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
17823 (record_reg_classes): Skip alternative according to the
17824 "enabled" attribute.
17826 * doc/md.texi: Add documention for the "enabled" attribute.
17828 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
17830 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
17831 * postreload.c (reload_cse_simplify_operands): Replace 'm'
17832 constraint with TARGET_MEM_CONSTRAINT.
17833 * recog.c (asm_operand_ok, preprocess_constraints,
17834 constrain_operands): Likewise.
17835 * regclass.c (record_reg_classes): Likewise.
17836 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
17837 * reload1.c (maybe_fix_stack_asms): Likewise.
17838 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
17839 * recog.h: Adjust comment.
17840 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
17841 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
17842 * doc/md.texi: Add a note to description of 'm' constraint.
17843 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
17845 2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
17847 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
17848 that the bitfield is of integral type before testing its precision.
17850 2008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
17851 Sa Liu <saliu@de.ibm.com>
17853 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
17854 __modti3, __udivti3, __umodti3 and __udivmodti4.
17855 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
17856 that implement TImode mul and div functions.
17857 * config/spu/multi3.c: New. Implement __multi3.
17858 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
17859 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
17862 2008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
17864 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
17865 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
17866 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
17867 tls_sysv_suffix): New mode and mode attribute iterators.
17868 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
17869 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
17870 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
17871 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
17872 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
17875 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
17877 PR tree-optimization/36329
17878 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
17879 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
17880 * cgraphbuild.c (initialize_inline_failed): Use the latter
17881 macro in lieu of the former.
17882 * ipa-inline.c (cgraph_mark_inline): Likewise.
17883 (cgraph_decide_inlining_of_small_function): Likewise.
17884 (cgraph_decide_inlining): Likewise.
17885 (cgraph_decide_inlining_incrementally): Likewise.
17887 2008-05-26 Tristan Gingold <gingold@adacore.com>
17888 Anatoly Sokolov <aesok@post.ru>
17890 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
17891 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
17892 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
17893 optimization for 'avr6' architecture.
17895 2008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
17898 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
17900 2008-05-26 Richard Guenther <rguenther@suse.de>
17902 * tree-ssa-sccvn.c (expr_has_constants): Declare.
17903 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
17905 2008-05-26 H.J. Lu <hongjiu.lu@intel.com>
17907 PR middle-end/36253
17908 * caller-save.c (insert_restore): Verify alignment of spill space.
17909 (insert_save): Likewise.
17910 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
17911 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
17912 (STACK_SLOT_ALIGNMENT): Likewise.
17913 * function.c (LOCAL_ALIGNMENT): Removed.
17914 (get_stack_local_alignment): New.
17915 (assign_stack_local): Use it. Set alignment on stack slot.
17916 (assign_stack_temp_for_type): Use get_stack_local_alignment.
17917 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
17918 (STACK_SLOT_ALIGNMENT): New.
17919 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
17920 stack slot in XFmode.
17922 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
17924 2008-05-26 Kai Tietz <kai.tietz@onevision.com>
17927 * config/i386/i386.md (allocate_stack_worker_64): Make sure
17928 argument operand in rax isn't removed.
17930 2008-05-26 Richard Guenther <rguenther@suse.de>
17932 PR middle-end/36300
17933 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
17934 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
17936 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
17939 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
17941 2008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
17943 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
17944 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
17946 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
17948 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
17949 build a trampoline if we don't want one.
17950 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
17951 return zero for nested functions if we don't want a trampoline.
17953 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
17955 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
17957 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
17960 * c.opt: Removed undocumented option '-lang-fortran'.
17961 * c-common.h: Removed global variable 'lang_fortran'.
17962 * c-opts.c (c_common_handle_option): Removed code to handle
17963 option '-lang-fortran'. Updated includes.
17964 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
17965 definition of '__GFORTRAN__'.
17966 (define__GNUC__): Reimplemented to use BASEVER and
17967 cpp_define_formatted.
17968 (builtin_define_with_value_n): Removed.
17969 * c-incpath.h: Renamed to ...
17970 * incpath.h: ... this.
17971 * c-incpath.c: Renamed to ...
17972 * incpath.c: ... this. Updated includes.
17973 * fix-header.c: Updated includes.
17974 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
17975 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
17976 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
17978 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
17980 * tree.h: Update the table of flags used on tree nodes.
17981 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
17982 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
17983 (FORCED_LABEL): Add access check.
17984 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
17985 (ASM_INPUT_P): Likewise.
17986 (ASM_VOLATILE_P): Likewise.
17987 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
17988 (OMP_SECTION_LAST): Access private_flag directly.
17989 (OMP_RETURN_NOWAIT): Likewise.
17990 (OMP_PARALLEL_COMBINED): Likewise.
17991 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
17992 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
17993 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
17994 deprecated_flag directly.
17996 2008-05-25 H.J. Lu <hongjiu.lu@intel.com>
17998 * final.c (frame_pointer_needed): Removed.
17999 * flags.h (frame_pointer_needed): Likewise.
18001 * function.h (rtl_data): Add frame_pointer_needed.
18002 (frame_pointer_needed): New.
18004 2008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
18006 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
18008 2008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
18010 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
18013 2008-05-25 Alan Modra <amodra@bigpond.net.au>
18015 * c-common.c (strip_array_types): Move function to..
18017 (get_inner_array_type): Delete.
18018 * c-common.h (strip_array_types): Move declaration to..
18020 (get_inner_array_type): Delete.
18021 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
18022 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
18023 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
18024 * config/pa/pa.c (emit_move_sequence): Likewise.
18026 2008-05-24 H.J. Lu <hongjiu.lu@intel.com>
18028 * config/i386/i386.md (*sse_prologue_save_insn): Set length
18031 2008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
18033 * function.c: Include target hook for nonlocal_goto frame value.
18035 2008-05-24 Richard Guenther <rguenther@suse.de>
18037 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
18038 variable can be only accessed through a pointer or a union.
18040 2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18042 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
18043 * doc/extend.texi: Likewise.
18045 2008-05-23 DJ Delorie <dj@redhat.com>
18047 * config/m32c/jump.md (untyped_call): Add.
18049 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
18050 for A24 to PSImode.
18051 (m32c_address_cost): Detail costs for indirect offsets.
18053 2008-05-23 Rafael Espíndola <espindola@google.com>
18055 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
18056 if a node is a SUBREG.
18057 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
18060 2008-05-23 Paul Brook <paul@codesourcery.com>
18061 Carlos O'Donell <carlos@codesourcery.com>
18063 * doc/extend.texi: Clarify use of __attribute__((naked)).
18064 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
18065 * target.h (gcc_target): Add allocate_stack_slots_for_args.
18066 * function.c (use_register_for_decl): Use
18067 targetm.calls.allocate_stack_slots_for_args.
18068 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
18069 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
18070 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
18072 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
18074 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
18076 2008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
18078 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
18079 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
18080 is only rounded once.
18082 2008-05-23 Richard Guenther <rguenther@suse.de>
18084 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
18086 2008-05-23 Uros Bizjak <ubizjak@gmail.com>
18087 Jakub Jelinek <jakub@redhat.com>
18090 * configure.ac: Handle --enable-cld.
18091 * configure: Regenerated.
18092 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
18093 * config/i386/i386.h (struct machine_function): Add needs_cld field.
18094 (ix86_current_function_needs_cld): New define.
18095 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
18096 (cld): New isns pattern.
18097 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
18098 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
18099 * config/i386/i386.opt (mcld): New option.
18100 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
18101 TARGET_CLD and ix86_current_function_needs_cld.
18102 (override_options): Use -mcld by default for 32-bit code if
18105 * doc/install.texi (Options specification): Document --enable-cld.
18106 * doc/invoke.texi (Machine Dependent Options)
18107 [i386 and x86-64 Options]: Add -mcld option.
18108 (Intel 386 and AMD x86-64 Options): Document -mcld option.
18110 2008-05-23 Kai Tietz <kai.tietz@onevison.com>
18111 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
18112 (return_in_memory_64): Likewise.
18113 (return_in_memory_ms_64): Likewise.
18115 2008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18117 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
18118 * builtins.c (fold_builtin_fpclassify): New.
18119 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
18120 * builtins.def (BUILT_IN_FPCLASSIFY): New.
18121 * c-common.c (handle_type_generic_attribute): Adjust to accept
18122 fixed arguments before an elipsis.
18123 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
18124 * doc/extend.texi: Document __builtin_fpclassify.
18126 2008-05-22 Aldy Hernandez <aldyh@redhat.com>
18128 * omp-low.c (gate_expand_omp_ssa): Remove.
18129 (pass_expand_omp_ssa): Remove.
18130 (gate_expand_omp): Do not check for flag_openmp_ssa.
18131 * common.opt (-fopenmp-ssa): Remove.
18132 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
18134 2008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
18136 * config/sh/sh.opt (mfixed-range): New option.
18137 * config/sh/sh-protos.h (sh_fix_range): Declare.
18138 * config/sh/sh.c (sh_fix_range): New function.
18139 * config/sh/sh.h (sh_fixed_range_str): Declare.
18140 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
18142 * doc/invoke.texi (SH Options): Document -mfixed-range.
18144 2008-05-22 Kai Tietz <kai.tietz@onevision.com>
18146 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
18147 it before the redeclaration.
18149 2008-05-22 Anatoly Sokolov <aesok@post.ru>
18151 * config/avr/avr.c (get_sequence_length): Add new function.
18152 (expand_prologue, expand_epilogue): Remove duplicate code.
18154 2008-05-22 Rafael Espíndola <espindola@google.com>
18156 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
18159 2008-05-22 H.J. Lu <hongjiu.lu@intel.com>
18161 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
18162 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
18164 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
18165 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
18166 (vect_update_misalignment_for_peel): Likewise.
18167 (vector_alignment_reachable_p): Likewise.
18168 * tree-vect-transform.c (vectorizable_load): Likewise.
18169 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
18170 (get_vectype_for_scalar_type): Pass mode of scalar_type
18171 to UNITS_PER_SIMD_WORD.
18173 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
18174 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
18175 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
18176 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
18177 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
18179 2008-05-22 Ira Rosen <irar@il.ibm.com>
18181 PR tree-optimization/36293
18182 * tree-vect-transform.c (vect_transform_strided_load): Don't check
18183 if the first load must be skipped because of a gap.
18185 2008-05-22 Richard Guenther <rguenther@suse.de>
18187 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
18188 more cases of offset disambiguation that is possible if
18189 strict-aliasing rules apply.
18190 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
18191 for basic offset and type-based disambiguation.
18193 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
18195 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
18196 ix86_expand_vector_set on V16QImode for SSE4.1.
18198 2008-05-21 Tom Tromey <tromey@redhat.com>
18200 * c.opt (Wimport): Mark as undocumented.
18201 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
18203 (Warning Options): Likewise.
18204 * doc/cppopts.texi: Don't mention -Wimport.
18206 2008-05-21 Sebastian Pop <sebastian.pop@amd.com>
18208 PR tree-optimization/36287
18209 PR tree-optimization/36286
18210 * lambda-code.c (build_access_matrix): Do not use the loop->num
18211 for computing the number of induction variables: use the loop depth
18214 2008-05-21 Kai Tietz <kai.tietz@onevision.com>
18217 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
18218 option -f(no-)leading-underscore.
18220 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
18222 * config/i386/i386.c (ix86_expand_vector_init_general): Use
18223 GET_MODE_NUNITS (mode).
18225 2008-05-21 Peter Bergner <bergner@vnet.ibm.com>
18227 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
18228 (-mmulhw): Add 464 to description.
18229 (-mdlmzb): Likewise.
18230 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
18231 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
18233 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
18234 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
18235 * config/rs6000/rs6000.md: Update comments for 464.
18237 2008-05-21 Janis Johnson <janis187@us.ibm.com>
18239 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
18241 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
18243 * config/i386/sse.md (vec_extractv4sf): Removed.
18244 (vec_extractv2df): Likewise.
18245 (vec_extractv2di): Likewise.
18246 (vec_extractv4si): Likewise.
18247 (vec_extractv8hi): Likewise.
18248 (vec_extractv16qi): Likewise.
18249 (vec_extract<mode>): New.
18251 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
18253 * config/i386/sse.md (vec_setv4sf): Removed.
18254 (vec_setv2df): Likewise.
18255 (vec_setv2di): Likewise.
18256 (vec_setv4si): Likewise.
18257 (vec_setv8hi): Likewise.
18258 (vec_setv16qi): Likewise.
18259 (vec_set<mode>): New.
18261 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
18263 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
18264 goto for vec_concat and vec_interleave.
18266 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
18268 * config/i386/sse.md (vec_initv4sf): Removed.
18269 (vec_initv2df): Likewise.
18270 (vec_initv2di): Likewise.
18271 (vec_initv4si): Likewise.
18272 (vec_initv8hi): Likewise.
18273 (vec_initv16qi): Likewise.
18274 (vec_init<mode>): New.
18276 2008-05-21 Joseph Myers <joseph@codesourcery.com>
18278 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
18280 2008-05-21 Tom Tromey <tromey@redhat.com>
18282 * ggc-zone.c (lookup_page_table_if_allocated): New function.
18283 (zone_find_object_offset): Likewise.
18284 (gt_ggc_m_S): Likewise.
18285 (highest_bit): Likewise.
18286 * ggc-page.c (gt_ggc_m_S): New function.
18287 * stringpool.c (string_stack): Remove.
18288 (init_stringpool): Update.
18289 (ggc_alloc_string): Use ggc_alloc.
18290 (maybe_delete_ident): New function.
18291 (ggc_purge_stringpool): Likewise.
18292 (gt_ggc_m_S): Remove.
18293 * ggc-common.c (ggc_protect_identifiers): New global.
18294 (ggc_mark_roots): Call ggc_purge_stringpool. Use
18295 ggc_protect_identifiers.
18296 * ggc.h (ggc_protect_identifiers): Declare.
18297 (gt_ggc_m_S): Update.
18298 (ggc_purge_stringpool): Declare.
18299 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
18300 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
18302 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
18304 2008-05-21 David S. Miller <davem@davemloft.net>
18306 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
18309 2008-05-21 Eric Botcazou <ebotcazou@adacore.com>
18311 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
18314 2008-05-20 David Daney <ddaney@avtrex.com>
18316 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
18317 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
18318 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
18319 UNSPEC_UPDATE_GOT_VERSION): Renumber.
18320 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
18321 (atomic_hiqi_op): New define_code_iterator.
18322 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
18323 mips_expand_compare_and_swap_12.
18324 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
18325 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
18326 (sync_<optab><mode>, sync_old_<optab><mode>,
18327 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
18328 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
18329 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
18330 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
18331 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
18332 (test_and_set_12): New insn.
18333 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
18334 sync_new_<optab><mode>, sync_old_nand<mode>,
18335 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
18336 clobber to operand 0 for SI and DI mode insns.
18337 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
18338 mips_gen_fn_4): New typedefs.
18339 (mips_gen_fn_ptrs): Define new union type.
18340 (mips_expand_compare_and_swap_12): Remove declaration.
18341 (mips_expand_atomic_qihi): Declare function.
18342 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
18343 (mips_expand_atomic_qihi): ... this. Use new generator function
18345 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
18346 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
18347 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
18348 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
18349 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
18350 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
18351 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
18352 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
18353 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
18354 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
18357 2008-05-20 H.J. Lu <hongjiu.lu@intel.com>
18359 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
18362 2008-05-20 Anatoly Sokolov <aesok@post.ru>
18364 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
18365 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
18366 (avr_attribute_table): Add 'OS_main' function attribute.
18367 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
18368 functions with 'OS_main' attribute.
18370 2008-05-20 Richard Guenther <rguenther@suse.de>
18372 PR tree-optimization/35204
18373 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
18374 helper, split out from ...
18375 (DFS): ... here. Make the DFS walk non-recursive.
18377 2008-05-20 Sebastian Pop <sebastian.pop@amd.com>
18378 Jan Sjodin <jan.sjodin@amd.com>
18380 PR tree-optimization/36181
18381 * tree-parloops.c (loop_has_vector_phi_nodes): New.
18382 (parallelize_loops): Don't parallelize when the loop has vector
18385 2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
18386 Sebastian Pop <sebastian.pop@amd.com>
18388 * tree-loop-linear.c (gather_interchange_stats): Look in the access
18389 matrix, and never look at the tree representation of the memory
18391 (linear_transform_loops): Computes parameters and access matrices.
18392 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
18394 (access_matrix_get_index_for_parameter): New.
18395 * tree-data-ref.h (struct access_matrix): New.
18396 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
18397 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
18398 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
18399 am_vector_index_for_loop): New.
18400 (struct data_reference): Add field access_matrix.
18401 (DR_ACCESS_MATRIX): New.
18402 (compute_data_dependences_for_loop): Update declaration.
18403 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
18404 * lambda.h (lambda_vector_vec_p): Declared.
18405 * lambda-code.c: Depend on pointer-set.h.
18406 (lambda_collect_parameters_from_af, lambda_collect_parameters,
18407 av_for_af_base, av_for_af, build_access_matrix,
18408 lambda_compute_access_matrices): New.
18409 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
18411 2008-05-20 Joseph Myers <joseph@codesourcery.com>
18413 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
18414 $SOURCEDIR/include.
18416 2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
18417 Sebastian Pop <sebastian.pop@amd.com>
18419 PR tree-optimization/36206
18420 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
18422 (instantiate_scev_1): Rename flags to fold_conversions.
18423 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
18424 outeside instantiation_loop.
18425 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
18426 (evolution_function_is_affine_or_constant_p): Removed.
18427 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
18429 (analyze_siv_subscript): Pass in the loop nest number.
18430 Call evolution_function_is_affine_in_loop instead of
18431 evolution_function_is_affine_p.
18432 (analyze_overlapping_iterations): Pass in the loop nest number.
18434 2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
18435 Sebastian Pop <sebastian.pop@amd.com>
18437 PR tree-optimization/36206
18438 * tree-chrec.h (chrec_fold_op): New.
18439 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
18442 2008-05-20 Nathan Sidwell <nathan@codesourcery.com>
18444 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
18446 (remove_duplicates): Do not set inode on non-inode systems.
18449 2008-05-20 Sandra Loosemore <sandra@codesourcery.com>
18451 * config.gcc (tm_file): Update comments about relative pathnames.
18453 2008-05-20 Richard Guenther <rguenther@suse.de>
18455 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
18456 * tree-ssa-sccvn.c (process_scc): Likewise.
18457 * tree-ssa-sink.c (execute_sink_code): Likewise.
18458 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
18459 * tree-vrp.c (process_assert_insertions): Likewise.
18460 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
18461 (perform_tree_ssa_dce): Likewise.
18462 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
18463 (dump_dominator_optimization_stats): Likewise.
18464 * tree-vectorizer.c (vectorize_loops): Likewise.
18466 2008-05-20 Richard Guenther <rguenther@suse.de>
18468 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
18470 2008-05-20 Kai Tietz <kai.tietz@onevision.com>
18472 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
18473 (ix86_i386elf_return_in_memory): Likewise.
18474 (ix86_i386interix_return_in_memory): Likewise.
18475 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
18476 (SUBTARGET_RETURN_IN_MEMORY): New.
18477 * config/i386/i386elf.h: Likewise.
18478 * config/i386/ptx4-i.h: Likewise.
18479 * config/i386/sol2-10.h: Likewise.
18480 * config/i386/sysv4.h: Likewise.
18481 * config/i386/vx-common.h: Likewise.
18482 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
18483 * config/i386/i386.c (ix86_return_in_memory): Made static and
18484 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
18485 (ix86_i386elf_return_in_memory): Removed.
18486 (ix86_i386interix_return_in_memory): Removed.
18487 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
18488 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
18490 2008-05-20 Alexandre Oliva <aoliva@redhat.com>
18492 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
18494 2008-05-19 Xinliang David Li <davidxl@google.com>
18496 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
18498 * common.opt: Ditto.
18499 * doc/invoke.texi: Ditto.
18501 2008-05-19 Eric Botcazou <ebotcazou@adacore.com>
18503 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
18504 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
18506 2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
18508 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
18509 sizes of operand array from 8/4 to 4/2.
18510 (ix86_expand_vector_init_general): Change size of operand array
18511 from 32 to 16. Remove op0, op1 and half_mode.
18513 2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
18515 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
18516 (ix86_expand_vector_init_interleave): Likewise.
18517 (ix86_expand_vector_init_general): Use them. Assert
18518 word_mode == SImode when n_words == 4.
18520 2008-05-19 Uros Bizjak <ubizjak@gmail.com>
18522 * config/i386/i386.c (ix86_secondary_reload): New static function.
18523 (TARGET_SECONDARY_RELOAD): New define.
18524 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
18525 * config/i386/i386.md (reload_outqi): Remove.
18527 2008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18529 PR middle-end/35509
18530 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
18531 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
18532 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
18533 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
18534 (fold_builtin_1): Likewise.
18535 * builtins.def (BUILT_IN_ISINF_SIGN): New.
18536 c-common.c (check_builtin_function_arguments): Handle
18537 BUILT_IN_ISINF_SIGN.
18538 * doc/extend.texi: Document __builtin_isinf_sign.
18539 * fold-const.c (operand_equal_p): Handle COND_EXPR.
18541 2008-05-18 Eric Botcazou <ebotcazou@adacore.com>
18543 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
18544 EH cleanup at the end of the pass, search for those that have been
18545 turned into forwarder blocks and do the cleanup on their successor.
18547 2008-05-18 Richard Guenther <rguenther@suse.de>
18549 * tree-cfg.c (verify_gimple_expr): Allow conversions from
18550 pointers to sizetype and vice versa.
18552 2008-05-18 Xinliang David Li <davidxl@google.com>
18554 * gcc/tree-ssa-dce.c: Coding style fix.
18555 (check_pow): Documentation comment.
18556 (check_log): Documenation comment. Coding style fix.
18557 (is_unnecessary_except_errno_call): Ditto.
18558 (gen_conditions_for_pow): Ditto.
18559 (gen_conditions_for_log): Ditto.
18560 (gen_shrink_wrap_conditions): Ditto.
18561 (shrink_wrap_one_built_in_calls): Ditto.
18562 * gcc/doc/invoke.texi: Better documentation string.
18563 * ChangeLog: Fix wrong change log entries from
18564 May 17 checkin on function call DCE.
18566 2008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
18568 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
18570 2008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
18572 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
18573 * df-problems.c (simulation routines): Fixed block comment to
18574 properly say how to add forwards scanning functions.
18576 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
18578 * tree-inline.c (setup_one_parameter): Remove dead code.
18580 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
18582 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
18583 a BIT_AND_EXPR only for an INTEGER_TYPE.
18585 2008-05-17 Xinliang David Li <davidxl@google.com>
18587 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
18588 (check_pow, check_log, is_unnecessary_except_errno_call): New
18589 functions to check for eliminating math functions that are pure
18590 except for setting errno.
18591 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
18592 general condition expressions for shrink-wrapping pow/log calls.
18593 (gen_shrink_wrap_conditions): Ditto.
18594 (shrink_wrap_one_built_in_call): Ditto.
18595 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
18596 (mark_operand_necessary): If debugging, output if OP is necessary.
18597 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
18599 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
18601 * gcc/common.opt: New user flag -ftree-builtin-dce.
18602 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
18604 2008-05-16 David S. Miller <davem@davemloft.net>
18606 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
18607 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
18609 2008-05-16 Uros Bizjak <ubizjak@gmail.com>
18612 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
18614 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
18616 * ifcvt.c (dead_or_predicable): Rename
18617 df_simulate_one_insn_backwards to df_simulate_one_insn.
18618 * recog.c (peephole2_optimize): Ditto.
18619 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
18621 * df.h: Rename df_simulate_one_insn_backwards to
18622 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
18623 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
18624 scanning of defs and uses.
18625 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
18626 (df_simulate_one_insn_forwards): Removed.
18628 2008-05-16 Doug Kwan <dougkwan@google.com>
18630 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
18632 (real_from_string): Handle NaNs and Inf as approriate.
18634 2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
18636 * doc/gty.texi (Source Files Containing Type Information): Note
18637 that headers should appear first in the gtfiles list.
18639 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
18641 * tree.def (COND_EXEC): Properly documented this code.
18643 2008-05-16 Diego Novillo <dnovillo@google.com>
18645 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
18646 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
18649 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
18651 * tree-ssa-dse (max_stmt_uid): Removed.
18652 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
18653 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
18654 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
18655 * function.h (cfun.last_stmt_uid): New field.
18656 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
18657 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
18659 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
18660 (create_stmt_ann): Initialize the ann->uid field.
18661 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
18663 * tree-flow.h (renumber_gimple_stmt_uids): New function.
18665 2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
18667 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
18668 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
18669 (init_empty_tree_cfg): Call it.
18671 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
18673 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
18676 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
18678 * doc/invoke.text (-fdump-tree-*-verbose): New option.
18679 * tree-dump.c (dump_options): New verbose option.
18680 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
18682 * tree-pass.h (TDF_VERBOSE): New dump flag.
18683 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
18684 (tree-flow.h): Added include.
18685 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
18687 2008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
18689 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
18691 From Jie Zhang <jie.zhang@analog.com>
18692 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
18693 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
18694 mcpu=bf561-none and mcpu=bf561-0.2.
18695 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
18696 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
18697 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
18698 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
18699 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
18700 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
18701 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
18703 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
18704 (cputype_selected): Remove.
18705 (bfin_handle_option): Don't use cputype_selected.
18706 (override_options): When no mcpu option, enable all workarounds.
18707 Don't use bfin_workarounds.
18708 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
18710 (DEFAULT_CPU_TYPE): Don't define.
18712 2008-05-16 Richard Guenther <rguenther@suse.de>
18714 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
18715 on deletion of the last stmt.
18717 2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
18719 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
18720 V8HImode for SSE2 and V16QImode for SSE4.1.
18722 2008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
18724 * cgraph.h (compute_inline_parameters): Made public.
18725 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
18726 variable_generate_summary, function_write_summary,
18727 variable_write_summary, variable_read_summary. Added generate_summary,
18728 write_summary, read_summary.
18729 * cgraphunit.c (cgraph_process_new_functions): Changed call from
18730 pass_ipa_inline.function_generate_summary, to
18731 compute_inline_parameters.
18732 * ipa-inline.c (compute_inline_parameters): Made public and added
18734 (compute_inline_parameters_for_current): New function.
18735 (pass_inline_param): Now calls compute_inline_parameters_for_current.
18736 (inline_generate_summary): Removed parameter and made to loop over
18738 (pass_ipa_inline): Updated for new IPA_PASS structure.
18739 * passes.c (execute_ipa_summary_passes): Now is called once per
18740 pass rather than once per node*pass.
18742 2008-05-15 Anatoly Sokolov <aesok@post.ru>
18744 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
18745 avr_have_mul_p, avr_asm_only_p): Remove variables.
18746 (avr_override_options): Remove initialization of removed variables.
18747 (avr_file_start): Convert removed variables to fields of
18748 'struct base_arch_s *avr_current_arch'.
18749 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
18750 (AVR_HAVE_MUL): (Ditto.).
18751 (AVR_HAVE_MOVW): (Ditto.).
18752 (AVR_HAVE_LPMX): (Ditto.).
18753 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
18754 avr_asm_only_p): Remove declaration.
18756 2008-05-15 Diego Novillo <dnovillo@google.com>
18758 * config/arm/arm.c (arm_return_in_memory): Fix return type.
18759 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
18761 2008-05-15 Adam Nemet <anemet@caviumnetworks.com>
18763 PR middle-end/36194
18764 * combine.c (check_conversion): Rename back to check_promoted_subreg.
18765 Don't call record_truncated_value from here.
18766 (record_truncated_value): Turn it into a for_each_rtx callback.
18767 (record_truncated_values): New function.
18768 (combine_instructions): Call note_uses with record_truncated_values.
18769 Change name of check_conversion to check_promoted_subreg.
18771 2008-05-15 Janis Johnson <janis187@us.ibm.com>
18773 * doc/sourcebuild.texi: Document support for torture tests.
18775 2008-05-15 Uros Bizjak <ubizjak@gmail.com>
18777 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
18778 to alternative 4 of operand 2.
18780 2008-05-15 Richard Guenther <rguenther@suse.de>
18782 * tree-pass.h (current_pass): Declare.
18783 (get_pass_for_id): Likewise.
18784 * passes.c (passes_by_id, passes_by_id_size): New globals.
18785 (set_pass_for_id): New function.
18786 (get_pass_for_id): Likewise.
18787 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
18788 (execute_function_todo): Flush per function statistics.
18789 * toplev.c (compile_file): Init statistics.
18790 (general_init): Do early statistics initialization.
18791 (finalize): Finish statistics.
18792 * statistics.h (statistics_early_init): Declare.
18793 (statistics_init): Likewise.
18794 (statistics_fini): Likewise.
18795 (statistics_fini_pass): Likewise.
18796 (statistics_counter_event): Likewise.
18797 (statistics_histogram_event): Likewise.
18798 * statistics.c: New file.
18799 * Makefile.in (OBJS-common): Add statistics.o.
18800 (statistics.o): Add dependencies.
18801 * doc/invoke.texi (-fdump-statistics): Document.
18803 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
18804 (insert): Likewise.
18805 (execute_pre): Use statistics_counter_event.
18806 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
18807 (substitute_and_fold): Increment it. Use statistics_counter_event.
18809 2008-05-15 Diego Novillo <dnovillo@google.com>
18811 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
18813 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
18814 * tree-ssa-alias.c (new_type_alias): Remove references to
18815 sub-variables from comment.
18816 * tree-ssa-operands.c (swap_tree_operands): Likewise.
18818 2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
18820 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
18821 attribute to 1 only for insertps alternative.
18823 2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
18825 * config/bfin/bfin.md (loadbytes): New pattern.
18826 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
18827 (bfin_init_builtins): Initialize it.
18828 (bdesc_1arg): Add it.
18830 2008-05-15 Sa Liu <saliu@de.ibm.com>
18832 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
18833 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
18834 * testsuite/lib/target-supports.exp: Add
18835 check_effective_target_fortran_integer_16.
18837 2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
18839 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
18840 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
18841 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
18842 (TARGET_RETURN_IN_MEMORY): Define.
18844 2008-05-15 Richard Guenther <rguenther@suse.de>
18846 PR middle-end/36244
18847 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
18848 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
18849 represent unmodifiable vars.
18851 2008-05-15 Richard Guenther <rguenther@suse.de>
18853 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
18854 INDIRECT_REF and TARGET_MEM_REF.
18855 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
18858 2008-05-15 Uros Bizjak <ubizjak@gmail.com>
18859 H.J. Lu <hongjiu.lu@intel.com>
18861 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
18862 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
18863 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
18864 insn alternatives. Add missing alternatives.
18865 (*vec_concatv2di_rex64_sse4_1): Likewise.
18866 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
18867 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
18868 Require TARGET_SSE.
18870 2008-05-15 Richard Guenther <rguenther@suse.de>
18872 PR tree-optimization/36009
18873 PR tree-optimization/36204
18874 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
18875 (determine_invariantness_stmt): Record the loop a store is
18876 always executed in.
18877 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
18880 2008-05-15 Richard Guenther <rguenther@suse.de>
18882 PR tree-optimization/34330
18883 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
18884 through the pointer will alias the SMT.
18886 2008-05-14 Andreas Tobler <a.tobler@schweiz.org>
18888 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
18890 2008-05-14 H.J. Lu <hongjiu.lu@intel.com>
18892 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
18894 2008-05-14 Michael Meissner <michael.meissner@amd.com>
18895 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
18897 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
18898 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
18899 (vashl_optab): New optab for vector/vector shifts.
18900 (vashr_optab): Ditto.
18901 (vlshr_optab): Ditto.
18902 (vrotl_optab): Ditto.
18903 (vrotr_optab): Ditto.
18904 (optab_subtype): New enum for optab_for_tree_code call.
18905 (optab_for_tree_code): Add enum optab_subtype argument.
18907 * optabs.c (optab_for_tree_code): Take an additional argument to
18908 distinguish between a vector shift by a scalar and vector shift by
18909 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
18910 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
18911 vector shift by a vector.
18912 (expand_widen_pattern_expr): Pass additional argument to
18913 optab_for_tree_code.
18915 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
18916 vrotl_optab, vrotr_optab.
18918 * expr.c (expand_expr_real_1): Update calls to
18919 optab_for_tree_code to distinguish between vector shifted by a
18920 scalar and vector shifted by a vector.
18921 * tree-vectorizer.c (supportable_widening_operation): Ditto.
18922 (supportable_narrowing_operation): Ditto.
18923 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
18924 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
18925 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
18926 (vect_create_epilog_for_reduction): Ditto.
18927 (vectorizable_reduction): Ditto.
18928 (vectorizable_operation): Ditto.
18929 (vect_strided_store_supported): Ditto.
18930 (vect_strided_load_supported): Ditto.
18931 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
18932 * expmed.c (expand_shift): Ditto.
18934 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
18936 (ashr@var{m}3): Ditto.
18937 (vashl@var{m}3): Document new vector/vector shift standard name.
18938 (vashr@var{m}3): Ditto.
18939 (vlshr@var{m}3): Ditto.
18940 (vrotl@var{m}3): Ditto.
18941 (vrotr@var{m}3): Ditto.
18943 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
18944 (PPERM_INVERT): Ditto.
18945 (PPERM_REVERSE): Ditto.
18946 (PPERM_REV_INV): Ditto.
18947 (PPERM_ZERO): Ditto.
18948 (PPERM_ONES): Ditto.
18949 (PPERM_SIGN): Ditto.
18950 (PPERM_INV_SIGN): Ditto.
18951 (PPERM_SRC1): Ditto.
18952 (PPERM_SRC2): Ditto.
18954 * config/i386/sse.md (mulv2di3): Add SSE5 support.
18955 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
18956 allows a memory operand to be the value being added, and split it
18957 to improve vectorization.
18958 (sse5_pmacsdqh_mem): Ditto.
18959 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
18960 (sse5_mulv2div2di3_high): Ditto.
18961 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
18962 (vec_pack_trunc_v4si): Ditto.
18963 (vec_pack_trunc_v2di): Ditto.
18964 (sse5_pcmov_<mode>): Remove code that tried to use use
18965 andps/andnps instead of pcmov.
18966 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
18967 pmacsdqh instructions.
18968 (vec_widen_smult_lo_v4si): Ditto.
18970 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
18971 (PPERM_INVERT): Ditto.
18972 (PPERM_REVERSE): Ditto.
18973 (PPERM_REV_INV): Ditto.
18974 (PPERM_ZERO): Ditto.
18975 (PPERM_ONES): Ditto.
18976 (PPERM_SIGN): Ditto.
18977 (PPERM_INV_SIGN): Ditto.
18978 (PPERM_SRC1): Ditto.
18979 (PPERM_SRC2): Ditto.
18980 (ix86_expand_sse_movcc): Move the SSE5 test after the if
18982 (ix86_expand_int_vcond): If SSE5 generate all possible integer
18984 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
18985 says ignore whether the last reference is a memory operand.
18987 2008-05-14 Michael Meissner <michael.meissner@amd.com>
18988 Paolo Bonzini <bonzini at gnu dot org>
18990 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
18993 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
18994 (vlshr<mode>3): Rename from vlshr<mode>3.
18995 (vashr<mode>3): Rename from vashr<mode>3.
18996 (mulv4sf3): Change the names of vector shift patterns.
19000 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
19003 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
19028 * config/spu/spu.md (v): New iterator macro to add v for vector types.
19029 (floatunssidf2_internal): Change vector/vector shift names.
19030 (floatunsdidf2_internal): Ditto.
19037 (vashl<mode>3): Rename from ashl<mode>3.
19038 (vashr<mode>3): Rename from ashr<mode>3.
19039 (vlshr<mode>3): Rename from lshr<mode>3.
19040 (vrotl<mode>3): Rename from rotl<mode>3.
19042 2008-05-14 Michael Meissner <michael.meissner@amd.com>
19045 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
19046 multiply gives the wrong value when doing widening multiplies.
19047 (vec_widen_smult_lo_v4si): Ditto.
19049 2008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
19051 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
19052 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
19053 emit_library_call_value.
19054 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
19055 * tree.h (ECF_LIBCALL_BLOCK): Removed.
19056 * calls.c (initialize_argument_information, precompute_arguments,
19057 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
19058 (precompute_arguments): Removed flags parameter.
19059 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
19061 2008-05-14 Richard Guenther <rguenther@suse.de>
19063 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
19064 Make sure to register the store if the use is a PHI_NODE.
19066 2008-05-14 Olivier Hainque <hainque@adacore.com>
19068 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
19069 memory if the component is to be referenced in BLKmode according
19070 to get_inner_reference.
19072 2008-05-14 Adam Nemet <anemet@caviumnetworks.com>
19074 * calls.c (emit_library_call_value_1): Restore code clearing
19075 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
19077 2008-05-14 Olivier Hainque <hainque@adacore.com>
19078 Nicolas Roche <roche@adacore.com>
19080 * configure.ac: Add support for a "gcc_subdir" variable in
19081 config-lang.in, to denote a subdirectory where the language/GCC
19082 integration files are to be found.
19083 * configure: Regenerate.
19085 2008-05-14 Ira Rosen <irar@il.ibm.com>
19087 PR tree-optimization/36098
19088 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
19089 value for the first load in the group in case of a gap.
19090 (vect_build_slp_tree): Check that there are no gaps in loads.
19092 2008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
19094 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
19095 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
19096 expand_copysign_bit): Change call to emit_no_conflict_block to
19097 emit_insn and remove unneeded code to construct extra args.
19098 (emit_no_conflict_block): Removed.
19099 * optabls.h: (emit_no_conflict_block): Removed.
19100 * cse.c (cse_extended_basic_block): Remove search for
19101 REG_NO_CONFLICT note.
19102 * global.c: Removed incorrect comment added in revision 117.
19103 * expr.c (convert_move): Change call to emit_no_conflict_block to
19105 * recog.c: Change comments so that they do not mention
19107 * local_alloc.c (combine_regs): Removed last parameter.
19108 (no_conflict_p): Removed.
19109 (block_alloc): Removed note, no_conflict_combined_regno and set
19110 local vars. Removed all code to process REG_NO_CONFLICT blocks.
19111 (combine_regs): Removed already_dead and code to look for
19112 REG_NO_CONFLICT notes.
19113 * lower_subreg (remove_retval_note): Removed code to look for
19114 REG_NO_CONFLICT block.
19115 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
19116 (resolve_clobber): Remove code to process libcalls that have
19117 REG_NO_CONFLICT notes.
19118 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
19120 * combine.c (can_combine_p, distribute_notes): Removed
19121 REG_NO_CONFLICT case.
19122 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
19124 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
19125 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
19127 * reg-notes.def (NO_CONFLICT): Removed.
19129 2008-05-14 David S. Miller <davem@davemloft.net>
19131 * config/sparc/sparc.c (sparc_profile_hook): If
19132 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
19133 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
19134 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
19136 2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
19138 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
19140 2008-05-13 Uros Bizjak <ubizjak@gmail.com>
19143 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
19144 and op1 expansion before vector concat to have less live pseudos.
19146 2008-05-13 H.J. Lu <hongjiu.lu@intel.com>
19148 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
19149 ix86_expand_vector_set if supported.
19151 2008-05-13 Diego Novillo <dnovillo@google.com>
19152 Kenneth Zadeck <zadeck@naturalbridge.com>
19154 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
19156 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
19157 phinodes_print_statistics, init_ssanames, fini_ssanames,
19158 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
19159 release_ssa_name, release_defs, replace_ssa_name_symbol,
19160 ssanames_print_statistics): Move ...
19161 * tree-flow.h: ... here.
19162 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
19163 Use FN instead of cfun.
19164 (make_ssa_name_fn): Rename from make_ssa_name.
19165 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
19166 * tree-flow-inline.h (make_ssa_name): Move from
19167 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
19168 * omp-low.c (expand_omp_parallel):
19169 * tree-flow-inline.h (redirect_edge_var_map_result):
19170 * tree-ssa.c (init_tree_ssa): Add argument FN.
19171 Use it instead of cfun. Update all users.
19173 2008-05-13 Tom Tromey <tromey@redhat.com>
19175 PR preprocessor/22168:
19176 * doc/cpp.texi (Top): Update menu.
19177 (Alternatives to Wrapper #ifndef): New node.
19178 (Other Directives): Document deprecation.
19179 (Obsolete Features): Remove menu.
19180 (Assertions): Merge node into Obsolete Features.
19181 (Obsolete once-only headers): Move earlier; rename to Alternatives
19182 to Wrapper #ifndef.
19183 * doc/cppopts.texi: Update.
19184 * c.opt (Wdeprecated): Enable for C and ObjC.
19185 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
19186 (C++ Dialect Options): Move -Wno-deprecated from here to...
19187 (Warning Options): ... here.
19189 2008-05-13 Richard Guenther <rguenther@suse.de>
19191 PR middle-end/36227
19192 * fold-const.c (fold_sign_changed_comparison): Do not allow
19193 changes in pointer-ness.
19195 2008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
19198 * config/sh/sh.c (sh_expand_prologue): Don't clear
19199 RTX_FRAME_RELATED_P for push insns.
19201 2008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
19203 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
19205 2008-05-12 Anatoly Sokolov <aesok@post.ru>
19207 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
19208 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
19209 Use 'machine->is_leaf' instead of 'leaf_func_p'.
19211 2008-05-12 H.J. Lu <hongjiu.lu@intel.com>
19213 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
19214 (*vec_concatv4sf_sse): This.
19215 (*sse2_concatv2si): Renamed to ...
19216 (*vec_concatv2si_sse2): This.
19217 (*sse1_concatv2si): Renamed to ...
19218 (*vec_concatv2si_sse): This.
19219 (*vec_concatv2di_rex): Renamed to ...
19220 (*vec_concatv2di_rex64): This.
19221 (*vec_concatv2si_sse4_1): New.
19222 (*vec_concatv2di_rex64_sse4_1): Likewise.
19224 2008-05-12 Uros Bizjak <ubizjak@gmail.com>
19226 PR rtl-optimization/36111
19227 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
19228 that was created for swappable operands.
19230 2008-05-12 Samuel Tardieu <sam@rfc1149.net>
19233 * Makefile.in: Substitute GNATMAKE and GNATBIND.
19234 * configure.ac: Add call to ACX_PROG_GNAT.
19236 2008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
19238 * optc-gen.awk: Fix comment typo.
19240 2008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
19242 * pretty-print.c (pp_integer_with_precision): Use
19243 HOST_LONG_LONG_FORMAT.
19245 2008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
19247 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
19249 2008-05-10 H.J. Lu <hongjiu.lu@intel.com>
19251 * config/i386/i386.c (bdesc_ptest): Removed.
19252 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
19253 (bdesc_args): Add __builtin_ia32_ptestz128,
19254 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
19255 (ix86_init_mmx_sse_builtins): Updated.
19256 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
19257 (ix86_expand_builtin): Updated.
19259 2008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
19261 * tree-cfg.c (valid_fixed_convert_types_p): New function.
19262 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
19264 2008-05-10 Uros Bizjak <ubizjak@gmail.com>
19266 * value-prof.c (interesting_stringop_to_profile): Do not
19267 return early for BUILT_IN_MEMPCPY.
19269 2008-05-09 H.J. Lu <hongjiu.lu@intel.com>
19271 * calls.c (expand_call): Don't use callgraph to increase
19272 preferred_stack_boundary.
19274 * cgraph.h (cgraph_rtl_info): Use unsigned on
19275 preferred_incoming_stack_boundary.
19277 * final.c (rest_of_clean_state): Use unsigned on
19278 preferred_stack_boundary.
19280 2008-05-09 Tom Tromey <tromey@redhat.com>
19282 PR preprocessor/22231:
19283 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
19286 2008-05-09 Uros Bizjak <ubizjak@gmail.com>
19288 PR tree-optimization/36129
19289 * tree-ssa-ccp.c: Include value-prof.h.
19290 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
19291 built-in function was folded to a constant.
19292 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
19294 2008-05-09 Jan Sjodin <jan.sjodin@amd.com>
19295 Sebastian Pop <sebastian.pop@amd.com>
19297 * tree-scalar-evolution.c: Document instantiate_scev.
19298 (instantiate_parameters_1): Renamed instantiate_scev_1.
19299 Don't use the same loop for instantiation_loop and evolution_loop.
19300 (instantiate_scev): New.
19301 (instantiate_parameters): Moved...
19302 (resolve_mixers): Update call to instantiate_scev_1 to pass the
19303 same loop twice. Maintains the semantics for this function.
19304 * tree-scalar-evolution.h (instantiate_scev): Declare.
19305 (instantiate_parameters): ...here. Now static inline.
19306 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
19307 instead of resolve_mixers.
19309 2008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
19311 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
19313 2008-05-09 Tomas Bily <tbily@suse.cz>
19315 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
19316 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
19317 * tree-ssa-structalias.c (get_constraint_for): Likewise.
19318 * c-common.c (c_common_truthvalue_conversion): Likewise.
19319 * tree-object-size.c (compute_object_offset): Likewise.
19320 * tree-inline.c (estimate_num_insns_1): Likewise.
19321 * varasm.c (const_hash_1, compare_constant, copy_constant)
19322 (compute_reloc_for_constant, output_addressed_constants)
19323 (initializer_constant_valid_p): Likewise.
19324 * c-omp.c (check_omp_for_incr_expr): Likewise.
19325 * gimplify.c (gimplify_expr): Likewise.
19326 * c-typeck.c (c_finish_return): Likewise.
19327 * tree-vectorizer.c (supportable_widening_operation)
19328 (supportable_narrowing_operation): Likewise.
19329 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
19330 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
19331 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
19332 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
19333 (descr_info_loc): Likewise.
19334 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
19335 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
19336 (fold_unary): Likewise.
19337 * builtins.c (get_pointer_alignment): Likewise.
19338 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
19339 (instantiate_parameters_1): Likewise.
19340 * tree.c (expr_align, stabilize_reference): Likewise.
19341 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
19342 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
19343 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
19344 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
19345 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
19346 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
19348 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
19349 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
19350 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
19351 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
19352 (forward_propagate_comparison)
19353 (tree_ssa_forward_propagate_single_use_vars): Likewise.
19354 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
19355 * emit-rtl.c (component_ref_for_mem_expr)
19356 (set_mem_attributes_minus_bitpos): Likewise.
19357 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
19358 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
19360 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
19361 (build_function_call, pointer_diff, build_compound_expr)
19362 (c_finish_return): Likewise.
19363 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
19364 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
19366 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
19367 * expr.c (is_aligning_offset): Likewise.
19368 * tree-ssa-alias.c (is_escape_site): Likewise.
19369 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
19370 (check_all_va_list_escapes): Likewise.
19371 * tree-ssa-loop-ivopts.c (determine_base_object)
19372 (determine_common_wider_type): Likewise.
19373 * dojump.c (do_jump): Likewise.
19374 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
19375 * tree-gimple.c (is_gimple_cast): Likewise.
19376 * fold-const.c (decode_field_reference)
19377 (fold_sign_changed_comparison, fold_unary, fold_comparison)
19378 (fold_binary): Likewise.
19379 * tree-ssa-alias-warnings.c (find_alias_site_helper)
19380 (already_warned_in_frontend_p): Likewise.
19381 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
19382 * tree.c (really_constant_p, get_unwidened): Likewise.
19383 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
19384 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
19385 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
19387 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
19389 (CONVERT_EXPR_P): Define.
19390 (CASE_CONVERT): Define.
19392 2008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
19394 PR middle-end/36117
19395 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
19396 (delete_unmarked_insns): When deleting a call, call
19397 delete_unreachable_blocks.
19398 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
19399 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
19401 2008-05-08 Richard Guenther <rguenther@suse.de>
19403 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
19404 (-ftree-salias): Likewise.
19405 (salias-max-implicit-fields): Remove param documentation.
19406 (salias-max-array-elements): Likewise.
19407 * tree-pass.h (pass_create_structure_vars): Remove.
19408 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
19409 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
19410 * tree-ssa-alias.c (create_structure_vars): Remove.
19411 (gate_structure_vars): Likewise.
19412 (pass_create_structure_vars): Likewise.
19413 (gate_build_alias): Likewise.
19414 (pass_build_alias): Adjust to run always and dump the function.
19415 * common.opt (ftree-salias): Hide.
19416 * passes.c (init_optimization_passes): Remove
19417 pass_create_structure_vars, adjust comment.
19418 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
19419 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
19420 * opts.c (decode_options): Do not set flag_tree_salias.
19421 (common_handle_option): Add OPT_ftree_salias to the backward
19422 compatibility section.
19424 2008-05-08 Richard Guenther <rguenther@suse.de>
19426 * tree-flow-inline.h (var_can_have_subvars): Move ...
19427 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
19428 * tree-flow.h (var_can_have_subvars): Remove.
19429 (push_fields_onto_fieldstack): Remove.
19430 (sort_fieldstack): Likewise.
19431 (struct fieldoff): Move ...
19432 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
19433 alias_set and base_for_components fields.
19434 (sort_fieldstack): Make static.
19435 (push_fields_onto_fieldstack): Likewise. Remove code that
19436 handles anything but RECORD_TYPEs. Remove alias_set and
19437 base_for_components handling.
19438 (create_variable_info_for): Adjust.
19440 2008-05-08 Seongbae Park <seongbae.park@gmail.com>
19442 * common.opt (Wframe-larger-than=): Shorten the help message
19444 * doc/invoke.texi (Wframe-larger-than=): Add more description.
19446 2008-05-08 Rafael Espíndola <espindola@google.com>
19448 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
19450 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
19451 trap and that both operands are gimple values.
19452 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
19453 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
19456 2008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
19458 * read-rtl.c (join_c_conditions): Return the first string if the
19459 two strings are equal.
19461 2008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
19463 * gensupport.h (pred_data): Add a "num_codes" field.
19464 (add_predicate_code): Declare.
19465 * gensupport.c (add_predicate_code): New function.
19466 (std_pred_table): Add an "allows_const_p" field.
19467 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
19468 Remove the (incomplete) list of such codes from the codes field.
19469 (init_predicate_table): Use add_predicate_code. Add all
19470 RTX_CONST_OBJs if allows_const_p is true.
19471 * genrecog.c (process_define_predicate): Use add_predicate_code.
19473 2008-05-08 David Daney <ddaney@avtrex.com>
19474 Richard Sandiford <rsandifo@nildram.co.uk>
19476 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
19477 special case of constant zero operands.
19478 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
19479 old and new values. Special case constant zero values.
19480 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
19482 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
19483 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
19485 2008-05-08 Paolo Bonzini <bonzini@gnu.org>
19488 * simplify-rtx.c (simplify_plus_minus): Create CONST of
19489 similar RTX_CONST_OBJ before CONST_INT.
19491 2008-05-08 Steve Ellcey <sje@cup.hp.com>
19493 * stmt.c (expand_stack_restore): Change sa mode if needed.
19495 2008-05-08 Richard Guenther <rguenther@suse.de>
19497 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
19498 return type to bool.
19499 (ix86_sol10_return_in_memory): Likewise.
19500 (ix86_i386elf_return_in_memory): Likewise.
19501 (ix86_i386interix_return_in_memory): Likewise.
19502 * config/i386/i386.c (ix86_return_in_memory): Likewise.
19503 (ix86_sol10_return_in_memory): Likewise.
19504 (ix86_i386elf_return_in_memory): Likewise.
19505 (ix86_i386interix_return_in_memory): Likewise.
19507 2008-05-08 Kai Tietz <kai.tietz@onevision.com>
19510 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
19512 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
19513 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
19516 2008-05-08 Richard Guenther <rguenther@suse.de>
19518 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
19519 * tree-data-ref.h (struct dr_alias): Remove subvars field.
19520 (DR_SUBVARS): Remove.
19521 * tree-dfa.c (dump_subvars_for): Remove.
19522 (debug_subvars_for): Likewise.
19523 (dump_variable): Do not dump subvars.
19524 (remove_referenced_var): Do not remove subvars.
19525 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
19526 (lookup_subvars_for_var): Remove.
19527 (get_subvars_for_var): Likewise.
19528 (get_subvars_at): Likewise.
19529 (get_first_overlapping_subvar): Likewise.
19530 (overlap_subvar): Likewise.
19531 * tree-flow.h (subvar_t): Remove.
19532 (struct var_ann_d): Remove subvars field.
19533 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
19534 argument. Remove special handling of SFTs.
19535 (compute_tag_properties): Likewise.
19536 (set_initial_properties): Likewise.
19537 (compute_call_clobbered): Likewise.
19538 (count_mem_refs): Likewise.
19539 (compute_memory_partitions): Likewise.
19540 (compute_flow_insensitive_aliasing): Likewise.
19541 (setup_pointers_and_addressables): Likewise.
19542 (new_type_alias): Likewise.
19543 (struct used_part): Remove.
19544 (used_portions): Likewise.
19545 (struct used_part_map): Likewise.
19546 (used_part_map_eq): Likewise.
19547 (used_part_map_hash): Likewise.
19548 (free_used_part_map): Likewise.
19549 (up_lookup): Likewise.
19550 (up_insert): Likewise.
19551 (get_or_create_used_part_for): Likewise.
19552 (create_sft): Likewise.
19553 (create_overlap_variables_for): Likewise.
19554 (find_used_portions): Likewise.
19555 (create_structure_vars): Likewise.
19556 * tree.def (STRUCT_FIELD_TAG): Remove.
19557 * tree.h (MTAG_P): Adjust.
19558 (struct tree_memory_tag): Remove base_for_components and
19559 unpartitionable flags.
19560 (struct tree_struct_field_tag): Remove.
19561 (SFT_PARENT_VAR): Likewise.
19562 (SFT_OFFSET): Likewise.
19563 (SFT_SIZE): Likewise.
19564 (SFT_NONADDRESSABLE_P): Likewise.
19565 (SFT_ALIAS_SET): Likewise.
19566 (SFT_UNPARTITIONABLE_P): Likewise.
19567 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
19568 (union tree_node): Remove sft field.
19569 * alias.c (get_alias_set): Remove special handling of SFTs.
19570 * print-tree.c (print_node): Remove handling of SFTs.
19571 * tree-dump.c (dequeue_and_dump): Likewise.
19572 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
19573 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
19574 * tree-predcom.c (set_alias_info): Do not set subvars.
19575 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
19576 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
19577 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
19578 (add_vars_for_offset): Remove.
19579 (add_virtual_operand): Remove special handling of SFTs.
19580 (add_call_clobber_ops): Likewise.
19581 (add_call_read_ops): Likewise.
19582 (get_asm_expr_operands): Likewise.
19583 (get_modify_stmt_operands): Likewise.
19584 (get_expr_operands): Likewise.
19585 (add_to_addressable_set): Likewise.
19586 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
19587 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
19588 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
19589 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
19590 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
19591 (tree_node_structure): Likewise.
19592 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
19594 (find_what_p_points_to): Likewise.
19596 2008-05-08 Sa Liu <saliu@de.ibm.com>
19598 * config/spu/spu.md: Fixed subti3 pattern.
19600 2008-05-08 Richard Guenther <rguenther@suse.de>
19602 PR middle-end/36154
19603 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
19604 sure to create a representative for trailing arrays for PTA.
19606 2008-05-08 Richard Guenther <rguenther@suse.de>
19608 PR middle-end/36172
19609 * fold-const.c (operand_equal_p): Two objects which types
19610 differ in pointerness are not equal.
19612 2008-05-08 Kai Tietz <kai.tietz@onevision.com>
19614 * calls.c (compute_argument_block_size): Add argument tree fndecl.
19615 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
19616 (emit_library_call_value_1): Add new variable fndecl initialized by
19617 NULL_TREE. It should be the decl type of orgfun, but this information
19618 seems not to be available here, so it uses the default calling abi.
19619 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
19620 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
19621 by TARGET_RETURN_IN_MEMORY.
19622 * config/i386/i386-interix.h: Likewise.
19623 * config/i386/i386.h: Likewise.
19624 * config/i386/i386elf.h: Likewise.
19625 * config/i386/ptx4-i.h: Likewise.
19626 * config/i386/sol2-10.h: Likewise.
19627 * config/i386/sysv4.h: Likewise.
19628 * config/i386/vx-common.h: Likewise.
19629 * config/cris/cris.h: Removed #if 0 clause.
19630 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
19631 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
19633 (ix86_sol10_return_in_memory): Likewise.
19634 (ix86_i386elf_return_in_memory): New.
19635 (ix86_i386interix_return_in_memory): New.
19636 * config/mt/mt-protos.h (mt_return_in_memory): New.
19637 * config/mt/mt.c: Likewise.
19638 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
19639 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
19640 * config/bfin/bfin.h: Likewise.
19641 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
19643 * config/bfin/bfin.c: Likewise.
19644 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
19645 * config/alpha/unicosmk.h: Likewise.
19646 * config/i386/cygming.h: Likewise.
19647 * config/iq2000/iq2000.h: Likewise.
19648 * config/mips/mips.h: Likewise.
19649 * config/mn10300/mn10300.h: Likewise.
19650 * config/rs6000/rs6000.h: Likewise.
19651 * config/score/score.h: Likewise.
19652 * config/spu/spu.h: Likewise.
19653 * config/v850/v850.h: Likewise.
19654 * defaults.h: Likewise.
19655 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
19656 * expr.c (emit_block_move): Adjust use of
19657 OUTGOING_REG_PARM_STACK_SPACE.
19658 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
19659 OUTGOING_REG_PARM_STACK_SPACE.
19660 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
19662 2008-05-08 Jakub Jelinek <jakub@redhat.com>
19664 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
19665 on OMP_RETURN for OMP_FOR.
19668 * dwarf2out.c (dw_expand_expr, common_check): Removed.
19669 (fortran_common): New function.
19670 (gen_variable_die): Call fortran_common instead of common_check,
19671 adjust for it returning tree instead of rtx. Formatting.
19673 2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
19677 * see.c (see_copy_insn): Copy new pure const attributes for new call.
19678 * c-decl.c (merge_decls): Ditto.
19679 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
19680 to RTL_CONST_OR_PURE_CALL_P.
19681 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
19682 Initialized DECL_LOOPING_CONST_PURE.
19683 (process_call_operands): Set tree_side_effects properly.
19684 * tree.h (TREE_READONLY_DECL_P): Removed.
19685 (DECL_IS_PURE): Renamed to DECL_PURE_P.
19686 (DECL_LOOPING_OR_CONST_P): New macro.
19687 (struct tree_function_decl): Added looping_const_or_pure_p.
19688 (ECF_*) Renumbered.
19689 (ECF_LOOPING_OR_CONST_P): New macro.
19690 * rtlanal.c (pure_const_p): Removed.
19691 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
19692 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
19693 to RTL_CONST_CALL_P.
19694 * ipa-pure-const.c (pure_const_state_e): Added looping field.
19695 (check_decl, check_tree, check_call, scan_function): Initialize
19697 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
19698 (static_execute): Set looping true for recursive functions.
19699 Undo setting state to IPA_NEITHER for recursive functions.
19700 * cse.c (cse_insn):
19701 * ifcvt.c (noce_can_store_speculate_p): Changed
19702 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
19703 RTL_CONST_OR_PURE_CALL_P.
19704 * dse.c (scan_insn): Ditto.
19705 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
19706 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
19707 RTL_CONST_OR_PURE_CALL_P.
19708 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
19709 pure_call_p to RTL_CONST_CALL_P.
19710 * gimplify.c (gimplify_call_expr): Clear side effects for
19711 non-looping pure and constant calls.
19712 * calls.c (emit_call_1): Set rtl flags from ecf flags.
19713 (flags_from_decl_or_type): Set ecf flags from decl flags.
19714 (initialize_argument_information): Turn off
19715 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
19716 Change const to pure if callee_copies is true rather than just
19718 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
19719 way of marking pure calls.
19720 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
19721 Remove hack that was supposed to fix pr7335 and remove old
19722 way of marking pure calls.
19723 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
19724 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
19725 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
19726 RTL_CONST_OR_PURE_CALL_P.
19727 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
19728 * loop-invariant.c (find_exits, find_invariant_bb): Changed
19729 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
19730 * sched-deps.c (schedule_analyze): Ditto.
19731 * rtl.h (struct rtx_def): Use call field, unchanging field, and
19732 return_val field of calls to represent pure and const function info.
19733 (CONST_OR_PURE_CALL_P): Deleted macro.
19734 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
19735 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
19736 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
19738 * tree-optimize.c (execute_fixup_cfg): Added test for
19739 ECF_LOOPING_CONST_OR_PURE.
19740 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
19742 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
19743 effects for looping pure or const calls.
19744 (verify_gimple_expr): Added verification code.
19745 * config/alpha/alpha.c (alpha_legitimize_address,
19746 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
19748 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
19749 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
19750 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
19751 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
19752 RTL_CONST_OR_PURE_CALL_P.
19753 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
19754 and const calls to be deleted.
19756 2008-05-07 Uros Bizjak <ubizjak@gmail.com>
19759 * config/i386/mmx.md (mmx_subv2sf3): New expander.
19760 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
19761 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
19762 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
19763 to handle nonimmediate operands.
19764 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
19765 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
19766 to handle nonimmediate operands.
19767 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
19768 (mmx_pmulhrwv4hi3): New expander. Use
19769 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19770 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
19771 (sse2_umulv1siv1di3): New expander. Use
19772 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19773 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
19774 (mmx_eq<mode>3): New expander. Use
19775 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19776 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
19777 (mmx_uavgv8qi3): New expander. Use
19778 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19779 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
19780 (mmx_uavgv4hi3): New expander. Use
19781 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19783 * config/i386/sse.md
19784 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
19785 to handle nonimmediate operands.
19786 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
19787 to handle nonimmediate operands.
19788 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
19789 to handle nonimmediate operands.
19790 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
19791 to handle nonimmediate operands.
19792 (sse2_unpckhpd_exp): New expander. Use
19793 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19794 (sse2_unpcklpd_exp): New expander. Use
19795 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19796 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
19797 to handle nonimmediate operands.
19798 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
19799 to handle nonimmediate operands.
19800 (*sse2_<plusminus_insn><mode>3): Rename from
19801 sse2_<plusminus_insn><mode>3 insn pattern.
19802 (sse2_<plusminus_insn><mode>3): New expander. Use
19803 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19804 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
19805 (sse2_umulv2siv2di3): New expander. Use
19806 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19807 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
19808 (sse4_1_mulv2siv2di3): New expander. Use
19809 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19810 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
19811 (sse2_pmaddwd): New expander. Use
19812 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19813 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
19814 (sse2_eq<mode>3): New expander. Use
19815 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19816 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
19817 (sse4_1_eqv2di3): New expander. Use
19818 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19819 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
19820 (sse2_uavgv16qi3): New expander. Use
19821 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19822 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
19823 (sse2_uavgv16qi3): New expander. Use
19824 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19825 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
19826 (sse2_uavgv8hi3): New expander. Use
19827 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19828 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
19829 (ssse3_pmulhrswv8hi3): New expander. Use
19830 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19831 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
19832 (ssse3_pmulhrswv4hi3): New expander. Use
19833 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19835 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
19836 (<sse>_vmmul<mode>3): Ditto.
19837 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
19839 (ssse3_pmaddubsw128): Use register_operand for operand 1.
19840 (ssse3_pmaddubsw): Ditto.
19842 * config/i386/i386.c (struct_builtin_description)
19843 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
19844 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
19845 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
19846 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
19847 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
19848 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
19849 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
19850 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
19851 (ix86_fixup_binary_operands): Assert that src1
19852 and src2 must have the same mode when swapped.
19853 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
19854 and ix86_binary_operator_ok. Do not force operands in registers
19857 2008-05-07 Jan Hubicka <jh@suse.cz>
19859 * cgraph.c (dump_cgraph_node): Update.
19860 * cgraph.h (cgraph_local_info): Break out inline summary.
19861 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
19863 * ipa-inline (inline_summary): New accestor function.
19864 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
19865 cgraph_decide_inlining, compute_inline_parameters): Update.
19866 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
19868 2008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
19870 Cleanup ColdFire scheduling support and add V4 pipeline model.
19872 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
19873 (define_attr cpu): Add cfv4 value.
19874 (define_attr type, define_attr type1): Merge into a single 'type'
19875 attribute. Update all uses.
19876 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
19877 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
19879 (define_attr opx_mem, define_attr opy_mem): Remove.
19880 (define_attr op_mem): Clean up, update comment.
19881 (define_attr size): Use specific values instead of general int.
19882 (define_attr guess, define_attr split): Remove. Update all uses.
19883 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
19884 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
19885 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
19886 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
19887 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
19888 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
19889 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
19890 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
19891 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
19892 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
19893 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
19894 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
19895 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
19896 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
19897 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
19898 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
19899 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
19900 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
19901 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
19902 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
19903 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
19904 Update or set attributes.
19905 (stack_tie): New fake instruction.
19907 * config/m68k/m68k.h (TUNE_CFV4): New macro.
19908 (m68k_sched_attr_size): Update declaration.
19909 (m68k_sched_attr_type2): Remove.
19910 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
19911 Declare new bypass predicates.
19913 * config/m68k/m68k.c (m68k_sched_issue_rate,
19914 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
19916 (TARGET_SCHED_ISSUE_RATE,
19917 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
19918 (override_options): Handle scheduling for ColdFire V4 core.
19919 (m68k_expand_prologue): Emit stack_tie.
19920 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
19921 'OP_TYPE_FPN'. Update all uses.
19922 (sched_guess_p): Remove.
19923 (sched_address_type): Handle symbolic addresses.
19924 (sched_get_operand): New static function.
19925 (sched_operand_type): Merge into sched_attr_op_type.
19926 (sched_attr_op_type): Handle FP registers, handle quick constants,
19928 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
19929 (m68k_sched_attr_size): Update. Move logic to ...
19930 (sched_get_attr_size_int): New static function.
19931 (sched_get_opxy_mem_type): New static function.
19932 (m68k_sched_attr_op_mem): Update.
19933 (m68k_sched_attr_type2): Remove.
19934 (sched_cfv4_bypass_data): New static variable.
19935 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
19936 (m68k_sched_issue_rate): Implement scheduler hook.
19937 (struct _sched_ib: enabled_p): New field.
19938 (m68k_sched_variable_issue): Update. Handle V4.
19939 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
19940 sched_dump_class_func_t, sched_dump_split_class,
19941 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
19942 sched_dump_dfa_class, m68k_sched_dump): Remove.
19943 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
19945 (m68k_sched_init_global): Remove statisctics dumping, introduce
19946 sanity check that all instructions have pipeline reservations. Handle
19948 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
19949 Handle ColdFire V4 core.
19950 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
19951 New static functions.
19952 (m68k_sched_address_bypass_p): New bypass predicate.
19953 (sched_get_indexed_address_scale): New static function.
19954 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
19956 * cf.md: Update comments.
19957 (define_attr type2): Remove. Use 'type' attribute instead.
19959 (cf_ib): Rename to cfv123_ib. Update all uses.
19960 (cf_oep): Rename to cfv123_oep. Update all uses.
19961 (cf_chr): Rename to cfv123_chr. Update all uses.
19962 (cf_mem): Rename to cfv123_mem. Update all uses.
19963 (cf_mac): Move to more appropriate place.
19964 (cfv123_guess): New automaton and cpu_unit.
19965 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
19966 Update uses of 'size' attribute. Handle before reload scheduling.
19967 (cfv123_guess): New dummy reservation for unhandled instructions.
19968 (cfv4_*): Pipeline description of ColdFire V4 core.
19969 (ignore): New reservation to handle 'ignore' type.
19971 2008-05-07 Ian Lance Taylor <iant@google.com>
19973 PR middle-end/36013
19974 * gimplify.c (find_single_pointer_decl_1): Don't look through
19976 (find_single_pointer_decl): Adjust comments.
19978 2008-05-07 Jakub Jelinek <jakub@redhat.com>
19980 PR middle-end/36137
19981 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
19982 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
19984 PR middle-end/36106
19985 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
19986 integral type rather than floating point, then VIEW_CONVERT_EXPR
19987 to the floating point type.
19989 2008-05-07 Uros Bizjak <ubizjak@gmail.com>
19991 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
19992 TFmode op0 to register.
19994 2008-05-07 Alan Modra <amodra@bigpond.net.au>
19996 * c-decl.c (grokdeclarator): Comment typo.
19998 2008-05-06 Aldy Hernandez <aldyh@redhat.com>
20000 * tree-flow.h: Remove prototype for computed_goto_p.
20001 * tree-cfg.c (computed_goto_p): Make static.
20003 2008-05-06 H.J. Lu <hongjiu.lu@intel.com>
20006 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
20007 (contains_aligned_value_p): This. Handle _Decimal128.
20008 (ix86_function_arg_boundary): Only align _Decimal128 to its
20009 natural boundary and handle it properly.
20011 2008-05-06 Martin Jambor <mjambor@suse.cz>
20013 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
20014 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
20015 (ipcp_method_set_orig_node): Removed.
20016 (ipcp_cval_get_cvalue_type): Removed.
20017 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
20018 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
20019 (ipcp_cval_set_cvalue_type): Removed.
20020 (ipcp_cval_get_cvalue): Removed.
20021 (ipcp_cval_set_cvalue): Removed.
20022 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
20023 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
20024 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
20025 (ipcp_cval_meet): Renamed to ipa_lattice_meet
20026 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
20027 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
20028 (ipcp_get_ith_lattice): Changed parameters.
20029 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
20030 (ipcp_lattice_from_jfunc): Changed parameters.
20031 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
20032 (ipcp_method_cval_print): Added temporary variable info.
20033 (ipcp_redirect): Removed already unused local variable caller.
20034 (ipcp_redirect): New temporary variable orig_callee_info
20035 (ipcp_redirect): Removed newly unused local variable callee.
20036 (ipcp_redirect): Removed (a bit confusing) local variable type.
20037 (ipcp_insert_stage): Added local variable info.
20038 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
20040 (ipcp_formal_create): Removed.
20041 (ipcp_method_cval_set): Removed.
20042 (ipcp_propagate_stage): Renamed lattice variables.
20043 (ipcp_method_cval_set_cvalue_type): Removed.
20044 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
20045 (ipcp_print_all_lattices): Changed printed strings to refer to
20046 lattices rather than cvals.
20047 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
20048 (ipcp_propagate_const): Changed formal parameters.
20049 (build_const_val): Changed formal parameters.
20050 (ipcp_insert_stage): Removed useless variable cvalue
20051 (build_const_val): Changed formal parameters.
20052 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
20053 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
20054 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
20055 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
20056 (ipcp_print_func_profile_counts): Changed string from "method" to
20058 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
20059 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
20060 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
20061 (ipcp_structures_print): Renamed to ipcp_print_all_structures
20062 (ipcp_profile_print): Renamed to ipcp_print_profile_data
20063 (ipcp_lat_is_const): Changed parameters and made inline.
20064 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
20065 (ipcp_redirect): Renamed to ipcp_need_redirect_p
20066 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
20067 the predicate condition directly
20068 (ipcp_propagate_stage): Added local variable args. Removed local
20069 variable callee. (Both are mere code simplifications.)
20070 (ipcp_method_dont_insert_const): Renamed to
20071 ipcp_node_not_modifiable_p.
20072 (ipcp_node_not_modifiable_p): Made inline.
20073 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
20074 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
20075 (ipcp_print_all_lattices): Removed variable cvalue
20076 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
20079 2008-05-06 Olivier Hainque <hainque@adacore.com>
20081 * tree-sra.c (try_instantiate_multiple_fields): Early return
20082 if field has POINTER_TYPE.
20084 2008-05-06 Kai Tietz <kai.tietz@onevision.com>
20086 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
20087 by using 'q' specifier for instruction.
20088 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
20090 2008-05-06 Anatoly Sokolov <aesok@post.ru>
20092 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
20093 Change mode of zero_extract from QImode to HImode.
20094 (sign bit tests peepholes): (Ditto.).
20096 2008-05-06 Uros Bizjak <ubizjak@gmail.com>
20098 * config/i386/mmx.md: Remove double backslashes from asm templates.
20099 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
20100 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
20101 to handle nonimmediate operands.
20102 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
20103 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
20104 to handle nonimmediate operands.
20105 (*mmx_<code>v2sf3_finite): New insn pattern.
20106 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
20107 (mmx_<code>v2sf3): New expander. Use
20108 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20109 (mmx_<plusminus_insn><mode>3): New expander. Use
20110 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20111 (*mmx_<plusminus_insn><mode>3): New insn pattern.
20112 (mmx_add<mode>3): Removed.
20113 (mmx_ssadd<mode>3): Ditto.
20114 (mmx_usadd<mode>3): Ditto.
20115 (mmx_sub<mode>3): Ditto.
20116 (mmx_sssub<mode>3): Ditto.
20117 (mmx_ussub<mode>3): Ditto.
20118 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
20119 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
20120 to handle nonimmediate operands.
20121 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
20123 (mmx_smulv4hi3_highpart): New expander. Use
20124 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20125 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
20127 (mmx_umulv4hi3_highpart): New expander. Use
20128 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20129 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
20130 (mmx_<code>v4hi3): New expander. Use
20131 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20132 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
20133 (mmx_<code>v8qi3): New expander. Use
20134 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20135 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
20136 (mmx_<code><mode>3): New expander. Use
20137 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20139 2008-05-05 Jan Hubicka <jh@suse.cz>
20141 PR tree-optimization/36118
20142 * passes.c (pass_init_dump_file): Fix dump header.
20144 2008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
20146 PR middle-end/36141
20147 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
20148 VCE for function decls.
20150 2008-05-05 H.J. Lu <hongjiu.lu@intel.com>
20152 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
20154 2008-05-05 H.J. Lu <hongjiu.lu@intel.com>
20156 * config/i386/i386.md (sat_plusminus): New.
20157 (plusminus_insn): Likewise.
20158 (plusminus_mnemonic): Likewise.
20160 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
20161 (*<addsub><mode>3_cc_overflow): Renamed to ...
20162 (*<plusminus_insn><mode>3_cc_overflow): This.
20163 (*<addsub>si3_zext_cc_overflow): Renamed to ...
20164 (*<plusminus_insn>si3_zext_cc_overflow): This.
20166 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
20167 (<plusminus_insn><mode>3): This.
20168 (*<addsub><mode>3): Renamed to ...
20169 (*<plusminus_insn><mode>3): This.
20170 (<sse>_vm<addsub><mode>3): Renamed to ...
20171 (<sse>_vm<plusminus_insn><mode>3): This.
20172 (sse3_h<addsub>v4sf3): Renamed to ...
20173 (sse3_h<plusminus_insn>v4sf3): This.
20174 (sse3_h<addsub>v2df3): Renamed to ...
20175 (sse3_h<plusminus_insn>v2df3): This.
20176 (<plusminus_insn><mode>3): New.
20177 (*<plusminus_insn><mode>3): Likewise.
20178 (sse2_<plusminus_insn><mode>3): Likewise.
20179 (add<mode>): Removed.
20180 (*add<mode>3): Likewise.
20181 (sse2_ssadd<mode>3): Likewise.
20182 (sse2_usadd<mode>3): Likewise.
20183 (sub<mode>3): Likewise.
20184 (*sub<mode>3): Likewise.
20185 (sse2_sssub<mode>3): Likewise.
20186 (sse2_ussub<mode>3): Likewise.
20188 2008-05-05 Benjamin Kosnik <bkoz@redhat.com>
20190 * gthr-single.h: Add in required interface elements as per gthr.h.
20191 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
20192 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
20193 Generalize UNUSED macro.
20194 (__gthread_once): Add.
20195 (__gthread_key_create): Add.
20196 (__gthread_key_delete): Add.
20197 (__gthread_getspecific): Add.
20198 (__gthread_setspecific): Add.
20200 2008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
20202 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
20203 the same size types for the indirect reference on the rhs, then
20206 2008-05-05 Uros Bizjak <ubizjak@gmail.com>
20208 * config/i386/i386.md
20209 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
20210 one insn template instead of template series.
20211 (*xordi_1_rex64): Ditto.
20212 (*xordi_2_rex64): Ditto.
20214 2008-05-05 Ira Rosen <irar@il.ibm.com>
20216 PR tree-optimization/36119
20217 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
20220 2008-06-04 Jan Hubicka <jh@suse.cz>
20222 tree-optimization/36100
20223 * tree-pass.h (pass_O0_always_inline): Declare.
20224 * ipa-inline.c (inline_transform): Remove dead code.
20225 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
20226 pass_O0_always_inline): New.
20227 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
20229 2008-05-04 Kai Tietz <kai.tietz@onevision.com>
20231 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
20232 mnemonic in this_param move for TARGET_64BIT.
20234 2008-05-04 Uros Bizjak <ubizjak@gmail.com>
20236 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
20237 (*strmovsi_rex_1): Ditto.
20238 (*strsetsi_1): Ditto.
20239 (*strsetsi_rex_1): Ditto.
20241 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
20242 adddicc expanders using SWI mode iterator.
20244 2008-05-04 H.J. Lu <hongjiu.lu@intel.com>
20247 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
20250 2008-05-04 David S. Miller <davem@davemloft.net>
20252 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
20253 (sparc*-*-linux*): Use linux.h in tm_file.
20254 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
20255 compiler defaulting to 32-bit.
20256 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
20258 * config/sparc/linux.h: Remove definitions now obtained
20259 properly from linux.h
20260 * config/sparc/linux64.h: Likewise.
20261 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
20262 don't want this setting for 32-bit builds in a biarch compiler.
20263 * doc/install.texi: Add sparc-linux to list of targets
20264 supporting --enable-targets=all.
20266 2008-05-03 Andrew Pinski <pinskia@gmail.com>
20268 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
20270 2008-05-03 H.J. Lu <hongjiu.lu@intel.com>
20272 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
20273 after V4SI_FTYPE_V8HI.
20274 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
20275 case V4SI_FTYPE_V2DF.
20277 2008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
20279 * doc/invoke.texi (max-flow-memory-locations): Removed.
20280 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
20282 2008-05-03 Richard Guenther <rguenther@suse.de>
20284 PR middle-end/34973
20285 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
20287 2008-05-02 David S. Miller <davem@davemloft.net>
20289 * config.gcc (need_64bit_hwint): Document libcpp dependency.
20291 2008-05-02 Simon Baldwin <simonb@google.com>
20294 * c-common.h (warn_array_subscript_range): Removed.
20295 * c-common.c (warn_array_subscript_range): Ditto.
20296 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
20297 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
20299 2008-05-02 H.J. Lu <hongjiu.lu@intel.com>
20301 * config/i386/i386.c (ix86_special_builtin_type): New.
20302 (bdesc_special_args): Likewise.
20303 (ix86_expand_special_args_builtin): Likewise.
20304 (ix86_init_mmx_sse_builtins): Updated.
20305 (ix86_expand_builtin): Updated.
20306 (ix86_expand_store_builtin): Removed.
20307 (ix86_expand_unop_builtin): Likewise.
20309 * config/i386/mm3dnow.h (__v2sf): Moved to ...
20310 * config/i386/mmintrin.h (__v2sf): Here.
20312 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
20314 (_mm_loadl_pi): Likewise.
20315 (_mm_storeh_pi): Replace __v2si with __v2sf.
20316 (_mm_storel_pi): Likewise.
20318 * doc/extend.texi: Correct __builtin_ia32_loadhps,
20319 __builtin_ia32_loadlps, __builtin_ia32_storehps,
20320 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
20321 __builtin_ia32_loadlpd.
20323 2008-05-02 H.J. Lu <hongjiu.lu@intel.com>
20325 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
20326 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
20327 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
20328 (ix86_init_mmx_sse_builtins): Updated.
20329 (ix86_expand_args_builtin): Likewise.
20330 (ix86_expand_builtin): Likewise.
20331 (ix86_expand_unop1_builtin): Renamed to ...
20332 (ix86_expand_unop_vec_merge_builtin): This.
20334 2008-05-01 Jan Hubicka <jh@suse.cz>
20337 * ipa-inline.c (inline_generate_summary): Make static.
20338 (inline_transform): Do not call inlining at -O0; make static.
20339 * passes.c (execute_todo): Add sanity check.
20340 (execute_one_ipa_transform_pass): Execute proper flags.
20342 2008-05-01 Eric Botcazou <ebotcazou@adacore.com>
20344 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
20345 (DECL_NONADDRESSABLE_P): Likewise.
20346 * alias.c (record_component_aliases): Fix comment.
20348 2008-05-01 Simon Baldwin <simonb@google.com>
20350 * c-common.h (warn_array_subscript_range): New function.
20351 * c-common.c (warn_array_subscript_range): Ditto.
20352 * tree-vrp.c (check_array_ref): Corrected code to agree with
20353 comment, ignoring only arrays of size 0 or size 1.
20354 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
20356 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
20358 * config/i386/i386.c (ix86_builtin_type): Replace
20359 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
20360 (bdesc_args): Updated.
20361 (ix86_init_mmx_sse_builtins): Likewise.
20362 (ix86_expand_args_builtin): Likewise.
20364 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
20367 * doc/extend.texi: Correct __builtin_ia32_palignr.
20369 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
20372 * config/i386/i386.c (bdesc_crc32): Removed.
20373 (ix86_expand_crc32): Likewise.
20374 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
20375 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
20376 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
20377 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
20378 UINT_FTYPE_UINT_UCHAR.
20379 (bdesc_args): Updated. Add crc32 builtins.
20380 (ix86_init_mmx_sse_builtins): Updated.
20381 (ix86_expand_args_builtin): Updated to support subreg.
20383 * doc/extend.texi: Correct __builtin_ia32_crc32di.
20385 2008-05-01 Jan Hubicka <jh@suse.cz>
20387 * tree-pass.h (opt_pass): Add IPA_PASS.
20388 (varpool_node, cgraph_node): Forward declare.
20389 (ipa_opt_pass): Define.
20390 (pass_ipa_inline): Turn into ipa_opt_pass.
20391 (pass_apply_inline): Remove.
20392 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
20393 (apply_inline): Turn into ....
20394 (inline_transform): ... this one.
20395 (inline_generate_summary): New function.
20396 (pass_apply_inline): Remove.
20397 * function.h (ipa_opt_pass): Forward declare structure; typedef;
20399 (struct function): Add ipa_transforms_to_apply.
20400 * passes.c (register_one_dump_file): Work on IPA_PASS.
20401 (init_optimization_passes): Remove pass_inline_parameters and
20403 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
20404 (execute_one_pass) ... here; apply transforms when possible.
20405 (add_ipa_transform_pass, execute_ipa_summary_asses,
20406 execute_one_ipa_transform_pass): New.
20407 (execute_ipa_pass_list): Update for IPA_PASS type.
20409 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
20411 * config/i386/i386.c (ix86_builtin_type): Add
20412 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
20413 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
20414 (bdesc_args): Add SSE4a builtins.
20415 (ix86_init_mmx_sse_builtins): Updated.
20416 (ix86_expand_args_builtin): Likewise.
20417 (ix86_expand_builtin): Likewise.
20419 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
20421 * config/i386/i386.c (ix86_builtin_type): Add
20422 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
20423 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
20424 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
20425 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
20426 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
20427 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
20428 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
20429 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
20430 and DI_FTYPE_DI_DI_INT.
20431 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
20432 (ix86_init_mmx_sse_builtins): Updated.
20433 (ix86_expand_args_builtin): Likewise.
20434 (ix86_expand_builtin): Likewise.
20435 (ix86_expand_binop_imm_builtin): Removed.
20437 * doc/extend.texi: Correct __builtin_ia32_palignr128.
20439 2008-04-30 Richard Guenther <rguenther@suse.de>
20441 PR tree-optimization/32921
20442 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
20444 2008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
20446 * config/arm/arm.c (arm_unwind_emit): Use
20447 crtl->all_throwers_are_sibcalls instead of
20448 cfun->all_throwers_are_sibcalls.
20449 (arm_output_fn_unwind): Likewise.
20450 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
20451 instead of cfun->uses_pic_offset_table.
20452 (frv_expand_prologue): Likewise.
20453 (frv_frame_pointer_required): Likewise.
20454 (frv_expand_fdpic_call): Likewise.
20455 (frv_emit_movsi): Likewise.
20456 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
20457 cfun->returns_pcc_struct instead of
20458 current_function_returns_pcc_struct.
20459 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
20460 instead of cfun->calls_eh_return.
20461 (m32c_pushm_popm): Likewise.
20462 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
20463 "extern" declaration.
20465 2008-04-30 Richard Guenther <rguenther@suse.de>
20467 PR tree-optimization/21636
20468 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
20470 (evaluate_stmt): Print the likely value.
20471 (ccp_visit_stmt): Avoid excessive vertical spacing.
20473 2008-04-30 Rafael Espíndola <espindola@google.com>
20475 * builtins.c (fold_call_expr): Return realret.
20476 * tree-ssa-threadedge.c
20477 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
20478 __builtin_object_size.
20480 2008-04-30 Seongbae Park <seongbae.park@gmail.com>
20482 * gcc.c (wrapper_string): New variable.
20483 (insert_wrapper): New function.
20484 (execute): New option -wrapper.
20485 * doc/invoke.texi (Overall Options): New driver option -wrapper.
20487 2008-04-30 Nathan Froyd <froydnj@codesourcery.com>
20489 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
20490 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
20491 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
20493 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
20494 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
20495 config/rs6000/e500crtres64gprctr.asm,
20496 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
20497 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
20498 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
20499 config/rs6000/e500crtsav64gprctr.asm,
20500 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
20501 config/rs6000/e500crtsavg64gprctr.asm: New files.
20502 * config/rs6000/t-ppccomm: Add build rules for new files.
20503 (LIB2FUNCS_STATIC_EXTRA): Add new files.
20504 * config/rs6000/t-netbsd: Add build rules for new files.
20505 (LIB2FUNCS_STATIC_EXTRA): New variable.
20506 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
20507 (CRTSAVRES_DEFAULT_SPEC): Likewise.
20508 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
20510 2008-04-30 H.J. Lu <hongjiu.lu@intel.com>
20512 * config/i386/i386.c (ix86_builtin_type): Add
20513 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
20514 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
20515 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
20516 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
20517 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
20518 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
20519 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
20520 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
20521 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
20522 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
20523 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
20524 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
20525 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
20526 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
20527 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
20528 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
20529 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
20530 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
20531 V1DI_FTYPE_V2SI_V2SI.
20532 (bdesc_2arg): Moved to ...
20533 (bdesc_args): Here.
20534 (ix86_init_mmx_sse_builtins): Updated.
20535 (ix86_expand_args_builtin): Updated. Take a pointer
20536 to const struct builtin_description. Handle comparison
20538 (ix86_expand_sse_compare): Take a new argument for swapping operands.
20539 (ix86_expand_builtin): Updated.
20541 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
20542 (ssse3_pmaddubsw128): This.
20543 (ssse3_pmaddubswv4hi3): Renamed to ...
20544 (ssse3_pmaddubsw): This.
20546 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
20547 (__builtin_ia32_packssdw128): Likewise.
20548 (__builtin_ia32_packuswb128): Likewise.
20549 (__builtin_ia32_pmaddubsw): Likewise.
20550 (__builtin_ia32_pmaddubsw128): Likewise.
20552 2008-04-30 Richard Guenther <rguenther@suse.de>
20554 PR tree-optimization/14847
20555 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
20556 (recognize_bits_test): Use it.
20557 (recognize_single_bit_test): Likewise.
20559 2008-04-30 Martin Jambor <mjambor@suse.cz>
20561 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
20562 instead of setting number of formal parameters to zero.
20563 (ipcp_init_stage): Do not set the number of actual parameters to zero
20565 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
20566 which are called with variable number of arguments.
20567 (ipcp_insert_stage): Explicitely skipping all nodes which are
20568 called with variable number of arguments.
20569 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
20570 number of parameters.
20572 * ipa-prop.h (struct ipa_node_params): Added flag
20573 called_with_var_arguments
20574 (ipa_set_param_count): Added. Changed sole setter to use it.
20575 (ipa_get_param_count): Added. All readers of param_count
20576 converted to use it instead.
20577 (ipa_set_called_with_variable_arg): Added.
20578 (ipa_is_called_with_var_arguments): Added.
20579 (ipa_get_ith_param): Added. All readers of param_decls converted
20581 (ipa_set_cs_argument_count): Added, sole writer to argument_count
20583 (ipa_get_cs_argument_count): Added, all readers of argument_count
20585 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
20588 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
20589 (struct ipcp_lattice): Renamed cval_type to type
20590 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
20592 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
20593 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
20594 (ipcp_insert_stage): Changed the type of variable cvalue to tree
20595 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
20596 (build_const_val): Changed the type of parameter cvalue to tree
20597 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
20598 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
20600 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
20603 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
20604 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
20605 (ipa_add_method): Renamed to ipa_push_func_to_list
20606 (ipa_remove_method): Renamed to ipa_pop_func_from_list
20607 (ipa_callsite_param_count): Removed.
20608 (ipa_callsite_param_count_set): Removed.
20609 (ipa_callsite_param): Removed.
20610 (ipa_callsite_callee): Removed.
20611 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
20612 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
20613 (ipa_method_formal_count): Removed.
20614 (ipa_method_formal_count_set): Removed.
20615 (ipa_method_get_tree): Removed.
20616 (ipa_method_tree_map_create): Removed.
20617 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
20618 (ipa_create_param_decls_array): Creates the array itself
20619 (ipa_create_param_decls_array): Temporary variable info instead of
20620 a few dereferences.
20621 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
20622 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
20623 (get_type): Removed.
20624 (ipa_jf_get_info_type): Removed.
20625 (ipa_node_create): Renamed to ipa_create_node_params
20626 (ipa_free): Renamed to ipa_free_all_node_params
20627 (ipa_nodes_create): Renamed to ipa_create_all_node_params
20628 (ipa_edges_create): Renamed to ipa_create_all_edge_args
20629 (ipa_edges_free): Renamed to ipa_free_all_edge_args
20630 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
20631 (ipa_free_all_node_params): Deallocation to jump_functions moved to
20632 ipa_free_all_edge_args
20633 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
20634 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
20635 (ipa_create_methodlist_node): Removed.
20636 (ipa_methodlist_method): Removed.
20637 (ipa_methodlist_method_set): Removed.
20638 (ipa_methodlist_next_method): Removed.
20639 (ipa_methodlist_next_method_set): Removed.
20640 (ipa_method_is_modified): Removed.
20641 (ipa_method_modify_create): Removed.
20642 (ipa_method_modify_init): Temporary variable info instead of a few
20644 (ipa_detect_param_modifications): Temporary variable info instead of
20645 a few dereferences.
20646 (ipa_compute_jump_functions): Temporary variable info instead of
20647 a few dereferences.
20648 (ipa_method_modify_set): Removed.
20649 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
20650 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
20651 than craph_node as the first parameter.
20652 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
20653 (ipa_method_modify_init): Removed.
20654 (ipa_compute_jump_functions): Added a temp variable instead of
20655 repeatadly dereferencing the cgraph_edge.aux pointer
20656 (ipa_callsite_param_set_type): Removed.
20657 (ipa_compute_jump_functions): i renamed to index and moved to
20659 (ipa_callsite_param_set_info_type_formal): Removed.
20660 (ipa_callsite_param_set_info_type): Removed.
20661 (ipa_callsite_param_map_create): Removed.
20662 (ipa_callsite_tree): Removed.
20663 (ipa_callsite_caller): Removed.
20664 (ipa_pop_func_from_list): return_method removed to return_func
20666 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
20667 prefixed all values with IPA_. Changed all users.
20668 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
20669 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
20670 and FORMAL_IPATYPE IPA_PASS_THROUGH.
20671 (union parameter_info): Renamed to jump_func_value.
20672 (union jump_func_value): Renamed value to constant
20673 (struct ipa_jump_func): Renamed info_type to value
20674 (struct ipa_node): Renamed to ipa_node_params
20675 (struct ipa_node_params): Renamed ipa_arg_num to param_count
20676 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
20677 (struct ipa_node_params): Renamed ipa_mod to modified_flags
20678 (struct ipa_edge): Renamed to ipa_edge_args
20679 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
20680 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
20681 (struct ipa_methodlist): Renamed to ipa_func_list
20682 (struct ipa_func_list): method_p renamed to node, next_method
20684 (ipa_methodlist_p): Removed, switched all users to struct pointer
20685 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
20687 2008-04-30 Alan Modra <amodra@bigpond.net.au>
20689 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
20690 (rs6000_emit_epilogue): Use backchain to restore only when we
20691 have a large frame. Make use of frame pointer to restore if we
20692 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
20694 2008-04-29 Paolo Bonzini <bonzini@gnu.org>
20696 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
20697 Add mode to zero_extract.
20698 (sign bit tests peepholes): (Ditto.).
20700 2008-04-29 H.J. Lu <hongjiu.lu@intel.com>
20702 * config/i386/i386.c (ix86_builtins): Replace Prescott New
20703 Instructions in comments with SSE3.
20704 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
20705 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
20706 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
20707 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
20708 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
20709 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
20710 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
20711 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
20712 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
20713 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
20714 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
20715 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
20716 (bdesc_sse_args): Renamed to ...
20717 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
20718 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
20719 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
20720 IX86_BUILTIN_FABSQ.
20721 (bdesc_1arg): Moved to ...
20722 (bdesc_args): Here.
20723 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
20724 Instructions in comments with SSE3.
20725 (ix86_expand_sse_operands_builtin): Renamed to ...
20726 (ix86_expand_args_builtin): This. Updated.
20727 (ix86_expand_unop1_builtin): Update comments.
20728 (ix86_expand_builtin): Updated.
20730 2008-04-29 Richard Guenther <rguenther@suse.de>
20732 PR tree-optimization/36078
20733 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
20734 Update virtual SSA form after cleaning up the CFG.
20736 2008-04-29 Richard Guenther <rguenther@suse.de>
20738 PR middle-end/15255
20739 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
20741 2008-04-29 Richard Guenther <rguenther@suse.de>
20743 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
20744 (compute_may_aliases): Do not call finalize_ref_all_pointers.
20745 (compute_flow_insensitive_aliasing): Do not treat
20746 PTR_IS_REF_ALL pointers special.
20747 (get_smt_for): Likewise.
20748 (may_alias_p): Re-structure.
20749 (is_escape_site): A ref-all pointer conversion is not an escape site.
20750 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
20751 PTR_IS_REF_ALL pointers special.
20752 * tree-ssa-structalias.h (struct alias_info): Remove
20753 ref_all_symbol_mem_tag field.
20754 (PTR_IS_REF_ALL): Remove.
20756 2008-04-29 Richard Guenther <rguenther@suse.de>
20758 PR middle-end/36077
20759 * fold-const.c (extract_muldiv_1): In combining division constants
20760 make sure to never overflow.
20762 2008-04-29 Nick Clifton <nickc@redhat.com>
20764 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
20766 2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20769 * optc-gen.awk: Work around HP-UX/IA awk bug.
20771 2008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
20773 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
20776 2008-04-28 Uros Bizjak <ubizjak@gmail.com>
20779 * config/i386/i386.md
20780 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
20781 Change operand 1 predicate to nonimmediate_operand.
20783 2008-04-28 Jakub Jelinek <jakub@redhat.com>
20786 * dwarf2out.c (struct die_struct): Mark as chain_circular through
20788 * gengtype.c (walk_type, write_func_for_structure): Handle
20790 * doc/gty.texi: Document chain_circular.
20792 2008-04-28 Richard Guenther <rguenther@suse.de>
20794 PR tree-optimization/36066
20795 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
20798 2008-04-28 Uros Bizjak <ubizjak@gmail.com>
20801 * config/i386/i386.md
20802 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
20803 Use match_scratch instead of match_operand for operands 3 and 4.
20805 2008-04-27 Richard Guenther <rguenther@suse.de>
20807 PR tree-optimization/18754
20808 PR tree-optimization/34223
20809 * tree-pass.h (pass_complete_unrolli): Declare.
20810 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
20811 loop size before and after unconditionally of UL_NO_GROWTH in effect.
20812 Rewrite loop into loop closed SSA form if it is not already.
20813 (tree_unroll_loops_completely): Re-structure to iterate over
20814 innermost loops with intermediate CFG cleanups.
20815 Unroll outermost loops only if requested or the code does not grow
20817 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
20818 loops are available.
20819 (tree_vectorize): Instead do so here.
20820 (tree_complete_unroll): Also unroll outermost loops.
20821 (tree_complete_unroll_inner): New function.
20822 (gate_tree_complete_unroll_inner): Likewise.
20823 (pass_complete_unrolli): New pass.
20824 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
20825 uses outside of the loop.
20826 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
20827 form if it is available.
20828 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
20829 * passes.c (init_optimization_passes): Schedule complete inner
20830 loop unrolling pass before the first CCP pass after final inlining.
20832 2008-04-27 Nathan Sidwell <nathan@codesourcery.com>
20834 * targhooks.h (default_emutls_var_fields,
20835 default_emutls_var_init): Declare.
20836 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
20837 * target.h (struct gcc_target): Add struct emutls member.
20838 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
20839 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
20840 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
20841 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
20842 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
20843 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
20844 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
20845 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
20846 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
20847 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
20848 emit debug information.
20849 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
20850 * varasm.c: Include targhooks.h.
20851 (emutls_object_section, emutls_tmpl_section): New.
20852 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
20853 (EMUTLS_SEPARATOR): New.
20854 (prefix_name): New.
20855 (get_emutls_object_name): New.
20856 (default_emutls_var_fields): New, broken out of ...
20857 (get_emutls_object_type): ... here. Adjust to use target hooks.
20858 (get_emutls_init_templ_addr): Adjust to use target hooks.
20859 (emutls_decl): Adjust to use target hooks.
20860 (emutls_finish): Likewise.
20861 (default_emutls_var_init): New, broken out of ...
20862 (assemble_variable): ... here. Adjust to use target hooks.
20863 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
20864 SECCAT_EMUTLS_TMPL.
20865 * c-common.c (handle_section_attribute): Prevent overriding
20866 sections for emulated tls with special sections.
20867 * config/i386/i386.c (x86_64_elf_select_section): Add
20868 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
20869 (x86_64_elf_unique_section): Likewise.
20870 * config/vxworks.c: Include tree.h.
20871 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
20872 (vxworks_override_options): Set TLS scheme.
20873 * doc/tm.texi (Emulated TLS): New node.
20875 2008-04-26 Simon Baldwin <simonb@google.com>
20878 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
20879 with propagated string constants.
20881 2008-04-26 Uros Bizjak <ubizjak@gmail.com>
20883 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
20884 constraint for operand 2 when operand 0 is memory operand.
20885 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
20886 operand 0 is memory operand.
20887 (fix_trunc<mode>_i387_with_temp): Ditto.
20888 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
20889 operand 2 when operand 1 is memory operand.
20890 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
20891 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
20892 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
20893 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
20894 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
20895 operands 2,3 and 4 when operand 1 is memory operand.
20896 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
20898 (fistdi2_floor_with_temp): Ditto.
20899 (fist<mode>2_floor_with_temp): Ditto.
20900 (fistdi2_ceil_with_temp): Ditto.
20901 (fist<mode>2_ceil_with_temp): Ditto.
20902 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
20904 2008-04-26 David Daney <ddaney@avtrex.com>
20906 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
20908 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
20909 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
20910 UNSPEC_UPDATE_GOT_VERSION): Renumber.
20911 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
20912 (compare_and_swap_12): New insn.
20913 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
20914 * config/mips/mips.c (mips_force_binary): New function.
20915 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
20916 (mips_expand_compare_and_swap_12): New function.
20917 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
20919 2008-04-25 Jan Hubicka <jh@suse.cz>
20922 * cfgexpand.c (pass_expand): Turn into RTL pass.
20923 * passes.c (execute_one_pass): Do pass typechecking after execution.
20924 * tree-pass.h (pass_expand): Turn into RTL pass.
20926 * function.h (struct rtl_data): Move here fields
20927 accesses_prior_frames, calls_eh_return, saves_all_registers,
20928 has_nonlocal_goto, has_asm_statement, is_thunk,
20929 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
20930 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
20931 arg_pointer_save_area_init from struct function; turn into bool.
20932 (struct function): Move
20933 calls_eh_return, saves_all_registers, has_nonlocal_goto,
20934 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
20935 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
20936 tail_call_emit, arg_pointer_save_area_init
20937 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
20938 (current_function_returns_struct, current_function_returns_pcc_struct,
20939 current_function_calls_setjmp, current_function_calls_alloca,
20940 current_function_accesses_prior_frames,
20941 current_function_calls_eh_return, current_function_is_thunk,
20942 current_function_stdarg, current_function_profile,
20943 current_function_limit_stack, current_function_uses_pic_offset_table,
20944 current_function_uses_const_pool, current_function_has_nonlocal_label,
20945 current_function_saves_all_registers,
20946 current_function_has_nonlocal_goto,
20947 current_function_has_asm_statement): Remove accesor macros.
20948 * ra-conflict.c (global_conflicts): Update.
20949 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
20950 (suitable_for_tail_call_opt_p): Update.
20951 * builtins.c (expand_builtin_return_addr): Update.
20952 (expand_builtin_setjmp_setup): Update.
20953 (expand_builtin_nonlocal_goto): Update.
20954 * final.c (final_start_function): Update.
20955 (profile_function): Update.
20956 (leaf_function_p): Update.
20957 (only_leaf_regs_used): Update.
20958 * df-scan.c (df_get_exit_block_use_set): Update.
20959 * dojump.c (clear_pending_stack_adjust): Update.
20960 * tree-stdarg.c (gate_optimize_stdarg): Update.
20961 * gimple-low.c (lower_function_body): Update.
20962 * global.c (compute_regsets): Update.
20963 (global_alloc): Update.
20964 * dwarf2out.c (dwarf2out_begin_prologue): Update.
20965 * expr.c (expand_assignment): Update.
20966 * dse.c (dse_step0): Update.
20967 (dse_step1): Update.
20968 * c-decl.c (store_parm_decls): Update.
20969 * local-alloc.c (combine_regs): Update.
20970 (find_free_reg): Update.
20971 * function.c (assign_parms_augmented_arg_list): Update.
20972 (assign_parm_find_data_types): Update.
20973 (assign_parms): Update.
20974 (allocate_struct_function): Update.
20975 (expand_function_start): Update.
20976 (expand_function_end): Update.
20977 (get_arg_pointer_save_area): Update.
20978 (thread_prologue_and_epilogue_insns): Update.
20979 (rest_of_match_asm_constraints): Update.
20980 * stor-layout.c (variable_size): Update.
20981 * gcse.c (gcse_main): Update.
20982 (bypass_jumps): Update.
20983 * gimplify.c (gimplify_function_tree): Update.
20984 * calls.c (emit_call_1): Update.
20985 (expand_call): Update.
20986 * bt-load.c (compute_defs_uses_and_gen): Update.
20987 * except.c (sjlj_assign_call_site_values): Update.
20988 (sjlj_emit_function_enter): Update.
20989 (can_throw_external): Update.
20990 (set_nothrow_function_flags): Update.
20991 (expand_builtin_unwind_init): Update.
20992 (expand_eh_return): Update.
20993 (convert_to_eh_region_ranges): Update.
20994 (output_function_exception_table): Update.
20995 * emit-rtl.c (gen_tmp_stack_mem): Update.
20996 * cfgexpand.c (expand_used_vars): Update.
20997 (tree_expand_cfg): Update.
20998 * cfgcleanup.c (rest_of_handle_jump): Update.
20999 * explow.c (allocate_dynamic_stack_space): Update.
21000 * varasm.c (assemble_start_function): Update.
21001 (force_const_mem): Update.
21002 (mark_constant_pool): Update.
21003 * tree-optimize.c (tree_rest_of_compilation): Update.
21004 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
21005 * tree-cfg.c (notice_special_calls): Update.
21006 (is_ctrl_altering_stmt): Update.
21007 (tree_can_make_abnormal_goto): Update.
21008 (tree_purge_dead_abnormal_call_edges): Update.
21009 * config/alpha/predicates.md: Update.
21010 * config/alpha/alpha.c (alpha_sa_mask): Update.
21011 (alpha_sa_size): Update.
21012 (alpha_does_function_need_gp): Update.
21013 (alpha_expand_prologue): Update.
21014 (alpha_start_function): Update.
21015 (alpha_output_function_end_prologue): Update.
21016 (alpha_expand_epilogue): Update.
21017 * config/frv/frv.c (frv_stack_info): Update.
21018 (frv_expand_epilogue): Update.
21019 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
21020 (s390_register_info): Update.
21021 (s390_frame_info): Update.
21022 (s390_init_frame_layout): Update.
21023 (s390_can_eliminate): Update.
21024 (save_gprs): Update.
21025 * config/spu/spu.c (spu_split_immediate): Update.
21026 (need_to_save_reg): Update.
21027 (spu_expand_prologue): Update.
21028 (spu_expand_epilogue): Update.
21029 * config/sparc/sparc.md: Update.
21030 * config/sparc/sparc.c (eligible_for_return_delay): Update.
21031 (sparc_tls_got): Update.
21032 (legitimize_pic_address): Update.
21033 (sparc_emit_call_insn): Update.
21034 (sparc_expand_prologue): Update.
21035 (output_return): Update.
21036 (print_operand): Update.
21037 (sparc_function_ok_for_sibcall): Update.
21038 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
21039 * config/m32r/m32r.md: Update.
21040 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
21041 (m32r_compute_frame_size): Update.
21042 (m32r_expand_prologue): Update.
21043 (m32r_expand_epilogue): Update.
21044 (m32r_legitimize_pic_address): Update.
21045 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
21046 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
21047 * config/i386/i386.c (ix86_frame_pointer_required): Update.
21048 (gen_push): Update.
21049 (ix86_save_reg): Update.
21050 (ix86_compute_frame_layout): Update.
21051 (ix86_expand_prologue): Update.
21052 (ix86_expand_epilogue): Update.
21053 * config/sh/sh.c (output_stack_adjust): Update.
21054 (calc_live_regs): Update.
21055 (sh5_schedule_saves): Update.
21056 (sh_expand_prologue): Update.
21057 (sh_expand_epilogue): Update.
21058 (sh_setup_incoming_varargs): Update.
21059 (sh_allocate_initial_value): Update.
21060 (sh_get_pr_initial_val): Update.
21061 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
21062 * config/sh/sh.md (label:): Update.
21063 * config/avr/avr.c (out_movhi_mr_r): Update.
21064 * config/crx/crx.h (enum): Update.
21065 * config/xtensa/xtensa.h (along): Update.
21066 * config/stormy16/stormy16.c Update.
21067 (xstormy16_compute_stack_layout): Update.
21068 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
21069 (fr30_expand_prologue): Update.
21070 * config/cris/cris.c (cris_conditional_register_usage): Update.
21071 (cris_reg_saved_in_regsave_area): Update.
21072 (cris_initial_frame_pointer_offset): Update.
21073 (cris_simple_epilogue): Update.
21074 (cris_expand_prologue): Update.
21075 (cris_expand_epilogue): Update.
21076 (cris_expand_pic_call_address): Update.
21077 (cris_asm_output_symbol_ref): Update.
21078 (cris_asm_output_label_ref): Update.
21079 * config/cris/cris.md Update.
21080 * config/iq2000/iq2000.c (compute_frame_size): Update.
21081 (iq2000_expand_epilogue): Update.
21082 * config/mt/mt.h (save_direction): Update.
21083 * config/mn10300/mn10300.c (mn10300_function_value): Update.
21084 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
21085 (ia64_secondary_reload_class): Update.
21086 * config/m68k/m68k.c (m68k_save_reg): Update.
21087 (m68k_expand_prologue): Update.
21088 (m68k_expand_epilogue): Update.
21089 (legitimize_pic_address): Update.
21090 * config/rs6000/rs6000.c (rs6000_got_register): Update.
21091 (first_reg_to_save): Update.
21092 (first_altivec_reg_to_save): Update.
21093 (compute_vrsave_mask): Update.
21094 (compute_save_world_info): Update.
21095 (rs6000_stack_info): Update.
21096 (spe_func_has_64bit_regs_p): Update.
21097 (rs6000_ra_ever_killed): Update.
21098 (rs6000_emit_eh_reg_restore): Update.
21099 (rs6000_emit_allocate_stack): Update.
21100 (rs6000_emit_prologue): Update.
21101 (rs6000_emit_epilogue): Update.
21102 (rs6000_output_function_epilogue): Update.
21103 (output_profile_hook): Update.
21104 (rs6000_elf_declare_function_name): Update.
21105 * config/rs6000/rs6000.h (rs6000_args): Update.
21106 * config/rs6000/rs6000.md: Update.
21107 * config/mcore/mcore.c (mcore_expand_prolog): Update.
21108 * config/arc/arc.c (arc_output_function_epilogue): Update.
21109 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
21110 * config/darwin.c (machopic_function_base_name): Update.
21111 * config/score/score3.c (score3_compute_frame_size): Update.
21114 (score3_epilogue): Update.
21115 * config/score/score7.c (score7_compute_frame_size): Update.
21116 (score7_prologue): Update.
21117 (score7_epilogue): Update.
21118 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
21119 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
21120 * config/arm/arm.c (use_return_insn): Update.
21121 (require_pic_register): Update.
21122 (arm_load_pic_register): Update.
21123 (arm_compute_save_reg0_reg12_mask): Update.
21124 (arm_compute_save_reg_mask): Update.
21125 (thumb1_compute_save_reg_mask): Update.
21126 (output_return_instruction): Update.
21127 (arm_output_function_prologue): Update.
21128 (arm_output_epilogue): Update.
21129 (arm_get_frame_offsets): Update.
21130 (arm_expand_prologue): Update.
21131 (thumb_pushpop): Update.
21132 (thumb_exit): Update.
21133 (thumb1_expand_prologue): Update.
21134 (thumb1_expand_epilogue): Update.
21135 (arm_unwind_emit): Update.
21136 (arm_output_fn_unwind): Update.
21137 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
21138 * config/arm/arm.md: Update.
21139 * config/pa/pa.md: Update.
21140 * config/pa/pa.c (legitimize_pic_address): Update.
21141 (compute_frame_size): Update.
21142 (hppa_expand_prologue): Update.
21143 (hppa_expand_epilogue): Update.
21144 (borx_reg_operand): Update.
21145 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
21146 (HARD_REGNO_RENAME_OK): Update.
21147 * config/mips/mips.c (mips_global_pointer): Update.
21148 (mips_save_reg_p): Update.
21149 (mips_compute_frame_info): Update.
21150 (mips_frame_pointer_required): Update.
21151 (mips_expand_prologue): Update.
21152 (mips_expand_epilogue): Update.
21153 (mips_can_use_return_insn): Update.
21154 (mips_reorg_process_insns): Update.
21155 * config/v850/v850.c (compute_register_save_size): Update.
21156 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
21157 * config/mmix/mmix.c (along): Update.
21158 (mmix_expand_epilogue): Update.
21159 * config/bfin/bfin.c (legitimize_pic_address): Update.
21160 (must_save_p): Update.
21161 (stack_frame_needed_p): Update.
21162 (add_to_reg): Update.
21163 (bfin_expand_prologue): Update.
21164 * stmt.c (expand_asm_operands): Update.
21165 * reload1.c (reload): Update.
21166 (init_elim_table): Update.
21168 2008-04-25 Bob Wilson <bob.wilson@acm.org>
21170 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
21172 2008-04-25 H.J. Lu <hongjiu.lu@intel.com>
21174 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
21175 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
21176 (mov<mode>): Removed.
21177 (*movv4sf_internal): Likewise.
21178 (*movv2df_internal): Likewise.
21180 2008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
21182 * config.gcc (crx-*-elf): Remove deprecation.
21184 2008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
21186 * config/i386/cygming-crtend.c (register_frame_ctor): Register
21187 __gcc_deregister_frame with atexit.
21188 (deregister_frame_dtor): Remove.
21190 2008-04-24 Nathan Froyd <froydnj@codesourcery.com>
21191 Nathan Sidwell <nathan@codesourcery.com>
21193 * config/rs6000/rs6000.opt (mspe): Remove Var property.
21195 * config/rs6000/rs6000.h (rs6000_spe): Declare.
21196 (rs6000_isel): Likewise.
21197 * config/rs6000/rs6000.c (rs6000_spe): New variable.
21198 (rs6000_isel): New variable.
21199 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
21201 2008-04-24 Jakub Jelinek <jakub@redhat.com>
21204 * c-common.c (handle_vector_size_attribute): Call
21205 lang_hooks.types.reconstruct_complex_type instead of
21206 reconstruct_complex_type.
21207 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
21208 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
21209 * langhooks.h (struct lang_hooks_for_types): Add
21210 reconstruct_complex_type hook.
21211 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
21212 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
21214 2008-04-24 Richard Guenther <rguenther@suse.de>
21216 * c-common.h (check_builtin_function_arguments): Declare.
21217 * c-common.c (validate_nargs): New function.
21218 (check_builtin_function_arguments): Likewise.
21219 * c-typeck.c (build_function_call): Call
21220 check_builtin_function_arguments.
21221 * builtins.c (fold_builtin_classify): Remove error reporting code.
21222 (fold_builtin_unordered_cmp): Likewise.
21223 (fold_builtin_1): Likewise.
21224 (fold_builtin_n): Likewise.
21226 2008-04-24 Jakub Jelinek <jakub@redhat.com>
21228 PR tree-optimization/36008
21229 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
21230 the original op1, rather than delta by step.
21232 2008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
21233 Sebastian Pop <sebastian.pop@amd.com>
21235 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
21236 eliminate_local_variables_stmt, eliminate_local_variables,
21237 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
21238 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
21239 of code delimited by two edges in the CFG.
21240 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
21241 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
21242 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
21243 the case of parallelisation of reductions.
21244 (expr_invariant_in_region_p): New.
21246 * tree-flow.h (gather_blocks_in_sese_region): Declared.
21247 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
21249 2008-04-24 Ira Rosen <irar@il.ibm.com>
21250 Richard Guenther <rguenther@suse.de>
21252 PR tree-optimization/36034
21253 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
21254 incapable of dealing with loads with gaps.
21256 2008-04-24 Rafael Espíndola <espindola@google.com>
21258 * tree-flow.h (vrp_evaluate_conditional): Change signature.
21259 * tree-ssa-propagate.c (fold_predicate_in): Update call to
21260 vrp_evaluate_conditional.
21261 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
21262 (vrp_evaluate_conditional): Split the cond argument.
21263 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
21264 (simplify_stmt_for_jump_threading): Update call to
21265 vrp_evaluate_conditional.
21267 2008-04-24 Ira Rosen <irar@il.ibm.com>
21269 PR tree-optimization/35982
21270 * tree-vect-analyze.c (vect_check_interleaving): Check that the
21271 interleaved data-refs are of the same type.
21273 2008-04-24 Danny Smith <dannysmith@users.net>
21275 * c-format.c (check_format_info_main): Use strncmp rather than a
21276 magic prefix to handle multichar length specs.
21277 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
21278 Don't prefix "I64" and "I32" with '\0'.
21280 2008-04-24 Jakub Jelinek <jakub@redhat.com>
21283 * config/i386/i386.c (init_cumulative_args): Don't pass anything
21284 in registers for -m32 only if stdarg_p (fntype).
21286 2008-04-24 Uros Bizjak <ubizjak@gmail.com>
21288 PR rtl-optimization/36006
21289 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
21290 temp to op0 in order to avoid invalid rtx sharing.
21292 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
21294 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
21295 check TREE_INVARIANT.
21296 * tree-gimple.c (is_gimple_address): New.
21297 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
21298 * tree-gimple.h (is_gimple_address): New.
21299 * tree.h (decl_address_invariant_p): New.
21300 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
21301 (build_string): Likewise.
21302 (decl_address_invariant_p): New, from is_gimple_invariant_address.
21303 (tree_invariant_p_1): Likewise.
21304 (save_expr): Use it.
21305 (tree_invariant_p): New.
21306 (skip_simple_arithmetic): Use it.
21307 (stabilize_reference_1): Use it.
21308 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
21310 (build1_stat): Drop code to compute TREE_INVARIANT.
21311 (build2_stat): Drop code to compute TREE_INVARIANT.
21312 (build3_stat): Drop code to compute TREE_INVARIANT.
21313 (build4_stat): Drop code to compute TREE_INVARIANT.
21314 (build5_stat): Drop code to compute TREE_INVARIANT.
21315 (build7_stat): Drop code to compute TREE_INVARIANT.
21316 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
21317 * tree.h (struct tree_base): Remove invariant_flag.
21318 (TREE_INVARIANT): Remove.
21319 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
21320 (fold_builtin_expect): Check TREE_CONSTANT.
21321 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
21322 * c-tree.h (c_expr_to_decl): Drop third parameter.
21323 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
21324 (build_c_cast): Don't set TREE_INVARIANT.
21325 (pop_init_level): Don't set TREE_INVARIANT.
21326 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
21327 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
21329 (gimplify_init_constructor): Don't set TREE_INVARIANT.
21330 (gimplify_addr_expr): Adjust comment.
21331 * tree-mudflap.c (mf_build_string):
21332 * print-tree.c (print_node): Don't print TREE_INVARIANT.
21333 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
21334 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
21335 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
21336 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
21337 * langhooks.h (struct lang_hooks): Drop third parameter from
21340 2008-04-23 Richard Guenther <rguenther@suse.de>
21342 PR tree-optimization/27799
21343 PR tree-optimization/32921
21344 PR tree-optimization/32624
21345 * tree-ssa-structalias.c (merge_smts_into): Only merge the
21346 SMTs aliases and the tag itself into the solution.
21347 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
21348 merge the points-to solution back into the SMT aliases.
21349 (may_alias_p): Use alias_set_subset_of instead of
21350 aliases_conflict_p. A pointer which points to
21351 memory with alias set zero may access any variable.
21353 2008-04-23 Richard Guenther <rguenther@suse.de>
21355 * alias.c (alias_set_subset_of): Correctly handle asking
21356 if zero is a subset of an alias set with zero child.
21357 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
21358 (compute_flow_insensitive_aliasing): Correctly walk all
21359 pointers. Do not unnecessarily union sets.
21361 2008-04-23 Richard Guenther <rguenther@suse.de>
21363 PR middle-end/36021
21364 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
21366 2008-04-22 Tomas Bily <tbily@suse.cz>
21368 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
21370 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
21372 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
21373 * tree-ssa-structalias.c (get_constraint_for): Likewise.
21374 * tree-inline.c (estimate_num_insns_1): Likewise.
21375 * varasm.c (const_hash_1, compare_constant, copy_constant)
21376 (compute_reloc_for_constant, output_addressed_constants): Likewise.
21377 * emit-rtl.c (component_ref_for_mem_expr)
21378 (set_mem_attributes_minus_bitpos): Likewise.
21379 * expr.c (highest_pow2_factor, expand_expr_real_1)
21380 (is_aligning_offset): Likewise.
21381 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
21382 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
21383 * dojump.c (do_jump): Likewise.
21384 * builtins.c (get_pointer_alignment, get_memory_rtx)
21385 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
21386 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
21388 2008-04-23 Jakub Jelinek <jakub@redhat.com>
21390 PR rtl-optimization/36017
21391 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
21392 expanding the library call.
21394 2008-04-22 Ian Lance Taylor <iant@google.com>
21396 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
21397 than size_in_bytes.
21399 2008-04-22 Pat Haugen <pthaugen@us.ibm.com>
21401 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
21402 of LR/CTR moves for Power6.
21404 2008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
21406 PR middle-end/36003
21407 * passes.c (init_optimization_passes): Remove
21408 pass_fast_rtl_byte_dce.
21410 2008-04-22 Uros Bizjak <ubizjak@gmail.com>
21413 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
21414 builtin functions to generate faster code.
21415 (_mm_cvtpu16_ps): Ditto.
21416 (_mm_cvtpi32x2_ps): Ditto.
21418 2008-04-22 Nick Clifton <nickc@redhat.com>
21420 * common.opt (ftree-loop-distribution): Add Optimization
21423 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
21424 (frv_expand_builtin_va_start): Likewise.
21426 * config/arm/arm.c (thumb_find_work_register): Fix location of
21427 argument register count.
21429 2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
21431 Support scheduling for ColdFire V1 and V3 microarchitecture.
21432 Improve scheduling of multiplication instructions.
21434 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
21435 (mac): New instruction attribute.
21436 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
21437 (m68k_sched_mac): New variable.
21438 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
21439 Handle cfv1 and cfv3.
21440 (max_insn_size): New static variable.
21441 (struct _sched_ib): New type.
21442 (sched_ib): New static variable.
21443 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
21444 to fields of 'struct _sched_ib sched_ib'. Update all uses.
21445 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
21447 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
21448 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
21449 new variables. Update.
21450 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
21451 Add modeling of cfv3 instruction buffer. Update.
21452 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
21453 * config/m68k/m68k.h (TUNE_CFV3): New macro.
21454 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
21455 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
21456 a particular reservation applies to.
21457 (type2): Reorganize attribute values. Rename alu to alu_reg,
21458 alu_l to alu, move_l to omove. Join move to alu. Split mul
21459 to mul_l and mul_w.
21460 (cf_ib_*): Simplify description of instruction buffer.
21461 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
21462 (cf_mem): Split into cf_mem1 and cf_mem2.
21463 (cf_v2_move_??): Rename to cfv12_alu_??.
21464 (cf_v2_move_l_??): Rename to cfv12_omove_??.
21465 (cf_v2_mul_??): Remove reservations.
21466 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
21467 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
21468 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
21470 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
21471 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
21472 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
21473 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
21474 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
21475 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
21476 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
21477 expansions of the above reservations for instructions of sizes
21480 2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
21482 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
21484 2008-04-21 Adam Nemet <anemet@caviumnetworks.com>
21486 * coverage.c: Include tree-pass.h.
21487 (coverage_counter_alloc): Print da_file_name to the dump file.
21489 2008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
21491 * sbitmap.c (sbitmap_range_empty_p): New function.
21492 * sbitmap.h (sbitmap_range_empty_p): New function.
21493 * bitmap.h: Now includes obstack.h.
21495 2008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
21496 Kenneth Zadeck <zadeck@naturalbridge.com>
21498 * dbgcnt.def (ra_byte_scan): Added.
21499 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
21500 when the last hit happens for a counter.
21501 * timevar.def (TV_DF_BYTE_LR): New variable.
21502 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
21503 * passes.c (pass_fast_rtl_byte_dce): New pass.
21504 * fwprop.c (update_df): Added mode to call df_ref_create.
21505 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
21506 DF_REF_EXTRACT_OFFSET.
21507 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
21508 DF_BYTE_LR_OUT, df_byte_lr): New macro.
21510 (df_ref_extract): Added mode field.
21511 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
21512 DF_REF_EXTRACT_OFFSET.
21513 (DF_REF_EXTRACT_MODE): New macro.
21514 (df_byte_lr_bb_info): New structure.
21515 (df_print_byte_regset, df_compute_accessed_bytes,
21516 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
21517 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
21518 df_byte_lr_simulate_uses,
21519 df_byte_lr_simulate_artificial_refs_at_top,
21520 df_byte_lr_simulate_artificial_refs_at_end,
21521 df_compute_accessed_bytes): New function.
21522 (df_ref_create): Add parameter.
21523 (df_byte_lr_get_bb_info): New inline function.
21524 * df-scan.c (df_ref_record, df_uses_record,
21525 df_ref_create_structure): Added mode parameter.
21526 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
21527 df_defs_record, df_uses_record, df_get_conditional_uses,
21528 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
21529 df_entry_block_defs_collect, df_exit_block_uses_collect):
21530 Added mode parameter to calls to df_ref_record, df_uses_record,
21531 df_ref_create_structure.
21532 (df_ref_equal_p, df_ref_compare): Added test for modes.
21533 (df_ref_create_structure): Added code to set mode. Renamed
21534 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
21535 DF_REF_EXTRACT_OFFSET.
21536 * df-core.c (df_print_byte_regset): New function.
21537 * df-byte-scan.c: New file.
21538 * df-problems.c (df_rd_transfer_function): Removed unnecessary
21539 calls to BITMAP_FREE.
21540 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
21541 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
21542 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
21543 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
21544 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
21545 df_byte_lr_local_compute, df_byte_lr_init,
21546 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
21547 df_byte_lr_transfer_function, df_byte_lr_free,
21548 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
21549 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
21550 df_byte_lr_simulate_uses,
21551 df_byte_lr_simulate_artificial_refs_at_top,
21552 df_byte_lr_simulate_artificial_refs_at_end): New function.
21553 * dce.c (byte_dce_process_block): New function.
21554 (dce_process_block): au is now passed in rather than computed
21555 locally. Changed loops that look at artificial defs to not look
21556 for conditional or partial ones, because there never are any.
21557 (fast_dce): Now is able to drive byte_dce_process_block or
21558 dce_process_block depending on the kind of dce being done.
21559 (rest_of_handle_fast_dce): Add parameter to fast_dce.
21560 (rest_of_handle_fast_byte_dce): New function.
21561 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
21562 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
21564 2008-04-21 Daniel Franke <franke.daniel@gmail.com>
21567 * gcc.h: Added fortran options that take arguments to
21568 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
21571 2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
21573 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
21574 scalarization if on the LHS and not a full access.
21576 2008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21578 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
21580 2008-04-18 Rafael Espíndola <espindola@google.com>
21582 * tree-vrp.c (find_case_label_index): Fix the binary search.
21583 (find_case_label_range): New.
21584 (vrp_visit_switch_stmt): Use find_case_label_range.
21585 (simplify_switch_using_ranges): Use find_case_label_range.
21587 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
21589 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
21590 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
21592 2008-04-18 Tom Tromey <tromey@redhat.com>
21595 * doc/cpp.texi (Implementation-defined behavior): Mention
21598 2008-04-18 Ian Lance Taylor <iant@google.com>
21600 * fold-const.c (pointer_may_wrap_p): New static function.
21601 (fold_comparison): Add another test for pointer overflow. Use
21602 pointer_may_wrap_p to disable some false positives.
21604 2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
21606 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
21607 (fname_as_string): Match updated cpp_interpret_string prototype.
21608 (fix_string_type): Support char16_t* and char32_t*.
21609 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
21610 derivative) nodes. Register as builtin if C++0x.
21611 (c_parse_error): Support CPP_CHAR{16,32}.
21612 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
21613 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
21614 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
21615 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
21616 CTI_CHAR32_ARRAY_TYPE>: New elements.
21617 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
21618 char32_type_node, signed_char32_type_node, char16_array_type_node,
21619 char32_array_type_node): New defines.
21620 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
21621 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
21622 (lex_string): Support CPP_STRING{16,32}, match updated
21623 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
21624 (lex_charconst): Support CPP_CHAR{16,32}.
21625 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
21626 and CPP_STRING{16,32}.
21628 2008-04-18 Paolo Bonzini <bonzini@gnu.org>
21631 * aclocal.m4: Regenerate.
21632 * configure: Regenerate.
21634 2008-04-18 Jan Hubicka <jh@suse.cz>
21636 * except.c (dw2_size_of_call_site_table,
21637 sjlj_size_of_call_site_table): Use vector API for call_site_record.
21639 * cgraphbuild.c (build_cgraph_edges): Update.
21640 * tree-pass.h: Update comment.
21641 * final.c (leaf_function_p): Update.
21642 (leaf_renumber_regs): Update.
21643 (rest_of_clean_state): Update.
21644 * omp-low.c (expand_omp_parallel): Update.
21645 * ipa-reference.c (analyze_function): Update.
21646 * reorg.c (find_end_label): Update.
21647 (optimize_skip): Update.
21648 (fill_simple_delay_slots): Update.
21649 (fill_simple_delay_slots): Update.
21650 (make_return_insns): Update.
21651 (dbr_schedule): Update.
21652 * gimple-low.c (record_vars_into): Update.
21653 * cfgbuild.c (make_edges): Update.
21654 * function.c (assign_stack_local): Update.
21655 (assign_parm_adjust_stack_rtl): Update.
21656 (locate_and_pad_parm): Update.
21657 (allocate_struct_function): Do not initialize stack_alignment_needed
21658 and preferred_stack_boundary here.
21659 (stack_protect_prologue): Update.
21660 (stack_protect_epilogue): Update.
21661 (expand_function_start): Initialize stack_alignment_needed,
21662 preferred_stack_boundary and max_jumptable_ents.
21663 (expand_function_end): Update.
21664 (free_after_compilation): Do not NULLify epilogue_delay_list.
21665 * function.h (struct rtl_data): Add stack_protect_guard,
21666 stack_alignment_needed,
21667 preferred_stack_boundary, epilogue_delay_list.
21668 (struct function): Remove value_histograms, stack_alignment_needed,
21669 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
21671 unexpanded_var_list, stack_protect_guard.
21672 (current_function_epilogue_delay_list): Remove.
21673 * ipa-type-escape.c (analyze_function): Update.
21674 * gimplify.c (pop_gimplify_context): Update comment.
21675 * calls.c (expand_call): Update.
21676 (emit_library_call_value_1): Update.
21677 * except.c (set_nothrow_function_flags): Update.
21678 * cfgexpand.c (get_decl_align_unit): Update.
21679 (create_stack_guard): Update.
21680 (estimated_stack_frame_size): Update.
21681 (expand_used_vars): Update.
21682 (tree_expand_cfg): Free histogram earliers, init expansion variables.
21683 * explow.c (allocate_dynamic_stack_space): Update.
21684 * tree-ssa-live.c (remove_unused_locals): Update.
21685 * varasm.c (mark_constant_pool): Update.
21686 * tree-inline.c (remap_decls): Update.
21687 (initialize_cfun): Update.
21688 (declare_return_variable): Update.
21689 (inline_forbidden_p): Update.
21690 (expand_call_inline): Update.
21691 (declare_inline_vars): Update.
21692 (tree_function_versioning): Update.
21693 * tree-flow.h (value_histograms): New.
21694 (VALUE_HISTOGRAMS): New macro.
21695 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
21697 * tree-cfg.c (set_bb_for_stmt): Update.
21698 (replace_by_duplicate_decl): Update.
21699 (move_block_to_fn): Update.
21700 (new_label_mapper): Update.
21701 (dump_function_to_file): Update.
21702 * ipa-struct-reorg.c (build_data_structure): Update.
21703 * cfgrtl.c (print_rtl_with_bb): Update.
21704 * reload1.c (reload): Update.
21706 * config/i386/i386.c (setup_incoming_varargs_64,
21707 ix86_compute_frame_layout): Update.
21708 * config/arc/arc.c (arc_output_function_epilogue): Update.
21710 2008-04-18 Marius Strobl <marius@FreeBSD.org>
21712 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
21713 for FreeBSD as well.
21714 * gthr-posix95.h: Likewise.
21716 2008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
21718 PR rtl-optimization/35838
21719 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
21720 out the byte offset of the first subreg.
21722 2008-04-17 Uros Bizjak <ubizjak@gmail.com>
21724 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
21725 to split_ti instead of three separate calls with single member arrays.
21726 (subti3 splitter): Ditto.
21727 (adddi3 splitter): Ditto with split_di.
21728 (subdi3 splitter): Ditto.
21729 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
21730 two separate calls with single member arrays. Swap match_dup
21731 operands 1 and 2 to better fit into the array.
21732 (negdi2 splitter): Ditto with split_di.
21733 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
21734 two separate calls with single member arrays. Swap match_dup operands
21735 6 and 7 to better fit into the array.
21737 2008-04-17 H.J. Lu <hongjiu.lu@intel.com>
21739 * config/i386/i386.c (sse_builtin_type): New.
21740 (bdesc_sse_args): Likewise.
21741 (bdesc_sse_3arg): Removed.
21742 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
21743 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
21744 IX86_BUILTIN_ROUNDPS.
21745 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
21746 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
21747 IX86_BUILTIN_ROUNDPS.
21748 (ix86_expand_sse_4_operands_builtin): Removed.
21749 (ix86_expand_sse_operands_builtin): New.
21750 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
21751 and CODE_FOR_sse4_1_roundps.
21752 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
21753 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
21755 2008-04-17 Alan Modra <amodra@bigpond.net.au>
21758 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
21759 regs before frame pop when needed. If use_backchain_to_restore_sp
21760 then load backchain into a temp reg to restore vr and vrsave. Add
21761 code to restore vr after frame pop if possible.
21763 2008-04-17 Richard Guenther <rguenther@suse.de>
21765 * tree-vn.c (expressions_equal_p): Do not check type
21766 equality or compatibility before calling operand_equal_p.
21767 * fold-const.c (operand_equal_p): Check equivalence of
21768 integer constants before bailing out due to signedness or
21769 precision differences.
21770 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
21771 spurious differences in type qualification. Ignore types
21772 for COMPONENT_REFs at all.
21774 2008-04-17 Christian Bruel <christian.bruel@st.com>
21776 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
21777 msw_skip comparison.
21779 2008-04-16 Jakub Jelinek <jakub@redhat.com>
21782 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
21785 PR tree-optimization/35899
21786 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
21787 rather than TREE_OPERAND.
21789 2008-04-16 Uros Bizjak <ubizjak@gmail.com>
21792 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
21793 temporary registers. Change operand predicate to general_operand.
21794 (remainderxf3): Ditto.
21796 2008-04-16 Richard Guenther <rguenther@suse.de>
21798 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
21799 * tree-affine.c (aff_combination_expand): Look through some
21802 2008-04-15 Doug Kwan <dougkwan@google.com>
21804 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
21806 * tree-pretty-print.c (dump_generic_node): Ditto.
21807 * final.c (output_addr_const): Ditto.
21808 * dwarf2out.c (output_cfi): Ditto.
21809 * c-pretty-print.c (pp_c_integer_constant): Ditto.
21810 * print-rtl.c (print_rtx): Ditto.
21811 * print-tree.c (print_node_brief, print_node): Ditto.
21812 * c-common.c (match_case_to_enum_1): Ditto.
21813 * sched-vis.c (print_value): Ditto.
21814 * config/i386/i386.c (print_operand): Cast to long unsigned int
21817 2008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
21818 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
21819 MS Windows VirtualProtect function.
21821 2008-04-15 Jan Hubicka <jh@suse.cz>
21823 * gengtype.c (write_root): Param_is argument is OK.
21824 * expr.c (expand_expr_real_1): Update call of get_exception_*.
21825 * function.h: Include varray.h
21826 (rtl_eh): New stucture based on except.c one.
21827 (call_site_record): New forward declaration and vector type.
21828 * calls.c (emit_call_1): Do not call
21829 note_current_region_may_contain_throw.
21830 * except.c (eh_status): Remove cur_region, try_region since they are
21832 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
21833 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
21834 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
21835 Remove call_site_data_used, call_site_data_size.
21836 Turn call_site_record into vector in function.h.
21837 (note_current_region_may_contain_throw): Remove.
21838 (get_exception_pointer, get_exception_filter): Do not take struct
21839 function argument; update.
21840 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
21841 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
21842 build_post_landing_pads, dw2_build_landing_pads,
21843 sjlj_assign_call_site_values, sjlj_mark_call_sites,
21844 sjlj_emit_function_enter, sjlj_emit_function_enter,
21845 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
21846 sjlj_build_landing_pads, finish_eh_generation,
21847 remove_exception_handler_label, remove_eh_handler,
21848 maybe_remove_eh_handler, add_reachable_handler,
21849 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
21850 add_action_record, collect_one_action_chain, add_call_site,
21851 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
21852 sjlj_output_call_site_table, output_function_exception_table,
21853 * except.h (note_current_region_may_contain_throw): Remove
21854 (get_exception_pointer, get_exception_filter): Do not take struct
21856 * Makefile.in (GTFILES): Put varargs before struct function.
21858 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
21860 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
21861 punt for STRING_CST.
21862 (get_constraint_for): Deal with STRING_CST here instead.
21864 2008-04-15 Richard Guenther <rguenther@suse.de>
21866 * tree-ssa-propagate.c (substitute_and_fold): Substitute
21867 statements in a basic-block with a backward walk. Do not
21868 substitute into dead statements but instead remove those.
21870 2008-04-15 Richard Guenther <rguenther@suse.de>
21872 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
21873 to zero, thus disable creation of SFTs.
21875 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
21877 * tree-predcom.c (suitable_reference_p): Return false if the
21878 reference can throw.
21880 2008-04-15 Jakub Jelinek <jakub@redhat.com>
21883 * c-decl.c (finish_decl): If extern or static var has variable
21884 size, set TREE_TYPE (decl) to error_mark_node.
21886 2008-04-15 Rafael Espíndola <espindola@google.com>
21888 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
21891 2008-04-15 Richard Guenther <rguenther@suse.de>
21893 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
21894 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
21895 (visit_reference_op_load): Do walk vuse-vdef chains on
21896 vn_reference_lookup.
21897 (visit_reference_op_store): But do not here.
21898 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
21899 vn_reference_lookup.
21900 (vn_lookup_with_vuses): But do so here.
21902 2008-04-14 Ian Lance Taylor <iant@google.com>
21904 * fold-const.c (fold_overflow_warning): Remove assertion.
21906 2008-04-15 Ben Elliston <bje@au.ibm.com>
21908 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
21909 temp1 local variables.
21911 2008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
21914 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
21915 ".text.unlikely" section as executable.
21917 2008-04-14 James E. Wilson <wilson@tuliptree.org>
21919 * config/ia64/ia64.c (rtx_needs_barrier): Handle
21920 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
21921 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
21922 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
21923 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
21924 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
21925 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
21927 2008-04-14 Ian Lance Taylor <iant@google.com>
21929 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
21930 * fold-const.c (fold_comparison): If appropriate, test
21931 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
21932 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
21933 reassociating a pointer type.
21934 * doc/invoke.texi (Optimize Options): Document that
21935 -fstrict-overflow applies to pointer wraparound.
21937 2008-04-13 Jan Hubicka <jh@suse.cz>
21939 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
21941 2008-04-12 Andrew Pinski <pinskia@gmail.com>
21943 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
21944 we are going to "save the world".
21946 2008-04-13 Hans-Peter Nilsson <hp@axis.com>
21948 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
21949 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
21950 operand 0 constraint, not "=".
21952 2008-04-11 James E. Wilson <wilson@tuliptree.org>
21954 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
21956 2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
21958 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
21959 of size of positions_needed * CHAR_BIT.
21961 2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
21963 PR middle-end/35897
21964 * dse.c (store_info): Change positions_needed to unsigned
21966 (lowpart_bitmask): New.
21967 (record_store): Cast to unsigned HOST_WIDE_INT for
21968 positions_needed. Assert width <= size of positions_needed *
21969 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
21970 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
21971 lowpart_bitmask to set mask.
21973 2008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
21975 * config/bfin/constraints.md: New file.
21976 * config/bfin/bfin.md: Include it.
21977 (adddi3): Use satisfies_constraint functions instead of the old macros.
21978 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
21979 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
21980 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
21981 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
21982 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
21983 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
21984 EXTRA_CONSTRAINT): Delete.
21985 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
21986 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
21988 * config/bfin/bfin.c: Include "tm-constrs.h".
21989 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
21990 Use satisfies_constraint functions instead of the old macros.
21991 * doc/md.texi (Blackfin Constraints): Update file name reference.
21993 2008-04-11 Richard Guenther <rguenther@suse.de>
21995 PR tree-optimization/35869
21996 * tree-vrp.c (execute_vrp): Move switch statement update after
21997 jump threading. Schedule another cfg cleanup run.
21999 2008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
22002 * attribs.c (decl_attributes): Return early on errorneous node.
22004 2008-04-10 Oleg Ryjkov <olegr@google.com>
22006 * tree.h (struct tree_base): Added a new flag default_def_flag.
22007 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
22009 2008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
22011 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
22013 2008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22016 * pa.md: Define mode iterator P. Define mode attribute dwc.
22017 (dcacheflush): Update pattern to use iterator P and attribute dwc.
22018 (icacheflush): Likewise.
22019 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
22020 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
22022 2008-04-11 Ben Elliston <bje@au.ibm.com>
22024 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
22026 2008-04-10 Rafael Espíndola <espindola@google.com>
22028 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
22029 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
22030 (extract_range_from_expr): The same.
22032 2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
22034 * config/mips/mips.md (GPR2): New mode iterator.
22035 (seq): Add comment.
22036 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
22037 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
22038 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
22039 Rewrite these to take two modes, the mode of comparison and the
22040 mode of the destination.
22041 * config/mips/mips.c (mips_expand_scc): Instead of having
22042 paradoxical subreg as destination, expand "narrowing" scc if mode
22043 of comparison is SI and target is requested in DI mode.
22044 (mips_emit_int_order_test): Update comment. Make mode of
22045 comparison match CMP0 rather than TARGET. When creating inverse
22046 target use mode of TARGET.
22048 2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
22050 * gcov-dump.c (tag_summary): Only print summaries for the first
22051 GCOV_COUNTERS_SUMMABLE counters.
22053 2008-04-10 Uros Bizjak <ubizjak@gmail.com>
22055 * config/i386/i386.md (absneg): New code iterator.
22056 (absnegprefix): New code attribute.
22057 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
22058 patterns using absneg code iterator.
22059 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
22060 using absneg code iterator.
22061 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
22062 *neg<mode>2 patterns using absneg code iterator.
22063 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
22064 *negextendsfdf2 patterns using absneg code iterator.
22065 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
22066 *negextendsfxf2 patterns using absneg code iterator.
22067 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
22068 *negextendsfdf2 patterns using absneg code iterator.
22069 * config/i386/sse.md (<code><mode>2): Macroize expander from
22070 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
22072 2008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
22074 * config/s390/s390.h: Remove the remains of the recent search
22075 & replace action of current_function_outgoing_args_size.
22077 2008-04-10 Ira Rosen <irar@il.ibm.com>
22079 PR tree-optimization/35821
22080 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
22081 NEW_STMT_LIST is not NULL.
22083 2008-04-09 David Edelsohn <edelsohn@gnu.org>
22086 * toplev.c (process_options): Remove -ffunction-sections debugging
22089 2008-04-09 Peter Bergner <bergner@vnet.ibm.com>
22091 PR middle-end/PR28690
22092 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
22093 than gen_rtx_fmt_ee to perform more canonicalizations.
22095 2008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22098 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
22100 2008-04-09 Richard Guenther <rguenther@suse.de>
22102 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
22103 (dump_function_to_file): Dump function arguments with types.
22105 2008-04-08 Richard Guenther <rguenther@suse.de>
22107 * fold-const.c (fold_widened_comparison): Do not allow
22108 sign-changes that change the result.
22110 2008-04-08 Janis Johnson <janis187@us.ibm.com>
22113 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
22114 kinds of indirect references.
22116 2008-04-08 David Edelsohn <edelsohn@gnu.org>
22118 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
22119 GNU Fortran language string.
22121 2008-04-08 Rafael Espíndola <espindola@google.com>
22123 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
22124 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
22125 * tree.h (tree_call_nonnegative_warnv_p): New.
22127 2008-04-08 Jan Hubicka <jh@suse.cz>
22129 * function.c (free_after_compilation): Clear out regno_reg_rtx
22132 2008-04-08 Peter Bergner <bergner@vnet.ibm.com>
22135 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
22137 PR middle-end/PR28690
22138 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
22139 same precedence as REG_POINTER and MEM_POINTER operands.
22141 2008-04-08 Richard Guenther <rguenther@suse.de>
22143 PR middle-end/35834
22144 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
22145 for adding index to base.
22147 2008-04-08 Kai Tietz <kai.tietz@onevision.com>
22149 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
22150 (MINGW_ENABLE_EXECUTE_STACK): New.
22151 (IN_LIBGCC2): For libgcc include windows.h file for
22152 function declarations.
22154 2008-04-08 Hans-Peter Nilsson <hp@axis.com>
22156 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
22157 and tem2 if tem1 is not a REG or MULT.
22159 2008-04-08 Jan Hubicka <jh@suse.cz>
22161 * function.h (incomming_args): Break out of struct function.
22162 (function_subsections): Break out of struct function.
22163 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
22164 return_rtx and hard_reg_initial_vals from struct function.
22165 Kill inl_max_label_num.
22166 (current_function_pops_args, current_function_args_info,
22167 current_function_args_size, current_function_args_size,
22168 current_function_pretend_args_size,
22169 current_function_outgoing_args_size,
22170 current_function_internal_arg_pointer, current_function_return_rtx):
22171 Kill compatibility accestor macros.
22172 * builtins.c (expand_builtin_apply_args_1): Update.
22173 (expand_builtin_next_arg): Update.
22174 * df-scan.c (df_get_call_refs): Update.
22175 * dbxout.c (dbxout_function_end): Update.
22176 * dwarf2out.c (dwarf2out_switch_text_section): Update.
22177 (output_line_info): Update.
22178 (secname_for_decl): Update.
22179 (dwarf2out_var_location): Update.
22180 * function.c (free_after_compilation): Update.
22181 (assign_parm_find_stack_rtl): Update.
22182 (assign_parms): Update.
22183 (expand_dummy_function_end): Update.
22184 (expand_function_end): Update.
22185 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
22186 (expand_call): Update.
22187 (emit_library_call_value_1): Update.
22188 (store_one_arg): Update.
22189 * varasm.c (initialize_cold_section_name): Update.
22190 (unlikely_text_section): Update.
22191 (unlikely_text_section_p): Update.
22192 (assemble_start_function): Update.
22193 (assemble_end_function): Update.
22194 (default_section_type_flags): Update.
22195 (switch_to_section): Update.
22196 * integrate.c (set_decl_abstract_flags): Update.
22197 (get_hard_reg_initial_val): Update.
22198 (has_hard_reg_initial_val): Update.
22199 (allocate_initial_values): Update.
22200 * resource.c (init_resource_info): Update.
22201 * config/alpha/alpha.c (NUM_ARGS): Update.
22202 (direct_return): Update.
22203 (alpha_va_start): Update.
22204 (alpha_sa_size): Update.
22205 (alpha_initial_elimination_offset): Update.
22206 (alpha_expand_prologue): Update.
22207 (alpha_start_function): Update.
22208 (alpha_expand_epilogue): Update.
22209 (unicosmk_initial_elimination_offset):
22210 * config/alpha/alpha.md (call expander): Update.
22211 * config/s390/s390.c (s390_register_info): Update.
22212 (s390_register_info): Update.
22213 (s390_frame_info): Update.
22214 (s390_initial_elimination_offset): Update.
22215 (s390_build_builtin_va_list): Update.
22216 (s390_va_start): Update.
22217 * config/spu/spu.c (direct_return): Update.
22218 (spu_expand_prologue): Update.
22219 (spu_initial_elimination_offset): Update.
22220 (spu_build_builtin_va_list): Update.
22221 (spu_va_start): Update.
22222 * config/sparc/sparc.c (sparc_init_modes): Update.
22223 (sparc_compute_frame_size): Update.
22224 (function_value): Update.
22225 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
22226 * config/i386/i386.md (return expander): Update.
22227 * config/i386/i386.c (ix86_va_start): Update.
22228 (ix86_can_use_return_insn_p): Update.
22229 (ix86_compute_frame_layout): Update.
22230 (ix86_expand_epilogue): Update.
22231 * config/sh/sh.c (output_stack_adjust): Update.
22232 (calc_live_regs): Update.
22233 (sh_expand_prologue): Update.
22234 (sh_builtin_saveregs): Update.
22235 (sh_va_start): Update.
22236 (initial_elimination_offset): Update.
22237 (sh_allocate_initial_value): Update.
22238 (sh_function_ok_for_sibcall): Update.
22239 (sh_get_pr_initial_val): Update.
22240 * config/sh/sh.md (return expander): Update.
22241 * config/avr/avr.c (frame_pointer_required_p): UPdate.
22242 * config/crx/crx.c (crx_compute_frame): UPdate.
22243 (crx_initial_elimination_offset): UPdate.
22244 * config/xtensa/xtensa.c (compute_frame_size): Update
22245 (xtensa_builtin_saveregs): Update.
22246 (xtensa_va_start): Update.
22247 (order_regs_for_local_alloc): Update.
22248 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
22249 (xstormy16_expand_builtin_va_start): Update.
22250 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
22251 * config/m68hc11/m68hc11.md (return expanders): Update.
22252 * config/m68hc11/m68hc11.c (expand_prologue): Update.
22253 (expand_epilogue): Update.
22254 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
22255 (cris_simple_epilogue): Update.
22256 (cris_expand_prologue): Update.
22257 (cris_expand_epilogue): Update.
22258 * config/iq2000/iq2000.c (iq2000_va_start): Update.
22259 (compute_frame_size): Update.
22260 * config/mt/mt.c (mt_compute_frame_size): Update.
22261 * config/mn10300/mn10300.c (expand_prologue): Update.
22262 (expand_epilogue): Update.
22263 (initial_offset): Update.
22264 (mn10300_builtin_saveregs):
22265 * config/mn10300/mn10300.md (return expander): Update.
22266 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
22267 (ia64_initial_elimination_offset): Update.
22268 (ia64_initial_elimination_offset): Update.
22269 (ia64_expand_prologue): Update.
22270 * config/m68k/m68k.md (return expander): Update.
22271 * config/rs6000/rs6000.c (rs6000_va_start): Update.
22272 (rs6000_stack_info): Update.
22273 * config/mcore/mcore.c (layout_mcore_frame): Update.
22274 (mcore_expand_prolog): Update.
22275 * config/arc/arc.c (arc_compute_frame_size): Update.
22276 * config/score/score3.c (score3_compute_frame_size): Update.
22277 * config/score/score7.c (score7_compute_frame_size): Update.
22278 * config/arm/arm.c (use_return_insn): Update.
22279 (thumb_find_work_register): Update.
22280 (arm_compute_save_reg_mask): Update.
22281 (arm_output_function_prologue): Update.
22282 (arm_output_epilogue): Update.
22283 (arm_size_return_regs): Update.
22284 (arm_get_frame_offsets): Update.
22285 (arm_expand_prologue): Update.
22286 (thumb_exit): Update.
22287 (thumb_unexpanded_epilogue): Update.
22288 (thumb1_output_function_prologue): Update.
22289 * config/pa/pa.md (return expander): Update.
22290 * config/pa/pa.c (compute_frame_size): Update.
22291 (hppa_builtin_saveregs): Update.
22292 * config/mips/mips.c (mips_va_start): Update.
22293 (mips16_build_function_stub): Update.
22294 (mips_compute_frame_info): Update.
22295 (mips_restore_gp): Update.
22296 (mips_output_function_prologue): Update.
22297 (mips_expand_prologue): Update.
22298 * config/v850/v850.c (compute_frame_size): Update.
22299 (expand_prologue): * config/mmix/mmix.c (along): update.
22300 (mmix_initial_elimination_offset): update.
22301 (mmix_reorg): update.
22302 (mmix_use_simple_return): update.
22303 (mmix_expand_prologue): update.
22304 (mmix_expand_epilogue): Update.
22305 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
22306 (emit_link_insn): Update.
22308 2008-04-08 Anatoly Sokolov <aesok@post.ru>
22310 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
22311 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
22313 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
22316 2008-04-07 Jan Hubicka <jh@suse.cz>
22318 * function.h (rtl): Rename to x_rtl.
22319 (crtl): New define.
22320 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
22321 frame_offset, stack_check_probe_note, arg_pointer_save_area,
22322 used_temp_slots avail_temp_slots, temp_slot_level,
22323 nonlocal_goto_handler_labels): Update accesstors.
22324 (rtl): New global variable.
22325 (struct function): Move some fileds to rtl_data.
22326 (get_arg_pointer_save_area): Update prototype.
22327 * builtins.c (expand_builtin_setjmp_receiver): Update call of
22328 get_arg_pointer_save_area.
22329 * expr.c (init_expr): Update
22330 * function.c (get_frame_size): Update
22331 (assign_stack_local): Update
22332 (expand_function_end): Update.
22333 (get_art_pointer_save_area): Update
22335 * emit-rtl.c (rtl): Declare.
22336 (regno_reg_rtx): Declare.
22337 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
22339 (gen_reg_rtx): Update.
22340 * varasm.c (n_deferred_constatns): Update accestor.
22341 (init_varasm_status): Do not allocate varasm_status.
22342 (force_const_mem, get_pool_size, output_constant_pool): Update.
22343 * stmt.c (force_label_rtx): Do not use x_ prefixes.
22344 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
22345 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
22346 * sparc/sparc.h (INIT_EXPANDERS): Update.
22347 * ia64/ia64.h (INIT_EXPANDERS): Update.
22349 2008-04-07 James E. Wilson <wilson@tuliptree.org>
22351 * reload.c (push_secondary_reload): Add missing break to for loop.
22353 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
22355 PR middle-end/PR28690
22356 * rtlanal.c: Update copyright years.
22357 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
22358 as REG_POINTER and MEM_POINTER operands.
22359 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
22360 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
22361 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
22362 * gcse.c: Update copyright years.
22363 (pre_delete): Call gen_reg_rtx_and_attrs.
22364 (hoist_code): Likewise.
22365 (build_store_vectors): Likewise.
22366 (delete_store): Likewise.
22367 * loop-invariant.c (move_invariant_reg): Likewise.
22368 Update copyright years.
22370 2008-04-07 Uros Bizjak <ubizjak@gmail.com>
22372 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
22373 control string instead of quoted.
22375 2008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
22377 * doc/rtl.texi: Rewrite of subreg section.
22379 2008-04-07 Kai Tietz <kai.tietz@onevision.com>
22382 * config/i386/i386.c (legitimize_pic_address): Add treating
22383 of dllimport SYM_REF's.
22384 (legitimize_dllimport_symbol): Add prototype.
22386 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
22388 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
22389 reference in constructor with non self-referential type.
22391 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
22393 Removal of Return with Depressed Stack Pointer support
22394 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
22395 (ECF_SP_DEPRESSED): Likewise.
22396 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
22397 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
22398 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22399 (expand_call): Do not test ECF_SP_DEPRESSED.
22400 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22401 * function.c (keep_stack_depressed): Delete.
22402 (handle_epilogue_set): Likewise.
22403 (update_epilogue_consts): Likewise.
22404 (emit_equiv_load): Likewise.
22405 (thread_prologue_and_epilogue_insns): Remove support for Return with
22406 Depressed Stack Pointer.
22407 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22409 2008-04-06 Richard Guenther <rguenther@suse.de>
22411 PR tree-optimization/35400
22412 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
22413 information from SSA_NAMEs.
22415 2008-04-06 Anatoly Sokolov <aesok@post.ru>
22417 * config/avr/avr.h (avr_mega_p): Remove declaration.
22418 (AVR_MEGA): Remove macro.
22419 * config/avr/avr.c (avr_mega_p): Remove variable.
22420 (avr_override_options): Remove inicializion of avr_mega_p.
22421 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
22422 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
22423 (avr_jump_mode): (Ditto.).
22424 (avr_output_progmem_section_asm_op): (Ditto.).
22425 (avr_asm_init_sections): (Ditto.).
22426 (avr_asm_init_sections): (Ditto.).
22427 (avr_rtx_costs): (Ditto.).
22428 * config/avr/avr.md: (Ditto.).
22429 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
22432 2008-04-06 Richard Guenther <rguenther@suse.de>
22434 PR tree-optimization/35842
22435 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
22436 is_gimple_invariant_address.
22438 2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
22440 * gcc.c (default_compilers): Sync Fortran extensions list with
22441 that in fortran/lang-specs.h.
22442 * doc/invoke.texi: Likewise.
22443 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
22444 * dwarf2out.c (gen_compile_unit_die): Likewise.
22446 2008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
22448 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
22450 2008-04-05 Uros Bizjak <ubizjak@gmail.com>
22453 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
22454 attribute is used for nested functions.
22456 2008-04-05 Jan Hubicka <jh@suse.cz>
22458 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
22460 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
22462 (dump_files): Update.
22463 (enable_rtl_dump_file): Do not accept letter argument.
22464 * tree-pass.h (dump_file_info): Remove letter argument.
22465 * toplev.c (decode_d_option): Update -da handling.
22466 * toplev.h (enable_rtl_dump_file): Update prototype.
22467 * passes.c (register_one_dump_file): Do not accept IPA argument; work
22468 it out based on pass type.
22469 (register_dump_files_1): Likewise.
22470 (init_optimization_passes): Update register_one_dump_file calls.
22471 (execute_one_pass): Sanity check that IPA passes are called at IPA
22472 level and RTL passes at RTL level.
22473 (execute_pass_list): IPA pass can not be after or subpass of
22475 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
22476 disallov RTL subpasses of IPA subpasses.
22478 2008-04-05 Ben Elliston <bje@au.ibm.com>
22480 * tree-cfg.c (need_fake_edge_p): Return false for calls to
22481 builtins that return exactly once and do not throw. Cache call to
22484 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
22486 PR rtl-optimization/34916
22487 PR middle-end/35519
22488 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
22489 between instruction pairs.
22491 2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
22493 * doc/invoke.texi: Document -mbitops for SH.
22494 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
22495 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
22496 * config/sh/sh.c (print_operand): Add %t operand code.
22497 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
22498 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
22499 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
22500 (extendqihi2): Likewise.
22501 (movqi_i): Likewise.
22502 (insv): Use bset, bclr and bst instructions for SH2A if possible.
22503 (extv): Use bld instruction for SH2A if possible.
22505 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
22506 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
22507 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
22508 (bset.b, bclr.b): Define peepholes.
22509 * config/sh/sh.opt (mbitops): New option.
22511 2008-04-04 Janis Johnson <janis187@us.ibm.com>
22514 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
22515 and view convert expression.
22517 2008-04-04 Jakub Jelinek <jakub@redhat.com>
22520 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
22522 2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
22524 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
22526 * config/i386/cpuid.h (bit_AES): New.
22527 (bit_PCLMUL): Likewise.
22529 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
22530 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
22531 SSE2 if AES or PCLMUL is enabled.
22532 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
22533 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
22534 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
22535 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
22536 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
22537 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
22538 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
22539 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
22540 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
22541 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
22542 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
22543 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
22544 __builtin_ia32_aeskeygenassist128 and
22545 __builtin_ia32_pclmulqdq128.
22546 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
22547 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
22548 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
22550 * config/i386/i386.h (TARGET_AES): New.
22551 (TARGET_PCLMUL): Likewise.
22552 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
22554 * config/i386/i386.md (UNSPEC_AESENC): New.
22555 (UNSPEC_AESENCLAST): Likewise.
22556 (UNSPEC_AESDEC): Likewise.
22557 (UNSPEC_AESDECLAST): Likewise.
22558 (UNSPEC_AESIMC): Likewise.
22559 (UNSPEC_AESKEYGENASSIST): Likewise.
22560 (UNSPEC_PCLMUL): Likewise.
22562 * config/i386/i386.opt (maes): New.
22563 (mpclmul): Likewise.
22565 * config/i386/sse.md (aesenc): New pattern.
22566 (aesenclast): Likewise.
22567 (aesdec): Likewise.
22568 (aesdeclast): Likewise.
22569 (aesimc): Likewise.
22570 (aeskeygenassist): Likewise.
22571 (pclmulqdq): Likewise.
22573 * config/i386/wmmintrin.h: New.
22575 * doc/extend.texi: Document AES and PCLMUL built-in function.
22577 * doc/invoke.texi: Document -maes and -mpclmul.
22579 2008-04-04 Paolo Bonzini <bonzini@gnu.org>
22581 * function.c (free_after_parsing): Replace with
22582 cxx_push_function_context from C++ front-end.
22583 (allocate_struct_function): Don't call langhook.
22584 * langhooks.h (struct lang_hooks_for_functions): Delete.
22585 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
22587 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
22588 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
22589 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
22590 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
22591 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
22592 remove LANG_HOOKS_FUNCTION_INITIALIZER.
22593 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
22595 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
22596 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
22598 2008-04-04 Jakub Jelinek <jakub@redhat.com>
22601 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
22604 2008-04-04 Richard Guenther <rguenther@suse.de>
22606 PR middle-end/35823
22607 * fold-const.c (optimize_minmax_comparison): Use the correct
22608 type for the constant in the simplified comparison.
22610 2008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
22612 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
22613 Pass L2 size as "--param l2-cache-size" to the compiler.
22614 (decode_l2_cache): New function to decode L2 cache parameters using
22615 0x8000006 extended cpuid function.
22616 (detect_caches_amd): Determine parameters of L2 cache using
22617 decode_l2_caches function.
22618 (decode_caches_intel): Decode L2 cache parameters.
22619 (detect_caches_intel): Determine L2 cache parameters using
22620 decode_caches_intel and decode_l2_caches functions.
22622 2008-04-03 Bob Wilson <bob.wilson@acm.org>
22624 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
22625 secondary input reload for subword loads from the constant pool.
22627 2008-04-03 Janis Johnson <janis187@us.ibm.com>
22630 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
22631 constants of the appropriate size for runtime calculations.
22634 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
22635 decimal-float literal constant zero.
22637 2008-04-03 Jakub Jelinek <jakub@redhat.com>
22640 * c-parser.c (c_parser_omp_atomic): Call
22641 default_function_array_conversion on the RHS.
22643 PR middle-end/35818
22644 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
22645 call is_variable_sized if decl has incomplete type.
22647 2008-04-03 H.J. Lu <hongjiu.lu@intel.com>
22649 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
22651 2008-04-03 Adam Nemet <anemet@caviumnetworks.com>
22653 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
22655 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
22656 (sgt<u>): Merge sgt and sgtu into new expander.
22657 (sgt, sgtu): Remove expanders.
22658 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
22659 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
22660 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
22661 *sgtu_<mode>_mips16 into new pattern.
22662 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
22663 (sge<u>): Merge sge and sgeu into new expander.
22664 (sge, sgeu): Remove expanders.
22665 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
22667 (*sge_<mode>, second *sge_<mode>): Remove patterns.
22668 (slt<u>): Merge slt and sltu into new expander.
22669 (slt, sltu): Remove expanders.
22670 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
22671 (*slt_<mode>, *sltu_<mode>): Remove patterns.
22672 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
22673 *sltu_<mode>_mips16 into new pattern.
22674 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
22675 (sle<u>): Merge sle and sleu into new expander.
22676 (sle, sleu): Remove expanders.
22677 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
22678 (*sle_<mode>, *sleu_<mode>): Remove patterns.
22679 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
22680 *sleu_<mode>_mips16 into new pattern.
22681 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
22683 2008-04-03 Jan Hubicka <jh@suse.cz>
22685 PR tree-optimization/35795
22686 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
22687 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
22688 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
22689 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
22690 * score/score3.c (score3_output_mi_thunk): Likewise.
22691 * score/score7.c (score7_output_mi_thunk): Likewise.
22692 * mips/mips.c (mips_output_mi_thunk): Likewise.
22694 2008-04-03 Richard Guenther <rguenther@suse.de>
22696 * tree-vrp.c (extract_range_from_unary_expr): Handle all
22697 conversions. Simplify code.
22699 2008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
22701 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
22703 2008-04-03 Tom Tromey <tromey@redhat.com>
22704 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22706 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
22707 * config/bfin/t-bfin-linux (generated_files): Add
22708 linux-sysroot-suffix.h.
22709 * doc/install.texi (Prerequisites): Require make 3.80.
22710 * doc/sourcebuild.texi (Front End Directory): Document new
22712 * Makefile.in (generated_files): New variable.
22713 (ALL_HOST_OBJS): New variable.
22714 ($(ALL_HOST_OBJS)): New target.
22716 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
22718 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
22719 (remap_block): Call id->transform_lang_insert_block instead
22721 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
22722 Set id.transform_lang_insert_block to NULL.
22723 (clone_body): Move to cp/optimize.c
22724 * tree-inline.h (struct copy_body_data): Change
22725 transform_lang_insert_block to function pointer.
22726 (copy_generic_body, copy_decl_no_change): Export.
22727 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
22728 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
22729 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
22731 * c-tree.h (insert_block): Kill.
22732 * c-decl.c (insert_block): Kill.
22734 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
22736 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
22737 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
22738 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
22740 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
22741 argument, call {push,pop}_function_context from here.
22742 * c-parser.c: Use c_{push,pop}_function_context.
22744 * function.c (push_function_context_to): Move meat ...
22745 (push_function_context): ... here. Simplify.
22746 * function.c (pop_function_context_from): Move meat ...
22747 (pop_function_context): ... here. Simplify.
22748 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
22750 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
22751 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
22752 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
22753 * tree.h (push_function_context_to, pop_function_context_from): Remove.
22755 2008-04-03 Ben Elliston <bje@au.ibm.com>
22757 * expmed.c (extract_force_align_mem_bit_field): Remove.
22759 2008-04-03 Richard Guenther <rguenther@suse.de>
22761 PR middle-end/35800
22762 * expr.h (try_casesi): Adjust prototype.
22763 * expr.c (try_casesi): Take fallback label as extra parameter.
22764 Use that for gen_casesi if default_label is NULL.
22765 * stmt.c (expand_case): Pass fallback label to try_casesi,
22766 make sure to fill gaps with a fallback label if default_label
22769 2008-04-03 Dominique d'Humières <dominiq@lps.ens.fr>
22772 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
22774 2008-04-03 Ben Elliston <bje@au.ibm.com>
22776 * expmed.c (extract_split_bit_field): Remove if (0) code.
22777 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
22778 (do_ds_constraint): Likewise.
22780 2008-04-02 Joseph Myers <joseph@codesourcery.com>
22782 * doc/cppopts.texi (-dU): Document.
22783 * c-common.h (flag_dump_macros): Update comment.
22784 * c-opts.c (handle_OPT_d): Handle -dU.
22785 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
22786 dump_queued_macros, cb_used_define, cb_used_undef): New.
22787 (init_pp_output): Handle -dU.
22788 (cb_line_change): Call dump_queued_macros.
22789 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
22791 2008-04-02 Anatoly Sokolov <aesok@post.ru>
22793 * config/avr/predicates.md (io_address_operand): New predicate.
22794 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
22795 * config/avr/avr.c (avr_io_address_p): Remove function.
22796 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
22797 'avr_io_address_p' function.
22798 (out_movhi_r_mr): (Ditto.).
22799 (out_movqi_mr_r): (Ditto.).
22800 (out_movhi_mr_r): (Ditto.).
22801 (avr_address_cost): (Ditto.).
22803 2008-04-02 Uros Bizjak <ubizjak@gmail.com>
22805 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
22806 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
22807 in 32bit mode when XMM registers are available to avoid store
22809 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
22810 corresponding post-reload splitters.
22812 2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
22814 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
22815 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
22816 __builtin_ia32_roundss.
22817 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
22818 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
22819 __builtin_ia32_roundss.
22820 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
22821 IX86_BUILTIN_SHUFPD here.
22823 2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
22825 * config/i386/i386.md (plogic): New.
22826 (plogicprefix): Likewise.
22828 * config/i386/mmx.md (mmx_<code><mode>3): New.
22829 (mmx_and<mode>3): Removed.
22830 (mmx_ior<mode>3): Likewise.
22831 (mmx_xor<mode>3): Likewise.
22833 * config/i386/sse.md (<code><mode>3): New.
22834 (*<code><mode>3): Likewise.
22835 (*<code><mode>3): Likewise.
22836 (<code><mode>3): Likewise.
22837 (*sse_<code><mode>3): Likewise.
22838 (*sse2_<code><mode>3): Likewise.
22839 (<code>tf3): Likewise.
22840 (*<code>tf3): Likewise.
22841 (and<mode>3): Likewise.
22842 (*and<mode>3): Likewise.
22843 (ior<mode>3): Removed.
22844 (*ior<mode>3): Likewise.
22845 (xor<mode>3): Likewise.
22846 (*xor<mode>3): Likewise.
22847 (*and<mode>3): Likewise.
22848 (*ior<mode>3): Likewise.
22849 (*xor<mode>3): Likewise.
22850 (and<mode>3): Likewise.
22851 (*sse_and<mode>3): Likewise.
22852 (*sse2_and<mode>3): Likewise.
22853 (andtf3): Likewise.
22854 (*andtf3): Likewise.
22855 (ior<mode>3): Likewise.
22856 (*sse_ior<mode>3): Likewise.
22857 (*sse2_ior<mode>3): Likewise.
22858 (iortf3): Likewise.
22859 (*iortf3): Likewise.
22860 (xor<mode>3): Likewise.
22861 (*sse_xor<mode>3): Likewise.
22862 (*sse2_xor<mode>3): Likewise.
22863 (xortf3): Likewise.
22864 (*xortf3): Likewise.
22866 2008-04-02 Richard Guenther <rguenther@suse.de>
22868 PR tree-optimization/14495
22869 PR tree-optimization/34793
22870 * tree-vrp.c (struct switch_update): New structure.
22871 (to_remove_edges, to_update_switch_stmts): New VECs.
22872 (simplify_switch_using_ranges): New function. Remove not taken
22873 case labels and edges.
22874 (simplify_stmt_using_ranges): Call it.
22875 (identify_jump_threads): Mark edges we have queued for removal
22876 so we don't thread them.
22877 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
22879 * tree-cfg.c (group_case_labels): Deal with missing default label.
22880 (tree_verify_flow_info): Allow missing default label.
22881 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
22882 (emit_case_nodes): Likewise.
22883 (expand_case): Do not rely on the default label to be present.
22884 * expr.c (try_casesi): Deal with NULL default_label.
22885 (do_tablejump): Likewise.
22887 2008-04-02 Richard Guenther <rguenther@suse.de>
22889 PR tree-optimization/14495
22890 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
22891 SWITCH_EXPR here ...
22892 (vrp_visit_switch_stmt): ... but here (new function).
22893 (find_case_label_index): New helper function.
22894 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
22896 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
22898 * fwprop.c: Fix ISO-C99ism.
22900 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
22903 * Makefile.in (objdir): Set it here.
22904 * configure.ac: Not here. Find dynamic linker characteristics.
22905 * exec-tool.in: Use them.
22906 * aclocal.m4: Regenerate.
22907 * configure: Regenerate.
22909 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
22911 * expr.c (expand_var): Delete it.
22912 * expr.h (expand_var): Delete prototype.
22913 * function.c (expand_function_start): Use expand_decl instead.
22914 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
22917 2008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
22919 PR rtl-optimization/35542
22920 * fwprop.c (forward_propagate_and_simplify): Replace
22921 loc_reg_mentioned_in_p with reg_mentioned_p.
22923 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
22925 PR rtl-optimization/35281
22926 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
22927 (propagate_rtx_1): Handle PR_HANDLE_MEM.
22928 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
22929 (varying_mem_p): Move above propagate_rtx.
22930 (all_uses_available_at): Do not check MEMs.
22932 2008-04-02 Rafael Espíndola <espindola@google.com>
22934 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
22935 (register_edge_assert_for_2): Split the cond argument.
22936 (register_edge_assert_for_1): Adjust for the change in
22937 register_edge_assert_for_2.
22938 (register_edge_assert_for): Split the cond argument.
22939 (find_switch_asserts): Adjust for the change in
22940 register_edge_assert_for.
22942 2008-04-02 Kai Tietz <kai.tietz@onevision.com>
22944 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
22945 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
22946 offsets for 64-bit mingw.
22947 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
22948 abi for x86_64-pc-mingw.
22950 2008-04-02 Richard Guenther <rguenther@suse.de>
22952 * tree-vrp.c (extract_range_from_assert): Make sure to not
22953 produce range min/max with TREE_OVERFOW set.
22954 If merging a anti-range and a range keep the anti-range if
22955 the range covers all values of the type.
22956 (register_edge_assert_for_2): Only allow sign-changing
22957 conversions in detecting canonical range checks. Also
22958 register an assert for the unsigned name if useful.
22960 PR tree-optimization/35787
22961 * tree-vrp.c (vrp_val_max): New function.
22962 (vrp_val_min): Likewise.
22963 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
22964 (vrp_val_is_min): Likewise.
22965 (supports_overflow_infinity): Use vrp_val_{min,max}.
22966 (negative_overflow_infinity): Likewise.
22967 (positive_overflow_infinity): Likewise.
22968 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
22969 (is_positive_overflow_infinity): Likewise.
22970 (is_overflow_infinity): Likewise.
22971 (avoid_overflow_infinity): Use vrp_val_{min,max} and
22972 vrp_val_is_{min,max}.
22973 (set_and_canonicalize_value_range): Canonicalize anti-ranges
22974 to ranges if possible. Avoid empty ranges.
22976 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22978 PR middle-end/35705
22979 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
22980 the expression is a function address.
22982 2008-04-01 George Helffrich <george@gcc.gnu.org>
22984 PR fortran/35154, fortran/23057
22985 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
22986 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
22987 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
22988 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
22990 (dbxout_syms): Check for COMMON-based symbol and wrap in
22991 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
22992 in bracket for efficiency.
22994 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
22995 using DW_TAG_common_block + member offset.
22996 (add_pubname_string): New function.
22997 (dw_expand_expr): New function to find block name and offset for
22999 (common_check): New function to check whether symbol in Fortran COMMON.
23000 (gen_variable_die): If COMMON, use DW_TAG_common_block.
23002 2008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
23005 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
23007 2008-04-02 Ben Elliston <bje@au.ibm.com>
23009 * config/v850/v850.md (casesi): Remove if (0) code.
23010 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
23011 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
23013 2008-04-01 Uros Bizjak <ubizjak@gmail.com>
23015 * config/i386/i386.md (rex64suffix): New mode attribute.
23016 (floathi<mode>2): Disable expander for SSE math.
23017 (*floathi<mode>2_1): New insn insn_and_split pattern.
23018 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
23019 corresponding post-reload splitters.
23020 (*floathi<mode>2_i387): New macroized insn pattern.
23021 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
23022 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
23023 insn_and_split pattern.
23024 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
23025 New macroized instruction patterns and corresponding post-reload
23027 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
23028 and corresponding post-reload splitters.
23029 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
23030 New macroized instruction patterns.
23031 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
23032 macroized instruction patterns and corresponding post-reload splitters.
23033 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
23034 corresponding post-reload splitters.
23035 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
23036 New macroized instruction patterns.
23037 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
23038 corresponding post-reload splitters.
23039 (*floatsi<mode>2_i387): New macroized instruction patterns.
23041 2008-04-01 H.J. Lu <hongjiu.lu@intel.com>
23043 * config/i386/i386.md (smaxmin): New.
23044 (umaxmin): Likewise.
23045 (maxminiprefix): Likewise.
23046 (maxminfprefix): Likewise.
23047 (<code><mode>3): Likewise.
23048 (smin<mode>3): Removed.
23049 (smax<mode>3): Likewise.
23051 * config/i386/mmx.md (mmx_<code>v2sf3): New.
23052 (mmx_<code>v4hi3): Likewise.
23053 (mmx_<code>v8qi3): Likewise.
23054 (mmx_smaxv2sf3): Removed.
23055 (mmx_sminv2sf3): Likewise.
23056 (mmx_umaxv8qi3): Likewise.
23057 (mmx_smaxv4hi3): Likewise.
23058 (mmx_uminv8qi3): Likewise.
23059 (mmx_sminv4hi3): Likewise.
23061 * config/i386/sse.md (<addsub><mode>3): New.
23062 (*<addsub><mode>3): Likewise.
23063 (<sse>_vm<addsub><mode>3): Likewise.
23064 (<maxmin><mode>3): Likewise.
23065 (*<maxmin><mode>3_finite): Likewise.
23066 (*<maxmin><mode>3): Likewise.
23067 (<sse>_vm<maxmin><mode>3): Likewise.
23068 (sse3_h<addsub>v4sf3): Likewise.
23069 (sse3_h<addsub>v2df3): Likewise.
23070 (<maxmin>v16qi3): Likewise.
23071 (*<maxmin>v16qi3): Likewise.
23072 (<maxmin>v8hi3): Likewise.
23073 (*<maxmin>v8hi3): Likewise.
23074 (*sse4_1_<maxmin><mode>3): Likewise.
23075 (*sse4_1_<maxmin><mode>3): Likewise.
23076 (add<mode>3): Removed.
23077 (*add<mode>3): Likewise.
23078 (<sse>_vmadd<mode>3): Likewise.
23079 (sub<mode>3): Likewise.
23080 (*sub<mode>3): Likewise.
23081 (<sse>_vmsub<mode>3): Likewise.
23082 (smin<mode>3): Likewise.
23083 (*smin<mode>3_finite): Likewise.
23084 (*smin<mode>3): Likewise.
23085 (<sse>_vmsmin<mode>3): Likewise.
23086 (smax<mode>3): Likewise.
23087 (*smax<mode>3_finite): Likewise.
23088 (*smax<mode>3): Likewise.
23089 (<sse>_vmsmax<mode>3): Likewise.
23090 (sse3_haddv4sf3): Likewise.
23091 (sse3_haddv2df3): Likewise.
23092 (sse3_hsubv4sf3): Likewise.
23093 (sse3_hsubv2df3): Likewise.
23094 (umaxv16qi3): Likewise.
23095 (*umaxv16qi3): Likewise.
23096 (smaxv8hi3): Likewise.
23097 (*smaxv8hi3): Likewise.
23098 (*sse4_1_smax<mode>3): Likewise.
23099 (*sse4_1_umax<mode>3): Likewise.
23100 (uminv16qi3): Likewise.
23101 (*uminv16qi3): Likewise.
23102 (sminv8hi3): Likewise.
23103 (*sminv8hi3): Likewise.
23104 (*sse4_1_smin<mode>3): Likewise.
23105 (*sse4_1_umin<mode>3): Likewise.
23107 2008-04-01 Rafael Espíndola <espindola@google.com>
23109 * tree-cfg.c (verify_expr): remove in_phi.
23110 (verify_stmt): Don't call walk_tree with verify_expr. Use
23111 is_gimple_min_invariant instead of is_gimple_val.
23113 2008-04-01 Joseph Myers <joseph@codesourcery.com>
23115 * doc/include/gpl_v3.texi: Update for manpage generation.
23116 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
23118 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
23119 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
23120 gpl_v3.texi instead of gpl.texi.
23123 2008-04-01 Jakub Jelinek <jakub@redhat.com>
23126 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
23128 2008-04-01 Rafael Espíndola <espindola@google.com>
23130 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
23131 (extract_code_and_val_from_cond): Use
23132 extract_code_and_val_from_cond_with_ops.
23134 2008-04-01 Jan Hubicka <jh@suse.cz>
23136 * function.c (free_after_compilation): Free epilogue_delay_list.
23137 (prepare_function_start): Assert that previous compilation was freed.
23139 2008-04-01 Jan Hubicka <jh@suse.cz>
23140 Jim Wilson <wilson@tuliptree.org>
23141 Andreas Tobler <andreast@gcc.gnu.org>
23143 PR middle-end/35781
23144 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
23145 rtl.emit instead cfun->emit.
23146 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
23147 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
23149 2008-04-01 Ben Elliston <bje@au.ibm.com>
23151 * doc/c-tree.texi (Function Basics): Fix grammatical error.
23153 2008-03-31 Seongbae Park <seongbae.park@gmail.com>
23155 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
23157 (fprofile-use): Add var flag_profile_use
23158 * coverage.c (coverage_begin_output): Do not open a gcno file for
23159 output only if -ftest-coverage is set.
23160 Do not add getpwd() to gcda file path.
23161 (build_gcov_info): Check the new flag
23162 flag_profile_datafile_relative_path.
23163 (coverage_init): Use profile_data_prefix.
23164 Read profile counter only if flag_profile_use is set.
23165 * opts.c (common_handle_option): New option fprofile-use=,
23166 fprofile-dir=, fprofile-generate=.
23167 * toplev.c (profile_data_prefix): New variable definition.
23168 * toplev.h (profile_data_prefix): New declaration.
23169 * doc/invoke.tex (Option Summary, Optimization Options):
23172 2008-03-31 James E. Wilson <wilson@tuliptree.org>
23174 * varasm.c (output_constant_pool_1): In LABEL_REF check,
23175 use tmp consistently.
23178 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
23179 * config/ia64/ia64.c (rtx_needs_barrier): Handle
23180 UNSPEC_FR_RECIP_APPROX_RES.
23181 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
23183 2008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
23186 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
23188 2008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
23190 PR middle-end/30186
23191 * fold-const.c (fold_indirect_ref_1): Support accessing non first
23192 element of the vector via a pointer.
23194 2008-03-31 Ian Lance Taylor <iant@google.com>
23196 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
23198 2008-03-31 Jan Hubicka <jh@suse.cz>
23200 * builtins.c (expand_builtin_setjmp_receiver): Update call of
23201 get_arg_pointer_save_area.
23202 * expr.c (init_expr): Just clear out rtl.expr.
23203 * function.c (free_after_compilation): Clear out whole RTL structure.
23204 (get_func_frame_size): Merge into ...
23205 (get_frame_size): ... this one.
23206 (assign_stack_local_1): Merge into ...
23207 (assign_stack_local): ... this one.
23208 (expand_function_end): Update call of get_arg_pointer_save_area.
23209 (get_art_pointer_save_area): Remove cfun argument.
23210 * function.h (emit_status): regno_pointer_align does not need length
23211 attribute. Move x_regno_reg_rtx to ...
23212 (regno_reg_rtx): ... new global array.
23213 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
23214 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
23215 apply_args_value, forced_labels, stack_pointer_delta):
23217 (struct varasm_status): Move here from varasm.c
23218 (struct rtl_data): New. Move here some fields from struct function.
23219 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
23220 frame_offset, stack_check_probe_note, arg_pointer_save_area,
23221 used_temp_slots avail_temp_slots, temp_slot_level,
23222 nonlocal_goto_handler_labels): Update accesstors.
23223 (rtl): New global variable.
23224 (struct function): Move some fileds to rtl_data.
23225 (get_arg_pointer_save_area): Update prototype.
23226 * emit-rtl.c (rtl): Declare.
23227 (regno_reg_rtx): Declare.
23228 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
23230 (gen_reg_rtx): Update.
23231 (init_virtual_regs): Do not tate emit_status argument.
23232 (init_emit): Do not allocate emit.
23233 * varasm.c (varasm_statuc): Move to function.h.
23234 (n_deferred_constatns): Update accestor.
23235 (init_varasm_status): Do not allocate varasm_status.
23236 (force_const_mem, get_pool_size, output_constant_pool): Update.
23237 * stmt.c (force_label_rtx): Do not use x_ prefixes.
23238 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
23240 2008-03-31 Zdenek Dvorak <ook@ucw.cz>
23242 PR rtl-optimization/35729
23243 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
23246 2008-03-31 H.J. Lu <hongjiu.lu@intel.com>
23249 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
23250 load/store if memory is unaligned.
23251 (*movti_rex64): Likewise.
23253 * config/i386/predicates.md (misaligned_operand): New.
23255 2008-03-31 Andrew Pinski <pinskia@gmail.com>
23258 * tree-ssa-phiopt.c (conditional_replacement): Return early for
23261 2008-03-31 Jan Beulich <jbeulich@novell.com>
23263 * config/ia64/constraints.md: Add 'j' constraint.
23264 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
23265 (movdi_internal): Likewise.
23267 2008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
23270 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
23272 2008-03-30 H.J. Lu <hongjiu.lu@intel.com>
23275 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
23276 proper error message for the third argument on blendpd and
23279 * config/i386/sse.md (blendbits): New.
23280 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
23282 2008-03-30 Eric Botcazou <ebotcazou@adacore.com>
23284 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
23286 2008-03-30 Richard Guenther <rguenther@suse.de>
23288 PR middle-end/31023
23289 * fold-const.c (fold_sign_changed_comparison): Do leave
23290 conversions to base-types alone.
23292 2008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
23294 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
23295 the link register if one altivec register is be saved.
23297 2008-03-30 Ben Elliston <bje@au.ibm.com>
23299 * final.c (final_scan_insn): Remove if (0) code.
23301 2008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
23303 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
23305 2008-03-28 H.J. Lu <hongjiu.lu@intel.com>
23307 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
23308 of V4SFmode to ix86_binary_operator_ok.
23310 2008-03-28 Uros Bizjak <ubizjak@gmail.com>
23312 * config/i386/i386.c (override_options): Initialize
23313 ix86_veclib_handler to ix86_veclibabi_svml when
23314 -mveclibabi=svml is used.
23315 (ix86_veclibabi_svml): New function for SVML ABI style
23316 vectorization support.
23317 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
23319 2008-03-28 Rafael Espíndola <espindola@google.com>
23321 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
23322 (tree_binary_nonnegative_warnv_p): Make it public.
23323 (tree_single_nonnegative_warnv_p): Make it public.
23324 (tree_invalid_nonnegative_warnv_p): Make it public.
23325 (tree_unary_nonzero_warnv_p): Make it public.
23326 (tree_binary_nonzero_warnv_p): Make it public
23327 (tree_single_nonzero_warnv_p): Make it public.
23328 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
23329 (extract_range_from_binary_expr): Split the expr argument.
23330 (extract_range_from_unary_expr): Split the expr argument.
23331 (extract_range_from_comparison): Split the expr argument.
23332 (extract_range_from_expr): Use the new aux functions.
23333 (vrp_evaluate_conditional_warnv): Use
23334 vrp_evaluate_conditional_warnv_with_ops.
23335 * tree.h (tree_unary_nonzero_warnv_p): Declare.
23336 (tree_binary_nonzero_warnv_p): Declare.
23337 (tree_single_nonzero_warnv_p): Declare.
23338 (tree_expr_nonzero_warnv_p): Declare.
23339 (tree_unary_nonnegative_warnv_p): Declare.
23340 (tree_binary_nonnegative_warnv_p): Declare.
23341 (tree_single_nonnegative_warnv_p): Declare.
23342 (tree_invalid_nonnegative_warnv_p): Declare.
23344 2008-03-28 Richard Guenther <rguenther@suse.de>
23346 PR tree-optimization/30317
23347 PR tree-optimization/30911
23348 PR tree-optimization/34793
23349 * tree-vrp.c (set_and_canonicalize_value_range): New function.
23350 (struct assert_locus_d): New member EXPR.
23351 (register_new_assert_for): Add EXPR parameter to support
23352 ASSERT_EXPR <name, expr OP limit>.
23353 (register_edge_assert_for_1): Adjust callers.
23354 (find_assert_locations): Likewise.
23355 (process_assert_insertions_for): Build condition from expression.
23356 (extract_range_from_assert): Handle ASSERT_EXPRs
23357 of the form ASSERT_EXPR <name, expr OP limit>.
23358 (register_edge_assert_for_2): New helper registering
23359 asserts for comparisons. Recognize range tests of the form
23360 (unsigned)i - CST1 OP CST2.
23361 (register_edge_assert_for_1): Use it.
23362 (register_edge_assert_for): Likewise.
23363 (needs_overflow_infinity): Integer sub-types
23364 do not need overflow infinities.
23365 (vrp_val_is_max): The extreme values of integer sub-types
23366 are those of the base type.
23367 (vrp_val_is_min): Likewise.
23368 * tree.def (ASSERT_EXPR): Document extra allowed conditional
23371 2008-03-28 Nick Clifton <nickc@redhat.com>
23374 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
23375 Return GENERAL_REGS for stack adjustment reloads.
23377 2008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
23380 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
23381 const_vector when all the vectors are constant.
23383 2008-03-27 Bob Wilson <bob.wilson@acm.org>
23385 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
23387 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
23388 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
23390 (s<code>_sf): Use new scc_sf attribute for opcode names.
23392 2008-03-27 Tom Tromey <tromey@redhat.com>
23394 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
23395 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
23396 config/spu/t-spu-elf, config/i386/t-interix,
23397 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
23398 config/i386/x-darwin, config/i386/x-mingw32,
23399 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
23400 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
23401 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
23402 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
23403 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
23404 config/rs6000/x-darwin, config/rs6000/t-rs6000,
23405 config/score/t-score-elf, config/arm/t-strongarm-pe,
23406 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
23407 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
23408 Revert automatic dependency patch.
23410 2008-03-27 H.J. Lu <hongjiu.lu@intel.com>
23413 * config/i386/i386.c (ix86_function_arg_boundary): Align
23414 decimal floating point to its natural boundary.
23416 2008-03-27 Richard Guenther <rguenther@suse.de>
23418 PR middle-end/35716
23419 * fold-const.c (fold_comparison): Restrict distinct decl
23420 comparison folding to VAR_DECLs and PARM_DECLs. Do not
23421 solely rely on operand_equal_p.
23423 2008-03-27 Richard Guenther <rguenther@suse.de>
23426 * c-common.c (handle_weak_attribute): Reject combination of
23429 2008-03-27 Richard Guenther <rguenther@suse.de>
23431 PR tree-optimization/32810
23432 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
23433 conversions from DECL_INITIAL.
23434 (fold_const_aggregate_ref): Likewise from constructor elements.
23436 2008-03-27 Zdenek Dvorak <ook@ucw.cz>
23438 * tree-affine.h (aff_combination_expand): Declare.
23439 (get_inner_reference_aff): Likewise.
23440 * tree-affine.c (aff_combination_expand): Split out from
23441 tree_to_aff_combination_expand.
23442 (get_inner_reference_aff): New function.
23443 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
23444 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
23445 (struct lim_aux_data): sm_done field removed.
23446 (mem_ref_loc_p, mem_ref_locs_p): New types.
23447 (struct mem_ref): Added id, stored, accesses_in_loop,
23448 indep_loop, dep_loop, indep_ref, dep_ref fields.
23449 Removed is_stored, locs and next fields.
23450 (memory_accesses): New variable.
23451 (movement_possibility): Do not allow moving statements
23452 that store to memory.
23453 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
23455 (determine_max_movement): For statements with memory references,
23456 find the outermost loop in that the reference is independent.
23457 (move_computations_stmt): Mark the virtual operands for renaming.
23458 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
23459 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
23460 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
23461 add_vop_ref_mapping, create_vop_ref_mapping_loop,
23462 create_vop_ref_mapping, analyze_memory_references,
23463 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
23464 get_all_locs_in_loop, ref_always_accessed_p,
23465 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
23466 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
23467 store_motion_loop, store_motion): New functions.
23468 (struct vop_to_refs_elt): New type.
23469 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
23470 memref_hash, memref_eq, hoist_memory_references): Rewritten.
23471 (schedule_sm): Replaced by...
23472 (execute_sm): ... this.
23473 (determine_lsm_ref, hoist_memory_references,
23474 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
23475 find_more_ref_vops, free_mem_ref, free_mem_refs,
23476 determine_lsm_loop, determine_lsm): Removed.
23477 (tree_ssa_lim_finalize): Free data structures used by store motion.
23478 (tree_ssa_lim): Call analyze_memory_references. Use
23479 store_motion instead of determine_lsm.
23481 2008-03-27 Paolo Bonzini <bonzini@gnu.org>
23483 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
23484 rename tmake_file to m68hc11/t-m68hc11.
23485 (mcore): Set inhibit_libc to true.
23486 * config.host (alpha*-dec-*vms*): Set extra_programs.
23487 (interix3*): Don't use host_xmake_file.
23488 * configure.ac: Let config.gcc override inhibit_libc.
23489 * configure: Regenerate.
23491 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
23492 * config/t-openbsd-thread: Remove commented out lines.
23494 * config/x-interix: Remove.
23496 * config/m68hc11/t-m68hc11-gas: Rename to...
23497 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
23499 * config/mcore/t-mcore: Remove T_CFLAGS.
23500 * config/mcore/t-mcore-pe: Likewise.
23502 2008-03-27 Paolo Bonzini <bonzini@gnu.org>
23504 * configure.ac: Replace custom __GNU_SOURCE test with
23505 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
23506 * aclocal.m4: Regenerate.
23507 * configure: Regenerate.
23508 * config.in: Regenerate.
23510 2008-03-27 Richard Guenther <rguenther@suse.de>
23512 * fold-const.c (target.h): Include.
23513 (fold_comparison): Fold comparison of addresses of decls
23514 that bind locally or of constants. Consolidate address folding code.
23515 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
23516 results from fold_binary_to_constant.
23517 (compare_values_warnv): Likewise.
23519 2008-03-27 Andrew Pinski <pinskia@gmail.com>
23521 PR middle-end/35429
23522 * fold-const.c (fold_truthop): Check for integeral types when folding
23523 a == 0 && b == 0 and a != 0 || b != 0 .
23525 2008-03-26 Eric Botcazou <ebotcazou@adacore.com>
23527 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
23529 2008-03-26 Andreas Schwab <schwab@suse.de>
23531 * doc/invoke.texi: Fix use of @item vs. @itemx.
23533 2008-03-26 Tom Tromey <tromey@redhat.com>
23535 * Makefile.in (build/gensupport.o, build/print-rtl.o,
23536 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
23537 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
23538 build/gencodes.o, build/genconditions.o, build/genconfig.o,
23539 build/genconstants.o, build/genemit.o, build/genextract.o,
23540 build/genflags.o, build/genmddeps.o, build/genopinit.o,
23541 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
23544 2008-03-26 Richard Guenther <rguenther@suse.de>
23547 2008-03-26 Richard Guenther <rguenther@suse.de>
23549 * fold-const.c (target.h): Include.
23550 (fold_comparison): Fold comparison of addresses of two decls
23551 that bind locally. Consolidate address folding code.
23553 2008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23555 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
23556 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
23557 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
23558 dconstsqrt2, dconstthird, dconste and/or dconst10.
23559 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
23560 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
23561 dconstsqrt2, dconste): Delete.
23562 (init_emit_once): Likewise. Simplify initializing dconstm1.
23564 * real.c (get_real_const): New.
23565 * real.h (dconst3, dconst10, dconstm2, dconstthird,
23566 dconstsqrt2, dconste): Delete.
23567 (real_value_const, get_real_const): New.
23569 2008-03-26 H.J. Lu <hongjiu.lu@intel.com>
23571 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
23573 * config/i386/i386.c (ix86_function_arg_boundary): Check
23574 BIGGEST_ALIGNMENT instead of 128.
23575 (setup_incoming_varargs_64): Likewise.
23577 2008-03-26 Tom Tromey <tromey@redhat.com>
23579 * Makefile.in (DEPFILES): Add missing '/'.
23581 2008-03-26 Richard Guenther <rguenther@suse.de>
23583 * fold-const.c (target.h): Include.
23584 (fold_comparison): Fold comparison of addresses of two decls
23585 that bind locally. Consolidate address folding code.
23587 2008-03-26 Nick Clifton <nickc@redhat.com>
23590 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
23591 not allow INT+INT as a legitimate addressing mode.
23593 2008-03-26 Richard Guenther <rguenther@suse.de>
23595 * tree-flow.h (widen_bitfield): Remove declaration.
23596 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
23597 (widen_bitfield): Remove function.
23598 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
23601 2008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
23604 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
23607 2008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
23609 PR rtl-optimization/35232
23610 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
23611 (forget_old_reloads_1, forget_marked_reloads): Don't clear
23612 reg_reloaded_call_part_clobbered here.
23613 (reload_regs_reach_end_p): New function.
23614 (reload_reg_rtx_for_input): New variable.
23615 (reload_reg_rtx_for_output): Likewise.
23616 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
23617 when reassigning a pseudo register. Load reloadreg from
23618 reload_reg_rtx_for_input, moving the mode and register
23620 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
23621 instead of the original when deciding whether an input reload
23622 would be a no-op or whether an output reload can be deleted.
23623 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
23624 when setting up new_spill_reg_store. Load it from
23625 reload_reg_rtx_for_output, moving the mode and register
23627 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
23628 instead of the original when deciding whether an output reload
23629 would be a no-op. Do the same when modifying insn notes.
23630 Use rtx_equal_p instead of == to compare the registers.
23631 (inherit_piecemeal_p): Take a mode and two register numbers
23633 (emit_reload_insns): Clear new_spill_reg_store for every hard
23634 register in the reload register. Remove spill registers
23635 from reg_reloaded_valid before considering whether to record
23636 inheritance information for them. Use reload_reg_rtx_for_output
23637 instead of reg_rtx when recording output reloads. Use
23638 reload_reg_rtx_for_input instead of reg_rtx when recording
23639 input reloads. Set or clear reg_reloaded_call_part_clobbered
23640 at the same time as setting reg_reloaded_valid.
23641 (delete_output_reload): Add a new_reload_reg parameter and use it
23642 instead of rld[j].reg_rtx.
23643 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
23646 2008-03-25 Tom Tromey <tromey@redhat.com>
23648 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
23649 (build/genattr.o): Likewise.
23650 (build/genattrtab.o): Likewise.
23651 (build/gencodes.o): Likewise.
23652 (build/genconfig.o): Likewise.
23653 (build/genconstants.o): Likewise.
23654 (build/genemit.o): Likewise.
23655 (build/genextract.o): Likewise.
23656 (build/genflags.o): Likewise.
23658 2008-03-25 Bob Wilson <bob.wilson@acm.org>
23660 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
23661 instead of size_int for integer types.
23662 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
23663 to match type of MINUS_EXPR.
23665 2008-03-25 Tom Tromey <tromey@redhat.com>
23667 * configure: Rebuilt.
23668 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
23671 2008-03-25 Tom Tromey <tromey@redhat.com>
23673 * config/x-solaris (host-solaris.o): Update.
23674 * config/x-linux (host-linux.o): Update.
23675 * config/x-hpux (host-hpux.o): Update.
23676 * config/x-darwin (host-darwin.o): Update.
23677 * config/v850/t-v850e (v850-c.o): Update.
23678 * config/v850/t-v850 (v850-c.o): Update.
23679 * config/t-vxworks (vxworks.o): Update.
23680 * config/t-sol2 (sol2-c.o, sol2.o): Update.
23681 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
23682 * config/spu/t-spu-elf (spu-c.o): Update.
23684 * config/sh/t-symbian (sh-c.o): Update.
23685 (symbian.o): Update.
23686 * config/sh/t-sh (sh-c.o): Update.
23687 * config/score/t-score-elf (score7.o, score3.o): Update.
23688 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
23689 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
23690 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
23691 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
23692 (rs6000.o): Remove.
23693 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
23694 * config/m32c/t-m32c (m32c-pragma.o): Update.
23695 * config/ia64/t-ia64 (ia64-c.o): Update.
23696 * config/i386/x-mingw32 (host-mingw32.o): Update.
23697 * config/i386/x-i386 (driver-i386.o): Update.
23698 * config/i386/x-darwin (host-i386-darwin.o): Update.
23699 * config/i386/x-cygwin (host-cygwin.o): Update.
23700 * config/i386/t-nwld (nwld.o): Update.
23701 * config/i386/t-netware (netware.o): Update.
23702 * config/i386/t-interix (winnt.o): Update.
23703 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
23704 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
23705 msformat-c.o): Update.
23706 * config/bfin/t-bfin-linux (generated_files): Add
23707 linux-sysroot-suffix.h.
23708 * config/arm/t-wince-pe (pe.o): Update.
23709 * config/arm/t-strongarm-pe (pe.o): Update.
23710 * config/arm/t-pe (pe.o): Update.
23711 * config/arm/t-arm (arm-c.o): Update.
23712 * doc/install.texi (Prerequisites): Require make 3.80.
23713 * Makefile.in: Remove .o targets.
23714 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
23715 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
23716 (simple_generated_h, simple_generated_c): Move earlier.
23717 (generated_files): New variable.
23718 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
23719 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
23720 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
23721 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
23722 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
23723 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
23724 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
23725 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
23726 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
23727 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
23728 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
23729 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
23731 (COMPILE.base, COMPILE): New variables.
23732 (%.o): New pattern rule.
23733 (ALL_HOST_OBJS): New variable.
23734 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
23735 (dummy-checksum.o, cc1-checksum.o): Remove.
23736 (DRIVER_SHLIB): New variable.
23737 (DRIVER_DEFINES): Use it.
23738 (gencondmd.c): Move out of build/.
23739 (s-conditions): Update.
23740 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
23741 (ALL_BUILD_OBJS): Likewise.
23742 (build/%.o): Use BUILDCOMPILE.
23743 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
23744 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
23745 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
23746 build/gencheck.o, build/gencodes.o, build/genconditions.o,
23747 build/genconfig.o, build/genconstants.o, build/genemit.o,
23748 build/genextract.o, build/genflags.o, build/genmddeps.o,
23749 build/genopinit.o, build/genoutput.o, build/genpeep.o,
23750 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
23751 build/gen-protos.o, build/scan.o, build/fix-header.o,
23752 build/scan-decls.o): Simplify.
23753 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
23754 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
23755 prefix.o, toplev.o): Reduce to variable setting.
23756 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
23757 ($(out_object_file), gcc-options.o): New targets.
23758 ($(ALL_HOST_OBJS)): New target. Include dependency files.
23759 * configure: Rebuilt.
23760 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
23761 * doc/sourcebuild.texi (Front End Directory): Document new variable.
23763 2008-03-25 Douglas Gregor <doug.gregor@gmail.com>
23765 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
23766 complain when we hit an error, return ERROR_MARK_NODE.
23768 2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
23770 * config/sh/constraints.md (Pso, Psz): New constraints.
23771 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
23772 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
23774 2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
23776 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
23777 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
23779 2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
23781 * config/sh/sh.md (prefetch): Add condition for SH2A target.
23782 (prefetch_sh2a): New.
23784 2008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
23785 Naveen.H.S <naveen.hs@kpitcummins.com>
23787 * config/sh/constraints.md (I28): New constraint.
23788 * config/sh/sh.c (broken_move): Add support for movi20s.
23789 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
23791 2008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
23792 Jayant Sonar <Jayant.sonar@kpitcummins.com>
23793 Naveen.H.S <naveen.hs@kpitcummins.com>
23795 * config/sh/sh.c (SH_ATTRIBUTES): Define.
23796 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
23797 (print_operand): Handle resbank in %@ operand code.
23798 (sh_encode_section_info): New.
23799 (push_regs): Add conditions for resbank.
23800 (sh_expand_epilogue): Likewise.
23801 (sh_insert_attributes): Likewise.
23802 (sh_attribute_table): Likewise.
23803 (sh_handle_resbank_handler_attribute): New.
23804 (sh2a_handle_function_vector_handler_attribute): New.
23805 (sh2a_is_function_vector_call): New.
23806 (sh2a_get_function_vector_number): New.
23807 (sh2a_function_vector_p): New.
23808 (sh_cfun_resbank_handler_p): New.
23809 * config/sh/sh.md (calli): Emit jsr/n if possible.
23810 (calli_tbr_rel): New.
23811 (calli_pcrel): Emit jsr/n if possible.
23812 (return_i): Emit rts/n if possible.
23813 (call_valuei_tbr_rel): New.
23814 (call_valuei_pcrel): Add condition for SH2A target.
23815 (call_value): Likewise.
23816 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
23817 (sh2a_get_function_vector_number): Likewise.
23818 (sh2a_is_function_vector_call): Likewise.
23819 * doc/extend.texi: Document TBR relative addressing of SH2A.
23820 (resbank): Add description for SH2A.
23822 2008-03-24 Richard Guenther <rguenther@suse.de>
23825 * gimplify.c (gimplify_modify_expr): For frontend type-correct
23826 pointer assignments change conversions according to middle-end rules.
23827 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
23828 * configure.ac: Include type checking in yes.
23829 * configure: Regenerate.
23831 2008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23833 * diagnostic.c (diagnostic_count_diagnostic): Delete.
23834 (diagnostic_report_diagnostic): Update. Handle ICEs here.
23836 2008-03-24 Nathan Sidwell <nathan@codesourcery.com>
23838 * gthr-vxworks.h (UNUSED): Define.
23840 2008-03-23 H.J. Lu <hongjiu.lu@intel.com>
23842 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
23844 2008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
23846 * doc/extend.texi (Function Attributes): Add missing comma in the
23847 example of the "alloc_size" attribute.
23849 2008-03-23 Uros Bizjak <ubizjak@gmail.com>
23852 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
23854 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
23857 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
23860 * stor-layout.c (update_alignment_for_field): Set minimum alignment
23861 of the underlying type of a MS bitfield layout to the natural
23862 alignment of the type.
23864 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
23866 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
23867 to their natural alignment to avoid store forwarding stalls.
23869 2008-03-22 Richard Guenther <rguenther@suse.de>
23871 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
23872 For PHI nodes verify the address is invariant.
23873 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
23874 (get_symbol_constant_value): Use is_gimple_min_invariant.
23875 (maybe_fold_stmt_indirect): Likewise.
23877 2008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
23879 PR rtl-optimization/33927
23880 * Makefile.in (dse.o): Depend on $(TM_P_H).
23881 * expr.h (extract_low_bits): Declare.
23882 * expmed.c (extract_low_bits): New function.
23883 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
23884 * dse.c: Include tm_p.h.
23885 (find_shift_sequence): Remove the read_reg argument and return the
23886 read value. Emit the instructions instead of returning them.
23887 Iterate on new_mode rather than calculating it each time.
23888 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
23889 source to NEW_MODE and extract_low_bits to convert the shifted
23890 value to READ_MODE.
23891 (replace_read): Allow the load and store to have different mode
23892 classes. Use extract_low_bits when SHIFT == 0. Create the shift
23893 or extraction instructions before trying the replacement. Update
23894 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
23896 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
23898 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
23899 to their natural alignment to avoid store forwarding stalls.
23901 2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
23904 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
23905 encouraging but not allowing gprs for input;
23906 change the input constraint to !f#r.
23907 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
23909 change the output constraint to !f#r.
23911 2008-03-21 Uros Bizjak <ubizjak@gmail.com>
23914 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
23915 corresponding post-reload splitters.
23916 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
23917 when x87 FP math is selected.
23918 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
23919 New function prototype.
23920 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
23921 unreachable function to ease macroization of insn patterns.
23923 2008-03-21 Martin Jambor <mjambor@suse.cz>
23925 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
23926 reference dumps if ddr is NULL or dependence is unknown.
23928 2008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
23930 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
23931 unsigned extension into account.
23932 (ATOMIC_COMPARE_AND_SWAP): Likewise.
23933 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
23934 Do computations on a scratch register.
23936 2008-03-21 Richard Guenther <rguenther@suse.de>
23938 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
23939 Use is_gimple_min_invariant instead of TREE_INVARIANT.
23940 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
23941 * tree-ssa-dom.c (record_equality): Likewise.
23942 * tree-inline.c (copy_body_r): Likewise.
23943 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
23946 2008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
23948 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
23949 as 'delete_unused' argument.
23951 2008-03-20 Richard Guenther <rguenther@suse.de>
23953 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
23954 special casing of constant qualifiers.
23955 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
23956 care about them in general.
23957 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
23958 regardless of their type.
23959 (fold_stmt_r): Forcefully fold *& if we end up with that.
23961 2008-03-20 Paul Brook <paul@codesourcery.com>
23963 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
23964 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
23966 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
23968 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
23969 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
23971 2008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
23973 * common.opt (Wmudflap): New option.
23974 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
23975 (mx_register_decls): Likewise.
23976 (mudflap_finish_file): Likewise.
23977 * doc/invoke.texi: Document -Wno-mudflap.
23979 2008-03-20 Kai Tietz <kai.tietz@onevision.com>
23981 * c-format.c (replace_format_name_to_system_name): New.
23982 (cmp_attribs): New.
23983 (convert_format_name_to_system_name): New.
23984 (decode_format_attr): Add use of convert_format_name_to_system_name.
23985 (format_types_orig): Add gnu_ prefix to names.
23986 (check_format_info_main): Special treating of \0 escaped names for
23987 supporting multi-character format specifiers as I32, I64.
23988 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
23989 (gnu_target_overrides_format_attributes): New.
23990 * c-format.h: Add structure target_ovr_attr to hold
23991 system specific formatter names.
23992 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
23993 msformat-c.o file to c_target_objs and cxx_target_objs.
23994 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
23995 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
23996 (TARGET_N_FORMAT_TYPES): New.
23997 * config/i386/msformat-c.c: New.
23998 * config/i386/t-cygming: Add build rule for msformat-c.o.
23999 * doc/extend.texi: Add new format names gnu_* and ms_* and
24001 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
24003 2008-03-20 Ira Rosen <irar@il.ibm.com>
24005 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
24006 optimizations turned on under -O3.
24007 (ftree-vectorize): Add that the flag is turned on with -O3.
24009 2008-03-20 Ben Elliston <bje@au.ibm.com>
24011 * regmove.c (try_auto_increment): Fix spelling error in comment.
24012 * final.c (final_scan_insn): Likewise.
24014 2008-03-20 Uros Bizjak <ubizjak@gmail.com>
24017 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
24018 allocator preferences for "y" and "r" class registers.
24019 ("*mov<mode>_internal"): Ditto.
24020 ("*movv2sf_internal_rex64"): Ditto.
24021 ("*movv2sf_internal"): Ditto.
24023 2008-03-19 Michael Matz <matz@suse.de>
24025 PR middle-end/35616
24026 * calls.c (expand_call): Check overlap of arguments with call
24027 address for sibcalls.
24029 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
24032 * stor-layout.c (update_alignment_for_field): Set minimum alignment
24033 of the underlying type of a MS bitfield layout to the natural
24034 alignment of the type.
24036 2008-03-19 Jan Hubicka <jh@suse.cz>
24039 * toplev.c (decode_d_option): Handle all CPP flags.
24040 * tree-vrp.c: Update tree_pass descriptors.
24041 * regrename.c: Update tree_pass descriptors.
24042 * fwprop.c: Update tree_pass descriptors.
24043 * doc/invoke.texi: Remove documentation of dropped -d? flags.
24044 * tree-into-ssa.c: Update tree_pass descriptors.
24045 * tree-dump.c: Update tree_pass descriptors.
24046 * tree-complex.c: Update tree_pass descriptors.
24047 * tree-dump.h: Update tree_pass descriptors.
24048 * see.c: Update tree_pass descriptors.
24049 * cgraphbuild.c: Update tree_pass descriptors.
24050 * tracer.c: Update tree_pass descriptors.
24051 * tree-loop-distribution.c: Update tree_pass descriptors.
24052 * cgraph.c: Update tree_pass descriptors.
24053 * postreload-gcse.c: Update tree_pass descriptors.
24054 * postreload.c: Update tree_pass descriptors.
24055 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
24056 * tree-tailcall.c: Update tree_pass descriptors.
24057 * tree-pass.h (tree_opt_pass): Rename to ...
24058 (opt_pass) ... this one; add "type" field and remove letter field.
24059 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
24060 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
24061 all_lowering_passes): Update declaration.
24062 * ipa-cp.c: Update tree_pass descriptors.
24063 * final.c: Update tree_pass descriptors.
24064 * omp-low.c: Update tree_pass descriptors.
24065 * tree-ssa-dse.c: Update tree_pass descriptors.
24066 * ipa-reference.c: Update tree_pass descriptors.
24067 * tree-ssa-uncprop.c: Update tree_pass descriptors.
24068 * auto-inc-dec.c: Update tree_pass descriptors.
24069 * reorg.c: Update tree_pass descriptors.
24070 * cgraphunit.c: Update tree_pass descriptors.
24071 * tree-ssa-copyrename.c: Update tree_pass descriptors.
24072 * tree-ssa-ccp.c: Update tree_pass descriptors.
24073 * df-core.c: Update tree_pass descriptors.
24074 * mode-switching.c: Update tree_pass descriptors.
24075 * tree-nomudflap.c: Update tree_pass descriptors.
24076 * modulo-sched.c: Update tree_pass descriptors.
24077 * ipa-pure-const.c: Update tree_pass descriptors.
24078 * cse.c: Update tree_pass descriptors.
24079 * web.c: Update tree_pass descriptors.
24080 * tree-stdarg.c: Update tree_pass descriptors.
24081 * tree-ssa-math-opts.c: Update tree_pass descriptors.
24082 * tree-ssa-dom.c: Update tree_pass descriptors.
24083 * tree-nrv.c: Update tree_pass descriptors.
24084 * tree-ssa-alias.c: Update tree_pass descriptors.
24085 * loop-init.c: Update tree_pass descriptors.
24086 * gimple-low.c: Update tree_pass descriptors.
24087 * ipa-inline.c: Update tree_pass descriptors.
24088 * tree-ssa-sink.c: Update tree_pass descriptors.
24089 * global.c: Update tree_pass descriptors.
24090 * ifcvt.c: Update tree_pass descriptors.
24091 * jump.c: Update tree_pass descriptors.
24092 * predict.c: Update tree_pass descriptors.
24093 * tree-ssa-loop.c: Update tree_pass descriptors.
24094 * recog.c: Update tree_pass descriptors.
24095 * dse.c: Update tree_pass descriptors.
24096 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
24097 * tree-eh.c: Update tree_pass descriptors.
24098 * regmove.c: Update tree_pass descriptors.
24100 * function.c: Update tree_pass descriptors.
24101 * tree-vectorizer.c: Update tree_pass descriptors.
24102 * gcse.c: Update tree_pass descriptors.
24103 * ipa-type-escape.c: Update tree_pass descriptors.
24104 * tree-if-conv.c: Update tree_pass descriptors.
24105 * init-regs.c: Update tree_pass descriptors.
24106 * ipa.c: Update tree_pass descriptors.
24107 * tree-ssa-phiopt.c: Update tree_pass descriptors.
24108 * rtl-factoring.c: Update tree_pass descriptors.
24109 * lower-subreg.c: Update tree_pass descriptors.
24110 * bt-load.c: Update tree_pass descriptors.
24111 * tree-dfa.c: Update tree_pass descriptors.
24112 * except.c: Update tree_pass descriptors.
24113 * emit-rtl.c: Update tree_pass descriptors.
24114 * cfgexpand.c: Update tree_pass descriptors.
24115 * tree-cfgcleanup.c: Update tree_pass descriptors.
24116 * cfgcleanup.c: Update tree_pass descriptors.
24117 * tree-ssa-pre.c: Update tree_pass descriptors.
24118 * tree-sra.c: Update tree_pass descriptors.
24119 * tree-mudflap.c: Update tree_pass descriptors.
24120 * tree-ssa-copy.c: Update tree_pass descriptors.
24121 * cfglayout.c: Update tree_pass descriptors.
24122 * tree-ssa-forwprop.c: Update tree_pass descriptors.
24123 * tree-ssa-dce.c: Update tree_pass descriptors.
24124 * tree-ssa.c: Update tree_pass descriptors.
24125 * regclass.c: Update tree_pass descriptors.
24126 * integrate.c: Update tree_pass descriptors.
24127 * tree-optimize.c: Update tree_pass descriptors.
24128 * tree-ssa-phiprop.c: Update tree_pass descriptors.
24129 * tree-object-size.c: Update tree_pass descriptors.
24130 * combine.c: Update tree_pass descriptors.
24131 * tree-outof-ssa.c: Update tree_pass descriptors.
24132 * bb-reorder.c: Update tree_pass descriptors.
24133 * stack-ptr-mod.c: Update tree_pass descriptors.
24134 * var-tracking.c: Update tree_pass descriptors.
24135 * tree-profile.c: Update tree_pass descriptors.
24136 * tree-vect-generic.c: Update tree_pass descriptors.
24137 * reg-stack.c: Update tree_pass descriptors.
24138 * sched-rgn.c: Update tree_pass descriptors.
24139 * tree-ssa-structalias.c: Update tree_pass descriptors.
24140 * tree-cfg.c: Update tree_pass descriptors.
24141 * passes.c (current_pass): Update declaration.
24142 (finish_optimization_passes): Update.
24143 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
24144 (register_one_dump_file, register_dump_files_1, next_pass_1):
24146 (init_optimization_passes): Update handling of new types.
24147 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
24148 * ipa-struct-reorg.c: Update tree_pass descriptors.
24149 * tree-ssa-reassoc.c: Update tree_pass descriptors.
24150 * combine-stack-adj.c: Update tree_pass descriptors.
24151 * cfgrtl.c: Update tree_pass descriptors.
24152 * dce.c: Update tree_pass descriptors.
24153 * tree-ssanames.c: Update tree_pass descriptors.
24155 2008-03-19 Richard Guenther <rguenther@suse.de>
24157 PR middle-end/35609
24158 * tree-ssa.c (walk_data): New structure.
24159 (warn_uninitialized_var): If not always_executed warn with "maybe"
24161 (execute_early_warn_uninitialized): Compute post-dominators.
24162 Initialize always_executed before processing each basic block.
24164 2008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
24167 * config/i386/i386.c (x86_this_parameter): Calculate correct location
24168 of "this" pointer when "regparm = N" or "fastcall" is in effect.
24170 2008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24172 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
24174 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
24176 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
24178 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
24179 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
24180 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
24181 target after ignore has been set, and move there also the commputation
24182 of subtarget and original_target.
24183 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
24184 (LANG_HOOKS_INITIALIZER): Remove it.
24185 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
24187 2008-03-18 Richard Guenther <rguenther@suse.de>
24189 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
24190 found an expression with constants, note that in the VN for the lhs.
24191 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
24192 fold them to constants if possible. Run cleanup_cfg if done so.
24193 (execute_pre): Return todo.
24194 (do_pre): Likewise.
24195 (execute_fre): Likewise.
24196 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
24198 (get_prop_source_stmt): Look through pointer conversions.
24200 2008-03-18 Jan Hubicka <jh@suse.cz>
24202 * tree-pretty-print.c: Include predict.h.
24203 (dump_generic_node): Dump predictor.
24204 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
24205 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
24206 * gimple-low.c (lower_stmt): Likewise.
24207 * expr.c (expand_expr_real): Likewise.
24208 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
24210 (build_predict_expr, build_predict_expr): New.
24211 * predict.h (predictor_name, build_predict_expr): Update.
24212 * c-typeck.c (c_finish_bc_stmt): Add prediction.
24213 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
24214 * predict.def (PRED_CONTINUE): Update hitrate.
24215 * tree.def (PREDICT_EXPR): Define.
24216 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
24217 do not handle BIND_EXPR.
24218 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
24219 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
24220 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
24223 2008-03-18 Michael Matz <matz@suse.de>
24225 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
24227 2008-03-18 Richard Guenther <rguenther@suse.de>
24229 * tree-gimple.h (is_gimple_invariant_address): Declare.
24230 (is_gimple_constant): Likewise.
24231 * tree-gimple.c (is_gimple_constant): New function.
24232 (is_gimple_invariant_address): Likewise.
24233 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
24234 and is_gimple_invariant_address.
24235 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
24237 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
24238 an addressable base.
24240 2008-03-18 Jakub Jelinek <jakub@redhat.com>
24242 PR middle-end/35611
24243 * gimplify.c (gimplify_expr): Gimplify second operand of
24246 2008-03-17 Richard Guenther <rguenther@suse.de>
24248 PR tree-optimization/19637
24249 * fold-const.c (fold_unary): Remove restrictions of removing
24250 intermediate pointer-conversions (P2)(P1)P0.
24251 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
24252 conversion to void pointer.
24253 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
24255 2008-03-16 James E. Wilson <wilson@tuliptree.org>
24258 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
24259 emulated thread local variables.
24261 2008-03-16 Richard Guenther <rguenther@suse.de>
24263 PR middle-end/35607
24264 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
24265 expand TREE_INVARIANT operations that are not gimple invariant.
24267 2008-03-16 Hans-Peter Nilsson <hp@axis.com>
24269 * doc/extend.texi (Alignment): Say that the ABI controls
24270 the __alignof__ for non-strict-alignment targets rather
24271 than being a recommendation.
24273 2008-03-15 Paul Brook <paul@codesourcery.com>
24275 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
24277 (arm_output_fn_unwind): Mark functions that can not be unwound.
24279 2008-03-15 Paul Brook <paul@codesourcery.com>
24281 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
24282 extension instructions.
24284 2008-03-15 Richard Guenther <rguenther@suse.de>
24286 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
24287 and fold constant aggregate refs.
24288 (fold_const_aggregate_ref): Handle string constants
24289 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
24290 (evaluate_stmt): Simplify now that ccp_fold folds constant
24293 2008-03-15 Paul Brook <paul@codesourcery.com>
24295 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
24296 (extzv): Use gen_extzv_t2.
24297 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
24299 2008-03-15 Richard Guenther <rguenther@suse.de>
24301 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
24302 (fold_const_aggregate_ref): Likewise.
24303 (get_value): Return NULL if we don't have any values.
24304 (ccp_finalize): Set const_val to NULL after freeing it.
24305 * tree-flow.h (get_symbol_constant_value): Declare.
24306 (fold_const_aggregate_ref): Likewise.
24307 * tree-ssa-sccvn.c (try_to_simplify): Use them.
24309 2008-03-15 Richard Guenther <rguenther@suse.de>
24311 PR middle-end/35593
24312 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
24313 to not produce negative array indices if not allowed. Add
24314 parameter to indicate that.
24315 (maybe_fold_offset_to_component_ref): Allow negative array
24316 indices only for the first member of a structure.
24317 (maybe_fold_offset_to_reference): Allow negative array indices.
24318 (maybe_fold_stmt_addition): Likewise.
24320 2008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
24321 Anatoly Sokolov <aesok@post.ru>
24323 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
24324 (avr_arch): Add ARCH_AVR6.
24325 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
24326 (initial_elimination_offset): Initialize and use 'avr_pc_size'
24327 instead of fixed value 2.
24328 (print_operand_address): Use gs() asm specifier instead of pm().
24329 (avr_assemble_integer): (Ditto.).
24330 (avr_output_addr_vec_elt): (Ditto.).
24331 (print_operand): Handle "!" code.
24332 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
24333 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
24334 (AVR_HAVE_EIJMP_EICALL): Define.
24335 (AVR_3_BYTE_PC): Redefine.
24336 (AVR_2_BYTE_PC): (Ditto.).
24337 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
24338 (LINK_SPEC): Add atmega2560 and atmega2561.
24339 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
24341 * config/avr/avr.md (call_insn): Use eicall instead of icall
24342 for 3 byte PC devices.
24343 (call_value_insn): (Ditto.).
24344 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
24345 (indirect_jump): Use only for for 2 byte PC devices.
24346 (*tablejump): (Ditto.).
24347 (*indirect_jump_avr6): Add insn.
24348 (*tablejump_rjmp): Don't use for 3 byte PC devices.
24349 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
24350 instead of ijmp for 3 byte PC devices.
24351 (__tablejump2__): (Ditto.).
24352 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
24353 (MULITLIB_DIRNAMES): (Ditto.).
24354 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
24356 2008-03-15 Uros Bizjak <ubizjak@gmail.com>
24358 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
24359 "sse2_umulsidi3". Use V1DI mode for operand 0.
24360 ("mmx_psadbw"): Use V1DI mode for operand 0.
24361 * config/i386/i386-modes.def (V1SI): New vector mode.
24362 * config/i386/i386.c (struct builtin_description)
24363 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
24364 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
24365 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
24366 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
24367 v1di_ftype_v8qi_v8qi type.
24368 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
24370 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
24371 __builtin_ia32_pmuludq]: Fix the mode of return value.
24373 2008-03-15 Richard Guenther <rguenther@suse.de>
24375 PR middle-end/35595
24376 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
24379 2008-03-14 Bob Wilson <bob.wilson@acm.org>
24381 * doc/invoke.texi (Option Summary, Xtensa Options): Document
24382 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
24383 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
24384 unless TARGET_SERIALIZE_VOLATILE is enabled.
24385 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
24386 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
24387 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
24389 2008-03-14 Richard Guenther <rguenther@suse.de>
24391 PR tree-optimization/34172
24392 * tree-flow.h (refs_may_alias_p): Declare.
24393 (get_single_def_stmt): Likewise.
24394 (get_single_def_stmt_from_phi): Likewise.
24395 (get_single_def_stmt_with_phi): Likewise.
24396 * tree-dfa.c (refs_may_alias_p): New function.
24397 (get_single_def_stmt): Likewise.
24398 (get_single_def_stmt_from_phi): Likewise.
24399 (get_single_def_stmt_with_phi): Likewise.
24400 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
24401 (vn_reference_lookup_1): New helper function.
24402 (vn_reference_lookup): Walk the virtual use-def chain to
24403 continue searching for a match if the def does not alias the
24404 reference we are looking for.
24406 2008-03-14 David Edelsohn <edelsohn@gnu.org>
24408 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
24409 archive and Perzl. Update The Written Word listing.
24411 2008-03-14 Richard Guenther <rguenther@suse.de>
24413 PR tree-optimization/34043
24414 PR tree-optimization/33989
24415 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
24417 (bitmap_find_leader): Use extra argument to verify dominance
24418 relationship inside a basic-block.
24419 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
24420 (find_leader_in_sets): Adjust.
24421 (create_component_ref_by_pieces): Take extra argument for
24422 dominance check, handle lookup failures.
24423 (find_or_generate_expression): Likewise.
24424 (create_expression_by_pieces): Likewise.
24425 (insert_into_preds_of_block): Adjust.
24426 (create_value_expr_from): If asked for, verify all operands
24427 are in the blocks AVAIL_OUT set.
24428 (make_values_for_stmt): Check for SSA_NAMEs that are life
24429 over an abnormal edge.
24430 (compute_avail): Remove such check.
24431 (do_SCCVN_insertion): New function.
24432 (eliminate): If we do not find a leader suitable for replacement
24433 insert a replacement expression from SCCVN if available.
24434 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
24435 (struct vn_ssa_aux): Add needs_insertion flag.
24436 * tree-ssa-sccvn.c (may_insert): New global flag.
24437 (copy_reference_ops_from_ref): Value-number union member access
24438 based on its size, not type and member if insertion is allowed.
24439 (visit_reference_op_load): For a weak match from union type
24440 punning lookup a view-converted value and insert a SSA_NAME
24441 for that value if that is not found.
24442 (visit_use): Make dumps shorter. Do not disallow value numbering
24443 SSA_NAMEs that are life over an abnormal edge to constants.
24444 (free_scc_vn): Release inserted SSA_NAMEs.
24445 (run_scc_vn): New flag to specify whether insertion is allowed.
24446 Process SSA_NAMEs in forward order.
24447 * tree-ssa-loop-im.c (for_each_index): Handle invariant
24448 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
24449 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
24450 pointer type to/from integral types that do not change the
24451 precision to regular conversions.
24453 2008-03-13 Uros Bizjak <ubizjak@gmail.com>
24455 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
24456 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
24457 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
24458 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
24459 input arguments and the mode of return value. Built-in functions
24460 that operate on whole 64-bit MMX register now use V1DI mode.
24462 2008-03-13 Alon Dayan <alond@il.ibm.com>
24463 Olga Golovanevsky <olga@il.ibm.com>
24465 PR tree-optimization/35041
24466 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
24467 to locate the right position in a statement.
24469 2008-03-13 Uros Bizjak <ubizjak@gmail.com>
24473 * config/i386/xmmintrin.h: Change all static inline functions to
24474 extern inline and add __gnu_inline__ attribute.
24475 * config/i386/bmintrin.h: Ditto.
24476 * config/i386/smmintrin.h: Ditto.
24477 * config/i386/tmmintrin.h: Ditto.
24478 * config/i386/mmintrin-common.h: Ditto.
24479 * config/i386/ammintrin.h: Ditto.
24480 * config/i386/emmintrin.h: Ditto.
24481 * config/i386/pmmintrin.h: Ditto.
24482 * config/i386/mmintrin.h: Ditto.
24483 * config/i386/mm3dnow.h: Ditto.
24485 2008-03-13 Jakub Jelinek <jakub@redhat.com>
24487 PR middle-end/35185
24488 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
24489 (lower_omp_2): New function.
24490 (lower_omp_1, lower_omp): Rewritten.
24492 2008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
24495 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
24496 with the phrase "Microsoft Windows compilers".
24497 (Push/Pop Macro Pragmas): New subsection. Document
24498 #pragma push_macro and pragma pop_macro.
24500 2008-03-12 Paul Brook <paul@codesourcery.com>
24502 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
24504 2008-03-12 Paul Brook <paul@codesourcery.com>
24506 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
24507 (thumb2_alusi3_short): Exclude PLUS and MINUS.
24508 (thumb2_addsi_shortim): Rename ...
24509 (thumb2_addsi_short): ... to this. Allow register operands.
24510 (thumb2_subsi_short): New pattern.
24511 (thumb2_one_cmplsi2_short,
24512 thumb2_negsi2_short): New patterns and peepholes.
24514 2008-03-12 Paul Brook <paul@codesourcery.com>
24516 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
24518 2008-03-12 Uros Bizjak <ubizjak@gmail.com>
24520 * config/i386/i386.md (int_cond): New code iterator.
24522 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
24523 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
24524 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
24525 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
24526 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
24527 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
24528 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
24529 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
24531 2008-03-12 Paul Brook <paul@codesourcery.com>
24533 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
24534 instead of {arm,thumb}_compute_save_reg_mask.
24535 (output_return_instruction): Ditto.
24536 (thumb_unexpanded_epilogue): Ditto.
24537 (thumb1_expand_prologue): Ditto.
24538 (thumb1_output_function_prologue): Ditto.
24539 (arm_set_return_address): Ditto.
24540 (thumb_set_return_address): Ditto.
24541 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
24542 regs to achieve stack alignment.
24543 (thumb1_compute_save_reg_mask): Fix compiler warning.
24544 (arm_output_epilogue): Use offsets->saved_regs_mask.
24545 Adjust stack pointer by poping call clobered registers.
24546 (arm_expand_prologue): Use offsets->saved_regs_mask.
24547 Adjust stack pointer by pushing extra registers.
24548 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
24550 2008-03-12 Paolo Bonzini <bonzini@gnu.org>
24553 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
24554 conversion to the operands of a multiplication.
24556 2008-03-12 Richard Guenther <rguenther@suse.de>
24558 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
24559 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
24560 * timevar.def (TV_TREE_PHIPROP): Add.
24561 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
24562 pass description. Use TV_TREE_PHIPROP.
24563 * tree-ssa-forwprop.c: Remove phiprop code.
24565 2008-03-12 Jakub Jelinek <jakub@redhat.com>
24567 PR middle-end/35549
24568 * omp-low.c (maybe_lookup_decl): Constify first argument.
24569 (use_pointer_for_field): Change last argument from bool to
24570 omp_context *. Disallow shared copy-in/out in nested
24571 parallel if decl is shared in outer parallel too.
24572 (build_outer_var_ref, scan_sharing_clauses,
24573 lower_rec_input_clauses, lower_copyprivate_clauses,
24574 lower_send_clauses, lower_send_shared_vars): Adjust callers.
24576 2008-03-12 Victor Kaplansky <victork@il.ibm.com>
24577 Ira Rosen <irar@il.ibm.com>
24579 * tree-vectorizer.c (free_stmt_vec_info): New function.
24580 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
24581 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
24582 * tree-vectorizer.h (free_stmt_vec_info): Declare.
24583 * tree-vect-transform.c (vectorizable_conversion): Free
24584 vec_oprnds0 if it was allocated.
24585 (vect_permute_store_chain): Remove unused VECs.
24586 (vectorizable_store): Free VECs that are allocated in the..
24588 (vect_transform_strided_load, vectorizable_load): Likewise.
24589 (vect_remove_stores): Simplify the code.
24590 (vect_transform_loop): Move code to vect_remove_stores().
24591 Call vect_remove_stores() and free_stmt_vec_info().
24593 2008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24595 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
24596 TARGET_HPUX. Revise comment.
24597 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
24598 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
24599 Use sr4 variant of `be' instruction when not generating PIC code.
24600 (attr_length_call): Adjust for above change.
24602 2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
24604 * ipa-reference.c (static_execute): Remove module_statics_const and
24605 associated setting code.
24607 2008-03-11 Uros Bizjak <ubizjak@gmail.com>
24610 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
24611 predicate for operand 1.
24612 (paritysi2_cmp): Use register_operand predicate for operand 2.
24613 Use earlyclobber modifier for operand 1. Remove support for
24615 (paritydi2_cmp): Use register_operand predicate for operand 3.
24616 Use earlyclobber modifier for operand 1. Remove support for
24619 2008-03-11 Paul Brook <paul@codesourcery.com>
24620 Vladimir Prus <vladimir@codesourcery.com>
24622 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
24623 (arm_compute_save_reg0_reg12_mask): Always
24624 check if register 11 must be saved. Always safe hard frame pointer
24625 when frame_pointer_needeed.
24626 (arm_compute_save_reg_mask): Save IP and PC
24627 only with apcs frames.
24628 (arm_output_epilogue): Adjust Thumb2 codepath to
24629 be also invoked and work for ARM non-apcs frames.
24630 (arm_expand_prologue): Don't bother saving IP
24631 for non-apcs frame, since it's not clobbered by
24632 prologue code. Implement non-apcs frame
24635 2008-03-11 Paolo Bonzini <bonzini@gnu.org>
24637 PR rtl-optimization/35281
24638 * expr.c (convert_move): Use a new pseudo for the intermediate
24639 from_mode->word_mode result.
24641 2008-03-11 Paolo Bonzini <bonzini@gnu.org>
24643 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
24644 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
24645 * toplev.c (compile_file): Don't call it.
24647 2008-03-11 Uros Bizjak <ubizjak@gmail.com>
24649 PR middle-end/35526
24650 * expr.c (store_expr): Call emit_block_move if the mode
24651 of "temp" RTX is BLKmode.
24653 2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
24654 Richard Guenther <rguenther@suse.de>
24656 PR tree-optimization/31358
24657 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
24658 the step with a NULL_TREE.
24659 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
24660 to sizetype if type is a pointer type.
24661 (add_candidate_1): Don't convert the base and step to
24662 the generic type if the orginal type is a pointer type.
24663 (add_iv_value_candidates): Use sizetype for the step
24664 if type is a pointer type.
24665 (cand_value_at): Likewise.
24666 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
24668 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
24669 Don't convert the tem affine to the type.
24670 (add_elt_to_tree): Use sizetype for the step if a pointer.
24671 Use POINTER_PLUS_EXPR for pointers.
24672 (aff_combination_to_tree): Use sizetype for the step if a
24675 2008-03-10 Vladimir Makarov <vmakarov@redhat.com>
24677 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
24678 Remove commutativity hint.
24680 2008-03-10 Jakub Jelinek <jakub@redhat.com>
24684 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
24685 errorneous type. Check that v is a VAR_DECL.
24687 PR middle-end/35099
24688 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
24690 2008-03-10 H.J. Lu <hongjiu.lu@intel.com>
24692 PR tree-optimization/35494
24693 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
24694 may be overriden at link and run time.
24696 2008-03-10 Richard Guenther <rguenther@suse.de>
24698 PR tree-optimization/34677
24699 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
24700 (poolify_tree): Likewise.
24701 (modify_expr_template): Likewise.
24702 (poolify_modify_stmt): Likewise.
24703 (insert_fake_stores): Handle all component-ref style stores
24704 in addition to INDIRECT_REF. Also handle complex types.
24705 Do not poolify the inserted load.
24706 (realify_fake_stores): Do not rebuild the tree but only
24707 make it a SSA_NAME copy.
24708 (init_pre): Remove initialzation of modify_expr_template.
24709 Do not allocate modify_expr_node_pool.
24710 (fini_pre): Do not free modify_expr_node_pool.
24712 2008-03-10 Paul Brook <paul@codesourcery.com>
24714 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
24715 to avoid conflicts.
24717 2008-03-10 Paul Brook <paul@codesourcery.com>
24718 Mark Shinwell <shinwell@codesourcery.com>
24720 * config/arm/cortex-r4.md: New.
24721 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
24723 * config/arm/arm.md: Include cortex-r4.md.
24724 (insn): Add smmls, sdiv and udiv values.
24725 (generic_sched): Don't use generic scheduling for Cortex-R4.
24726 (arm_issue_rate): New function.
24727 (TARGET_SCHED_ISSUE_RATE): Define.
24729 2008-03-10 Sebastian Pop <sebastian.pop@amd.com>
24731 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
24733 2008-03-10 Richard Guenther <rguenther@suse.de>
24735 * tree-ssa-pre.c (get_sccvn_value): Simplify.
24736 (compute_avail): Do not add stmt uses to AVAIL_OUT.
24738 2008-03-10 Paolo Bonzini <bonzini@gnu.org>
24740 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
24741 Set default to true.
24743 2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24745 * c.opt (Wsynth): Deprecate.
24746 * doc/invoke.texi (Option Summary, Warning Options): Document
24747 -Wno-format-contains-nul.
24749 2008-03-09 Uros Bizjak <ubizjak@gmail.com>
24752 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
24753 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
24755 2008-03-09 Ira Rosen <irar@il.ibm.com>
24757 * config/rs6000/rs6000.c (builtin_description): Rename vector
24758 left shift operations.
24759 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
24760 (altivec_vsl<VI_char>): Rename to ...
24761 (ashl<mode>3): ... new name.
24762 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
24764 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
24766 2008-03-08 Richard Guenther <rguenther@suse.de>
24768 * coverage.h (tree_coverage_counter_addr): Declare.
24769 * coverage.c (tree_coverage_counter_addr): New function.
24770 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
24771 before using again.
24772 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
24773 (tree_gen_one_value_profiler): Likewise.
24774 (tree_gen_ic_profiler): Likewise.
24775 (tree_gen_average_profiler): Likewise.
24776 (tree_gen_ior_profiler): Likewise.
24778 2008-03-08 Richard Guenther <rguenther@suse.de>
24780 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
24781 (vn_binary_op_insert): Likewise.
24782 (vn_unary_op_lookup): Likewise.
24783 (vn_unary_op_insert): Likewise.
24784 (vn_nary_op_lookup): Declare.
24785 (vn_nary_op_insert): Likewise.
24786 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
24787 and binary hashes, use a single obstack for unary_op_pool
24788 and binary_op_pool.
24789 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
24790 a single struct vn_nary_op_s. Store tree code length and
24791 a variable number of operands.
24792 (struct vn_reference_op_struct): Remove unused op2.
24793 (vn_reference_op_eq): Do not compare op2.
24794 (vn_reference_op_compute_hash): Do not compute hash of op2.
24795 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
24796 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
24797 with vn_nary_op_compute_hash.
24798 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
24799 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
24801 (vn_unary_op_insert, vn_binary_op_insert): Replace with
24803 (visit_unary_op): Call nary functions.
24804 (visit_binary_op): Likewise.
24805 (process_scc): Adjust for struct vn_tables_s changes.
24806 (allocate_vn_table): Likewise.
24807 (free_vn_table): Likewise.
24808 * tree-vn.c (vn_add): Call nary functions.
24809 (vn_lookup): Likewise.
24811 2008-03-08 Jakub Jelinek <jakub@redhat.com>
24814 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
24815 wdst back after sync_compare_and_swapqhi_internal.
24817 2008-03-08 Uros Bizjak <ubizjak@gmail.com>
24820 * config/i386/i386-modes.def (V1DI): New vector mode.
24821 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
24822 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
24823 (MMXMODE248): Ditto.
24824 (MMXMODE): Add V1DI mode.
24825 (mmxvecsize): Change DI mode to V1DI mode.
24826 ("mov<mode>): Use MMXMODEI8 mode iterator.
24827 ("*mov<mode>_internal_rex64"): Ditto.
24828 ("*mov<mode>_internal"): Ditto.
24829 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
24830 ("mmx_sub<mode>3"): Ditto.
24831 ("mmx_adddi3"): Remove insn pattern.
24832 ("mmx_subdi3"): Ditto.
24833 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
24834 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
24835 ("mmx_ashl<mode>3"): Ditto.
24836 ("mmx_lshrdi3"): Remove insn pattern.
24837 ("mmx_ashldi3"): Ditto.
24838 * config/i386/i386.c (classify_argument): Handle V1DImode.
24839 (function_arg_advance_32): Ditto.
24840 (function_arg_32): Ditto.
24841 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
24842 mmx_addv1di3 insn pattern.
24843 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
24844 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
24845 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
24846 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
24847 Remove definitions of built-in functions.
24848 (V1DI_type_node): New node.
24849 (v1di_ftype_v1di_int): Ditto.
24850 (v1di_ftype_v1di_v1di): Ditto.
24851 (v2si_ftype_v2si_si): Ditto.
24852 (v4hi_ftype_v4hi_di): Remove node.
24853 (v2si_ftype_v2si_di): Ditto.
24854 (ix86_init_mmx_sse_builtins): Handle V1DImode.
24855 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
24856 Redefine builtins using def_builtin_const with *_ftype_*_int node.
24857 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
24858 Add new builtins using def_builtin_const.
24859 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
24860 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
24861 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
24862 * config/i386/mmintrin.h (__v1di): New typedef.
24863 (_mm_add_si64): Cast arguments to __v1di type.
24864 (_mm_sub_si64): Ditto.
24865 (_mm_sll_pi16): Cast __count to __v4hi type.
24866 (_mm_sll_pi32): Cast __count to __v2si type.
24867 (_mm_sll_si64): Cast arguments to __v1di type.
24868 (_mm_srl_pi16): Cast __count to __v4hi type.
24869 (_mm_srl_pi32): Cast __count to __v2si type.
24870 (_mm_srl_si64): Cast arguments to __v1di type.
24871 (_mm_sra_pi16): Cast __count to __v4hi type.
24872 (_mm_sra_pi32): Cast __count to __v2si type.
24873 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
24874 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
24875 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
24876 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
24877 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
24878 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
24879 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
24880 (_mm_srai_pi32): Use __builtin_ia32_psradi.
24881 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
24882 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
24883 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
24884 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
24886 2008-03-07 Joseph Myers <joseph@codesourcery.com>
24888 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
24890 2008-03-07 Peter Bergner <bergner@vnet.ibm.com>
24893 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
24894 reg+const addressing for Altivec modes. Don't generate reg+reg
24895 addressing for TFmode or TDmode quantities.
24897 2008-03-07 Paolo Bonzini <bonzini@gnu.org>
24899 * c-common.c (vector_types_convertible_p): Call langhook
24900 instead of comptypes.
24902 2008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
24905 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
24906 integral and scalar float variables which have a
24909 2008-03-06 Nathan Froyd <froydnj@codesourcery.com>
24911 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
24912 dwarf_register_span hook when emitting unwind information for
24913 register-to-memory saves.
24914 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
24915 (rs6000_frame_related): Remove call to spe_synthesize_frame.
24917 2008-03-06 Jakub Jelinek <jakub@redhat.com>
24919 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
24920 for the same VAR_DECL.
24922 2008-03-06 Tom Tromey <tromey@redhat.com>
24924 * treelang: Delete.
24925 * doc/standards.texi (Standards): Don't mention treelang.
24926 * doc/invoke.texi (Overall Options): Don't mention treelang.
24927 * doc/install.texi (Prerequisites): Don't mention bison or
24929 (Configuration): Don't mention treelang.
24930 (Building): Likewise.
24931 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
24933 2008-03-06 Paolo Bonzini <bonzini@gnu.org>
24935 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
24936 word-extractions out of a multi-word object.
24938 2008-03-06 Richard Guenther <rguenther@suse.de>
24940 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
24941 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
24942 result type and precision.
24943 * expr.c (get_inner_reference): Set unsignedp based on the result
24944 type of BIT_FIELD_REF.
24945 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
24946 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
24947 (try_instantiate_multiple_fields): Likewise. Use the correct type
24949 (sra_build_assignment): Likewise.
24950 (sra_build_elt_assignment): Likewise.
24951 (sra_explode_bitfield_assignment): Likewise.
24952 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
24953 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
24954 set BIT_FIELD_REF_UNSIGNED.
24955 (vectorizable_load): Likewise.
24957 2008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
24959 * cse.c (cse_extended_basic_block): Invalidate artificial defs
24962 2008-03-06 Richard Guenther <rguenther@suse.de>
24964 * alias.c (struct alias_set_entry): Move has_zero_child field
24965 to pack with alias_set.
24967 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
24969 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24972 2008-03-05 Ian Lance Taylor <iant@google.com>
24974 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
24976 2008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
24978 * fwprop.c (update_df): Support width and offset parameters of
24980 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
24981 global_conflicts): Change DF_REF_EXTRACT to either
24982 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
24983 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
24984 * df-scan.c (df_ref_record, df_defs_record,
24985 df_ref_create_structure, df_def_record_1, df_uses_record,
24986 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
24987 df_bb_refs_collect, df_entry_block_defs_collect,
24988 df_exit_block_uses_collect): Support new width and offset fields.
24989 (ref_extract_pool): New storage pool.
24990 (df_free_ref): New function.
24991 (df_reg_chain_unlink, df_free_collection_rec,
24992 df_sort_and_compress_refs): Call df_free_ref.
24993 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
24995 (df_ref_create_structure): Allocate df_ref_extract if offset and
24996 width fields are used.
24997 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
24998 (df_uses_record): Get offset and width from ZERO_EXTRACT
25000 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
25001 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
25002 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25003 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
25004 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
25005 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25006 (df_ref_extract): New structure.
25007 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
25008 (df_ref_create): Add width and offset parameters.
25010 2008-03-05 Richard Guenther <rguenther@suse.de>
25012 * tree-ssa-structalias.c (get_constraint_for_component_ref):
25013 Use ranges_overlap_p.
25014 (offset_overlaps_with_access): Rename
25015 to ranges_overlap_p and move ...
25016 * tree-flow-inline.h (ranges_overlap_p): ... here.
25018 * tree.h (get_inner_reference, handled_component_p): Update
25021 * tree.h (record_component_aliases, get_alias_set,
25022 alias_sets_conflict_p, alias_sets_must_conflict_p,
25023 objects_must_conflict_p): Move declarations ...
25024 * alias.h (record_component_aliases, get_alias_set,
25025 alias_sets_conflict_p, alias_sets_must_conflict_p,
25026 objects_must_conflict_p): ... here.
25027 Include coretypes.h.
25028 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
25030 2008-03-05 Aldy Hernandez <aldyh@redhat.com>
25032 * cfg.c: Include tree-flow.h.
25033 (remove_edge_raw): Call redirect_edge_var_map_clear.
25034 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
25035 * tree-flow-inline.h (redirect_edge_var_map_def): New.
25036 (redirect_edge_var_map_result): New.
25037 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
25038 PENDING_STMT use with redirect_edge_var_map_*.
25039 * tree-ssa.c (edge_var_maps): New definition.
25040 (redirect_edge_var_map_add): New.
25041 (redirect_edge_var_map_clear): New.
25042 (redirect_edge_var_map_dup): New.
25043 (redirect_edge_var_map_vector): New.
25044 (redirect_edge_var_map_destroy): New.
25045 (ssa_redirect_edge): Replace PENDING_STMT use with
25046 redirect_edge_var_map_*.
25047 (flush_pending_stmts): Same.
25048 (delete_tree_ssa): Destroy edge var map.
25049 * tree-flow.h (struct _edge_var_map): New.
25050 Define edge_var_map vector type.
25051 Declare redirect_edge_var_map_* prototypes.
25052 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
25053 * tree-cfg.c (reinstall_phi_args): Replace
25054 PENDING_STMT use with redirect_edge_var_map_*.
25056 2008-03-05 Richard Guenther <rguenther@suse.de>
25058 PR tree-optimization/35472
25059 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
25060 whose single use_stmt has a overlapping set of loaded and
25061 stored symbols as that use_stmt might be a noop assignment then.
25063 2008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
25065 * gthr-rtems.h: Implement __gthread_mutex_destroy.
25067 2008-03-05 Richard Guenther <rguenther@suse.de>
25070 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
25071 should be constants.
25072 * tree-cfg.c (verify_expr): Verify it.
25073 * fold-const.c (fold_truthop): Remove code generating
25074 BIT_FIELD_REFs of structure bases.
25075 (fold_binary): Likewise.
25076 (fold_ternary): Position and size of BIT_FIELD_REFs are
25077 always host integers.
25078 (make_bit_field_ref): Remove.
25079 (optimize_bit_field_compare): Remove.
25080 (all_ones_mask_p): Remove.
25082 2008-03-05 Gabor Loki <loki@gcc.gnu.org>
25085 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
25086 (split_block_and_df_analyze): New. Split basic block and rebuild
25088 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
25090 (split_pattern_seq): Likewise.
25091 (erase_matching_seqs): Likewise.
25092 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
25094 2008-03-04 Geoff Keating <geoffk@apple.com>
25096 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
25097 declaration and code.
25098 (tree_invalid_nonnegative_warnv_p): Likewise.
25100 2008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
25102 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
25103 examples. Truncate option-names then causing overfull hbox.
25105 2008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25108 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
25110 * configure: Rebuilt.
25112 2008-03-04 Rafael Espíndola <espindola@google.com>
25114 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
25115 (tree_unary_nonnegative_warnv_p): New.
25116 (tree_binary_nonnegative_warnv_p): New.
25117 (tree_single_nonnegative_warnv_p): New.
25118 (tree_invalid_nonnegative_warnv_p): New.
25119 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
25121 2008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25124 * opts.c (handle_option): Postpone 'unknown option' errors only for
25127 2008-03-04 H.J. Lu <hongjiu.lu@intel.com>
25130 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
25133 2008-03-04 Rafael Espíndola <espindola@google.com>
25135 * fold-const.c (tree_unary_nonzero_warnv_p): New.
25136 (tree_binary_nonzero_warnv_p): New.
25137 (tree_single_nonzero_warnv_p): New.
25138 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
25140 2008-03-04 Uros Bizjak <ubizjak@gmail.com>
25142 PR middle-end/35456
25143 * fold-const.c (fold_cond_expr_with_comparison): Prevent
25144 transformations for modes that have signed zeros.
25145 * ifcvt.c (noce_try_abs): Ditto.
25147 2008-03-04 Joseph Myers <joseph@codesourcery.com>
25149 * config/i386/i386.c (override_options): Force
25150 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
25152 2008-03-04 Jan Hubicka <jh@suse.cz>
25155 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
25158 2008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
25160 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
25161 label to probe the stack.
25163 2008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
25165 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
25166 (__gthr_win32_mutex_destroy): Declare.
25167 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
25168 __gthr_win32_mutex_destroy.
25169 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
25171 2008-03-03 Jan Hubicka <jh@suse.cz>
25174 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
25175 aggressive on inlining cold calls.
25177 2008-03-03 Richard Guenther <rguenther@suse.de>
25179 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
25180 struct copies into the expression table.
25181 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
25182 (try_to_simplify): Likewise.
25183 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
25184 integral and pointer arguments which do not change the
25185 precision to NOP_EXPRs.
25186 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
25187 VIEW_CONVERT_EXPR case.
25189 2008-03-02 Sebastian Pop <sebastian.pop@amd.com>
25191 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
25192 defined in a loop at depth 0 is invariant.
25193 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
25194 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
25195 be called at loop depth 0.
25197 2008-03-02 Jakub Jelinek <jakub@redhat.com>
25200 * gcc.c (process_command): Update copyright notice dates.
25201 * gcov.c (print_version): Likewise.
25202 * gcov-dump.c (print_version): Likewise.
25203 * mips-tfile.c (main): Likewise.
25204 * mips-tdump.c (main): Likewise.
25206 2008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25209 * c-common.c (flag_permissive): Delete.
25210 (constant_expression_warnings): Check flags first.
25211 (constant_expression_error): New.
25212 * c-common.h (flag_permissive): Delete.
25213 (constant_expression_error): Declare.
25214 * flags.h (flag_permissive): Declare. Update description.
25215 * diagnostic.c (pedwarn): Update.
25217 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
25218 (permissive_error_kind): New.
25219 * toplev.c (flag_permissive): Define. Update description.
25220 * toplev.h (permissive_error_kind): Declare.
25221 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
25222 (pedwarn_c90): Use pedantic_warning_kind.
25223 * c-opts.c (c_common_post_options): flag_permissive does not affect
25224 flag_pedantic_errors.
25226 2008-03-02 Joseph Myers <joseph@codesourcery.com>
25228 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
25229 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
25230 __absvsi2, __absvDI2): Use unsigned arithmetic.
25232 2008-03-02 Andi Kleen <ak@suse.de>
25233 Richard Guenther <rguenther@suse.de>
25235 * struct-equiv.c: Remove file.
25236 * cfg_cleanup.c (condjump_equiv_p): Remove.
25237 * Makefile.in (OBJS-common): Remove struct-equiv.o.
25238 (struct-equiv.o): Remove rule.
25239 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
25240 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
25241 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
25243 2008-03-01 Alexandre Oliva <aoliva@redhat.com>
25245 * ifcvt.c (noce_process_if_block): Try to handle only the then
25246 block if the else block exists but isn't suitable.
25248 2008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
25251 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
25252 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
25253 regression from previous patch.
25255 2008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
25258 * gthr.h: Add __gthread_mutex_destroy as a function that must be
25260 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
25261 * gthr-single.h (__gthread_mutex_destroy): Likewise.
25262 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
25263 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
25264 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
25265 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
25266 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
25267 (__gthread_mutex_destroy_function): Rename to
25268 __gthread_mutex_destroy.
25269 * gthr-dce.h (__gthread_mutex_destroy): Call
25270 pthread_mutex_destroy.
25271 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
25272 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
25273 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
25275 2008-03-01 Alexandre Oliva <aoliva@redhat.com>
25277 * df-scan.c (df_ref_chain_change_bb): Simplify.
25278 (df_insn_change_bb): Add new_bb argument. Simplify. Call
25279 set_block_for_insn if there's any change.
25280 * df.h ((df_insn_change_bb): Fix prototype.
25281 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
25282 df_insn_change_bb, don't call set_block_for_insn.
25283 * emit-rtl.c (reorder_insns): Likewise.
25284 * haifa-sched.c (move_insn): Likewise.
25286 2008-03-01 Alexandre Oliva <aoliva@redhat.com>
25288 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
25290 2008-03-01 Alexandre Oliva <aoliva@redhat.com>
25292 * tree-flow-inline.h (next_readonly_imm_use): Return
25293 NULL_USE_OPERAND_P after the end.
25295 2008-03-01 Richard Guenther <rguenther@suse.de>
25297 PR tree-optimization/35411
25298 * tree-sra.c (sra_build_assignment): Split conversion to
25299 final type to a separate statement if we are not assigning
25302 2008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
25304 * fold-const.c (fold_convertible_p): Correct the logic to follow
25305 that in fold_convert().
25307 2008-02-29 Douglas Gregor <doug.gregor@gmail.com>
25310 * tree-inline.c (build_duplicate_type): When we make a
25311 duplicate type, make it unique in the canonical types system.
25313 2008-02-29 Tom Tromey <tromey@redhat.com>
25315 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
25316 input_file_stack_history, input_file_stack_restored): Remove.
25317 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
25318 * input.h (struct file_stack): Remove.
25319 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
25320 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
25322 * diagnostic.h (struct diagnostic_context) <last_module>: Change
25324 (diagnostic_last_module_changed): Add 'map' argument.
25325 (diagnostic_set_last_function): Likewise.
25326 * diagnostic.c (undiagnostic_report_current_module): Iterate using
25327 line map, not input_file_stack.
25328 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
25330 2008-02-29 Paul Brook <paul@codesourcery.com>
25332 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
25334 2008-02-29 Paul Brook <paul@codesourcery.com>
25336 * config/arm/ieee754-df.S (muldf3): Use RET macros.
25338 2008-02-29 Richard Guenther <rguenther@suse.de>
25340 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
25342 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
25343 value for comparing for a store match.
25344 (simplify_unary_expression): Do nothing for SSA_NAMEs.
25345 (try_to_simplify): Do not do a full-blown reference lookup.
25347 2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
25349 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
25350 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
25352 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
25354 2008-02-29 Sebastian Pop <sebastian.pop@amd.com>
25356 * tree-loop-linear.c (try_interchange_loops): Compare memory access
25357 strides against cache sizes.
25359 2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
25361 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
25364 2008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
25366 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
25367 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
25368 is smaller than the original promoted value.
25369 (simplify_subreg): If OP is a SUBREG, try to preserve its
25370 SUBREG_PROMOTED_VAR_P information.
25372 2008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
25374 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
25375 (VN_INFO_GET): Allocate new objects on the obstack.
25376 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
25377 for rpo_numbers_temp, for consistency.
25378 (free_scc_vn): Free the obstack.
25380 2008-02-28 Sebastian Pop <sebastian.pop@amd.com>
25382 * doc/invoke.texi: Document -ftree-loop-distribution.
25383 * tree-loop-distribution.c: New.
25384 * tree-pass.h (pass_loop_distribution): New.
25385 * graphds.h (struct graph): Add htab_t indices.
25386 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
25387 * tree-vectorizer.c (rename_variables_in_loop): Extern.
25388 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
25389 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
25390 * tree-data-ref.c (debug_data_dependence_relations): New.
25391 (dump_data_dependence_relation): Also print data references.
25392 (free_data_ref): Extern.
25393 (same_access_functions): Moved...
25394 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
25395 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
25396 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
25397 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
25398 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
25399 (stmts_from_loop): Skip LABEL_EXPR.
25400 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
25402 (build_rdg): Initialize rdg->indices htab.
25403 (free_rdg, stores_from_loop, ref_base_address,
25404 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
25405 have_similar_memory_accesses_1, ref_base_address_1,
25406 remove_similar_memory_refs): New.
25407 * tree-data-ref.h: Depend on tree-chrec.h.
25408 (debug_data_dependence_relations, free_data_ref): Declared.
25409 (same_access_functions): ... here.
25410 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
25412 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
25413 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
25414 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
25415 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
25416 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
25417 rdg_vertex_for_stmt): Declared.
25418 (struct rdg_edge): Add level.
25420 (free_rdg, stores_from_loop, remove_similar_memory_refs,
25421 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
25423 (rdg_has_similar_memory_accesses): New.
25424 * tree-vect-analyze.c: Remove unused static decls.
25425 * lambda.h (dependence_level): New.
25426 * common.opt (ftree-loop-distribution): New.
25427 * tree-flow.h (mark_virtual_ops_in_bb,
25428 slpeel_tree_duplicate_loop_to_edge_cfg,
25429 rename_variables_in_loop): Declared.
25430 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
25431 (OBJS-common): Add tree-loop-distribution.o.
25432 (tree-loop-distribution.o): New rule.
25433 * tree-cfg.c (mark_virtual_ops_in_bb): New.
25434 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
25435 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
25437 2008-02-28 Joseph Myers <joseph@codesourcery.com>
25440 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
25441 other than structures and unions.
25443 2008-02-28 Richard Guenther <rguenther@suse.de>
25446 2008-02-26 Richard Guenther <rguenther@suse.de>
25448 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25449 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25450 (lookup_decl_from_uid): Declare.
25451 (remove_decl_from_map): Likewise.
25452 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25453 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25454 (decl_for_uid_map): New global hashtable mapping DECL_UID
25456 (init_ttree): Allocate it.
25457 (insert_decl_to_uid_decl_map): New helper function.
25458 (make_node_stat): Insert new decls into the map.
25459 (copy_node_stat): Likewise.
25460 (lookup_decl_from_uid): New function.
25461 (remove_decl_from_map): Likewise.
25462 (print_decl_for_uid_map_statistics): New helper.
25463 (dump_tree_statistics): Call it.
25465 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25466 (referenced_var_iterator): Adjust.
25467 (FOR_EACH_REFERENCED_VAR): Adjust.
25468 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25469 (num_referenced_vars): Adjust.
25470 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25471 (first_referenced_var): Remove.
25472 (end_referenced_vars_p): Likewise.
25473 (next_referenced_var): Likewise.
25474 (referenced_var_iterator_set): New helper function.
25475 * tree-dfa.c (referenced_var_lookup): Adjust.
25476 (referenced_var_check_and_insert): Likewise.
25477 (remove_referenced_var): Likewise.
25478 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25479 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25480 (verify_call_clobbering): Likewise.
25481 (verify_memory_partitions): Likewise.
25482 (init_tree_ssa): Allocate bitmap instead of hashtable for
25484 (delete_tree_ssa): Adjust.
25485 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25486 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25487 (compute_tag_properties): Likewise.
25488 (set_initial_properties): Likewise.
25489 (find_partition_for): Likewise.
25490 (update_reference_counts): Likewise.
25491 (dump_may_aliases_for): Likewise.
25492 * tree-ssa-operands.c (add_virtual_operand): Likewise.
25493 (add_call_clobber_ops): Likewise.
25494 (add_call_read_ops): Likewise.
25495 (get_asm_expr_operands): Likewise.
25496 * tree-into-ssa.c (dump_decl_set): Likewise.
25497 (update_ssa): Likewise.
25498 * tree-sra.c (scan_function): Likewise.
25499 (decide_instantiations): Likewise.
25500 (scalarize_parms): Likewise.
25501 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25502 (dsa_named_for): Likewise.
25503 * tree-ssa-structalias.c (update_alias_info): Likewise.
25504 (merge_smts_into): Likewise.
25506 2008-02-27 David Daney <ddaney@avtrex.com>
25509 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
25510 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
25511 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
25512 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
25513 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
25515 2008-02-27 Uros Bizjak <ubizjak@gmail.com>
25518 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
25519 (BUILT_IN_NEXTTOWARD): Remove.
25520 (BUILT_IN_NEXTTOWARDF): Ditto.
25521 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
25522 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
25524 2008-02-27 Tom Tromey <tromey@redhat.com>
25526 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
25527 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
25529 2008-02-27 Jan Beulich <jbeulich@novell.com>
25531 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
25532 update the respective field on newdecl.
25534 2008-02-27 Revital Eres <eres@il.ibm.com>
25536 PR rtl-optimization/34999
25537 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
25538 crossing edges that ends with a call insn.
25539 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
25540 call insn and clear the EDGE_CROSSING flag of the crossing edge
25541 when fixing fallthru edges.
25543 2008-02-27 Richard Guenther <rguenther@suse.de>
25545 PR middle-end/35390
25546 * fold-const.c (fold_unary): Return the correct argument,
25547 converted to the result type.
25549 2008-02-27 Richard Guenther <rguenther@suse.de>
25551 PR middle-end/34971
25552 * expr.c (expand_expr_real_1): Assert on rotates that operate
25554 * fold-const.c (fold_binary): Use the types precision, not the
25555 bitsize of the mode if folding rotate expressions. Build rotates
25556 only for full modes.
25558 2008-02-27 Jakub Jelinek <jakub@redhat.com>
25560 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
25561 and CPP_PRAGMA_EOL.
25562 * c-pragma.c (pragma_ns_name): New typedef.
25563 (registered_pp_pragmas): New variable.
25564 (c_pp_lookup_pragma): New function.
25565 (c_register_pragma_1): If flag_preprocess_only, do nothing
25566 for non-expanded pragmas, for expanded ones push pragma's
25567 namespace and name into registered_pp_pragmas vector.
25568 (c_invoke_pragma_handler): Register OpenMP pragmas even when
25569 flag_preprocess_only, don't register GCC pch_preprocess
25570 pragma if flag_preprocess_only.
25571 * c-opts.c (c_common_init): Call init_pragma even if
25572 flag_preprocess_only.
25573 * c-pragma.c (c_pp_lookup_pragma): New prototype.
25574 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
25575 cpp_register_pragma if flag_preprocess_only.
25577 2008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25580 * c-parser.c (c_parser_translation_unit): Warn for empty
25581 translation unit, not empty source file.
25583 2008-02-26 Paul Brook <paul@codesourcery.com>
25585 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
25586 operand for Thumb-2.
25587 * config/arm/arm.h (reg_class): Add CORE_REGS.
25588 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
25589 (BASE_REG_CLASS): Use CORE_REGS.
25590 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
25591 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
25592 (REGNO_OK_FOR_INDEX_P): Exclude SP.
25593 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
25594 ARM_REGNO_OK_FOR_INDEX_P.
25595 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
25596 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
25597 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
25598 (ldm/stm peepholes): Ditto.
25599 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
25600 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
25601 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
25602 * config/arm/constraints.md: Enable "k" constraint on ARM.
25604 2008-02-27 Ben Elliston <bje@au.ibm.com>
25606 * config/rs6000/rs6000.c: Annotate cache line size field in all
25607 instances of struct processor_costs.
25609 2008-02-26 David Edelsohn <edelsohn@gnu.org>
25611 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
25612 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
25613 jump_bypass): New counters.
25614 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
25615 * dce.c (gate_ud_dce): Same.
25616 (gate_fast_dce): Same.
25617 * dse.c (gate_dse1): New function.
25618 (gate_dse2): New function.
25619 (gate_dse): Merge results of new gate functions.
25620 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
25621 (gate_handle_jump_bypass): Add dbg_cnt.
25622 (gate_handle_gcse): Add dbg_cnt.
25623 * ifcvt.c (gate_handle_if_conversion): Same.
25624 (gate_handle_if_after_combine): Same.
25625 (gate_handle_if_after_reload): Same.
25626 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
25628 2008-02-26 Edmar Wienskoski <edmar@freescale.com>
25630 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
25632 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
25634 2008-02-26 Jason Merrill <jason@redhat.com>
25637 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
25638 alone if it's the naming decl for the type's main variant.
25640 2008-02-26 Tom Tromey <tromey@redhat.com>
25642 * system.h (USE_MAPPED_LOCATION): Poison.
25643 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
25644 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
25645 (make_goto_expr_edges): Likewise.
25646 (remove_bb): Likewise.
25647 (execute_warn_function_return): Likewise.
25648 * basic-block.h (struct edge_def) <goto_locus>: Change type to
25650 * c-common.c (fname_decl): Remove old location code.
25651 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
25653 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
25655 (ASM_INPUT_SOURCE_LOCATION): Likewise.
25656 (gen_rtx_ASM_INPUT): Likewise.
25657 (gen_rtx_ASM_INPUT_loc): Likewise.
25658 (get_rtx_asm_OPERANDS): Remove.
25659 * cfglayout.c (insn_locators_alloc): Remove old location code.
25660 (set_curr_insn_source_location): Likewise.
25661 (curr_insn_locator): Likewise.
25662 * print-tree.c (print_node): Remove old location code.
25663 * tree-mudflap.c (mf_varname_tree): Remove old location code.
25664 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
25665 * cfgexpand.c (expand_gimple_cond_expr): Don't use
25666 location_from_locus.
25667 (construct_exit_block): Remove old location code.
25668 * emit-rtl.c (force_next_line_note): Remove old location code.
25669 * profile.c (branch_prob): Remove old location code.
25670 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
25671 LOC_LINE): Remove old-location variants.
25672 * langhooks.c (lhd_print_error_function): Remove old location
25674 * configure, config.in: Rebuilt.
25675 * configure.ac (--enable-mapped-location): Remove.
25676 * c-decl.c (c_init_decl_processing): Remove old location code.
25677 (finish_function): Likewise.
25678 * recog.c (decode_asm_operands): Remove old location code.
25679 * c-pch.c (c_common_read_pch): Remove old location code.
25680 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
25682 * gimple-low.c (lower_function_body): Remove old location code.
25683 * toplev.c (unknown_location): Remove.
25684 (push_srcloc): Remove old-location variant.
25685 (process_options): Remove old location code.
25686 (lang_dependent_init): Likewise.
25687 * input.h (UNKNOWN_LOCATION): Move definition.
25688 (location_t): Undeprecate.
25689 (source_locus): Remove.
25690 (location_from_locus): Remove.
25691 (struct location_s): Remove.
25692 Remove all old-location code.
25693 (input_line, input_filename): Remove.
25694 * final.c (final_scan_insn): Remove old location code.
25695 * diagnostic.c (diagnostic_build_prefix): Remove
25696 USE_MAPPED_LOCATION test.
25697 * tree.h (gimple_stmt) <locus>: Now a location_t.
25698 (tree_exp) <locus>: Likewise.
25699 (DECL_IS_BUILTIN): Remove old-location variant.
25700 (annotate_with_file_line, annotate_with_locus): Likewise.
25701 (expr_locus, set_expr_locus): Update.
25702 * tree.c (build1_stat): Remove old location code.
25703 (last_annotated_node): Remove.
25704 (annotate_with_file_line): Remove old-location variant.
25705 (annotate_with_locus): Likewise.
25706 (expr_location): Remove old location code.
25707 (set_expr_location): Likewise.
25708 (expr_has_location): Likewise.
25709 (expr_locus): Likewise.
25710 (set_expr_locus): Likewise.
25711 (expr_filename): Don't use location_from_locus.
25712 (expr_lineno): Likewise.
25713 * rtl-error.c (location_for_asm): Remove old location code.
25714 * c-lex.c (cb_line_change): Remove old location code.
25715 (fe_file_change): Likewise.
25716 (cb_def_pragma): Likewise.
25717 (c_lex_with_flags): Likewise.
25718 * gengtype.c (do_typedef): Don't special-case location types.
25719 (define_location_structures): Remove.
25720 (main): Don't call define_location_structures.
25721 * tree-pretty-print.c (dump_implicit_edges): Remove old location
25724 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25727 * builtins.def (BUILT_IN_STDARG_START): Remove.
25728 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
25729 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
25730 * tree-inline.c (inline_forbidden_p_1): Likewise.
25732 2008-02-26 Richard Guenther <rguenther@suse.de>
25734 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25735 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25736 (lookup_decl_from_uid): Declare.
25737 (remove_decl_from_map): Likewise.
25738 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25739 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25740 (decl_for_uid_map): New global hashtable mapping DECL_UID
25742 (init_ttree): Allocate it.
25743 (insert_decl_to_uid_decl_map): New helper function.
25744 (make_node_stat): Insert new decls into the map.
25745 (copy_node_stat): Likewise.
25746 (lookup_decl_from_uid): New function.
25747 (remove_decl_from_map): Likewise.
25748 (print_decl_for_uid_map_statistics): New helper.
25749 (dump_tree_statistics): Call it.
25751 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25752 (referenced_var_iterator): Adjust.
25753 (FOR_EACH_REFERENCED_VAR): Adjust.
25754 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25755 (num_referenced_vars): Adjust.
25756 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25757 (first_referenced_var): Remove.
25758 (end_referenced_vars_p): Likewise.
25759 (next_referenced_var): Likewise.
25760 (referenced_var_iterator_set): New helper function.
25761 * tree-dfa.c (referenced_var_lookup): Adjust.
25762 (referenced_var_check_and_insert): Likewise.
25763 (remove_referenced_var): Likewise.
25764 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25765 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25766 (verify_call_clobbering): Likewise.
25767 (verify_memory_partitions): Likewise.
25768 (init_tree_ssa): Allocate bitmap instead of hashtable for
25770 (delete_tree_ssa): Adjust.
25771 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25772 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25773 (compute_tag_properties): Likewise.
25774 (set_initial_properties): Likewise.
25775 (find_partition_for): Likewise.
25776 (update_reference_counts): Likewise.
25777 (dump_may_aliases_for): Likewise.
25778 * tree-ssa-operands.c (add_virtual_operand): Likewise.
25779 (add_call_clobber_ops): Likewise.
25780 (add_call_read_ops): Likewise.
25781 (get_asm_expr_operands): Likewise.
25782 * tree-into-ssa.c (dump_decl_set): Likewise.
25783 (update_ssa): Likewise.
25784 * tree-sra.c (scan_function): Likewise.
25785 (decide_instantiations): Likewise.
25786 (scalarize_parms): Likewise.
25787 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25788 (dsa_named_for): Likewise.
25789 * tree-ssa-structalias.c (update_alias_info): Likewise.
25790 (merge_smts_into): Likewise.
25792 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25795 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
25796 * c-opts.c (c_common_handle_option): Wall enables
25797 Wvolatile-register-var.
25798 * common.opt: Move Wvolatile-register-var to...
25801 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25803 * common.opt (Wlarger-than=): New.
25804 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
25806 * opts.c (common_handle_option): Handle -Wlarger-than=.
25807 * optc-gen.awk: Likewise.
25808 * opth-gen.awk: Likewise.
25809 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
25810 * tree-optimize.c (tree_rest_of_compilation): Likewise.
25812 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25814 * c-common.c (match_case_to_enum_1): Add appropriate
25815 OPT_W* parameter to warning.
25816 (c_do_switch_warnings): Likewise.
25817 * c-typeck.c (warning_init): Add one more parameter following
25818 'warning' function.
25819 (push_init_level): Update call to warning_init.
25820 (pop_init_level): Likewise.
25821 (add_pending_init): Likewise.
25822 (output_init_element: Likewise.
25824 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25827 * toplev.c (toplev_main): If there are warnings or error, print
25828 errors for ignored options.
25829 * opts.c (ignored_options): New static variable.
25830 (postpone_unknown_option_error): New.
25831 (print_ignored_options): New.
25832 (handle_option): Postpone errors for unknown -Wno-* options.
25833 * opts.h (print_ignored_options): Declare.
25835 2008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
25837 * config/mips/mips.md (loadgp_blockage, blockage): Change type
25840 2008-02-25 Richard Guenther <rguenther@suse.de>
25843 2008-02-25 Richard Guenther <rguenther@suse.de>
25845 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25846 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25847 (lookup_decl_from_uid): Declare.
25848 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25849 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25850 (decl_for_uid_map): New global hashtable mapping DECL_UID
25852 (init_ttree): Allocate it.
25853 (insert_decl_to_uid_decl_map): New helper function.
25854 (make_node_stat): Insert new decls into the map.
25855 (copy_node_stat): Likewise.
25856 (lookup_decl_from_uid): New function.
25857 (print_decl_for_uid_map_statistics): New helper.
25858 (dump_tree_statistics): Call it.
25860 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25861 (referenced_var_iterator): Adjust.
25862 (FOR_EACH_REFERENCED_VAR): Adjust.
25863 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25864 (num_referenced_vars): Adjust.
25865 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25866 (first_referenced_var): Remove.
25867 (end_referenced_vars_p): Likewise.
25868 (next_referenced_var): Likewise.
25869 (referenced_var_iterator_set): New helper function.
25870 * tree-dfa.c (referenced_var_lookup): Adjust.
25871 (referenced_var_check_and_insert): Likewise.
25872 (remove_referenced_var): Likewise.
25873 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25874 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25875 (verify_call_clobbering): Likewise.
25876 (verify_memory_partitions): Likewise.
25877 (init_tree_ssa): Allocate bitmap instead of hashtable for
25879 (delete_tree_ssa): Adjust.
25880 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25881 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25882 (compute_tag_properties): Likewise.
25883 (set_initial_properties): Likewise.
25884 (find_partition_for): Likewise.
25885 (update_reference_counts): Likewise.
25886 (dump_may_aliases_for): Likewise.
25887 * tree-ssa-operands.c (add_virtual_operand): Likewise.
25888 (add_call_clobber_ops): Likewise.
25889 (add_call_read_ops): Likewise.
25890 (get_asm_expr_operands): Likewise.
25891 * tree-into-ssa.c (dump_decl_set): Likewise.
25892 (update_ssa): Likewise.
25893 * tree-sra.c (scan_function): Likewise.
25894 (decide_instantiations): Likewise.
25895 (scalarize_parms): Likewise.
25896 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25897 (dsa_named_for): Likewise.
25898 * tree-ssa-structalias.c (update_alias_info): Likewise.
25899 (merge_smts_into): Likewise.
25901 2008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
25904 * doc/invoke.texi (-fcx-limited-range): Document new option.
25905 * toplev.c (process_options): Handle -fcx-fortran-rules.
25906 * common.opt: Add documentation for -fcx-fortran-rules.
25908 2008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
25911 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
25912 actual behaviour and C99.
25914 2008-02-26 Ben Elliston <bje@au.ibm.com>
25916 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
25917 (ASM_CPU_POWER6_SPEC): Likewise.
25918 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
25919 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
25920 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
25922 2008-02-25 Richard Guenther <rguenther@suse.de>
25924 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25925 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25926 (lookup_decl_from_uid): Declare.
25927 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25928 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25929 (decl_for_uid_map): New global hashtable mapping DECL_UID
25931 (init_ttree): Allocate it.
25932 (insert_decl_to_uid_decl_map): New helper function.
25933 (make_node_stat): Insert new decls into the map.
25934 (copy_node_stat): Likewise.
25935 (lookup_decl_from_uid): New function.
25936 (print_decl_for_uid_map_statistics): New helper.
25937 (dump_tree_statistics): Call it.
25939 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25940 (referenced_var_iterator): Adjust.
25941 (FOR_EACH_REFERENCED_VAR): Adjust.
25942 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25943 (num_referenced_vars): Adjust.
25944 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25945 (first_referenced_var): Remove.
25946 (end_referenced_vars_p): Likewise.
25947 (next_referenced_var): Likewise.
25948 (referenced_var_iterator_set): New helper function.
25949 * tree-dfa.c (referenced_var_lookup): Adjust.
25950 (referenced_var_check_and_insert): Likewise.
25951 (remove_referenced_var): Likewise.
25952 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25953 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25954 (verify_call_clobbering): Likewise.
25955 (verify_memory_partitions): Likewise.
25956 (init_tree_ssa): Allocate bitmap instead of hashtable for
25958 (delete_tree_ssa): Adjust.
25959 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25960 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25961 (compute_tag_properties): Likewise.
25962 (set_initial_properties): Likewise.
25963 (find_partition_for): Likewise.
25964 (update_reference_counts): Likewise.
25965 (dump_may_aliases_for): Likewise.
25966 * tree-ssa-operands.c (add_virtual_operand): Likewise.
25967 (add_call_clobber_ops): Likewise.
25968 (add_call_read_ops): Likewise.
25969 (get_asm_expr_operands): Likewise.
25970 * tree-into-ssa.c (dump_decl_set): Likewise.
25971 (update_ssa): Likewise.
25972 * tree-sra.c (scan_function): Likewise.
25973 (decide_instantiations): Likewise.
25974 (scalarize_parms): Likewise.
25975 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25976 (dsa_named_for): Likewise.
25977 * tree-ssa-structalias.c (update_alias_info): Likewise.
25978 (merge_smts_into): Likewise.
25980 2008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
25983 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
25984 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
25985 * alias.h (nonoverlapping_memrefs_p): Likewise.
25987 2008-02-25 Jan Beulich <jbeulich@novell.com>
25989 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
25990 * config/i386/netware-libgcc.exp: Add __bswap?i2,
25991 __emultls_get_address, __emultls_register_common,
25992 __floatundi?f, and _Unwind_GetIPInfo.
25993 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
25994 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
25995 (gen_regparm_prefix): Likewise.
25996 (i386_nlm_encode_section_info): Sync with
25997 config/i386/winnt.c:i386_pe_encode_section_info().
25998 (i386_nlm_maybe_mangle_decl_assembler_name): New.
25999 i386_nlm_mangle_decl_assembler_name): New.
26000 (netware_override_options): New.
26001 * config/i386/netware.h (netware_override_options): Declare.
26002 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
26003 (i386_nlm_mangle_decl_assembler_name): Declare.
26004 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
26006 2008-02-25 Ben Elliston <bje@au.ibm.com>
26009 * c-decl.c (grokdeclarator): Remove unused local variables
26010 `typedef_type' and `type_as_written'.
26012 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
26013 unused local variable `has_hot_blocks'.
26014 (fix_crossing_conditional_branches): Remove unused local variable
26017 2008-02-25 Uros Bizjak <ubizjak@gmail.com>
26019 PR middle-end/19984
26020 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
26021 using DEF_C99_BUILTIN.
26022 (BUILT_IN_NANF): Ditto.
26023 (BUILT_IN_NANL): Ditto.
26025 2008-02-25 Ayal Zaks <zaks@il.ibm.com>
26026 Revital Eres <eres@il.ibm.com>
26028 * modulo-sched.c (calculate_must_precede_follow): Address TODO
26029 regarding the order of two dependent insns in the same row.
26031 2008-02-25 Eric Botcazou <ebotcazou@adacore.com>
26033 * stor-layout.c (layout_decl): Do not bump the alignment of a
26034 bit-field to more than byte alignment if it is packed.
26036 2008-02-24 David Edelsohn <edelsohn@gnu.org>
26038 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
26041 2008-02-24 Diego Novillo <dnovillo@google.com>
26043 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
26046 * tree-vrp.c (vrp_evaluate_conditional): With
26047 -Wtype-limits, emit a warning when comparing against a
26048 constant outside the natural range of OP0's type.
26049 * c.opt (Wtype-limits): Move ...
26050 * common.opt (Wtype-limits): ... here.
26052 2008-02-24 Edmar Wienskoski <edmar@freescale.com>
26054 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
26055 * config/rs6000/e300c2c3.md: New file.
26056 * config/rs6000/rs6000.c (processor_costs): Add new costs for
26058 (rs6000_override_options): Add e300c2 and e300c3 cases to
26059 processor_target_table. Do not allow usage of Altivec or Spe
26060 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
26061 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
26062 * config/rs6000/rs6000.h (processor_type): Add
26063 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
26064 (ASM_CPU_SPEC): Add e300c2 and e300c3.
26065 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
26066 and ppce300c3. Include e300c2c3.md.
26068 2008-02-23 David Edelsohn <edelsohn@gnu.org>
26070 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
26071 instead of TARGET_STRICT_ALIGN.
26073 2008-02-23 Joseph Myers <joseph@codesourcery.com>
26075 * explow.c (memory_address): Assert that the generated address is
26078 2008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
26081 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
26082 * config/darwin-ppc-ldouble-patch.def: New file.
26083 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
26084 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
26085 SUBTARGET_INIT_BUILTINS if defined.
26086 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
26089 2008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
26092 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
26093 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
26095 2008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
26098 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
26099 file" warning condtional on -Winvalid-PCH.
26101 2008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
26103 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
26105 2008-02-23 Uros Bizjak <ubizjak@gmail.com>
26109 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
26110 prevent reload from using MMX registers.
26111 (*mov<mode>_internal): Ditto.
26112 (*movv2sf_internal_rex64): Ditto.
26113 (*movv2sf_internal): Ditto.
26115 2008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26117 PR documentation/31569
26118 * doc/install.texi2html: Use makeinfo --no-number-sections.
26120 2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
26122 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
26123 ensure that we can address an entire entity > 8 bytes. Don't
26124 generate reg+reg addressing for such data.
26126 2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
26128 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
26129 strings when optimizing for size, unless the target cares about
26132 2008-02-22 Tom Tromey <tromey@redhat.com>
26134 * regclass.c (current_pass): Remove declaration.
26136 2008-02-22 Anatoly Sokolov <aesok@post.ru>
26138 * config/avr/libgcc.S (__RAMPZ__): Define.
26139 (__do_copy_data): Add for devices with 128KB code memory.
26141 2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
26143 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
26145 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
26147 2008-02-22 Hans-Peter Nilsson <hp@axis.com>
26149 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
26152 2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26155 * c-typeck.c (build_binary_op): Warn about floating point
26156 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
26158 2008-02-21 Janis Johnson <janis187@us.ibm.com>
26161 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
26162 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
26164 (rs6000_override_options): Set altivec_abi as default, not override,
26165 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
26166 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
26167 is used; use new member spe_abi.
26168 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
26169 spe_abi and altivec_abi.
26171 2008-02-22 Tomas Bily <tbily@suse.cz>
26173 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
26175 2008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26178 * config.build (build_file_translate): Set to `CMD //c' only if
26180 * Makefile.in (build_file_translate): Improve comment.
26182 2008-02-21 Jan Hubicka <jh@suse.cz>
26184 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
26185 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
26186 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
26188 2008-02-21 Michael Matz <matz@suse.de>
26191 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
26193 2008-02-21 Uros Bizjak <ubizjak@gmail.com>
26195 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
26196 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
26197 as insn constraint.
26198 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
26199 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
26200 SSE_VEC_FLOAT_MODE_P as insn constraint.
26201 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
26202 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
26203 sse4a_movntdf using MODEF mode iterator.
26204 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
26205 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
26206 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
26207 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
26208 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
26209 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
26210 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
26212 2008-02-21 Richard Guenther <rguenther@suse.de>
26214 * tree.def (PAREN_EXPR): New tree code.
26215 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
26217 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
26218 * expr.c (expand_expr_real_1): Likewise.
26219 * tree-inline.c (estimate_num_insns_1): Likewise.
26220 * tree-complex.c (expand_complex_move): Likewise.
26221 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
26224 2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
26227 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
26229 2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
26232 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
26234 * config/sh/sh.c (find_barrier): Don't go past
26235 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
26237 2008-02-20 DJ Delorie <dj@redhat.com>
26239 * config/h8300/h8300.md (insv): Force source operand to be a register.
26241 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
26242 as a jump, not as a plain insn.
26244 2008-02-20 Seongbae Park <seongbae.park@gmail.com>
26246 * doc/invoke.texi (Warning Options): Add new option
26247 -Wframe-larger-than=.
26248 (-Wframe-larger-than): Document.
26250 * flags.h (warn_frame_larger_than, frame_larger_than_size):
26251 Add declarations for new option variables.
26253 * final.c (final_start_function): Check the frame size
26254 before emission and issue a Wframe-larger-than warning.
26256 * opts.c (warn_frame_larger_than, frame_larger_than_size):
26257 Add definitions for new option variables.
26258 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
26260 * common.opt (Wframe-larger-than=): New option.
26262 2008-02-20 Uros Bizjak <ubizjak@gmail.com>
26264 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
26265 (<sse>_div<mode>3): Ditto.
26266 (<sse>_vmdiv<mode>3): Ditto.
26267 (<sse>_vmsqrt<mode>2): Ditto.
26268 (*smax<mode>3): Ditto.
26269 (sse5_frcz<mode>2): Ditto.
26270 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
26271 as insn constraint.
26273 2008-02-20 Richard Guenther <rguenther@suse.de>
26275 PR middle-end/35265
26276 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
26277 be happy with INTEGRAL_TYPE_P.
26279 2008-02-20 Richard Guenther <rguenther@suse.de>
26281 * fold-const.c (split_tree): Associate floatig-point expressions
26282 if flag_associative_math is set.
26284 2008-02-20 Richard Guenther <rguenther@suse.de>
26286 * tree.h (fold_real_zero_addition_p): Declare.
26287 * fold-const.c (fold_real_zero_addition_p): Export.
26288 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
26289 floating-point operations with zero and one.
26291 2008-02-20 Paolo Bonzini <bonzini@gnu.org>
26293 * doc/install.texi: Correct references to CFLAGS, replacing them
26294 with BOOT_CFLAGS. Document flags used during bootstrap for
26297 2008-02-20 Uros Bizjak <ubizjak@gmail.com>
26299 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
26300 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
26301 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
26303 (smin<mode>3): Ditto from similar patterns.
26304 (smax<mode>3): Ditto.
26305 (*ieee_smin<mode>3): Ditto.
26306 (*ieee_smax<mode>3): Ditto.
26307 * config/i386/sse.md (sse): New mode attribute.
26308 (mov<mode>): Macroize expander from movv4sf and movv2df using
26309 SSEMODEF2P mode iterator.
26310 (<sse>_movnt<mode>): Ditto from similar patterns. Use
26311 SSE_VEC_FLOAT_MODE_P as insn constraint.
26312 (storent<mode>): Ditto.
26313 (storent<mode>): Macroize expander from storentsf and storentdf using
26314 MODEF mode iterator.
26315 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
26316 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
26317 (abs<mode>2): Ditto from similar patterns.
26318 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
26319 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
26320 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
26321 (<sse>_vmsqrt<mode>2): Ditto.
26322 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
26323 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
26324 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
26325 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
26326 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
26327 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
26328 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
26330 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
26331 iterator and SSE_FLOAT_MODE_P as insn constraint.
26332 (<sse>_ucomi): Ditto from similar patterns.
26333 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
26334 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
26335 SSE_VEC_FLOAT_MODE_P as insn constraint.
26336 (vcond<mode>): Ditto from similar patterns.
26337 (and<mode>3, *and<mode>3): Ditto.
26338 (<sse>_nand<mode>3): Ditto.
26339 (ior<mode>3, *ior<mode>3): Ditto.
26340 (xor<mode>3, *xor<mode>3): Ditto.
26341 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
26342 iterator and SSE_FLOAT_MODE_P as insn constraint.
26343 (*nand<mode>3): Ditto from similar patterns.
26344 (*ior<mode>3): Ditto.
26345 (*xor<mode>3): Ditto.
26347 2008-02-20 Ira Rosen <irar@il.ibm.com>
26349 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
26350 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
26351 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
26353 2008-02-19 Jan Hubicka <jh@suse.cz>
26355 * predict.c (tree_bb_level_predictions): Remove variable next
26356 mistakely introduced by previous commit.
26358 2008-02-19 Jan Hubicka <jh@suse.cz>
26360 * predict.c (predict_paths_leading_to): Rewrite.
26361 (predict_paths_for_bb): New.
26362 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
26364 2008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26367 * Makefile.in (build_file_translate): New.
26368 (gcc-vers.texi): Use it for translating $(abs_srcdir).
26369 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
26370 * configure.ac (build_file_translate): Substitute it.
26371 * configure: Regenerate.
26373 2008-02-19 Jan Hubicka <jh@suse.cz>
26375 PR rtl-optimization/34408
26376 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
26379 2008-02-19 Jan Hubicka <jh@suse.cz>
26381 PR middle-end/28779
26382 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
26385 2008-02-19 H.J. Lu <hongjiu.lu@intel.com>
26388 * config/i386/i386-modes.def: Revert the last DI alignment
26389 change until Ada people can look into it.
26391 2008-02-19 Nick Clifton <nickc@redhat.com>
26393 * opts.c (print_specific_help): Fix typo in --help text.
26395 2008-02-19 Jakub Jelinek <jakub@redhat.com>
26398 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
26399 32-bit inline asm without asm alternatives for host GCC < 3.0.
26401 2008-02-19 Richard Guenther <rguenther@suse.de>
26403 PR tree-optimization/34989
26404 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
26405 Allow propagation to INDIRECT_REF if we can simplify only.
26407 2008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
26409 * c-common.c (warn_for_collisions_1): Use appropriate option when
26412 2008-02-19 Nick Clifton <nickc@redhat.com>
26415 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
26416 (handle_options): Fix indentation.
26417 (print_filtered_help): If no language-specific options were
26418 displayed tell the user how to list all the options supported by
26419 the language's front-end.
26420 (print_specific_help): Fix indentation and remove duplicate line.
26421 (common_handle_option): Handle the -v option.
26422 For --help enable the display of undocumented options if the -v
26423 switch has been included on the command line.
26424 For --help= check for overlaps in the arguments between the option
26425 classes and the language names and issue a warning when they
26426 cannot be disambiguated.
26427 * c.opt (v): Pass on to the common option handler.
26429 2008-02-19 Revital Eres <eres@il.ibm.com>
26431 * modulo-sched.c (sms_schedule): Change dump message when
26432 create_ddg function fails.
26433 (try_scheduling_node_in_cycle): Rename row to cycle.
26434 (print_partial_schedule): Rename CYCLE to ROW.
26436 2008-02-19 Christian Bruel <christian.bruel@st.com>
26437 Zdenek Dvorak <ook@ucw.cz>
26439 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
26441 2008-02-19 Uros Bizjak <ubizjak@gmail.com>
26444 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
26445 (*x86_movdicc_0_m1_se): Ditto.
26447 2008-02-19 Uros Bizjak <ubizjak@gmail.com>
26449 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
26450 (CMPtype): Define as __gcc_CMPtype.
26451 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
26452 (CMPtype): Define as __gcc_CMPtype.
26454 2008-02-19 Hans-Peter Nilsson <hp@axis.com>
26456 Support valgrind 3.3 for --enable-checking=valgrind.
26457 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
26459 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
26460 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
26461 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
26462 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
26463 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
26464 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
26465 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
26467 * ggc-zone.c: Similar.
26468 * ggc-page.c: Similar.
26470 2008-02-19 Paul Brook <paul@codesourcery.com>
26473 * config/arm/ieee754-df.S: Fix do_it typo.
26474 * config/arm/ieee754-sf.S: Fix do_it typo.
26476 2008-02-18 H.J. Lu <hongjiu.lu@intel.com>
26479 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
26480 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
26481 (OPTION_MASK_ISA_SSE_SET): Likewise.
26482 (OPTION_MASK_ISA_SSE2_SET): Likewise.
26483 (OPTION_MASK_ISA_SSE3_SET): Likewise.
26484 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
26485 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
26486 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
26487 (OPTION_MASK_ISA_SSE4_SET): Likewise.
26488 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
26489 (OPTION_MASK_ISA_SSE5_SET): Likewise.
26490 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
26491 (OPTION_MASK_ISA_MMX_UNSET): Updated.
26492 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
26493 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
26494 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
26495 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
26496 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
26497 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
26498 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
26499 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
26500 (OPTION_MASK_ISA_SSE4): Removed.
26501 (ix86_handle_option): Turn on bits in ix86_isa_flags and
26502 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
26503 (override_options): Don't turn on implied SSE/MMX bits in
26506 2008-02-18 H.J. Lu <hongjiu.lu@intel.com>
26508 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
26511 2008-02-18 Joey Ye <joey.ye@intel.com>
26513 PR middle-end/34921
26514 * tree-nested.c (insert_field_into_struct): Set type alignment
26515 to field alignment if the former is less than the latter.
26517 2008-02-18 Jakub Jelinek <jakub@redhat.com>
26519 * BASE-VER: Set to 4.4.0.
26521 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26523 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
26524 * doc/cfg.texi: Likewise.
26525 * doc/extend.texi: Likewise.
26526 * doc/gty.texi: Likewise.
26527 * doc/invoke.texi: Likewise.
26528 * doc/loop.texi: Likewise.
26529 * doc/md.texi: Likewise.
26530 * doc/passes.texi: Likewise.
26531 * doc/rtl.texi: Likewise.
26532 * doc/sourcebuild.texi: Likewise.
26533 * doc/tm.texi: Likewise.
26534 * doc/tree-ssa.texi: Likewise.
26536 2008-02-17 Richard Guenther <rguenther@suse.de>
26538 PR middle-end/35227
26539 * tree-complex.c (init_parameter_lattice_values): Handle parameters
26540 without default definition.
26542 2008-02-17 Richard Guenther <rguenther@suse.de>
26544 PR tree-optimization/35231
26545 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
26548 2008-02-17 Uros Bizjak <ubizjak@gmail.com>
26551 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
26552 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
26553 libgcc_cmp_return mode.
26555 2008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
26558 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
26560 2008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
26562 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
26565 2008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26567 * doc/c-tree.texi: Use `@.' where appropriate.
26568 * doc/extend.texi: Likewise.
26569 * doc/install.texi: Likewise.
26570 * doc/invoke.texi: Likewise.
26571 * doc/loop.texi: Likewise.
26572 * doc/makefile.texi: Likewise.
26573 * doc/md.texi: Likewise.
26574 * doc/passes.texi: Likewise.
26575 * doc/standards.texi: Likewise.
26576 * doc/tm.texi: Likewise.
26578 2008-02-15 Jakub Jelinek <jakub@redhat.com>
26580 PR middle-end/35196
26581 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
26583 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
26584 rather than in entry_bb.
26586 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
26588 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
26589 libgcc_cmp_return mode.
26591 2008-02-15 Jakub Jelinek <jakub@redhat.com>
26593 PR middle-end/35130
26594 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
26595 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
26597 2008-02-15 Richard Guenther <rguenther@suse.de>
26598 Zdenek Dvorak <ook@ucw.cz>
26600 PR tree-optimization/35164
26601 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
26602 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
26603 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
26604 Only propagate addresses which do not have abnormal SSA_NAMEs
26607 2008-02-15 Joseph Myers <joseph@codesourcery.com>
26610 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
26612 2008-02-15 Jan Hubicka <jh@suse.cz>
26614 PR middle-end/35149
26615 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
26617 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
26619 PR middle-end/34621
26620 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
26621 when calculating alignment_pad.
26623 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
26625 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
26626 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
26627 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
26628 and STACK_BOUNDARY define.
26630 2008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
26632 PR preprocessor/35061
26633 * c-pragma.c (handle_pragma_pop_macro): Check that
26634 pushed_macro_table has been allocated.
26636 2008-02-14 Eric Botcazou <ebotcazou@adacore.com>
26638 PR middle-end/35136
26639 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
26640 (force_gimple_operand): Likewise.
26641 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
26642 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
26643 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
26644 (find_interesting_uses_address): Check addressability and alignment
26645 of the base expression only after substituting bases of IVs into it.
26647 2008-02-14 Michael Matz <matz@suse.de>
26650 * function.c (instantiate_virtual_regs_in_insn): Reload address
26651 before falling back to reloading the whole operand.
26653 2008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
26655 * config/s390/s390.c (s390_mainpool_start): Emit the pool
26656 before the first section switch note.
26658 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26660 * doc/bugreport.texi: Update copyright years.
26661 * doc/c-tree.texi: Likewise.
26662 * doc/cfg.texi: Likewise.
26663 * doc/cpp.texi: Likewise.
26664 * doc/cppinternals.texi: Likewise.
26665 * doc/fragments.texi: Likewise.
26666 * doc/frontends.texi: Likewise.
26667 * doc/gcc.texi: Likewise.
26668 * doc/gty.texi: Likewise.
26669 * doc/hostconfig.texi: Likewise.
26670 * doc/implement-c.texi: Likewise.
26671 * doc/libgcc.texi: Likewise.
26672 * doc/loop.texi: Likewise.
26673 * doc/makefile.texi: Likewise.
26674 * doc/options.texi: Likewise.
26675 * doc/passes.texi: Likewise.
26676 * doc/rtl.texi: Likewise.
26677 * doc/sourcebuild.texi: Likewise.
26678 * doc/standards.texi: Likewise.
26679 * doc/tree-ssa.texi: Likewise.
26680 * doc/trouble.texi: Likewise.
26682 * doc/extend.texi: Use @: or add comma where appropriate.
26683 * doc/invoke.texi: Likewise.
26684 * doc/tm.texi: Likewise.
26686 2008-02-14 Alan Modra <amodra@bigpond.net.au>
26689 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
26692 2008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
26694 * doc/md.texi (clz, ctz): Add reference.
26695 * doc/rtl.texi (clz, ctz): Likewise.
26697 2008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26700 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
26703 2008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
26705 * config/s390/s390.c (struct constant_pool): New field
26706 emit_pool_after added.
26707 (s390_mainpool_start): Set the emit_pool_after flag according
26708 to the section switch notes.
26709 (s390_mainpool_finish): Consider emit_pool_after when emitting
26710 the literal pool at the end of the function.
26711 (s390_chunkify_start): Force literal pool splits at section
26714 2008-02-13 Michael Matz <matz@suse.de>
26717 * var-tracking.c (clobber_variable_part): Correctly traverse the
26720 2008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
26723 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
26724 Add -fdump-ipa-inline.
26725 * tree-dump.c (dump_files): Remove tree-inlined dump.
26726 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
26728 2008-02-12 Richard Guenther <rguenther@suse.de>
26730 PR tree-optimization/35171
26731 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
26734 2008-02-12 Richard Guenther <rguenther@suse.de>
26736 PR middle-end/35163
26737 * fold-const.c (fold_widened_comparison): Use get_unwidened in
26738 value-preserving mode. Disallow final truncation.
26740 2008-02-12 Eric Botcazou <ebotcazou@adacore.com>
26742 PR middle-end/35136
26743 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
26744 code from here to...
26745 (force_gimple_operand): ...here.
26747 2008-02-12 Jakub Jelinek <jakub@redhat.com>
26750 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
26751 non-compatible pointers.
26752 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
26753 different FIELD_DECLs, try harder by comparing field offsets, sizes
26756 PR inline-asm/35160
26757 * function.c (match_asm_constraints_1): Don't replace the same input
26760 2008-02-12 Anatoly Sokolov <aesok@post.ru>
26762 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
26763 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
26764 (expand_epilogue): Restore RAMPZ register.
26765 * config/avr/avr.md (RAMPZ_ADDR): New constant.
26767 2008-02-11 Kai Tietz <kai.tietz@onevision.com>
26769 * config/i386/cygwin.asm: (__alloca): Correct calling
26770 convention and alignment.
26771 (__chkstk): Force 8 byte stack alignment.
26773 2008-02-11 Uros Bizjak <ubizjak@gmail.com>
26774 Richard Guenther <rguenther@suse.de>
26776 PR tree-optimization/33992
26777 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
26778 the zero we compare against.
26780 2008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
26782 PR libfortran/35063
26783 * gthr-win32.h (__gthread_mutex_destroy_function): New function
26784 to CloseHandle after unlocking to prevent accumulation of handle
26787 2008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26789 PR middle_end/34150
26790 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
26791 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
26792 and update LABEL_NUSES during and after reload.
26794 2008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
26796 PR middle-end/34627
26797 * combine.c (simplify_if_then_else): Make sure the comparison is
26798 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
26800 2008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
26803 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
26804 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
26805 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
26806 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
26807 * tree.h (get_type_static_bounds): Likewise.
26809 2008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26811 * doc/invoke.texi (Option Summary, C++ Dialect Options)
26812 (Objective-C and Objective-C++ Dialect Options, Warning Options):
26813 Make -Wfoo language annotations match what the compiler outputs.
26815 2008-02-08 Sa Liu <saliu@de.ibm.com>
26817 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
26818 intrinsics spu_convts, spu_convtu, spu_convtf.
26820 2008-02-08 Hans-Peter Nilsson <hp@axis.com>
26822 * doc/extend.texi (Function Attributes) <noinline>: Mention
26823 asm ("") as method to keep calls.
26825 2008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
26828 * doc/options.texi (Options): Replace references to opts.sh with
26830 * opts-common.c: Likewise.
26831 * optc-gen.awk: Likewise.
26833 2008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
26835 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
26837 2008-02-07 Richard Henderson <rth@redhat.com>
26840 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
26841 EXPR_LIST for the REG_EQUAL instead of a comparison with a
26844 2008-02-07 Uros Bizjak <ubizjak@gmail.com>
26846 PR tree-optimization/35085
26847 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
26848 for operand entry oe2 in addition to operand entry oe3 in order to
26849 expose more opportunities for vectorizer sum reduction.
26851 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26854 * Makefile.in (LIBS): Remove $(GMPLIBS).
26855 (cc1-dummy, cc1): Add $(GMPLIBS).
26857 2008-02-06 Jan Hubicka <jh@suse.cz>
26860 * i386.md (moddf_integer): Do not produce partial memory stalls for
26861 targets where it hurts.
26863 2008-02-06 Uros Bizjak <ubizjak@gmail.com>
26866 * optabs.c (expand_float): Do not check for decimal modes when
26867 expanding unsigned integer through signed conversion.
26869 2008-02-06 Nick Clifton <nickc@redhat.com>
26871 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
26872 inside the clobber with a match_operand and duplicated operand
26873 number in the constraint.
26874 (ineqbranchsi): Delete redundant comment.
26876 2008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
26878 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
26879 builtin_define ("__USE_INIT_FINI__").
26880 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
26882 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
26884 2008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26886 PR documentation/30330
26887 * doc/invoke.texi (C++ Dialect Options)
26888 (Objective-C and Objective-C++ Dialect Options, Warning Options):
26889 For each warning option -Wfoo that allows -Wno-foo, ensure both
26890 -Wfoo and -Wno-foo are listed in the option index. Fix index
26891 entry of -Wswitch-default, index -Wnormalized= including the
26892 `=', and -Wlarger-than-@var{len} including @var{len}.
26894 2008-02-05 Uros Bizjak <ubizjak@gmail.com>
26896 * config/i386/i386.md (floatunssisf2): Use
26897 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
26898 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
26899 Macroize expander using MODEF mode iterator.
26901 2008-02-05 Diego Novillo <dnovillo@google.com>
26903 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
26906 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
26908 2008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26911 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
26913 2008-02-05 H.J. Lu <hongjiu.lu@intel.com>
26916 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
26917 to indicate if a message should be generated.
26918 (init_cumulative_args): Updated.
26919 (function_value_32): Likewise.
26921 2008-02-05 Joseph Myers <joseph@codesourcery.com>
26923 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
26925 2008-02-05 Uros Bizjak <ubizjak@gmail.com>
26928 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
26929 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
26931 2008-02-04 Diego Novillo <dnovillo@google.com>
26933 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
26936 * tree-vrp.c (vrp_evaluate_conditional): With
26937 -Wtype-limits, emit a warning when comparing against a
26938 constant outside the natural range of OP0's type.
26940 2008-02-04 Richard Guenther <rguenther@suse.de>
26942 PR middle-end/33631
26943 * expr.c (count_type_elements): Give for unions instead of
26946 2008-02-04 Richard Guenther <rguenther@suse.de>
26948 PR middle-end/35043
26949 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
26950 to TYPE_DOMAINs base type instead of using bitsizetype here.
26952 2008-02-03 Jason Merrill <jason@redhat.com>
26954 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
26956 2008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26959 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
26960 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
26961 (RS/6000 and PowerPC Options): Fix typos and markup.
26962 * doc/passes.texi (Tree-SSA passes): Likewise.
26964 2008-02-02 Michael Matz <matz@suse.de>
26967 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
26968 from record_last_reg_set_info.
26969 (record_last_reg_set_info): Take an RTX argument, iterate over all
26970 constituent hardregs.
26971 (record_last_set_info, record_opr_changes): Change calls to
26972 new signature or to record_last_reg_set_info_regno.
26974 2008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
26976 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
26978 2008-02-01 Hans-Peter Nilsson <hp@axis.com>
26980 PR rtl-optimization/34773
26981 * reg-notes.def (EQUAL): Mention significance of combination of
26982 REG_EQUAL and REG_RETVAL.
26983 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
26984 insn that has a REG_RETVAL.
26986 2008-02-01 Roger Sayle <roger@eyesopen.com>
26989 * configure.ac (--enable-fixed-point): Disable unless explicitly
26991 * configure: Regenerate.
26993 2008-02-01 Richard Guenther <rguenther@suse.de>
26996 * invoke.texi (-finline-limit): Remove no longer true parts
26997 of the documentation. Note that there is no default value.
26999 2008-02-01 Andrew Pinski <pinskia@gmail.com>
27000 Mark Mitchell <mark@codesourcery.com>
27001 Ben Elliston <bje@au.ibm.com>
27004 * doc/extend.texi (Other Builtins): Document.
27006 2008-01-31 Tom Browder <tom.browder@gmail.com>
27008 * doc/c-tree.texi (Types): Fix grammar.
27009 (Expression trees): Ditto.
27010 * doc/passes.texi (Tree-SSA passes): Ditto.
27012 * doc/configterms.texi (Configure Terms): Fix typo.
27013 * doc/cpp.texi (Common Predefined Macros): Ditto.
27014 * doc/md.texi (Machine Constraints): Ditto.
27016 * doc/makefile.texi (Makefile): Add comma.
27018 2008-01-31 Tom Browder <tom.browder@gmail.com>
27019 Gerald Pfeifer <gerald@pfeifer.com>
27021 * doc/sourcebuild.texi (Front End): Remove references to CVS
27022 and CVSROOT/modules.
27023 (Texinfo Manuals): Replace reference to CVS by one to SVN.
27024 (Back End): Remove reference to CVS.
27026 2008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
27029 * config/mips/mips.c (gen_load_const_gp): New function, taking a
27031 (mips16_gp_pseudo_reg): ...here.
27032 * config/mips/mips.md (load_const_gp): Replace with...
27033 (load_const_gp_<mode>): ...this :P-based insn.
27035 2008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
27037 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
27038 options. Minor fixes.
27039 (-std): Move reference to standards closer to where language
27040 standards are first mentioned.
27042 2008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
27044 PR rtl-optimization/34995
27045 * reload.c (alternative_allows_const_pool_ref): Take an rtx
27046 parameter and return a bool. If the rtx parameter is nonnull,
27047 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
27048 (find_reloads): Update call accordingly. Pass the new operand
27049 if it needed no address reloads, otherwise pass null.
27051 2008-01-30 Richard Henderson <rth@redhat.com>
27054 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
27055 for unbounded arrays.
27057 2008-01-30 Silvius Rus <rus@google.com>
27059 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
27061 2008-01-30 Jan Hubicka <jh@suse.cz>
27064 * i386.c (init_cumulative_args): Use real function declaration when
27067 2008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
27069 PR rtl-optimization/34998
27070 * global.c (build_insn_chain): Treat non-subreg_lowpart
27071 SUBREGs of pseudos as clobbering all the words covered by the
27072 SUBREG, not just all the bytes.
27073 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
27074 original df_ref rather than an extract parameter.
27075 (global_conflicts): Update call accordingly.
27077 2008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
27079 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
27080 the overflow check to make it easier to read.
27081 (__fixtfdi): Change the type of the ll member in union
27082 long_double to UDItype_x.
27084 2008-01-30 Jakub Jelinek <jakub@redhat.com>
27086 PR middle-end/34969
27087 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
27088 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
27089 * tree-inline.c (fold_marked_statements): Call
27090 cgraph_update_edges_for_call_stmt if folding a call statement.
27091 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
27092 debug_generic_stmt calls, reset it back afterwards.
27095 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
27097 * c-typeck.c (build_external_ref): Don't pedwarn about
27098 static vars in current function's scope.
27100 2008-01-29 Joseph Myers <joseph@codesourcery.com>
27102 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
27104 2008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
27107 * ipa-struct-reorg.c: Fix spelling.
27108 * params.def: Ditto.
27110 2008-01-29 Richard Guenther <rguenther@suse.de>
27112 PR middle-end/35006
27113 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
27115 * tree-inline.c (remap_type): Increment remapping_type_depth
27116 around remapping types.
27117 (copy_body_r): Only add referenced variables if they are referenced
27118 from code, not types.
27120 2008-01-29 Douglas Gregor <doug.gregor@gmail.com>
27131 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
27132 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
27134 2008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
27137 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
27138 pointer for tiny stack.
27140 2008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
27142 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
27144 2008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
27146 * config/vx-common.h: Fix typo in comment.
27148 2008-01-28 Ian Lance Taylor <iant@google.com>
27152 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
27153 coalesce pointers if they have different DECL_NO_TBAA_P values.
27154 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
27155 between variables with different DECL_NO_TBAA_P values.
27157 2008-01-28 Nathan Froyd <froydnj@codesourcery.com>
27160 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
27161 are not legitimate small data references on SPE targets.
27163 2008-01-28 David Daney <ddaney@avtrex.com>
27165 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
27167 2008-01-28 David Daney <ddaney@avtrex.com>
27169 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
27171 2008-01-27 Joseph Myers <joseph@codesourcery.com>
27173 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
27174 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
27175 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
27176 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
27177 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
27178 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
27179 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
27180 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
27182 2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
27184 * basic-block.h (condjump_equiv_p): Fix comment.
27186 2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
27188 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
27189 print_generic_stmt_indented): Fix comment.
27191 2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
27193 * configure.ac (__stack_chk_fail): Add detecion for availability
27194 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
27195 * configure: Regenerate.
27197 2008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
27199 PR middle-end/34688
27200 * final.c (output_addr_const): Handle TRUNCATE.
27202 2008-01-26 Zdenek Dvorak <ook@ucw.cz>
27205 * tree-ssa-loop-ivopts.c (comp_cost): New type.
27206 (zero_cost, infinite_cost): New constants.
27207 (struct cost_pair): Change type of cost to comp_cost.
27208 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
27209 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
27211 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
27212 split_address_cost, ptr_difference_cost, difference_cost,
27213 get_computation_cost_at, get_computation_cost,
27214 determine_use_iv_cost_generic, determine_use_iv_cost_address,
27215 determine_use_iv_cost_condition, determine_use_iv_costs,
27216 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
27217 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
27218 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
27219 Change type of cost to comp_cost.
27220 (determine_iv_cost): Increase cost of non-original ivs, instead
27221 of decreasing the cost of original ones.
27222 (get_address_cost): Indicate the complexity of the addressing mode
27224 (try_add_cand_for): Prefer using ivs not specific to some object.
27225 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
27227 2008-01-26 Peter Bergner <bergner@vnet.ibm.com>
27228 Janis Johnson <janis187@us.ibm.com>
27231 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
27232 (TARGET_INSTANTIATE_DECLS): Likewise.
27233 * target.h (expand_to_rtl_hook): New target hook.
27234 (instantiate_decls): Likewise.
27235 * function.c (instantiate_decl): Make non-static. Rename to...
27236 (instantiate_decl_rtl): ... this.
27237 (instantiate_expr): Use instantiate_decl_rtl.
27238 (instantiate_decls_1): Likewise.
27239 (instantiate_decls): Likewise.
27240 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
27241 * function.h (instantiate_decl_rtl): Add prototype.
27242 * cfgexpand.c (target.h): New include.
27243 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
27244 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
27245 (TARGET_INSTANTIATE_DECLS): Likewise.
27246 (TARGET_INITIALIZER): New target hooks added.
27247 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
27249 * config/rs6000/rs6000.c (tree-flow.h): New include.
27250 (machine_function): Add sdmode_stack_slot field.
27251 (rs6000_alloc_sdmode_stack_slot): New function.
27252 (rs6000_instantiate_decls): Likewise.
27253 (rs6000_secondary_memory_needed_rtx): Likewise.
27254 (rs6000_check_sdmode): Likewise.
27255 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
27256 (TARGET_INSTANTIATE_DECLS): Likewise.
27257 (rs6000_hard_regno_mode_ok): Allow SDmode.
27258 (num_insns_constant): Likewise. Handle _Decimal32 constants.
27259 (rs6000_emit_move): Handle SDmode.
27260 (function_arg_advance): Likewise.
27261 (function_arg): Likewise.
27262 (rs6000_gimplify_va_arg): Likewise. Add special handling of
27263 SDmode var args for 32-bit compiles.
27264 (rs6000_secondary_reload_class): Handle SDmode.
27265 (rs6000_output_function_epilogue): Likewise.
27266 (rs6000_function_value): Simplify if statement.
27267 (rs6000_libcall_value): Likewise.
27268 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
27269 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
27270 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
27271 (movsd_hardfloat): New define_insn.
27272 (movsd_softfloat): Likewise.
27273 (movsd_store): Likewise.
27274 (movsd_load): Likewise.
27275 (extendsddd2): Likewise.
27276 (extendsdtd2): Likewise.
27277 (truncddsd2): Likewise.
27278 (movdd_hardfloat64): Fixup comment.
27279 (UNSPEC_MOVSD_LOAD): New constant.
27280 (UNSPEC_MOVSD_STORE): Likewise.
27282 2008-01-26 Jakub Jelinek <jakub@redhat.com>
27285 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
27287 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
27288 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
27289 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
27290 and TRUTH_XOR_EXPR.
27292 2008-01-26 David Edelsohn <edelsohn@gnu.org>
27295 * config.gcc: Separate AIX 5.3 from AIX 6.1.
27296 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27297 __LONGDOUBLE128 too.
27298 * config/rs6000/aix61.h: New file.
27300 2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
27302 PR rtl-optimization/34959
27303 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
27304 popcount and parity rtxes the same mode as their operand.
27305 Truncate or extend the result to the return value's mode
27308 2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
27311 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
27312 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
27313 to GOT_VERSION_REGNUM.
27314 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
27315 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
27316 * config/mips/mips.c (mips_emit_call_insn): New function.
27317 (mips_call_tls_get_addr): Call mips_expand_call directly.
27318 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
27320 (mips16_build_call_stub): Likewise. Return the call insn or null.
27321 (mips_expand_call): Update the call to mips16_build_call_stub
27322 accordingly and a remove redundant condition. Assert that MIPS16
27323 stubs do not use lazy binding. Use mips_emit_call_insn and return
27325 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
27327 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
27328 (mips_avoid_hazard): Remove hazard_set handling.
27329 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
27330 (UNSPEC_RESTORE_GP): ...this.
27331 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
27332 (FAKE_CALL_REGNO): Rename to...
27333 (GOT_VERSION_REGNUM): ...this.
27334 (type): Add "ghost" value. Add an associated insn reservation.
27335 (hazard_set): Remove.
27336 (exception_receiver): Rename to...
27337 (restore_gp): ...this and update the unspec identifier accordingly.
27338 (exception_receiver, nonlocal_got_receiver): New expanders.
27339 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
27340 FAKE_CALL_REGNO. Remove hazard_set attribute.
27341 (set_got_version, update_got_version): New patterns.
27343 2008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
27346 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
27348 2008-01-25 Joseph Myers <joseph@codesourcery.com>
27351 * doc/install.texi2html: Generate gcc-vers.texi.
27353 2008-01-25 DJ Delorie <dj@redhat.com>
27355 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
27357 2008-01-25 Joseph Myers <joseph@codesourcery.com>
27359 * config/c4x: Remove directory.
27360 * config.gcc (crx-*, mt-*): Mark obsolete.
27361 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
27362 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
27363 sh-*-rtemscoff*): Remove cases.
27364 * defaults.h (C4X_FLOAT_FORMAT): Remove.
27365 * real.c (encode_c4x_single, decode_c4x_single,
27366 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
27367 c4x_extended_format): Remove.
27368 * real.h (c4x_single_format, c4x_extended_format): Remove.
27369 * doc/extend.texi (interrupt, naked): Remove mention of attributes
27371 (Pragmas): Remove comment about c4x pragmas.
27372 * doc/install.texi (c4x): Remove target-specific instructions.
27373 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
27374 * doc/md.texi (Machine Constraints): Remove C4x documentation.
27375 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
27376 refer to C4x source files as examples.
27377 (C4X_FLOAT_FORMAT): Remove documentation.
27379 2008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
27381 * config/bfin/bfin.c (override_options): Reorder tests so that
27382 flag_pic gets enabled for -msep-data.
27384 2008-01-25 Richard Guenther <rguenther@suse.de>
27386 PR middle-end/32244
27387 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
27388 to its bitfield precision if required.
27390 2008-01-25 Jakub Jelinek <jakub@redhat.com>
27392 PR middle-end/33880
27393 * tree-nested.c (walk_omp_for): New function.
27394 (convert_nonlocal_reference, convert_local_reference): Call
27395 walk_omp_for on OMP_FOR.
27396 (convert_call_expr): Call walk_body on OMP_FOR's
27397 OMP_FOR_PRE_INIT_BODY.
27399 2008-01-25 Richard Guenther <rguenther@suse.de>
27401 PR tree-optimization/34966
27402 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
27403 default defs and PHI_NODEs we have to insert after the
27404 defining statement.
27406 2008-01-24 Nick Clifton <nickc@redhat.com>
27408 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
27409 Provide a default definition.
27410 (LIBGCC2_UNITS_PER_WORD): Likewise.
27412 * config/stormy16/stormy16.c: Include df.h for the prototype
27413 for df_regs_ever_live_p.
27414 (xstormy16_expand_builtin_va_start): Convert the stack offset
27415 into a component_ref and then use POINTER_PLUS_EXPR to add it
27416 to the incoming_virtual_args_rtx.
27417 (xstormy16_gimplify_va_arg_expr): Rename to
27418 xstormy16_gimplify_va_arg_expr.
27419 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
27420 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
27421 xstormy16_gimplify_va_arg_expr.
27422 Fix up some formatting issues.
27424 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
27425 Move to predicates.md.
27426 (xs_hi_general_operand): Likewise.
27427 (xs_hi_nonmemory_operand): Likewise.
27428 * config/stormy16/predicates.md:
27429 (xstormy16_carry_plus_operand): New predicate.
27430 (xs_hi_general_operand): New predicate.
27431 (xs_hi_nonmemory_operand): New predicate.
27432 * config/stormy16/stormy16-protos.h:
27433 (xstormy16_carry_plus_operand): Delete prototype.
27434 (xs_hi_general_operand): Likewise.
27435 (xs_hi_nonmemory_operand): Likewise.
27437 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
27438 modifiers as they are no longer needed and they can trigger
27439 reload spill failures.
27441 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
27442 with a match_operand in order to help reload.
27444 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
27445 constraint with 'e' for the 8th alternative as this version of
27446 the mov.w instruction only accepts the lower 8 registers.
27448 2008-01-25 Uros Bizjak <ubizjak@gmail.com>
27451 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
27452 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
27455 2008-01-25 Jakub Jelinek <jakub@redhat.com>
27457 PR middle-end/33333
27458 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
27460 2008-01-25 Golovanevsky Olga <olga@il.ibm.com>
27462 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
27464 (remove_structure): Update allocations list before removing structure.
27466 2008-01-25 Golovanevsky Olga <olga@il.ibm.com>
27468 * ipa-struct-reorg.c (is_safe_cond_expr,
27469 create_new_stmts_for_cond_expr): Use integer_zerop function,
27470 that recognize not only zero-pointer, but zero-integer too.
27472 2008-01-25 Ben Elliston <bje@au.ibm.com>
27475 * fixproto: Escape "." in sed expression that strips leading "./".
27477 2008-01-24 H.J. Lu <hongjiu.lu@intel.com>
27480 * gcc.c (SWITCH_OK): Removed.
27481 (SWITCH_LIVE): Changed to bit.
27482 (SWITCH_FALSE): Likewise.
27483 (SWITCH_IGNORE): Likewise.
27484 (switchstr): Change live_cond to unsigned int.
27485 (process_command): Replace SWITCH_OK with 0.
27486 (do_self_spec): Likewise.
27487 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
27488 (give_switch): Likewise.
27489 (used_arg): Likewise.
27490 (do_spec_1): Set the SWITCH_IGNORE bit.
27491 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
27492 bits. Set the SWITCH_LIVE bit.
27494 2008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
27496 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
27498 2008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
27500 PR tree-optimization/34472
27501 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
27502 parameter to a "bool *" and set *DATA to false if there is
27503 an unsafe access. Do not delete the structure here.
27504 (check_cond_exprs): Delete it here instead.
27505 (check_cond_exprs, exclude_cold_structs): Do not increase
27506 I when removing a structure.
27508 2008-01-24 Uros Bizjak <ubizjak@gmail.com>
27511 * config/i386/i386.c (ix86_expand_vector_init): Consider only
27512 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
27514 2008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
27516 PR middle-end/34934
27517 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
27518 a fixed vector for stack.
27520 2008-01-24 Ben Elliston <bje@au.ibm.com>
27523 * doc/gcc.texi (Software development): Add a direntry for g++.
27525 2008-01-23 Hans-Peter Nilsson <hp@axis.com>
27527 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
27528 stale and straggling -fforce-addr comments above.
27530 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
27532 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
27533 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
27535 2008-01-23 Michael Matz <matz@suse.de>
27538 * dwarf2out.c (force_type_die): Use modified_type_die instead of
27541 2008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
27543 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
27544 malloc result type.
27546 2008-01-23 Anatoly Sokolov <aesok@post.ru>
27548 * config/avr/avr.c (avr_current_arch): New variable.
27549 (avr_arch_types): Add 'avr31' and 'avr51' entries.
27550 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
27551 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
27552 (avr_override_options): Init 'avr_current_arch'.
27553 (base_arch_s): Move from here...
27554 * config/avr/avr.h (base_arch_s): ... here. Add new members
27555 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
27556 'mega' to 'have_jmp_call'.
27557 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
27558 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
27560 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
27562 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
27563 MULTILIB_MATCHES): Ditto.
27565 2008-01-23 Richard Guenther <rguenther@suse.de>
27567 PR middle-end/31529
27568 * cgraphunit.c (cgraph_reset_node): Always mark the node
27569 not reachable if it is not queued already.
27571 2008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
27573 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
27574 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
27575 (cputype_selected): New static variable.
27576 (bfin_handle_option): Set it if -mcpu is used.
27577 (override_option): Select default set of workarounds if no cpu type
27578 selected on the command line.
27579 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
27581 From Michael Frysinger <michael.frysinger@analog.com>
27582 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
27583 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
27585 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
27586 for bf547, bf523, bf524, and bf526.
27587 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
27589 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
27590 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
27591 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
27592 __ADSPBF547__ and __ADSPBF54x__ for bf547.
27593 * doc/invoke.texi (Blackfin Options): Document that
27594 -mcpu now accept bf547, bf523, bf524, and bf526.
27596 2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
27598 PR rtl-optimization/34628
27599 * combine.c (try_combine): Stop and undo after the first combination
27600 if an autoincrement side-effect on the first insn has effectively
27603 2008-01-22 David Edelsohn <edelsohn@gnu.org>
27606 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
27607 Offset addresses are not valid for Altivec or paired float modes.
27609 2008-01-22 Jakub Jelinek <jakub@redhat.com>
27612 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
27613 if DECL_INITIAL (decl) is error_mark_node.
27616 * c-common.c (handle_vector_size_attribute): Only allow
27617 integral, scalar float and fixed point types. Handle OFFSET_TYPE
27618 the same way as pointer, array etc. types.
27619 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
27622 * tree.c (build_type_attribute_qual_variant): Call
27623 build_qualified_type if attributes are equal, but quals are not.
27625 2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
27628 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
27629 * flags.h (warn_strict_aliasing): Remove.
27630 (warn_strict_overflow): Remove.
27631 * opts.c (warn_strict_aliasing): Remove.
27632 (warn_strict_overflow): Remove.
27633 * c-opts.c (c_common_handle_option): -Wall only sets
27634 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
27635 (c_common_post_options): Give default values to -Wstrict-aliasing
27636 and -Wstrict-overflow if they are uninitialized.
27637 * common.opt (Wstrict-aliasing): Specify Var and Init.
27638 (Wstrict-overflow): Likewise.
27640 2008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
27642 PR rtl-optimization/26854
27643 PR rtl-optimization/34400
27644 PR rtl-optimization/34884
27645 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
27647 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
27648 (df_rd_bb_info.expanded_lr_out): Deleted
27649 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
27650 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
27651 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
27652 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
27653 Removed code to allocate, initialize or free expanded_lr_out.
27654 (df_rd_bb_local_compute_process_def): Restructured to make more
27656 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
27657 sets if the sets are being trimmed.
27659 2008-01-22 H.J. Lu <hongjiu.lu@intel.com>
27662 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
27663 (as_vers): Likewise.
27664 * configure: Regenerated.
27666 2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
27668 PR middle-end/33092
27669 * tree-pass.h (pass_build_alias): New pass.
27670 * tree-ssa-alias.c (gate_build_alias): New.
27671 (pass_build_alias): New.
27672 * passes.c (init_optimization_passes): Add pass_build_alias after
27673 pass_create_structure_vars.
27675 2008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
27677 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
27678 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
27679 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
27680 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
27681 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
27682 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
27683 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
27684 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
27685 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
27686 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
27687 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
27688 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
27689 * config/s390/s390.md (FP_ALL): New mode iterator.
27690 (_d): New mode attribute.
27691 ("*signbit<mode>2>"): Changed mode of first operand.
27692 ("isinf<mode>2"): Changed mode of first operand.
27693 ("*TDC_insn"): Adaptation for DFP modes.
27695 2008-01-22 Ben Elliston <bje@au.ibm.com>
27697 * tree.c (check_qualified_type): Improve function description.
27699 2008-01-21 Jason Merrill <jason@redhat.com>
27702 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
27703 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
27706 2008-01-21 DJ Delorie <dj@redhat.com>
27708 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
27711 2008-01-21 Richard Guenther <rguenther@suse.de>
27713 PR middle-end/34856
27714 * tree-cfg.c (verify_expr): Allow all invariant expressions
27715 instead of just constant class ones as reference argument.
27716 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
27717 like any other constant.
27718 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
27720 2008-01-21 H.J. Lu <hongjiu.lu@intel.com>
27722 * regmove.c (fixup_match_1): Update call crossed frequencies.
27724 2008-01-21 Richard Guenther <rguenther@suse.de>
27727 * tree-inline.c (setup_one_parameter): Deal with mismatched
27728 types using a VIEW_CONVERT_EXPR.
27730 2008-01-21 Alon Dayan <alond@il.ibm.com>
27731 Olga Golovanevsky <olga@il.ibm.com>
27733 PR tree-optimization/34701
27734 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
27735 when the structure size is not a power of 2.
27737 2008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
27739 * doc/install.texi: Add doc for --enable-checking=df.
27741 2008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
27743 PR rtl-optimization/34808
27744 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
27746 2008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
27748 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
27751 2008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
27753 PR rtl-optimization/26854
27754 PR rtl-optimization/34400
27755 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
27757 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
27758 (df_rd_bb_info.expanded_lr_out): New.
27759 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
27760 * loop_iv.c (iv_analysis_loop_init): Ditto.
27761 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
27762 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
27763 Added code to allocate, initialize or free expanded_lr_out.
27764 (df_rd_bb_local_compute_process_def): Restructured to make
27765 more understandable.
27766 (df_rd_confluence_n): Add code to do nothing with fake edges and
27767 code to no apply invalidate_by_call sets if the sets are being trimmed.
27768 (df_lr_local_finalize): Renamed to df_lr_finalize.
27769 (df_live_local_finalize): Renamed to df_live_finalize.
27771 2008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
27774 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
27775 deciding whether to use reciprocal instructions.
27777 2008-01-19 Uros Bizjak <ubizjak@gmail.com>
27779 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
27780 dwarf2out_note_section_used if cold_text_section is NULL.
27782 2008-01-19 Jakub Jelinek <jakub@redhat.com>
27784 PR gcov-profile/34610
27785 * tree-cfg.c (make_edges): Mark both outgoing edges from
27786 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
27787 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
27788 from OMP_FOR and OMP_CONTINUE outgoing edges.
27790 * tree-profile.c (tree_profiling): Return early if
27791 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
27793 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
27794 from cfun to child_cfun.
27795 * function.h (struct function): Add after_tree_profile bit.
27797 2008-01-19 Anatoly Sokolov <aesok@post.ru>
27799 * config/avr/avr.S (_exit): Disable interrupt.
27801 2008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
27802 Steven Bosscher <stevenb.gcc@gmail.com>
27804 PR rtl-optimization/26854
27805 PR rtl-optimization/34400
27806 * df-problems.c (df_live_scratch): New scratch bitmap.
27807 (df_live_alloc): Allocate df_live_scratch when doing df_live.
27808 (df_live_reset): Clear the proper bitmaps.
27809 (df_live_bb_local_compute): Only process the artificial defs once
27810 since the order is not important.
27811 (df_live_init): Init the df_live sets only with the variables
27812 found live by df_lr.
27813 (df_live_transfer_function): Use the df_lr sets to prune the
27814 df_live sets as they are being computed.
27815 (df_live_free): Free df_live_scratch.
27817 2008-01-18 Ian Lance Taylor <iant@google.com>
27819 * common.opt: Add fmerge-debug-strings.
27820 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
27821 flag_merge_debug_strings rather than flag_merge_constants.
27822 * doc/invoke.texi (Option Summary): Mention
27823 -fmerge-debug-strings.
27824 (Debugging Options): Document -fmerge-debug-strings.
27826 2008-01-18 Ian Lance Taylor <iant@google.com>
27829 * tree.h (DECL_IS_OPERATOR_NEW): Define.
27830 (struct tree_function_decl): Add new field operator_new_flag.
27831 * tree-inline.c (expand_call_inline): When inlining a call to
27832 operator new, force the return value to go into a variable, and
27833 set DECL_NO_TBAA_P on that variable.
27834 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
27836 2008-01-18 Uros Bizjak <ubizjak@gmail.com>
27839 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
27840 DWARF2_DEBUGGING_INFO.
27841 (dwarf2out_note_section_used): Ditto. Add prototype.
27842 (have_multiple_function_sections, text_section_used,
27843 cold_text_section_used, *cold_text_sections): Move declarations
27846 2008-01-17 Bob Wilson <bob.wilson@acm.org>
27848 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
27849 field and add signal_ra.
27850 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
27851 assignments to frame state pc. Move end of stack check after
27852 MD_FALLBACK_FRAME_STATE_FOR.
27853 (uw_update_context_1): Use frame state signal_regs if set, instead
27854 of checking signal_frame flag.
27855 (uw_update_context): Use frame state signal_ra if set.
27856 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
27857 * config/xtensa/linux-unwind.h: New file.
27859 2008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
27861 * modulo-sched.c (get_sched_window): Fix comment typo.
27863 2008-01-17 Andrew MacLeod <amacleod@redhat.com>
27865 PR tree-optimization/34648
27866 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
27868 2008-01-17 Anatoly Sokolov <aesok@post.ru>
27870 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
27871 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
27873 2008-01-17 Seongbae Park <seongbae.park@gmail.com>
27875 PR rtl-optimization/34400
27876 * df-core.c (df_worklist_dataflow_overeager,
27877 df_worklist_dataflow_doublequeue): New functions.
27878 (df_worklist_dataflow): Two different worklist solvers.
27879 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
27882 2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
27885 * doc/invoke.texi: Document the dependence on pthread for fopenmp
27886 and ftree-parallelize-loops.
27888 2008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
27890 PR rtl-optimization/34826
27891 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
27893 2008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
27895 * global.c (find_reg): Mark the eh regs as used if necessary.
27896 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
27897 * ra.h (struct allocno): no_eh_reg field added. Changed
27898 no_stack_reg type to bitfield.
27900 2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
27902 * tree.c (substitute_in_expr): Add missing 'break'.
27904 2008-01-17 Richard Guenther <rguenther@suse.de>
27906 PR tree-optimization/34825
27907 * tree-ssa-math-opts.c (is_division_by): Do not recognize
27908 x / x as division to handle.
27910 2008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27912 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
27913 "-pthread" is specified.
27914 * pa-hpux11.h (LIB_SPEC): Likewise.
27916 2008-01-16 Janis Johnson <janis187@us.ibm.com>
27917 Peter Bergner <bergner@vnet.ibm.com>
27919 PR rtl-optimization/33796
27920 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
27922 2008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27924 PR libgfortran/34699
27925 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
27927 * pa-hpux10.h (LINK_SPEC): Likewise.
27928 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
27930 2008-01-16 Richard Guenther <rguenther@suse.de>
27932 PR middle-end/32628
27933 * fold-const.c (fold_convert_const_int_from_int): Do not
27934 set overflow if that occured only because of a sign extension
27935 change when converting from/to a sizetype with the same
27936 precision and signedness.
27938 2008-01-16 Uros Bizjak <ubizjak@gmail.com>
27941 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
27942 location address to the correct place. Update copyright year.
27944 2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
27946 * lambda-code.c (lambda_transform_legal_p): Handle the case of
27947 no dependences in the dependence_relations vector.
27949 2008-01-16 Jan Hubicka <jh@suse.cz>
27951 PR rtl-optimization/31396
27952 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
27953 * cfg.c (dump_reg_info): Print it.
27954 * regs.h (struct reg_info_t): add freq_calls_crossed.
27955 (REG_FREQ_CALLS_CROSSED): New macro.
27956 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
27957 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
27958 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
27959 regmove_optimize): Update call crossed frequencies.
27960 * local-alloc.c (struct qty): Add freq_calls_crossed.
27961 (alloc_qty): Copute freq_calls_crossed.
27962 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
27963 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
27964 * ra.h (struct allocno): Add freq_calls_crossed.
27966 2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
27968 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
27969 libgomp when compiling with ftree-parallelize-loops.
27970 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
27972 2008-01-16 Richard Guenther <rguenther@suse.de>
27974 PR tree-optimization/34769
27975 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
27976 * tree.c (int_cst_value): Instead make this function more
27977 permissive in what it accepts as valid input. Document this
27978 function always sign-extends the value.
27980 2008-01-16 Jakub Jelinek <jakub@redhat.com>
27981 Richard Guenther <rguenther@suse.de>
27984 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
27985 (gimple_fold_indirect_ref_rhs): ... this.
27986 (gimple_fold_indirect_ref): New function with foldings
27987 that preserve lvalueness.
27988 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
27989 * tree-flow.h (gimple_fold_indirect_ref): Declare.
27990 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
27991 to fold an INDIRECT_REF, fall back to the old use of
27992 fold_indirect_ref_1.
27994 2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
27996 * tree-data-ref.c (subscript_dependence_tester_1): Call
27997 free_conflict_function.
27998 (compute_self_dependence): Same.
28000 2008-01-16 Uros Bizjak <ubizjak@gmail.com>
28003 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
28004 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
28006 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
28007 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
28008 for DWARF2_UNWIND_INFO targets.
28010 2008-01-16 Richard Guenther <rguenther@suse.de>
28013 * c-typeck.c (common_pointer_type): Do not merge inconsistent
28014 type qualifiers for function types.
28016 2008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
28018 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
28019 loop_iterator li from previous commit.
28021 2008-01-15 Sebastian Pop <sebastian.pop@amd.com>
28023 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
28025 2008-01-12 Sebastian Pop <sebastian.pop@amd.com>
28027 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
28028 (parallelize_loops): Don't parallelize irreducible components.
28030 2008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
28033 * c-opts (c_common_post_options): Do not enable CPP
28034 flag_pedantic_errors by default.
28036 2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
28038 PR rtl-optimization/31944
28039 * cse.c (remove_pseudo_from_table): New function.
28040 (merge_equiv_classes): Use above function to remove pseudo-registers.
28041 (invalidate): Likewise.
28043 2008-01-13 Richard Guenther <rguenther@suse.de>
28045 PR middle-end/34601
28046 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
28047 instead of TYPE_MODE to deal with calls from expand_one_error_var.
28049 2008-01-13 Uros Bizjak <ubizjak@gmail.com>
28051 * gcse.c (cprop_jump): Call validate_unshare_change instead of
28052 validate_change to unshare the source of the PC set.
28054 2008-01-12 Jan Hubicka <jh@suse.cz>
28056 PR middle-end/32135
28057 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
28058 references above array bounds. This might trigger bounds checks for
28059 pointers to arrays.
28061 2008-01-12 Sebastian Pop <sebastian.pop@amd.com>
28063 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
28064 new_replaceable_dependencies.
28066 2008-01-12 Doug Kwan <dougkwan@google.com>
28068 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
28069 instead of OPT_Wreturn_type in warning due to ignored return type
28071 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
28072 options included in -Wextra.
28073 * c.opt: New option -Wignored_qualifiers.
28074 * doc/invoke.texi (Warning Options, -Wextra): Add new option
28075 -Wignore_qualifiers.
28076 (-Wignored-qualifiers): Document.
28077 (-Wreturn-type): Remove description of functionality now handled
28078 by -Wignored-qualifiers.
28080 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
28083 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
28084 NOP_EXPR if it is between integral types with the same precision.
28086 2008-01-12 Jan Hubicka <jh@suse.cz>
28089 * invoke.texi (max-inline-recursive-depth): Fix default value.
28091 2008-01-12 Zdenek Dvorak <ook@ucw.cz>
28093 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
28096 2008-01-11 Bob Wilson <bob.wilson@acm.org>
28098 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
28100 2008-01-11 James E. Wilson <wilson@specifix.com>
28103 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
28105 2008-01-11 Anatoly Sokolov <aesok@post.ru>
28107 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
28108 save/restore frame pointer register and don't use 'call-prologues'
28109 optimization in function with "OS_task" attribute.
28111 2008-01-11 Eric Botcazou <ebotcazou@adacore.com>
28113 PR middle-end/31309
28114 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
28115 when copying to memory.
28117 2008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
28119 PR rtl-optimization/30905
28120 * cfgcleanup.c: Include dce.h
28121 (crossjumps_occured): New global variable.
28122 (try_crossjump_bb): Exit loop after finding a fallthru edge.
28123 If something changed, set crossjumps_occured to true.
28124 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
28125 Don't add/remove fake edges to exit here...
28126 (cleanup_cfg): ...but do it here, when crossjumping.
28127 Run a fast DCE when successful crossjumps occured in the latest
28128 iteration of try_optimize_cfg.
28130 2008-01-11 Richard Guenther <rguenther@suse.de>
28132 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
28133 (struct vn_unary_op_s): Likewise.
28134 (vn_reference_insert): Free old reference on hash collision.
28136 2008-01-10 Raksit Ashok <raksit@google.com>
28138 PR rtl-optimization/27971
28139 * combine.c (find_split_point): Split PLUS expressions which are
28140 inside a MEM rtx, and whose first operand is complex.
28142 2008-01-10 DJ Delorie <dj@redhat.com>
28144 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
28145 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
28146 (m32c_hard_regno_ok): Call the underlying function.
28148 2008-01-10 Richard Guenther <rguenther@suse.de>
28150 PR middle-end/34683
28151 * tree-cfg.c (tree_merge_blocks): Do not go through the
28152 full-blown folding and stmt updating path if we just deal
28153 with virtual operands.
28154 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
28155 test for abnormal SSA_NAMEs.
28157 2008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
28159 PR middle-end/34641
28160 * reload.c (push_reload): Add assertions. All constants from
28161 reg_equiv_constant should have been used for replacing the respective
28163 (find_reloads_address): Invoke find_reloads_address_part for
28164 constant taken from the reg_equiv_constant array.
28166 2008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
28168 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
28169 field (valnum) the first in the struct. Replace bools with
28172 2008-01-10 Richard Guenther <rguenther@suse.de>
28174 PR tree-optimization/34651
28175 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
28176 types and ordering for masking and converting.
28178 2008-01-09 Sebastian Pop <sebastian.pop@amd.com>
28180 PR tree-optimization/34017
28181 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
28182 also for PHI_NODE expressions.
28184 2008-01-09 Jan Hubicka <jh@suse.cz>
28186 PR tree-optimization/34708
28187 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
28188 based on number of case labels.
28189 (init_inline_once): Remove switch_cost.
28190 * tree-inline.h (eni_weights_d): Remove switch_cost.
28192 2008-01-09 Richard Guenther <rguenther@suse.de>
28193 Andrew Pinski <andrew_pinski@playstation.sony.com>
28195 PR middle-end/30132
28196 * gimplify.c (gimplify_cond_expr): Do not create an addressable
28197 temporary if an rvalue is ok or an lvalue is not required.
28199 2008-01-09 Richard Guenther <rguenther@suse.de>
28201 PR middle-end/34458
28202 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
28203 adjust return type.
28205 2008-01-09 Richard Guenther <rguenther@suse.de>
28207 PR middle-end/34679
28208 * tree.c (host_integerp): Check for sizetype only if the
28209 type is an integer type.
28211 2008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
28214 * opts.c (decode_options): Disable inlining of functions called
28215 once if not in unit-at-a-time mode.
28217 2008-01-09 Alexandre Oliva <aoliva@redhat.com>
28219 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
28221 2008-01-08 Richard Guenther <rguenther@suse.de>
28223 PR middle-end/31863
28224 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
28225 out early if the result will be unused.
28227 2008-01-08 Uros Bizjak <ubizjak@gmail.com>
28232 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
28233 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
28236 2008-01-08 Jan Sjodin <jan.sjodin@amd.com>
28238 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
28239 for vectorization tuned.
28241 2008-01-08 Richard Guenther <rguenther@suse.de>
28243 PR tree-optimization/34683
28244 * tree-ssa-operands.c (operand_build_cmp): Export.
28245 * tree-ssa-operands.h (operand_build_cmp): Declare.
28246 * tree-vn.c (vuses_compare): Remove.
28247 (sort_vuses): Use operand_build_cmp.
28248 (sort_vuses_heap): Likewise.
28249 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
28250 to re-use old VEC if available. Do not sort already sorted VUSEs.
28251 (vdefs_to_vec): Do not sort already sorted VDEFs.
28253 2008-01-08 Jakub Jelinek <jakub@redhat.com>
28255 PR middle-end/34694
28256 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
28258 2008-01-08 Uros Bizjak <ubizjak@gmail.com>
28261 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
28262 limitations of reciprocal sequences on x86 targets.
28264 2008-01-08 Richard Guenther <rguenther@suse.de>
28266 PR tree-optimization/34683
28267 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
28269 2008-01-07 Jakub Jelinek <jakub@redhat.com>
28272 * config/darwin.c (darwin_mergeable_string_section): Don't use
28273 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
28275 2008-01-07 Uros Bizjak <ubizjak@gmail.com>
28278 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
28279 negxf2. Macroize expander using X87MODEF mode iterator. Change
28280 predicates of op0 and op1 to register_operand.
28281 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
28282 expander using X87MODEF mode iterator. Change predicates of
28283 op0 and op1 to register_operand.
28284 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
28285 corresponding patterns and macroize using MODEF macro. Change
28286 predicates of op0 and op1 to register_operand and remove
28287 "m" constraint. Disparage "r" alternative with "!".
28288 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
28289 macroize using X87MODEF macro. Change predicates of op0 and op1
28290 to register_operand and remove "m" constraint. Disparage "r"
28291 alternative with "!".
28292 (absneg splitter with memory operands): Remove.
28293 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
28294 patterns and macroize using X87MODEF mode iterator.
28295 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
28296 Change predicate of op1 to register_operand.
28297 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
28298 for memory operands.
28300 2008-01-07 Nathan Froyd <froydnj@codesourcery.com>
28302 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
28304 2008-01-07 Richard Guenther <rguenther@suse.de>
28306 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
28309 2008-01-07 Richard Guenther <rguenther@suse.de>
28311 PR tree-optimization/34683
28312 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
28313 VOPs of the needed size to save memory. Use VEC_quick_push
28314 to save compile-time.
28315 (vdefs_to_vec): Likewise.
28317 2008-01-07 Sa Liu <saliu@de.ibm.com>
28319 * config/spu/spu.md (divdf3): Genetate inline code for double
28320 division. The implementation doesn't handle INF or NAN, therefore it
28321 only applies when -ffinite-math-only is given.
28323 2008-01-06 Paolo Carlini <pcarlini@suse.de>
28326 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
28327 * doc/cpp.texi ([Common Predefined Macros]): Document.
28329 2008-01-06 Uros Bizjak <ubizjak@gmail.com>
28331 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
28332 order to use commutative addition instead of subtraction.
28334 2008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
28335 Mircea Namolaru <namolaru@il.ibm.com>
28336 Vladimir Yanovsky <yanov@il.ibm.com>
28337 Revital Eres <eres@il.ibm.com>
28339 PR tree-optimization/34263
28340 * tree-outof-ssa.c (process_single_block_loop_latch,
28341 contains_tree_r): New functions.
28342 (analyze_edges_for_bb): Call process_single_block_loop_latch
28343 function to empty single-basic-block latch block if possible.
28345 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
28347 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
28349 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
28351 2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
28353 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
28355 2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
28357 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
28359 2008-01-05 Jakub Jelinek <jakub@redhat.com>
28361 PR tree-optimization/34618
28362 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
28365 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
28368 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
28369 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
28370 Update copyright year.
28372 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
28373 Update copyright year.
28374 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
28377 2008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
28379 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
28380 edge does not point to current bb before changing need_assert.
28382 2008-01-04 Richard Guenther <rguenther@suse.de>
28384 PR middle-end/34029
28385 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
28386 for verifying purposes if they are is_gimple_min_invariant.
28388 2008-01-04 Aldy Hernandez <aldyh@redhat.com>
28390 PR tree-optimization/34448
28391 PR tree-optimization/34465
28392 * gimplify.c (gimplify_init_constructor): Add new parameter
28393 notify_temp_creation. Use it.
28394 (gimplify_modify_expr_rhs): Take volatiles into account when
28395 optimizing constructors.
28396 Do not optimize constructors if gimplify_init_constructor will dump to
28398 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
28399 * gcc.c-torture/compile/pr34448.c: New.
28401 2008-01-04 Jakub Jelinek <jakub@redhat.com>
28403 PR gcov-profile/34609
28404 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
28405 return_slot if result is TREE_ADDRESSABLE.
28407 2008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
28409 * config/mips/mips.md (sqrt_condition): Tweak comment.
28410 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
28412 2008-01-03 Tom Tromey <tromey@redhat.com>
28415 * c-common.c (c_type_hash): Handle VLAs.
28417 2008-01-03 Jan Hubicka <jh@suse.cz>
28419 PR tree-optimization/31081
28420 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
28421 0 when inlining and not inlining to first basic block.
28422 (remap_decl): When var is initialized to 0, don't set default_def.
28423 (expand_call_inline): Set entry_bb.
28424 * tree-inline.h (copy_body_data): Add entry_bb.
28426 2008-01-03 Jakub Jelinek <jakub@redhat.com>
28429 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
28432 PR tree-optimization/29484
28433 * tree-inline.c (inline_forbidden_p_2): New function.
28434 (inline_forbidden_p): Disallow inlining if some static var
28435 has an address of a local LABEL_DECL in its initializer.
28436 * doc/extend.texi (Labels as Values): Document &&foo behaviour
28439 2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
28441 PR tree-optimization/34635
28442 * tree-data-ref.c (add_other_self_distances): Make sure that the
28443 evolution step is constant.
28445 2008-01-03 Jakub Jelinek <jakub@redhat.com>
28447 PR middle-end/34608
28448 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
28450 2008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
28452 * tree-sra.c (scalarize_init): Insert the generate_element_init
28453 statements after the generate_element_zero statements.
28455 2008-01-02 Richard Guenther <rguenther@suse.de>
28457 PR middle-end/34093
28458 PR middle-end/31976
28459 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
28460 for very large number of operands instead of ICEing.
28462 2008-01-02 Arthur Norman <acn1@cam.ac.uk>
28465 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
28466 while stack probing.
28468 2008-01-01 Douglas Gregor <doug.gregor@gmail.com>
28470 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
28473 2008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
28475 PR libmudflap/26442
28476 * tree-mudflap.c (mx_register_decls): Guard warning by
28477 !DECL_ARTIFICIAL check.
28479 2008-01-01 Jakub Jelinek <jakub@redhat.com>
28481 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
28482 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
28483 sse5_perm<mode>): Fix constraints.